编译和链接到外部目录compaq fortran命令提示符中的已使用模块

时间:2014-05-13 22:03:17

标签: module fortran include options

我已经在这里提出了类似的问题:

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]选项,因为这似乎是一个更好的解决方案。

1 个答案:

答案 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]选项会更好,但是只要我能够在一个单独的目录中访问,我就满意了。如果有人能找到更好的解决方案,我会切换复选标记。我希望这对像我这样困惑的其他人有所帮助。