2013-10-29 53 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延伸的最大允许的字符。