我正在使用Fortran 77编写的模型修改代码,但是我遇到了一件奇怪的事情。在某些文件中,行的第一列中有一个标签“d”,如下例所示:
d real*8 co2rootfix,co2rootloss,co2shootfix
d character komma*1
d open(unit=87,file='crop_CO2.csv',status='unknown')
d write(87,*) 'date,co2rootfix,co2rootloss,co2shootfix'
d open(unit=88,file='crop_dm.csv',status='unknown')
d write(88,*) 'date,wrtpot,wrt,wstpot,wst,rdpot,rd,laipot,lai,
d &gwrt,gwst,drrt,drlv,drst'
奇怪的是,它是由英特尔的ifort编译器成功编译的。但是,gfortran逻辑上返回以下错误:
错误:语句标签中的非数字字符位于(1)
我想知道:
答案 0 :(得分:6)
ifort文档中有选项-d-lines
和-nod-lines
:
此选项编译调试语句。它指定在第1列(调试语句)中包含D的固定格式文件中的行应被视为源代码。
因此,如果代码是在没有-d-lines
(或默认为-nod-lines
的情况下编译的,那么第一列中d
的那些行被视为注释并被忽略。< / p>
在gfortran中-fd-lines-as-code
和-fd-lines-as-comments
具有相同的效果。这里的区别在于ifort作为扩展,无论标志如何都接受代码(如上所述,它具有隐式-nod-lines
)。 gfortran只需要指定一个标志来接受代码。