Фортран:строку удлинить / добавить строку - но с текстом в конце?

StackOverflow https://stackoverflow.com/questions/373342

  •  22-08-2019
  •  | 
  •  

Вопрос

У меня есть строка кода 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 к столбцам (и они, возможно, даже не такие строгие, какими были давным-давно).

Но - разве это не то, о чем вам сразу скажет быстрый тестовый запуск?

  1. Да, тот a является символом продолжения, и в основном это просто означает добавление остальной части этой строки, начинающейся после символа продолжения (col 6, верно?), к предыдущей строке.
  2. В вашем компиляторе Fortran, вероятно, есть возможность включить ввод в "свободной форме" вместо использования ввода в "фиксированной форме".Используйте это, и вам не придется беспокоиться о длине строки.
  3. Если ваш компилятор Fortran старше F90 - думаю, именно тогда появилась возможность ввода в свободной форме, примите мои соболезнования.

@Майк Би:

В идеальном мире да, но в этом случае код разрабатывается на одной машине и отправляется на сервер сборки, который имеет соответствующее стороннее программное обеспечение / SDK / лицензии, доступные для сборки.Сборка тоже не совсем быстрая.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top