转换包含MODULE的fortran文件的问题

1 fortran

我正在使用f2c转换Fortran文件.该文件包含MODULE的定义,我无法转换它.错误是machine.f的第1行错误:unclassifiable语句(启动"modulemach")

该文件粘贴在下面:

MODULE MACHINE
IMPLICIT NONE
SAVE

! Machine dependant constants
integer, parameter :: kind_io4  = 4, kind_io8  = 8 , kind_ior = 8
&,                    kind_evod = 8, kind_dbl_prec = 8
&,                    kind_rad  = selected_real_kind(13,60) !the '60' maps to 64-bit real
&,                    kind_phys = selected_real_kind(13,60) ! the '60' maps to 64-bit real
&,                    kind_REAL = 8                         ! used in cmp_comm
&,                    kind_INTEGER = 4                      ! -,,-
real(kind=kind_evod), parameter :: mprec = 1.e-12 ! machine precision to restrict dep
END MODULE MACHINE
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

谢谢

Roo*_*ook 5

我曾经仅在几次使用过f2c,对它没有多少经验,但它不是将Fortran 77代码转换为C的工具吗?

模块是Fortran 90中引入的Fortran功能,它们不是Fortran 77的一部分(还有便携式精度,例如KIND和其他一些东西),我不知道C是否具有这些功能的模拟功能.有人肯定会澄清我的.

  • 对,就是这样; f2c仅支持F77.我想模块变量的粗略模拟将是C中的文件范围变量. (2认同)
  • @sohan - (我很确定其他人会支持我),但这样的翻译最终可能不值得.现代Fortran代码(如上所述)已经非常快了.您将遇到的微优化最终会让您获得更小的收益,而不是您必须处理的翻译问题(例如,KIND,完全重组是另一个).C没有直接类比模块(我知道).最后,我确定这是一个错字,但在你的第一句话"将它移植到C然后使用CUDA FORTRAN进行密集部分"? (2认同)