我正在学习 Fortran,并且遇到了我正在编写的程序的问题。
节目如下:
PROGRAM sco2
IMPLICIT NONE
REAL(8) :: verif, solub, T
WRITE (*,*) "ENTER A TEMPERATURE"
READ (*,*) verif
WRITE (*,*) solub(verif)
END PROGRAM sco2
REAL(8) FUNCTION :: solub(T)
IMPLICIT NONE
REAL(8) :: A1, A2, A3
A1 = -60.2409
A2 = 93.4517
A3 = 23.3585
solub = exp(A1 + A2 * (100/T) + A3 * log(T/100))
END FUNCTION solub
当我尝试编译程序时,出现以下错误:
PROGRAM sco2
1
IMPLICIT NONE
2
Error: Two main PROGRAMs at (1) and (2)
还有一个:
REAL(8) FUNCTION :: solub(T)
1
Error: Invalid character in name at (1)
我真的不知道该怎么办,而且我对 Fortran 和一般编码都很陌生,我做错了什么?
注意:我使用“CONTAINS”看到了已经提出的问题的答案,但我们没有学习(如何)使用它,也不应该这样做,所以我习惯于编写没有“CONTAINS”的函数。
您程序中的函数声明不正确。错误信息
Error: Invalid character in name at (1)
非常准确地告诉我们出了什么问题。
::
根本不属于那里。
修复后,你会发现参数
T
未声明,所以你需要声明类型。