"d" 第一列标签,Fortran 77

"d" label in the first column, Fortran 77

我正在修改用 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'

奇怪的是,它被Intel的ifort编译器编译成功了。但是,gfortran逻辑上returns出现如下错误:

Error: Non-numeric character in statement label at (1)

我想知道:

  1. 这个标签的含义;
  2. 为什么只能被ifort识别;
  3. 我如何让它与 gfortran 一起工作。

ifort 文档中有选项 -d-lines-nod-lines:

This option compiles debug statements. It specifies that lines in fixed-format files that contain a D in column 1 (debug statements) should be treated as source code.

因此,如果代码是在没有 -d-lines(或默认的 -nod-lines 的情况下编译的),那么第一列中带有 d 的那些行将被视为注释并被忽略.

在gfortran中-fd-lines-as-code-fd-lines-as-comments效果一样。这里的区别在于,ifort 作为扩展,接受代码而不考虑标志(如上所述,它具有隐式 -nod-lines)。 gfortran 需要指定一个标志才能接受代码。