种别说明
种别是 F90 的新概念。一个数据 , 不仅有一个类型,并在同一类型下可分为若干种别,种别值确定了数据的大小范围和精度。有了种别说明后,程序更易于移植。因为在不同的计算机系统上,同一种变量类型可以有不同的精度,因此当程序在另一种机子上运行时可能出现溢出或下溢。规定种别后可以避免这种情况的出现。
我们知道,一个数据通常在内序中占一个存贮单元。对整型数而言,如果该变量在程序中使用值范围很小,则只需半个存贮单元。如果变量的整数变化范围很大,则存贮时有必要占两个内存单元。实型数更复杂,除了存贮的数值范围大小不同外,要求精度也会不同,有的只要 8 位有效值即满足,有的则可能要 24 位有效值。这样,它们要求的存贮单元数量不同。为了提高效率,节约内存,按照该变量表达的值范围与表达的精度范围,把同一类划分成几个种别,不同种别分配不同数目的内存单元。
国际标准 FORTRAN90 版本没有规定每个类型必须有哪些种别,具体的种别划分由 FORTRAN 软件开发商自行设置。因此程序员在设计变量时,按该变量表达值的范围、精度要求范围,查阅手册,确定合适的种别,在说明语句中加以说明。
种别由种别选择符说明,写在类型关键字后括号内,其关键字是 KIND ,后跟 '=' 号及种别值。其形式为:类型说明 ([KIND=] 种别值 ) 。
例如要说明变量 X 是实型,种别值是 2 ,说明语句是:
REAL(KIND=2):: X
一个变量必有一个种别,如果变量的类型说明语句中没有种别说明符,如:
REAL:: X, Y
则表示变量 X , Y 的种别缺省,这时采用系统规定的标准值。
Compaq Fortran 提供了如下几类种别值:
整数:有 4 种,种别值即为字节数 n 。
种别值 n |
取值范围 (-28n-1 — 28n-1 -1) |
|
INTEGER([KIND=]1) 或 INTEGER*1 |
-128 — 127 |
|
INTEGER([KIND=]2) 或 INTEGER*2 |