Gfortran
来自Ubuntu中文
gFortran Getting Started
fortran源码,linux下多数人使用intel的compiler。其实gFortran也不失为一个好的编译器。这份Wiki只是官方网页一个简单小结。
1、source中未使用外部库链接的,直接执行:
gfortran foo.f/f90 -o foo ./foo
如没有"-o"选项,生成a.out文件,这显然不是我想要的。:D
2、gFortran分两部分:compiler and library。如果gFortran不是标准安装的,编译source后执行,可能找不到lib,这时可以加入"-static"选项:
gfortran -static foo.f/f90 -o foo
gFortran会将库建在所生成程序内部。
3、FortranSource有77和90两种书写格式,gFortran默认根据后缀进行compile。如果想自定义,例如foo.f是用90格式写的,可执行:
gfortran -ffree-form foo.f -o foo
大写的后缀名,gFortran会预执行该程序。
4、多source文件时,先compile不含PROGRAM语句段的source文件,各自生成foo1.o,foo2.o等。再一起编译。例如:
gfortran -c foo1.f/f90 gfortran -c foo2.f/f90 gfortran main.f/f90 foo1.o foo2.o -o main
5、foo.f95的,加选项"-std=f95",.f2003的,目前支持尚不完整。顺便说,gFortran unstable版4.3.x将支持pointer。
下面还有一些可能常用到的options。
"-fbounds-check":检查列表序列脚标是否超出 "-ffree/ffix-line-length-n":设置最大columns。77默认:72;90默认:132。n若设为"0"或"none",则不限有效行数 "-fimplicit-none":等同于在f90每段sub中声明"IMPLICIT NONE",且source中implicit语句优先 "-fmax-error-n":意义如词义 "-fsyntax-only":不编译,只检查语法 "-fexternal-blas":使用BLAS库函数,替代gFortran默认的函数