预期的括号错误gfortran

时间:2015-08-28 10:08:19

标签: compilation fortran gfortran parentheses

我正在尝试使用gfortran v.4.8.2编译一些fortran代码。 当我编译时,我得到以下错误:

ant_driver.f90:185.72:

 if (model%geometry%topg(ew,ns)-model%climate%eus(ew,ns)
                                                                    1
Error: Syntax error in IF-expression at (1)
ant_driver.f90:187.119:

ry%thck(ew,ns) = -rhoo/rhoi * (model%geometry%topg(ew,ns)-   model%climate%eus(ew,
                                                                       1
Error: Expected a right parenthesis in expression at (1)
ant_driver.f90:188.27:


endif
                           1
Error: Expecting END DO statement at (1)
ant_driver.f90:248.82:

odel%geometry%usrf(ew,ns) = - (model%geometry%topg(ew,ns)-model%climate%eus(ew,
                                                                       1
Error: Expected a right parenthesis in expression at (1)
ant_driver.f90:260.107:

model%geometry%usrf(ew,ns) - (model%geometry%topg(ew,ns)-model%climate%eus(ew,
                                                                       1
Error: Expected a right parenthesis in expression at (1)
ant_driver.f90:174.30:

 call glide_set_eus(model,eus)
                     1
Error: Rank mismatch in argument 'inarray' at (1) (scalar and rank-2)

错误与以下代码行有关: 185-188:

if (model%geometry%topg(ew,ns)-model%climate%eus(ew,ns) < 0 .and.    model%geometry%thck(ew,ns) == 0 .and. &
                        mask(ew,ns) == 1) then
                            model%geometry%thck(ew,ns) = -rhoo/rhoi * (model%geometry%topg(ew,ns)-model%climate%eus(ew,ns))
                    endif

248:

model%geometry%usrf(ew,ns) = - (model%geometry%topg(ew,ns)-model%climate%eus(ew,ns)) * rhoo/rhoi &
                                             + (model%geometry%topg(ew,ns)-model%climate%eus(ew,ns))

260:

model%geometry%thck(ew,ns) = model%geometry%usrf(ew,ns) - (model%geometry%topg(ew,ns)-model%climate%eus(ew,ns))

174:

call glide_set_eus(model,eus)

任何帮助非常感谢。谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

您的错误是由于行截断造成的。对于固定格式的Fortran,指定了72个字符的行长度,对于自由格式的Fortran,它应该是132个字符。由于.f90扩展名,您的来源应被解释为自由格式,但您可以使用-ffree-form在gfortran中强制使用自由格式。您还可以分别使用选项-ffixed-line-length-n-ffree-line-length-n更改固定和自由格式源中的最大行长度,其中n0的字符数和值}或none表示无限长行。