如何解决“Error: Two main PROGRAMs at (1) and (2)”?

问题描述 投票:0回答:1

我正在学习 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”的函数。

fortran gfortran fortran90
1个回答
0
投票

您程序中的函数声明不正确。错误信息

Error: Invalid character in name at (1)

非常准确地告诉我们出了什么问题。

::
根本不属于那里。

修复后,你会发现参数

T
未声明,所以你需要声明类型。

© www.soinside.com 2019 - 2024. All rights reserved.