Fortran:CHARACTER声明中的语法错误

时间:2013-03-14 05:21:04

标签: fortran gfortran

我正在尝试在远程超级计算机上运行我的笔记本电脑上正常运行的程序。但该计划没有在那里编制。试图追踪问题,我把程序减少到基本的最小值,但它仍然给我一个编译错误。任何人都有任何想法可能会出现问题吗?

[k00603@fe01p08 python_utilities]$cat test.f90
program test
character(:), allocatable :: out  
end program test
[k00603@fe01p08 python_utilities]$gfortran test.f90
In file test.f90:3

character(:), allocatable :: out
         1
Error: Syntax error in CHARACTER declaration at (1)

我猜gfortran运行正常,因为当我执行以下操作时,它可以正常运行:

[k00603@fe01p08 python_utilities]$cat test.f90
program test
print *, "Hello World!"
end program test
[k00603@fe01p08 python_utilities]$gfortran test.f90
[k00603@fe01p08 python_utilities]$./a.out 
Hello World!

超级计算机上的编译器是:

[k00603@fe01p08 256]$gfortran --version
GNU Fortran (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51)
Copyright (C) 2007 Free Software Foundation, Inc.

2 个答案:

答案 0 :(得分:1)

CHARACTER(:)...是Fortran 2003功能,称为延迟长度字符。它最近才被添加到gfortran并且某些领域的支持(延迟长度字符组件)仍然不完整。

您的超级计算机可能正在运行较旧版本的编译器,但缺少对此功能的支持。

答案 1 :(得分:0)

character(:), allocatable :: out宣布一个可分配的缩放器。这是Fortran 2003的一个新功能。超级计算机上的编译器可能不支持这个新功能。

你暗示你正在使用gfortran。 http://gcc.gnu.org/wiki/GFortran列出了gfortran 4.5版中添加的可分配缩放器(参见4.5 / Fortran 2003)。目前的版本是4.7。