Nor*_*ico 1 fortran initialization function
Gfortran不会让我编译以下代码,因为nLines并且nIOstts不能像这样初始化; 所以我必须先声明它们然后在代码中添加两行来设置它们所需的初始值.
为什么这样工作?也许因为INTENT(OUT)它更有意义,因为函数将存储数据的变量已经存在(我现在不记得Fortran子程序是否通过引用工作),但对于RESULT变量,它似乎是不必要的.这是编译器特有的还是一般的Fortran特性?
FUNCTION LinesInFile(nUnit,nIOstts) RESULT(nLines)
IMPLICIT NONE
INTEGER,INTENT(IN) :: nUnit
INTEGER,INTENT(OUT) :: nIOstts=0
INTEGER :: nLines=-1
DO WHILE (nIOstts.EQ.0)
READ(UNIT=nUnit,FMT='(A)',nIOstts)
nLines=nLines+1
ENDDO
END FUNCTION
Run Code Online (Sandbox Code Playgroud)
jan*_*neb 10
TYPENAME :: variable = somevalue
不会做你认为它做的事情.也就是说,这将在变量上放置一个隐含的SAVE属性,并带有初始值somevalue.SAVE对于过程参数没有意义,因此不允许这样做.
所以你想要的是
TYPENAME :: variable
variable = somevalue
Run Code Online (Sandbox Code Playgroud)
这将在somevalue每次执行过程时将值设置为.
| 归档时间: |
|
| 查看次数: |
836 次 |
| 最近记录: |