-1

我正在用 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)

当我尝试编译它时,我在 Line CCS = &ofUnclassifiable statement at 1.

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

4

1 回答 1

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
于 2016-10-04T10:17:19.457 回答