刚接触Fortran不久,而且需要在Linux系统下运行Fortran。对于单个Fortran文件,直接编译运行就行,但是如果一个主程序包含了多个子程序,那么这里就需要注意下了。
1.单个Fortran文件
a. 运行 gfortran example.f90 (example是文件名,gfortran是安装的Fortran编译器);
b. 会发现生产一个a.out的文件,说明就已经编译成功了;然后输入命令 ./a.out 即可运行这个Fortran程序:example.f90
-
多个Fortran文件
我们经常会自定义一些函数,这些函数会放在一个单独的Fortran文件里,那么对于这样有一个主程序和多个自定义函数的情形应该怎么编译、运行呢?
a. gfortran -c main.f90 (main.f90为主程序,执行该命令后会在当前目录下生产一个main.o的文件)
b. gfortran -c fun.f90 (fun.90为main.f90引用的子程序,执行该命令后会在当前目录下生产一个fun.o的文件)
c. gfortran -o exe_name fun.o main.o
(exe_name 这个是可以随便取得;fun.o main.o的顺序无所谓;执行这个命令后,会生产一个exe_name的文件,这个就是编译了的文件)
d. ./exe_name
执行这个命令就可以运行main.f90了
注意事项
- gfortran 默认会将 .f, .for, .fpp, .ftn, .F, .FOR, .FPP 和 .FTN 结尾的文件作为固定格式处理,而将.f90, .f95, .f03, .F90, .F95 和 .F03 结尾的文件作为自由格式来处理。如果我们将所写的Fortran程序文件命名为 name.f90,那么编译时就必须手动指定其为固定格式:
$ mv helloworld.f helloworld.f90
$ gfortran helloworld.f90 -ffixed-form -o helloworld