我有一个最初针对英特尔编译器的大型 Fortran 代码库。我现在正准备用 gfortran 编译。不幸的是,代码中充斥着英特尔风格的预处理指令,例如:
!DEC$ IF DEFINED (MYDIRECTIVE)
REAL, DIMENSION(:,:,:), ALLOCATABLE :: my_real_var
!DEC$ ENDIF
从我通过谷歌搜索和 gfortran 文档可以看出,除了 C 风格的预处理之外,没有任何内部 gfortran 支持,例如:
#if defined MYDIRECTIVE
REAL, DIMENSION(:,:,:), ALLOCATABLE :: my_real_var
#endif
有没有其他人遇到过这个问题并提出了一个优雅的解决方案?显然,在将代码传递给 gfortran 进行编译之前,我可以编写一个调用外部预处理器的 shell 脚本,但这对我来说似乎不是一个很好的解决方案。
有什么想法吗?谢谢大师!