声明多个变量集时Gfortran编译错误

时间:2018-05-18 11:01:17

标签: fortran mingw gfortran

我正在使用gfortran尝试在Windows 8.1中编译Fortran 95自由格式代码。

λ gfortran --version
GNU Fortran (MinGW.org GCC-6.3.0-1) 6.3.0
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE

可以清楚地看到使用MinGW安装程序安装的内容。

我在linux中使用gfortran没有任何障碍。但由于项目要求,我需要使用Windows进行开发和测试。使用fortran的目的是开发性能密集的科学模拟部分。

我所面临的错误是我在linux中没有注意到的。

我将描述最小有效代码和错误代码。

有效代码

我有一个名为 test.f95 的文件,其中包含以下代码。

program test

IMPLICIT NONE

! First set of variables declaration 
REAL:: A,B,C
A = 1.0
B = 2.0
C = 3.0

WRITE(*,*) A * B
WRITE(*,*) C

! Second set of variables declaration

!REAL:: D
!D = 4.0
!WRITE(*,*) D

end program test

可以看出,上面的代码中有一些注释掉了。 我稍后会谈到它。

现在,当我使用gfortran编译它时,它成功编译。

λ gfortran test.f95
λ ls
a.exe*  test.f95

我运行可执行文件并产生预期结果。

λ a.exe
  2.00000000
  3.00000000

ERRORNEOUS CODE

相同的文件test.f95包含我之前提到的注释未被注释生成

program test

IMPLICIT NONE

! First set of variables declaration 
REAL:: A,B,C
A = 1.0
B = 2.0
C = 3.0

WRITE(*,*) A * B
WRITE(*,*) C

! Second set of variables declaration

REAL:: D
D = 4.0
WRITE(*,*) D

end program test

我们所做的是取消注释用于声明,设置和打印实变量D的3行代码。这是我们在此程序中描述的第2组变量。

然而,当我们尝试编译时,我们正在编译失败。

λ gfortran test.f95
test.f95:16:8:

REAL:: D
        1
Error: Unexpected data declaration statement at (1)
test.f95:17:1:

 D = 4.0
 1
Error: Symbol 'd' at (1) has no IMPLICIT type

所以,可以看出我们有一个错误。

我之前没有在linux中遇到过这样的错误,因为我甚至无法定义第二个变量。

也就是说,每当我声明第二组变量时就会出现问题。

问题

所以,问题是,

i)我在代码中犯了什么错误吗?

ii)为什么会出现此错误?

ii)如何解决此错误?

0 个答案:

没有答案