期望在表达中使用右括号

时间:2013-10-29 11:57:12

标签: 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) )

我用 fortran 编译了上面的代码并得到了一个错误

Expected a right parenthesis in expression at (1)

我该怎么办?

2 个答案:

答案 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