- 第一章 Fortran 语言程序设计初步
- 第二章 改变程序流程
- 第三章 循环结构
- 第四章 数据结构
- 第五章 数组
- 第六章 过程和模块
- 第七章 输入输出和文件
1.3.2 源码格式
a) 固定格式
Fortran 作为历史上第一种高级语言,其程序编写的规则与当时使用的计算机系统有很大的关系。早期的计算机系统须用卡片将源程序输入,一张卡片相应于源程序的一行。由于卡片物理宽度的限制,因此一行程序允许的字符数也是有限的。由此决定了 F77 的格式,既为 F90/95 中的固定格式。
|
一张卡片有 12 行 80 列。其中有 10 行分别印有 0,l,2,3,4,5,6,7,8,9 十个数字。第 O 行上面的第一行作为第 11 行,再上面一行为第 12 行。一个字符由相应一列上的 1—3 个孔个孔来代表。如源程序某行第 11 列为字符“A”,则在该列上第 12 行和第 l 行上各穿一个方孔。注意此卡片允许的特殊字符只有十一个。
|
|
实际操作时利用卡片穿孔机,按下卡片穿孔机上某一个字符,则机器就会自动将卡片相应列中的相应位置穿上孔。如果一个源程序有 100 行,则需要 100 张卡片。在上机算题时,将穿好孔的卡片按顺序放入卡片输入机,启动机器,就将卡片上的信息输入计算机了。
早期编写 F77 程序使用如上图的 F77 程序纸,一行有 80 列,每行一条程序语句。这 80 列分为四个区,分别书写不同的内容:
标号区:第 l—5 列
可以写 l 至 5 位整数。也可以没有标号。标号区中的空格不起作用。如 lOO 与 100 或 1 0 0 作用相同。标号应是无符号整数(无正负号或小数点)。标号大小顺序没有任何要求。假如第二行的标号为 1000,第三行的标号可以是 10,也可以是 99999。
标号区内不得出现标号以外的内容,但注释行例外。注释行的内容可以写在标号区内,一行中第一列为 C 或*的,该行即被认为注释行,编译时对该行内容不作翻译,对程序运行不产生任何影响。如果在第一列上出现的不是数字、空格或 C 和*的字符,编译时按出错处理。
续行区:第 6 列
如果在一行的第 6 列上写一个非空格和非零的字符,则该行作为其上一行的续行。注意在某些系统中,这个字符可以不限于上面所列的,如 @ } ] ~ 等字符均可使用[ e_132_01.f ]。F77 允许一个语句有 19 个续行(即一个语句最多可以写成 20 行)。有的程序中第 6 列上用“l”,“2”,…表示该行是第 1 个或第 2 个续行,但用数字字符容易与第 7 列的数字形成连续的数字串而引起错觉,故最好使用固定的特殊字符。
语句区:第 7—72 列
不要求一定从第 7 列开始写语句,可以从第 7 列以后(72 列以前)的任何一列开始写,但一行只能写一个语句。如果写满了 72 列,一旦在终端上修改程序时在该行又插入了一些字符,就会使本行最后几个字符超出语句区而引起意料不到的错误。特别注意到语句最后的空格将可能溢出 72 列,在某些计算机系统上将导致难以查出的错误。应注意,引号内的字符串中所包括的空格是有效的,不能忽略[ e_132_02.f ]。
注释区:第 73—80 列
在卡片输入法时代,程序员一般利用此 8 列为程序行编序号以便查找。注释区只对程序员提供辨别信息,不是语句的一部分,在编译时不对 72—80 列作处理[ e_132_03.f ]。
a) 自由格式
在 F90 中,用自由格式编写程序有很大的自由度。与固定格式相比,不易产生键入位置的错误,而且易读易懂。
行 :一行为 132 列。可以有复数条程序语句,语句间用分号“;”分开。语句没有位置规定。
注释行:起始用注释符“!”号,此行其后的所有字符均作为注释(字符串中的!号除外,如 print *,’help!!!!’ )。
续行 :当一个语句非常长以至于 132 列都书写不下时,允许有 39 个续行。在语句行最后加上续行符“&”号。如果字符串跨 2 行以上,则在续行的开始位置也要加&号。注意语句的有效字符是从“&”前和续行符“&”之后的位置算起。[ e_132_04.f90 ]
空格 :在语句名和变量名中间不能有空格。需要空格的地方必须有一个以上空格(GOTO 和 GO TO,ELSEIF 和 ELSE IF,END 构造名(构造名有:DO, PROGRAM, FUNCTION, MODULE, SUBROUTINE) 等有两种写法的除外),如关系运算符 ==,<= 不能写成 = =,< =。这与 F77 有很大不同之处,因为 F77 的设计中将编译源程序的空格忽略[ e_132_05.f ][ e_132_05.f90 ][ e_132_06.f ]。
当程序员要将自己编写的 F90 程序与现有的用 F77 编写的子程序库在源码级结合起来的话,需要特别注意格式的差别。
b) 文件名
以上两种格式的源程序在编译时可以用选项来指定,对应的默认文件扩展名为:
固定格式: .for 或 .f [ fixed.for ]
自由格式: .f90 [ free.f90 ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论