Нераспознанный токен '&' в фиксированных линиях продолжения Фортрана - PullRequest
0 голосов
/ 25 мая 2018

Я редактирую старый проект, который использует фиксированную форму Fortran и компилирует с IVF-компилятором .Текущая проблема, с которой я сталкиваюсь: строки продолжения в списке:

format(//,  10x,'*******************************************',/, &
     10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX   *',/,  &
     10x,'*******************************************',//,  &
     2x,'MEASUREMENT',7X,'  RESIDUAL COVARIANCE', /)

По какой-то причине амперсанд не работает для меня, и я продолжаю получать сообщение об ошибке:

нераспознанный токен '&' skipped

Для небольших линий увеличение фиксированной длины строки формы и превращение двух строк в одну, но есть случаи, когда строки слишком велики для этого.Код был написан около 15 лет назад в фиксированной форме на Фортране, но я незнаком с Фортраном и с тем, как новый компилятор и настройки влияют на код.

Преобразование в свободную форму вызывает ряд ошибок при другом форматировании икод не выглядит битым, поэтому я не думаю, что преобразование в свободную форму необходимо.Я пробовал другие методы отступа, такие как амперсанд в конце строки и в начале следующего, звездочка и косая черта , которыедругие форумы предложили использовать, и они выдают ошибку:

ошибка # 5082: синтаксическая ошибка, найдено END-OF-STATEMENT при ожидании одного из:) ...

Есть ли какое-то форматирование, которое мне не хватает, или есть какие-либо настройки, которые я мог бы изменить, чтобы исправить эти ошибки?

Спасибо, Гэвин

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Или используйте переключатель компилятора -free с .for или .f

Или используйте переключатель компилятора -fixed -132 с .F90.

В вашем случае я бы сохранил.f и cp это в .F90, а затем явно сделать make-файл компилирующимкод, и я не мог получить -d-строк.Для работы с -free.

0 голосов
/ 25 мая 2018

В фиксированной форме Фортрана вы продолжаете строку с любым символом в столбце 6 следующей строки, а не с & в конце 1-й строки.Попробуйте:

      format(//,  10x,'*******************************************',/,
     c  10x,'* DIAGONALS OF THE RESIDUAL COV. MATRIX   *',/,
     c  10x,'*******************************************',//,
     c  2x,'MEASUREMENT',7X,'  RESIDUAL COVARIANCE', /)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...