" d"第一栏中的标签,Fortran 77

时间:2015-04-21 12:11:51

标签: fortran gfortran fortran77 intel-fortran

我正在使用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)

我想知道:

  1. 此标签的含义;
  2. 为什么它只被ifort认可;
  3. 我如何才能与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只需要指定一个标志来接受代码。