1、第二章 Fortran程序设计基础本章主要包括以下内容:1. 程序书写2. 字符集及标识符3. 数据类型4. 声明的有关事项5. 算数表达式6. 表控输入 /输出语句第一节 程序书写一 . 程序构造形式例 2-1 简单 Fortran程序的构造形式 PROGRAM MONEY ! Calculates balance after interest compounded REAL BALANCE, INTEREST, RATE BALANCE = 1000 RATE = 0.09 INTEREST = RATE BALANCE BALANCE = BALANCE + INTEREST PRINT
2、 , New balance:, BALANCE END PROGRAM MONEY* PROGRAM 关键字标识 Fortran 主程序,后接程序名,这一行是可选的;*!第二行是注释,不参加编译;* REAL 是声明语句,将后边的变量声明为实型数;* 空行不参与编译,只是增加程序的可读性;这四行是非执行部分;之后的部分到 END语句之前为执行部分根据上述的程序书写,给出简单 Fortran 90 程序的构造形式: PROGRAM 程序名 声明语句 执行语句 ENDPROGRAM 程序名 方括号内的部分是可选的, END 语句是唯一必须的,表示程序编译到此结束。END 语句中的程序名可以省略,
3、但若出现程序名,必须同时出现 PROGRAM 关键字。对于可选部分,如果缺省,则按照约定(隐含)规则进行二 . 语句语句是 Fortran 程序的基本单位,一条语句可包含 0 132个字符。Fortran77规定,一条语句的不同部分应从特定的列开始,这样的书写格式称为固定格式,相应的程序文件扩展名为 .f 或 .for;Fortran 90 无此限制,自由格式,相应的文件扩展名为 .f90。除赋值语句外,所有的语句都从一个关键字开始。例如:例 2-1 中出现的关键字: PROGRAM、 REAL、 PRINT和 END。一般情况下,每行一条语句。若一行有多条语句,它们之间以分号间隔。可以将几条
4、简单的赋值语句写在一行上,例如:A =1; B =1; C =1也可以只保证一行一条语句,例如:A =1B =1C =1这完全根据个人的书写习惯决定。假如一条语句一行写不完,允许出现续行,但要求被续行最后的非空白字符为 &。例如: A 174.6*& (T-1981.2) *3续行从下一行的第一个非空白字符开始;若下一行的非空白字符为 &,则续行从该字符后的第一个字符开始。 A 174.6* & (T-1981.2) *3Fortran 90 允许出现多达 39个续行。三 .空白的作用 空白没有意义,不参加编译。适当地运用空白空间,可以增加 程序的可读性,例如程序块中的代码缩进。DO 1 I=
5、1,10DO 2 J=1,202 CONTINUE 1 CONTINUE在代表有意义字符序列的记号 (token)内,比如:标号、关键字、变量名、操作符等不允许出现空白。例如: INTE GER、 BAL ANCE、 =都是非法的。 一般情况下,记号之间需留有空白。例如:30CONTINUE 是非法的,因为标号 30 和关键字 CONTINUE 是两个独立的记号。 有的记号间的空白是可选的,例如: END PROGRAM 和 ENDPROGRAM是合法的。四 . 注释 Fortran 90 只提供了一种注释方式:以感叹号开始的语句作为注释。注意:字符串内的感叹号除外; 如 this is a
6、! subroutine注释可以是一整行,也可以是空白行;注释在编译时被忽略。五 . 固定格式例 2-2 C FIXED FORMAT DEMO PROGRAM Fixed PRINT*,Hello $World! PRINT 10 10 FORMAT(1x,This program is written in fixed format.) END固定格式说明 :一行共 80列, 4个区第 1-5列,标号区,可以空白,也可以出现符号;第 6列,续行标志区,可以空白(无续行),非 0字符(续行);第 7-72列,语句区,语句区的书写可以从任意一列开始,空白编译时被忽略,一行只能书写一个语句;第 73-80列,注释区,信息提示,不参与编译* 固定格式是为配合早期使用穿孔卡片输入程序所发明的格式, 这里介绍固定格式,只是让大家对 Fortran 77 程序有所了解,建议大家在编写程序时采用前述地自由格式。* 固定格式尽管有其过多的限制,但由于具有一定的规范性,方便程序的编写和检查。一一 . 字符集字符集Fortran 90 字符集由下列字符组成:(1) 26个英文字母 (AZ 和 az);(2) 数字 09;(3) 下划线 _ ;(4) 特殊字符空格, *, /,(,),:,!, *,等等,详见表 2-1 所示第二节 字符集和标识符