Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不同机器上的Fortran编译错误_Fortran_Gfortran - Fatal编程技术网

不同机器上的Fortran编译错误

不同机器上的Fortran编译错误,fortran,gfortran,Fortran,Gfortran,我正在处理一段非常大的mortran代码。我试图在我自己的机器上编译它,mortran部分运行正常,但fortran编译失败 在这两台机器上,我使用的gfortran具有相同的标志(-fPIC) 机器1: Linux[略去]2.6.18-194.3.1.el5#1 SMP周五5月7日01:43:09美国东部夏令时2010年x86(U 64)x86(U 64)x86(U 64)GNU/Linuxgfortran 4.1.2(工作-非常旧的内核) 机器2: Linux[省略]4.4.0-79-gen

我正在处理一段非常大的mortran代码。我试图在我自己的机器上编译它,mortran部分运行正常,但fortran编译失败

在这两台机器上,我使用的gfortran具有相同的标志(
-fPIC

机器1:

Linux[略去]2.6.18-194.3.1.el5#1 SMP周五5月7日01:43:09美国东部夏令时2010年x86(U 64)x86(U 64)x86(U 64)GNU/Linux
gfortran 4.1.2(工作-非常旧的内核)

机器2:

Linux[省略]4.4.0-79-generic#100 Ubuntu SMP Wed May 17 19:58:14 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
gfortran 5.4.0(不工作)

我得到的错误(大部分时间)是:

Error: Invalid character in name at (1)
       ExIN=$ExDEF
            1
关于
var没有隐式类型也有一些错误

我在fortran方面没有太多经验,但我希望编译器能够跨平台保持一致,特别是因为它是为了跨平台而开发的


编辑-看起来我有一个不同版本的mortran编译器。我将试着找到旧版本,看看是否能做到。它们是mortran宏,应该扩展到某个地方。

美元不是Fortran字符集的有效字符

有些编译器通过扩展允许它。要在GNU Fortran中允许它,但不能作为第一个字符,并且仅当目标系统支持它时,才使用

-fdollar-ok

看起来您使用此编译器的运气不好

您可以使用相同的选项尝试77国集团,请参见

旧的gfortran 4.8.1也没有提到首字母限制

-福多拉ok 允许“$”作为符号名称中的有效字符


你用什么样的Fortran语言?两台机器上的编译器版本是什么?不确定是什么风格-我没有编写代码,
4.1.2
在工作机器上,而
5.4.0
在非工作机器上,
$
在Fortran令牌中是不允许的。该准则不符合要求,当然也不是“为了跨平台而制定的”。你使用哪种编译器选项?你真的使用Mortran吗?是的,Makefile构建Mortran,然后尝试构建fortran。编译器选项是用于优化的
-fPIC
O2
,使用相同的结果尝试f77。美元符号也出现在工作机器的代码中,并且没有指定
-fdollar ok
。我写的是g77而不是f77。还有,是的,很可能你运气不好。这是一个非常不标准的代码。fdollar ok在任何情况下都是必要的,除非Mortran在另一台计算机上生成了其他东西。我认为这是一个打字错误。看起来g77不存在(在
ratfor
文档中提到过,但没有其他内容。声明它是g77附带的,但我没有g77命令。看起来我坚持使用旧机器,除非我能找到非常旧的fortran副本(穿孔卡片上没有)你正在尝试的是GNU Fortran,而不是Fortran。你完全可以免费尝试其他编译器。有些是免费的,有些不是。而且77国集团确实存在。如果没有,我就不会写它了。是的,我同意这可能值得一试,但在这种情况下,gfortran(和f77作为记录)在原始机器上工作,所以我不是在试图找到最初使用的编译器。