Фортран:строку удлинить / добавить строку - но с текстом в конце?
Вопрос
У меня есть строка кода Fortran, которая включает в себя некоторый текст.Я изменяю текст, из-за чего строка кода становится слишком длинной для Fortran, поэтому я разделяю ее на две строки, используя 'a'.
Был:
IF (MYVAR .EQ. 1) THEN
WRITE(iott,'(A) (A)') 'ABC=', SOMEVAR
Изменен на:
IF (MYVAR .EQ. 1) THEN
WRITE(iott,'(A) (A)') 'ABC DEF GHI JK
a ' // 'L=', SOMEVAR
Мой вопрос в том, добавляется ли в новой строке (начинающейся с 'a') пробел между 'a' и первым ' к строке?Или мне нужно, чтобы ' было символом рядом с a, чтобы предотвратить дополнительные пробелы?
Как вы можете заметить, я не привык к Фортрану...
Решение
Если вы беспокоитесь о превышении лимита в 72 столбца, то я предполагаю, что вы используете Fortran 77.Синтаксис Fortran 77 требует, чтобы вы начинали со столбца 7, за исключением продолжающихся строк, для которых требуется символ продолжения в столбце 6.Я использую следующий метод, чтобы сообщить мне, сколько строк продолжается для одного оператора (первая строка предназначена только для отображения столбцов):
!234567890
write(*,*)"Lorem Ipsum",
1 " Foo",
2 " Bar"
Это напечатало бы:
Lorem Ipsum Foo Bar
Вам не нужно беспокоиться о пробелах, которые не заключены в кавычки.В любом случае, все пробелы сжимаются в Fortran.
Это стоит того, чтобы научиться использовать формат заявления.Они могут значительно упростить вывод данных.Это чем-то похоже на инструкции printf, если вы исходите из C.Вы указываете формат с различными типами параметров, затем указываете переменные или литералы для заполнения этого формата.
И не волнуйтесь, что вы не работаете с самым модным, новым языком современности.Вы можете многому научиться у Fortran, даже у Fortran 77, и при правильном использовании Fortran может быть даже элегантным.Я видел Fortran 77, написанный так, как если бы это был объектно-ориентированный язык в комплекте с динамической памятью.Мне нравится говорить: "старый.не.плохой".
Другие советы
Прошло слишком много времени, чтобы я мог вспомнить старые требования FORTRAN к столбцам (и они, возможно, даже не такие строгие, какими были давным-давно).
Но - разве это не то, о чем вам сразу скажет быстрый тестовый запуск?
- Да, тот
a
является символом продолжения, и в основном это просто означает добавление остальной части этой строки, начинающейся после символа продолжения (col 6, верно?), к предыдущей строке. - В вашем компиляторе Fortran, вероятно, есть возможность включить ввод в "свободной форме" вместо использования ввода в "фиксированной форме".Используйте это, и вам не придется беспокоиться о длине строки.
- Если ваш компилятор Fortran старше F90 - думаю, именно тогда появилась возможность ввода в свободной форме, примите мои соболезнования.
@Майк Би:
В идеальном мире да, но в этом случае код разрабатывается на одной машине и отправляется на сервер сборки, который имеет соответствующее стороннее программное обеспечение / SDK / лицензии, доступные для сборки.Сборка тоже не совсем быстрая.