程序单元通常使用文字常量。这些涵盖了明显的情况,例如
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
如果实部和虚部都是整数,则复数文字常量为默认复数,并且整数分量将转换为默认实数。如果一个成分是实数,则复数文字常量的kind参数是实数的参数(并且整数成分转换为该实数)。如果两个分量都是实数,则复数文字常量就是最高精度的实数。
逻辑文字常量为
.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语句中的常量和内部过程的选择。