文字常数

程序单元通常使用文字常量。这些涵盖了明显的案例

print *, "Hello", 1, 1.0

除了一种情况外,每个文字常量都是一个标量,它具有由语法给出的类型,类型参数和值。

整数文字常量是形式

1
-1
-1_1   ! For valid kind parameter 1
1_ik   ! For the named constant ik being a valid kind paramter

真正的文字常量是形式

1.0    ! Default real
1e0    ! Default real using exponent format
1._1   ! Real with kind parameter 1 (if valid)
1.0_sp ! Real with kind paramter named constant sp
1d0    ! Double precision real using exponent format
1e0_dp ! Real with kind named constant dp using exponent format

复杂的字面常量是形式

(1, 1.)       ! Complex with integer and real components, literal constants
(real, imag)  ! Complex with named constants as components

如果实部和虚部都是整数,则复数字常量是默认复数,并且整数分量将转换为默认实数。如果一个组件是实数,则复数文字常量的种类参数是真实的(并且整数组件转换为该实际种类)。如果两个分量都是真实的,则复数字常量是具有最高精度的实数。

逻辑文字常量是

.TRUE.     ! Default kind, with true value
.FALSE.    ! Default kind, with false value
.TRUE._1   ! Of kind 1 (if valid), with true value
.TRUE._lk  ! Of kind named constant lk (if valid), with true value

字符文字值在概念上略有不同,因为类型说明符在值之前

"Hello"       ! Character value of default kind
'Hello'       ! Character value of default kind
ck_"Hello"    ! Character value of kind ck
"'Bye"        ! Default kind character with a '
'''Bye'       ! Default kind character with a '
""            ! A zero-length character of default kind

如上所述,字符常量必须用撇号或引号分隔,并且开始和结束标记必须匹配。可以通过在引号分隔符内或通过出现加倍来包括文字撇号。引号相同。

BOZ 常量与上述不同,因为它们仅指定一个值:它们没有类型或类型参数。BOZ 常量是位模式,并指定为

B'00000'    ! A binary bit pattern
B"01010001" ! A binary bit pattern
O'012517'   ! An octal bit pattern
O"1267671"  ! An octal bit pattern
Z'0A4F'     ! A hexadecimal bit pattern
Z"FFFFFF"   ! A hexadecimal bit pattern

BOZ 文字常量在它们可能出现的位置是有限的:作为 data 语句中的常量和选择的内部过程。