正如 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