Фортран Фиксированная линия продолжения линии
Я всегда использую свободную форму.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 $<