Fortran 77 Неклассифицируемое заявление по адресу (1)

У меня есть этот код (на Fortran 77)

        CHARACTER*20 DICT(12) C column 9

        DATA DICT/'aa','bb','for','cry','lug','bye','fly','ugly',
     M'test1','test2', C Column 6
     M'parasympathomimetic','thigmotropism'/ C column 6

Я получаю ошибку в этой строке"M'test1','test2',", говоря, что это синтаксическая ошибка/неклассифицируемый оператор. Эта строка и следующая строка " M'parasympathomimetic','thigmotropism'/"находятся в столбце 6 моего редактора, но предыдущая строка дает мне проблемы.

Я попробовал переместить этот столбец строки 1, удалив «M», и, кажется, ничто не заставляет программу компилироваться.

Я составляю его как таковой:

f77 test.for

Я знаю, что Fortran находится в фиксированной форме, поэтому я не уверен, что я делаю неправильно здесь, любая помощь была бы оценена.

2 ответа

  1. Если в C Column 9C Column 6коде присутствуют только комментарии and, то для добавления комментария в конце строки используйте !символ not C.

    C234567
          CHARACTER*20 DICT(12) ! column 9
    
          DATA DICT/'aa','bb','for','cry','lug','bye','fly','ugly',
         M'test1','test2', ! Column 6
         M'parasympathomimetic','thigmotropism'/ ! column 6
    
  2. Fortran 90 представил свободную исходную форму. Исходный файл с *.f90расширением обозначает свободный исходный код формы, т. е. Fortran 90/95/03/08/15. Fortran 2015 является самым последним стандартом, и многие популярные компиляторы, включая gfortran, поддерживают большую часть Fortran 2008.

    В свободной исходной форме максимальная длина строки составляет 132 символа, по сравнению с более старым пределом 72 символов. Это уменьшает возможность превышения предела текста, что может привести к неправильной интерпретации имен компилятором.

    Продолжение строк в свободной исходной форме выполняется с помощью символа амперсанда&, а не путем ввода символа в колонку 6 следующей строки.

    Например, следующая строка будет юридически продолжена в FORTRAN 77 (при условии, что номер 1фактически находится в колонке 6):

       x = 1 + 2 + 3 + 4
     1  + 5 + 6
    

    В свободной исходной форме строка может расширяться до следующей строки, имея амперсанд в качестве последнего символа.

    x = 1 + 2 + 3 + 4 &
    + 5 + 6
    

    В фиксированной исходной форме первые шесть столбцов зарезервированы для меток операторов, а столбец 1 также используется для указания строк комментариев. В современном коде, использующ структурированные операторы управления, метки операторов встречаются редко.

    В свободной исходной форме любая инструкция может начинаться с столбца 1. Форма свободного источника всегда использует стиль комментария в строке, обозначенный восклицательным знаком. Комментарии в строке могут начинаться в любом столбце.

    Вот тот же код в фиксированном формате и в свободном исходном формате:

    C FIXED SOURCE FORM COMMENT
        DO 10, I=1, 42
        ....
     10 CONTINUE
    
    ! Free source form comment
    do i=1, 42 ! Comments begin in any column
    ....
    end do
    

    Самое главное, что со свободным исходным кодом была введена концепция значительных заготовок. Вот образец заявления фиксированной формы FORTRAN 77, показывающий, что теперь считается значимыми пробелами

    DO I T ER = 1 , MAX ITE R
    

    с последующим эквивалентным заявлением без пробелов:

    DO ITER=1, MAXITER
    

    Свободная исходная форма имеет ряд преимуществ по сравнению со старым фиксированным исходным кодом формы. Рекомендуется всегда использовать его в новом коде.