我正在向gfortran移植一个大代码。此代码符合Fortran 77标准,非常便携,并且与许多不同的编译器一起运行。我希望首先以最小的变化运行它,然后开始清理它。我首先通过f2f90运行它。
到目前为止,我有两个主要问题,因为我有数百个这样的调用:
我有自己的第二个模仿Cray功能的功能。编译器为以下行提供错误:
CPTSUM = CPTSUM + SECOND(CPT2) - CPT1
我相信编译器正在检查它自己的第二个函数,它不能被调用为带有一个参数的函数。我如何让它看看我的呢?
我有一个通用例程,可以根据具体情况采用单个整数或整数数组。许多电话看起来像这样:
CALL IERR(444,NERR,NDUM,' ')
子程序将第3个参数标注为(*)
。在此示例中,消息不需要整数或文本,因此NDUM
只是一个虚拟标量整数。编译器警告我传递一个标量。 -w
解决了这个问题,但可能会停用其他警告。如何让它忽略这个问题?这是一个权宜之计,因为Fortran 77没有可选参数,而且大多数(所有其他?)编译器都没有看到这个。一种解决方案是将函数移动到另一个文件,但这将是一个PITA。