个人工具
119.28.94.63
该IP地址的讨论
登录
查看“Compiling Fortran”的源代码 - Ubuntu中文
页面
讨论
查看源代码
历史
搜索
导航
首页
最近更改
随机页面
页面分类
帮助
编辑
编辑指南
沙盒
新闻动态
字词处理
工具
链入页面
相关更改
特殊页面
页面信息
查看“Compiling Fortran”的源代码
来自Ubuntu中文
←
Compiling Fortran
跳转至:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{TOCright}} == 写在前面 == 对 fortran 这一块我现在有点乱^_^,有错的地方望大家及时指正。 在gcc4.0以前,gcc绑定的fortran编译器是g77(尽管现在g77已不再被维护,但它可能仍是应用最广的fortran编译器),从gcc4.0开始,gcc开始绑定fortran编译器gfortran(由于g95是另一个由他人维护的fortran编译器,所以gnu选择了gfortran这个名字)。 '''注意:'''没有特殊说明的话,文本介绍的是g77编译器,文中的 gcc 指的也是 gcc4.0之前的版本。 == Fortran 编程中相关文件后缀 == *'''对 g77 编译器:''' '''.a''' 静态库 (archive)<br> '''.f, .for, .FOR''' Fortran源代码(不需编译预处理)<br> '''.F, .fpp, .FPP''' Fortran源代码(需要编译预处理)<br> '''.r''' Fortran源代码(需要RatFor编译预处理)<br> '''.o''' 对象文件 <br> '''.s''' 汇编语言代码<br> '''.so''' 动态库<br> *'''对 gfortran 编译器:''' 相对与g77, gfortran可识别以下文件后缀: '''.ftn, .f90, f95, f03''' Fortran源代码(不需编译预处理)<br> '''.FTN, .F90, F95, F03''' Fortran源代码(需要编译预处理)<br> == 单个源文件生成可执行程序 == 传统的 Fortran 程序只能用大写字符书写,而且每行前六个字符为特定用途所保留。第一列为字符 C 所保留,用来表征整行都是注释。第二列到第六列是为标号预留的。代码从第七列开始。下面是示例程序采用的是传统的 Fortran 格式: C helloworld.f C PROGRAM HELLOWORLD WRITE(*,10) 10 FORMAT('hello, world') END PROGRAM HELLOWORLD 编译器 GCC 并不要求所有代码都大写,但是,除非有其他说明,这种固定的格式都是要求的。下面的命令将该程序编译成可执行文件: $ g77 helloworld.f -o helloworld 命令 g77 是设置过 Fortran 程序所需基本环境的 gcc 的一个前端。同样的结果可以通过下面 gcc 的命令来实现: $ gcc helloworld.f -lfrtbegin -lg2c -lm -shared-libgcc -o helloworld 库文件 libfrtbegin.a (通过命令行选项 -lfrtbegin 被调用) 包含运行和终止一个 Fortran 程序所必须的开始和退出代码。库文件 libg2c.a 包含 Fortran 底层的输入输出等所需要的运行函数。库文件 libm.a 是系统数学库。选项 -shared-libgcc 指定使用共享的标准库 libgcc。 GCC 也允许用自由的格式书写 Fortran 代码。注释以感叹号(!)开始直到行尾。先前的程序采用自由格式重写如下,其中语句、标号都可从任一列开始: ! helloworldff.f ! Program Helloworld write(*,10) 10 format('hello, world') end Program Helloworld 该程序通过在命令行中加入选项 -ffree-form 进行编译,如下: $ g77 -ffree-form helloworldff.f -o helloworldff 由于两种格式的具有很大的区别,程序书写是只能选择其中的一种格式进行书写。 ===gfortran=== *gfortran 默认会将 .f, .for, .fpp, .ftn, .F, .FOR, .FPP 和 .FTN 结尾的文件作为固定格式处理,而将.f90, .f95, .f03, .F90, .F95 和 .F03 结尾的文件作为自由格式来处理。 *对于大写的后缀名 gfortran 将调用编译预处理器进行处理,而以小写的 .fpp 结尾的也会先进行编译预处理。 ==多个源文件生成可执行程序== 命令 g77 可将多个 fortran 源码文件编译链接成为一个单一的可执行程序。下面列出了一个保存在文件 caller.f 中的简单程序的主体部分,它调用一个函数并显示出结果: C caller.f C PROGRAM CALLER I = Iaverageof(10,20,83) WRITE(*,10) 'Average=', I 10 FORMAT(A,I5) END PROGRAM CALLER 名为 Iaverage 函数定义在另一个独立的源文件中,如下: C called.f C INTEGER FUNCTION Iaverageof(i,j,k) Iaverageof = (i + j + k) / 3 RETURN END FUNCTION Iaverageof 通过下面的语句这两个源码文件可被编译链接成一个名为 caller 的可执行程序: $ g77 caller.f called.f -o caller 同样的结果可由下面的命令序列得到──先将每一个源码文件编译成对象文件,而后将对象文件链接为可执行程序: $ g77 -c caller.f -o caller.o $ g77 -c called.f -o called.o $ g77 caller.o called.o -o caller == ==
该页面使用的模板:
模板:Gccmorerefer
(
查看源代码
)
模板:TOCright
(
查看源代码
)
返回至
Compiling Fortran
。