gfortran 包含带有子程序的目录

gfortran include directory with subroutines

我编写了一些 Fortran 子程序。我将子例程保存在名为 subroutines 的桌面文件夹中。当我编译一个 Fortran 程序时,比如 main.f90(位于与 subroutines 不同的文件夹中),它使用文件夹 [=10] 的子例程(例如 sub1.f90sub2.f90) =],我需要将每个子程序复制到main.f90的文件夹中,然后像这样编译:

gfortran -o main main.f90 sub1.f90 sub2.f90

根据需要输出可执行文件。

我的问题是:gfortran 中是否有任何编译器选项可以包含 subroutine 文件夹中的文件 而无需 将每个子例程复制到 [=11] 的文件夹中=]?

我试过这两个选项:

gfortran -L/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90

gfortran -I/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90

这两个编译器选项 return 错误:gfortran: No such file or directory

我的 PC 中唯一可用的 fortran 编译器是 gfortran(没有 ifort)。

您可以简单地输入子程序文件的完整路径。所以你会增加你的编译为

gfortran -o main main.f90 subroutines/sub1.f90 subroutines/sub2.f90 

或者执行此调用的一种聪明方法是使用扩展

gfortran -o main main.f90 subroutines/{sub1,sub2}.f90 

其中大括号将扩展为与我显示的第一个并发症相同。