[翻译]gFortran Getting Started

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京

[翻译]gFortran Getting Started

#1

帖子 aBiNg » 2007-10-11 17:46

这份日志,作个备份,有别人要用到的,更好。linux下多数使用intel的compiler。
其实是官方网页一个简单小结。

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默认的函数
回复