6.1.13 Поддержка констант Холлерита
GNU Fortran поддерживает константы Холлерита в присваиваниях, аргументах функций и DATA и ASSIGN операторах. Константа Холлерита записывается как строка символов, предваряемая целым числом, указывающим количество символов, и буквой H или h, и хранится в байтовом формате в числовой (INTEGER, REAL, или complex) или LOGICAL переменной. Константа будет дополнена или усечена, чтобы соответствовать размеру переменной, в которой она хранится.
Примеры корректного использования констант Холлерита:
complex*16 x(2) data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/ x(1) = 16HABCDEFGHIJKLMNOP call foo (4h abc)
Примеры некорректных констант Холлерита:
integer*4 a a = 8H12345678 ! Valid, but the Hollerith constant will be truncated. a = 0H ! At least one character is needed.
В общем случае константы Холлерита использовались для обеспечения базовой возможности работы со строками символов в ранних компиляторах Fortran до появления CHARACTER переменных в Fortran 77; в таких случаях стандартный эквивалент — конвертация программы для использования правильных строк символов. В некоторых случаях может быть необходимо специально инициализировать числовую переменную заданной последовательностью байтов. В этих случаях тот же результат можно получить, используя оператор TRANSFER, как в этом примере.
INTEGER(KIND=4) :: a
a = TRANSFER ("abcd", a) ! equivalent to: a = 4Habcd
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/Hollerith-constants-support.html