我已经在这里提出了类似的问题:
Linking to modules in external directory Compaq Visual Fortran command prompt
我认为第一个答案是正确的(也就是说,在手册中他们说你可以简单地在模块之前指定路径名),但在删除我的库文件夹中的临时文件之后,这种方法似乎停止了工作。尝试使用/ include [:path]方法,这是我的.bat文件:
df /include:..\FORTRAN_LIB\ __constants
myIO griddata_mod myfdgen myDiff magneticField /exe:magneticField
并返回错误说:
__constants
myIO
griddata_mod
myfdgen
myDiff
magneticField
f90: Severe: No such file or directory
... file is '__constants'
我再次道歉,这个问题非常具体,但似乎它应该很简单,根本不起作用。
P.S。最初,我在使用:
df ..\FORTRAN_LIB\__constants ..\FORTRAN_LIB\myIO
..\FORTRAN_LIB\griddata_mod ..\FORTRAN_LIB\myfdgen
..\FORTRAN_LIB\myDiff magneticField /exe:magneticField
但是,正如我所说的那样,在删除FORTRAN_LIB文件夹中的临时文件后,它停止了工作。 另请注意,这些.bat文件只使用了一行,为了便于阅读,我将它们分成几行。我更喜欢使用/ include [:path]选项,因为这似乎是一个更好的解决方案。
答案 0 :(得分:0)
好的,所以我想我至少找到了解决方法。我知道/ include [:dir]指定搜索" dir"包含文件。但是从文档中可以看出,这也指定了搜索USEd模块,但似乎并非如此。
我的程序现在看起来像这样:
include '..\FORTRAN_LIB\__constants.f90'
include '..\FORTRAN_LIB\computeError.f90'
include '..\FORTRAN_LIB\griddata_mod.f90'
include '..\FORTRAN_LIB\myfdgen.f90'
include '..\FORTRAN_LIB\myDiff.f90'
include '..\FORTRAN_LIB\myIO.f90'
program magneticField
use constants
use computeError_mod
use griddata_mod
use myfdgen_mod
use myDiff_mod
use myIO_mod
implicit none
...
我的DF命令是这样的:
df magneticField /exe:magneticField
一切似乎都很好。使用/ include [:dir]选项会更好,但是只要我能够在一个单独的目录中访问,我就满意了。如果有人能找到更好的解决方案,我会切换复选标记。我希望这对像我这样困惑的其他人有所帮助。