我想将几个模块放在一个文件夹中,并将程序存储在另一个文件夹中。当我尝试生成我在控制台中编写的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
我想用这些生成可执行文件。这个想法很简单,我想将程序和模块存储在不同的文件夹中。
答案 0 :(得分:1)
问题是,~
字符未解析到您的主文件夹中,因为shell只会替换它,如果它停留在单词的开头。所以,要么在选项和路径之间插入一个空格:
ifort test.f90 -I ~/Fortran/modulos/
或写下完整路径:
ifort test.f90 -I/home/yourusername/Fortran/modulos/
两者都适用于ifort 12.1.0。
答案 1 :(得分:0)
您可能需要链接与模块关联的目标文件.o。 如果你可以发布一个简单的源代码示例和编译程序,那么就更容易理解你做错了什么。