Ошибка: неожиданный конец строки формата в строке формата в Fortran - PullRequest
1 голос
/ 06 октября 2010

Получение этой ошибки при попытке скомпилировать скопированный код из программы на Fortran 77.

код:

900 FORMAT(1H0,2X,'ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, /3X,'WITH AZIMUTH LIMITS OF',2F8.2, 3X,'AND RANGE LIMITS OF',2F10.3,/)

ошибка компилятора:

messy21.f90:529.132:

N FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, /3X,(1)

Error: Unexpected end of format string in format string at (1)

Я не уверен, что означает ошибка.

Ответы [ 2 ]

1 голос
/ 10 октября 2010

Мое предположение (на основе позиции ошибки в строке, 132) было бы: начиная с Фортрана 90 мы используем свободную форму источника (исходную информацию в свободной форме).Каждая строка может содержать до 132 символов.А если ваше утверждение еще больше, вы можете использовать до 39 (255 в текущем стандарте Fortran 2003) строк продолжения.В Fortran 77 использовалась форма с фиксированным исходным кодом, которая является просто еще одной историей.

Используйте так называемый знак продолжения (&), чтобы разделить ваш очень длинный оператор FORMAT, то есть

900 FORMAT(1H0,2X,'ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR',I3,' XMIN-XMAX ',2F8.3,' YMIN-YMAX ',2F8.3,' ZMAX ',F8.3, &
/3X,'WITH AZIMUTH LIMITS OF',2F8.2, 3X,'AND RANGE LIMITS OF',2F10.3,/)

Прочитайте книгу Фортрана 90/95/2003 или соответствующий раздел стандарта Фортрана.Например, в стандарте Fortran 2003 ( Итоговый проект комитета , PDF, 5MB) раздел «3.3 Исходная форма» содержит соответствующую информацию.

0 голосов
/ 07 августа 2017

Ваша строка слишком длинная.

В файлах произвольной формы (.f90) вы можете использовать только 132 строки символов.Вы можете прервать свою линию и перейти к следующей строке.Поместите символ & в конец строки, прежде чем продолжить на следующей строке.

В фиксированной форме Fortran (.f .for) вы можете использовать только 72 строки символов.Вы можете прервать свою линию и перейти к следующей строке.Поместите любой символ в пятый столбец текущей строки.

Существуют параметры компилятора, которые могут ослабить эти ограничения.

...