链接到外部目录中的模块

时间:2013-06-08 06:19:54

标签: fortran fortran90 intel-fortran

我想将几个模块放在一个文件夹中,并将程序存储在另一个文件夹中。当我尝试生成我在控制台中编写的a.out文件时

    ifort  test.f90  -I~/Fortran/modulos/

test.f90使用以前在 modulos 文件夹中编译的grn模块。这没有运行我得到以下

test.f90(5):错误#7002:打开已编译的模块文件时出错。检查INCLUDE路径。 [GRN]

我做错了什么?我在Ubuntu中使用intel fortran :(

好的,我会添加一些细节。 我的模块是这样的:

    module grn
    contains
    !gaussian random number generator
    subroutine gaussian_rng ( rannumb )
    implicit none
    double precision , intent ( out ) ::rannumb
    blah blah....
    end subroutine gaussian_rng
    end module grn

这是通过命令ifort -c gaussgen.f90在我的文件夹'modulos'中编译的,然后创建相应的.mod和.o文件,然后在我的文件夹'programs'中我有一个名为test.f90的文件

    Program testOrdeningAndStatistics
    use grn
    Implicit None
    Real (Kind(0.d0)):: x
    blah blah ...
    call gaussian_rng(x)
    blah blah ...
    end Program testOrdeningAndStatistics

我想用这些生成可执行文件。这个想法很简单,我想将程序和模块存储在不同的文件夹中。

2 个答案:

答案 0 :(得分:1)

问题是,~字符未解析到您的主文件夹中,因为shell只会替换它,如果它停留在单词的开头。所以,要么在选项和路径之间插入一个空格:

ifort  test.f90  -I ~/Fortran/modulos/

或写下完整路径:

ifort  test.f90  -I/home/yourusername/Fortran/modulos/

两者都适用于ifort 12.1.0。

答案 1 :(得分:0)

您可能需要链接与模块关联的目标文件.o。 如果你可以发布一个简单的源代码示例和编译程序,那么就更容易理解你做错了什么。