0

我正在尝试在远程超级计算机上运行一个在我的笔记本电脑上运行良好的程序。但是程序没有在那里编译。试图追踪问题,我将程序减少到最低限度,但它仍然给我一个编译错误。有人知道这里可能出了什么问题吗?

[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.
4

2 回答 2

1

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

您的超级计算机可能正在运行不支持此功能的旧版本的编译器。

于 2013-03-14T05:46:35.587 回答
0

character(:), allocatable :: out正在声明一个可分配的缩放器。这是 Fortran 2003 的一个新特性。超级计算机上的编译器可能不支持这个新特性。

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

于 2013-03-14T05:46:19.760 回答