2016-10-04 53 views
-1

我在Fortran90中编写代码。我有以下代码:1的不可分类语句错误

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) 

当我尝试编译此我得到的错误在Unclassifiable statement at 1.CCS = &线

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

+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后缀,则可以使用编译器gfortran-ffree-form选项来指示它接受此输入。

$ 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 
+1

问题是错误信息是不同的。你只是在猜测。 〜这取决于你,但我通常试图从OP得到一些信息,从而明确问题来自哪里。 –

+0

第一个字符在第一行出现问题,似乎表明@Harald钉住了它。 – Holmz

+0

错误消息出现在<...省略剩余错误...>之前(尽管在不同的行上,OP指出的行上的错误在下面几行),但我同意你的意见,我应该请求更多信息给OP。 – Harald