期望在表达中使用右括号

use*_*799 3 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) )
Run Code Online (Sandbox Code Playgroud)

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

Expected a right parenthesis in expression at (1)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Ale*_*ogt 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) )
Run Code Online (Sandbox Code Playgroud)

对于固定格式,这可以通过例如以下行&的第六列来完成:

      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) )
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用(gfortran)-ffree-line-length-0或扩展允许的最大字符数-ffixed-line-length-0.