1错误时无法分类的陈述

时间:2016-10-04 08:21:34

标签: fortran fortran90 gfortran freeform

我正在Fortran90中编写代码。我有以下代码:

subroutine QualModel(CCS, TI, AIdex,t_max)
use Global
implicit none
DOUBLE PRECISION :: CCS, TI, AIdex
DOUBLE PRECISION,DIMENSION(10) :: t_max

CCS = 0.0
TI = 0.0
AIdex = 0.0

CCS = &
24.36597157615 + &
(-6.56894015990892) * (ustrand * 60.0)

当我尝试编译时,我在CCS = &

的第Unclassifiable statement at 1.行收到错误

有人可以告诉我如何解决这个问题?我经历了其他问题,但大多数都提出了问题,但这里没有这样的问题。

1 个答案:

答案 0 :(得分:1)

正如Vladimir F指出的那样,文件后缀在Fortran代码中很重要,告诉编译器如何解释代码。

您发布的代码遗漏了一些变量声明(ustrand),使用了我没有的模块(Global)而错过了end。但是,如果我使用下面与您非常相似的代码

subroutine QualModel(CCS, TI, AIdex,t_max)
implicit none
DOUBLE PRECISION :: CCS, TI, AIdex,ustrand
DOUBLE PRECISION,DIMENSION(10) :: t_max

CCS = 0.0
TI = 0.0
AIdex = 0.0

CCS = &
24.36597157615 + &
(-6.56894015990892) * (ustrand * 60.0)
end

使用.f / .f90后缀时编译有所不同,如下所示。请注意,如果您必须坚持文件中的.f后缀,则可以使用-ffree-form编译器的gfortran选项告诉它接受此输入。

$ gfortran --version | head -n 2
GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)
Copyright (C) 2015 Free Software Foundation, Inc.

$ gfortran -c test.f90
$ gfortran -c test.f
test.f:1.1:
subroutine QualModel(CCS, TI, AIdex,t_max)
1
Error: Non-numeric character in statement label at (1)
test.f:1.1:

subroutine QualModel(CCS, TI, AIdex,t_max)
1
Error: Unclassifiable statement at (1)
test.f:2.1:
<... omitted remaining errors ...>

$ gfortran -c -ffree-form test.f