文字常數

程式單元通常使用文字常量。這些涵蓋了明顯的案例

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 語句中的常量和選擇的內部過程。