我正在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.
行收到错误
有人可以告诉我如何解决这个问题?我经历了其他问题,但大多数都提出了问题,但这里没有这样的问题。
答案 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