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)

我应该怎么办?

4

2 回答 2

6

您缺少行继续字符。它们对于免费和固定形式的 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

于 2013-10-29T12:50:33.950 回答
2

检查以下方法以在 Fortran 中剪切长线: http ://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap01/continue.html

于 2013-10-29T12:00:08.697 回答