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 :(得分: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
来扩展允许的最大字符数。
答案 1 :(得分:2)
检查以下方法以在Fortran中删除长行: http://www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap01/continue.html