2013-10-29 96 views
3
xic = ac * x**2.D0 * ((1.D0/3.D0) * (1.D0 - x) * 
     (1.D0 + 10.D0 * x + x** 2.D0) + 2.D0 * x * 
     (1.D0 - x) * Log(x)) 

我用編譯FORTRAN 上面的代碼,並得到一個錯誤預計在表達

Expected a right parenthesis in expression at (1) 

我應該怎麼做一個右括號?

+0

爲了獲得更好的性能,最好使用'x * x'或'x ** 2'來代替'x ** 2.D0'。 –

回答

5

你缺少續行字符。對於免費和固定形式的Fortran,它們略有不同。對於免費的形式,則需要在該行的末尾使用&

xic = ac * x**2.D0 * ((1.D0/3.D0) * (1.D0 - x) * & 
         (1.D0 + 10.D0 * x + x** 2.D0) & 
         + 2.D0 * x * (1.D0 - x) * Log(x)) 

對於固定格式,這可以通過例如完成&的第六列下面的行

 xic = ac * x**2.D0 * ((1.D0/3.D0) * (1.D0 - x) * 
    &     (1.D0 + 10.D0 * x + x** 2.D0) 
    &     + 2.D0 * x * (1.D0 - x) * Log(x)) 

或者,也可以通過使用(gfortran-ffree-line-length-0-ffixed-line-length-0延伸的最大允許的字符。