Катастрофическая ошибка Intel Fortran: слишком длинный токен, максимум 7194

Я пытаюсь поместить некоторые данные в файл fortran в виде строки (длиной около 15000 символов) и получил ошибку при компиляции с помощью intel fortran:

катастрофическая ошибка: токен слишком длинный, максимум 7194. Последний токен в строке -4611686018407622524

Кто-нибудь знает, как с этим бороться?

Версия компилятора 13.0.0. Тот же файл можно без проблем скомпилировать с помощью компилятора IBM xlf fortran и gfortran.

Файл фортрана находится здесь


person xslittlegrass    schedule 12.10.2013    source источник
comment
В этом файле у вас есть ~ 600 чисел с двойной точностью... Почему бы вам не сохранить их как real(8) и не преобразовать их в строки, когда это необходимо?   -  person Alexander Vogt    schedule 12.10.2013


Ответы (2)


Токенизатор компилятора, по-видимому, имеет максимально приемлемую длину для токенов; строка, которую вы написали, содержит слишком много символов. Попробуйте разрезать строку на две части (с двумя переменными) и соединить их.

person damienfrancois    schedule 12.10.2013
comment
что означают жетоны? Длина строки? - person xslittlegrass; 12.10.2013
comment
См. ответ на этот вопрос. Компилятор должен преобразовать последовательность символов в последовательность токенов. Например, «abc = 12» состоит из 3 токенов «abc», «=», «12». В вашем случае, вместо того, чтобы иметь 2 символа в токене с правой стороны, у вас есть более 7194, для которых компилятор не предназначен. - person damienfrancois; 12.10.2013

Это ограничение компилятора Intel Fortran, которое все еще присутствует в текущей версии 14.0. Я писал об этом на форумах Intel, но не могу найти их с помощью функции поиска.

В моей программе мне пришлось перейти от большой символьной константы, инициализированной в объявлении типа, к переменной и нескольким операторам присваивания.

person Johny Bergmann    schedule 14.10.2013