|
我一般是单独编译 mkl_dfti.f90 文件。
它是一些独立的module,你可以打开这个文件自行查看:
通常内含两个module,即:
MODULE MKL_DFT_TYPE
MODULE MKL_DFTI
Fortran 不允许在一个module中直接包含另一个module,所以你不能把include语句放在
Module MKL_FFT 里面,因为这样的话 Module MKL_FFT 就包含了 MODULE MKL_DFT_TYPE 和 MODULE MKL_DFTI
放在mod语句前面可以避免这个问题。但是 include 的写法,只适合于“你的整个工程,只有 MKL_FFT 这个模块需要 MKL_DFTI”
更好的方法,是单独编译 mkl_dfti.f90,得到 MKL_DFT_TYPE.mod 和 MODULE MKL_DFTI.mod
然后再编译 Module MKL_FFT 。
这样无需写 include,并且可以解决多个源代码文件中都需要使用 MKL_DFT_TYPE 和 MKL_DFTI 的问题。
如果你在多个源代码文件中,例如在 MKL_FFT 和 MKL_FFT_ABC 中,都写了 INCLUDE 'mkl_dfti.f90',就会产生冲突。
|
|