Фортран Фиксированная линия продолжения линии

Я всегда использую свободную форму.f90 для написания кода на Фортране, но теперь мне нужно использовать какой-то фиксированный код.f. Насколько я знаю, продолжение строки в фиксированном формате может быть достигнуто путем помещения произвольного непустого ненулевого символа в столбец 6. Так что этот первый блок должен работать

      x =
     &    1

и этот второй блок потерпит неудачу

      x = &
     &    1

Приведенный выше вывод подтверждается простым демонстрационным кодом, который компилируется с помощью Makefile и компилируется с помощью Cmake. Если использовать первый способ, все хорошо; если второе, компилятор сообщит об ошибке, сказав, что не может понять "&" после знака равенства.

Теперь меня озадачивает то, что у меня есть огромный код Fortran в фиксированной форме (.f) от кого-то другого. То, что используется в этом огромном коде для продолжения строки, похоже на второй способ (который мне кажется не работает). Но Makefile этого кода сумел как-то преодолеть эту проблему. Этот код и Makefile настолько большие и сложные, что я не могу управлять ими.

Итак, мой вопрос: как я могу позволить компилятору пройти второй путь? Какое волшебство сделал огромный код Фортрана? Спасибо за любые подсказки.

Обновить:

Я попытался использовать -ffree-форму, как предложено, но все равно получаю ту же ошибку. Вот демо.f файл и Makefile.

main.f

      PROGRAM main


      IMPLICIT NONE
        REAL        ::  x
        REAL        ::  y

        x =  &
     &      1
        WRITE(*,*) x

      END PROGRAM main

Makefile:

FC = gfortran
FCFLAGS = -ffree-form

SRCS = main.f
SOBJ = $(SRCS:.f=.o)
EXEC = $(SRCS:.f=)

all: $(EXEC)

%.o: %.f
    $(FC) $(FCFLAGS) -c $<

0 ответов

Другие вопросы по тегам