gpt4 book ai didi

fortran - 自由格式代码可以包含在固定格式代码中吗?

转载 作者:行者123 更新时间:2023-12-03 20:22:04 24 4
gpt4 key购买 nike

我继承了一个固定格式的文件FFTRUN.f该文件的开头如下所示:

  SUBROUTINE FFTRUN_2e 
USE, intrinsic :: ISO_C_BINDING
USE FFTWmod, ONLY : FFTWplan_fwd, FFTWplan_inv, FFTWplanReady
INCLUDE 'INCL_PARAM.FOR'
INCLUDE 'INCL_PRATT.FOR'
INCLUDE 'INCL_XYZ.FOR'
INCLUDE 'FFTW3.f03'

PARAMETER (NDIM=2, NDAT=IMAX*JMAX)
DIMENSION NN(NDIM),DATA(NDAT)
COMPLEX*16 FACTR,SCATT(IMAX,JMAX),WAVINC,DATA

IF (.not.FFTWplanReady) THEN
FFTWplan_fwd = fftw_plan_dft_2d(nn2,nn1,data,data,
& FFTW_FORWARD,FFTW_MEASURE)
FFTWplan_inv = fftw_plan_dft_2d(nn2,nn1,data,data,
& FFTW_BACKWARD,FFTW_MEASURE)
ENDIF

我会用

编译它
    gfortran -c FFTRUN.f

但是,它失败了,因为 fftw3.f03 是自由格式。有没有一种方法可以完成此包含而无需将 fftw3.f03 重新格式化为固定格式?

这是一个庞大的软件,所以我不可能重新格式化固定格式的项目的整个其余部分。

最佳答案

没有。通过分别编译这两个源并将它们链接在一起,您可能会取得更快的进步。由于您已经在使用 Fortran 90 功能,例如 use,这应该不会给您带来太大的痛苦。

首先,确保 fftw3.f03 包含一个模块,该模块本身包含您要使用的函数。删除 include fftw3.f03 行并插入语句 use fftw3_mod 和其他 use 语句(或调用模块的任何名称)。然后修改您的 makefile 以编译 fftw3.f03,然后再编译 fftrun.f。就是这样。

关于fortran - 自由格式代码可以包含在固定格式代码中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25021896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com