2016-10-04 45 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