"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)
我想知道:
- 这个标签的含义;
- 为什么只能被ifort识别;
- 我如何让它与 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 需要指定一个标志才能接受代码。
我正在修改用 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)
我想知道:
- 这个标签的含义;
- 为什么只能被ifort识别;
- 我如何让它与 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 需要指定一个标志才能接受代码。