确定未在Fortran子例程顶部声明的变量类型

Nic*_*nar 1 c++ fortran types fortran77

我正在使用传统的Fortran 77代码子例程,其中参数类型未在代码块的顶部声明.

这是一个显示子程序顶部的片段.

   SUBROUTINE BPASS(F1,F2,F3,F4,SI,N,A,IERR)
   REAL * 4 A( N ),FV( 4 )
Run Code Online (Sandbox Code Playgroud)

根据以上所述,我认为A是长度的数组N类型REAL *4,大小等于一个C float.或者,FV(4)是一个长度4与类型的数组REAL *4.

但是,F1,F2,F3,F4,SI,N,IERR如果未列出类型,有哪些类型?它似乎N应该是一个integer.

我需要知道类型,以便我可以从C++代码调用子例程.对于未声明的类型,是否存在Fortran约定?

Hig*_*ark 6

默认情况下,Fortran会将类型分配给integer名称以字母开头的变量,I,J,K,L,M,N并键入real所有其他未声明的变量.

我同意你的定义的解析AFV.

现代Fortran提供了implicit none用于确保不应用默认规则的表达式,但在使用旧代码时,有时无法避免熟悉旧的黑暗方式.

  • @NicholasKinar,一个值得记住的有用助记符:`INteger`和`IN`一起使用,其他变量是默认的`REAL`类. (3认同)