原文地址:http://blog.sina.com.cn/s/blog_483ac0ab0100g80u.html 变量是指在程序运行期间其值是可以变化的量。系统为程序中的每一个变量开辟一个存储单元,用来存放变量的值。 常量是分为类型的,而变量是用来存放常量的,因此变量也相应地区分为整型变量INTEGER、实型变量REAL、双精度变量DOUBLEPRECISION、复型变量COMPLEX、逻辑型变量LOGICAL、字符型变量CHARACTER。在程序中应当说明哪些变量是整型变量,哪些变量是实型变量。变量在内存中所占的字节数和数据存储形式与相应类型的常数相同。例如,实型变量一般占4个字节,按指数形式存放。在程序中规定变量的类型可以用以下几种方法。 隐含约定:Fortran规定,凡以字母I,J,K,L,M,N六个字母开头的变量名,如无另外说明则为整型变量。以其它字母开头的变量为实型变量。可以将这个隐含约定称为“I—N规则”,表示用I到N之间的字母开头的变量为整型。例如:I,J,IMAX,NUMBER,LINE,JOB,Kl为整型变量,而A,Bl,COUNT,AMOUNT,TOTAL,BOOK为实型变量。 类型指定:如果想改变“I—N规则”对变量类型的约束,可以用类型说明语句专门指定某些变量的类型。Fortran中有六个类型说明语句: (1)INTEGER语句(整型说明语句) (2)REAL语句(实型说明语句) (3)DOUBLE PRECISION语句(双精度说明语句) (4)COMPLEX语句(复型说明语句) (5)LOGICAL语句(逻辑型说明语句) (6)CHARACTER语句(字符型说明语句) IMPLICIT语句(隐含说明语句)指定:可以用IMPLICIT语句将某一字母开头的全部变量指定为所需的类型,还可以用一个IMPLICIT语句同时指定几种类型。例如: IMPLICIT INTEGER (A,C,T-V) IMPLICIT REAL (I,J) IMPLICIT INTEGER (A,B),REAL(I,K),INTEGER (X-Z) 注:(1)以上三种方法中,以类型说明语句最优先,IMPLICIT语句次之,“I—N规则”的隐含约定级别最低。如下程序中IMAX变量为整型,而其它以I、J开头的变量为实型: IMPLICIT REAL(I,J) INTEGER IMAX (2) 类型说明语句和IMPLICIT语句是非执行语句。 (3) 类型说明只在本程序单位内有效。 (4)IMPLICIT语句和类型说明语句应该出现在本程序单位中的所有执行语句之前,其中IMPLICIT语句又应在所有的类型说明语句之前。 变量名使用的英文名是由(F77:6;F90:31)个字符(包含英文字母A-Z、数字0-9、F90:下划线_)构成,且第一个字符必须是字母。其英文名的有效使用范围原则上限于一个程序单位之内(内部过程除外)。如下面的语句是错误的: INTEGER ::1A ! 不是以字母开头 INTEGER ::A_name_made_up_of_more_than_31_letters ! 太长 INTEGER ::China:0 ! 含有不允许的字符 INTEGER ::A-3 ! 减号在此是无意义的 Fortran没有规定保留字,即可以用函数名或语句定义符作变量名。但为了避免混淆,建议不要使用Fortran中已有特定含义的字作变量名。如SIN是正弦函数的名字,如果有以下语句: SIN=3.5 PRINT *,SIN 则语句中的SIN是变量名而不代表正弦函数。系统会根据它后面有无自变量而作出判断,又如: READ *,PRINT 此时PRINT是一个变量名而不代表“打印输出”的操作。系统会认定语句的第—个字READ为代表操作的语句定义符,而把PRINT作为READ语句中读数的变量。但在同一个程序单位(主程序或子程序分别是一个程序单位)中,变量名和函数名或语句定义符不能同名。以下是错误的: SIN=3.5 A=SIN*SIN(2.0) |