На вводном курсе по программированию мне сказали, что символьная константа в Fortran95 может быть объявлена без указания длины, например:
character, parameter :: STR = 'Hello World!'
То же утверждение можно найти в книге Стивена Дж. Чепмена «Fortran 95/2003 для ученых и инженеров» (стр. 34), где говорится
Если именованная константа имеет тип CHARACTER, то нет необходимости объявлять длину строки символов. Поскольку именованная константа определяется в той же строке, что и объявление ее типа, компилятор Фортрана может напрямую подсчитывать количество символов в строке. Например, следующие операторы объявляют именованную константу error_message строкой из 14 символов «Неизвестная ошибка!».
CHARACTER, PARAMETER :: ERROR_MESSAGE = 'Unknown error!'
Я знаю, что можно использовать (len=*)
. Но действительно ли можно полностью исключить селектор длины?
Когда я тестировал его с помощью компиляторов GFortran и Intel, значение всегда усекалось до первого символа. Есть ли другой компилятор, который поддерживает это? Или кто-нибудь может указать мне на часть стандарта Fortran, которая разъясняет это?