Ошибка Fortran: Ошибка: нечисловой символ в операторе на метке (1)

это моя программа

 Subroutine( m,n, bb,AA)
 integer::m,n 

Real bb(m),AA(m,n)

   print*,'enter b value'
 read*,bb
print*,'enter A value'
 read *,AA

Print*, bb
Print *, AA
end

Это ошибка, как ее решить;

Вывод компилятора:

   YCbT17Kz.f:1.2:

    Subroutine( m,n, bb,AA)
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:1.2:

    Subroutine( m,n, bb,AA)
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:2.2:

    integer::m,n
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:2.2:

    integer::m,n
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:4.1:

    Real bb(m),AA(m,n)
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:4.1:

    Real bb(m),AA(m,n)
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:6.4:

    print*,'enter b value'
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:6.4:

    print*,'enter b value'
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:7.2:

    read*,bb
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:7.2:

    read*,bb
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:8.1:

    print*,'enter A value'
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:8.1:

    print*,'enter A value'
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:9.2:

    read *,AA
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:9.2:

    read *,AA
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:11.1:

    Print*, bb
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:11.1:

    Print*, bb
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:12.1:

    Print *, AA
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:12.1:

    Print *, AA
    1
    Error: Unclassifiable statement at (1)
    YCbT17Kz.f:13.1:

    end
    1
    Error: Non-numeric character in statement label at (1)
    YCbT17Kz.f:13.1:

    end
    1

Error: Unclassifiable statement at (1) 

person amanygooda    schedule 08.01.2015    source источник
comment
@Barmar Редактирование было полезным, но вопрос, скорее всего, является результатом использования источника фиксированной формы (где форматирование имеет решающее значение). Не могли бы вы перепроверить? amanygooda - не могли бы вы также проверить правильность форматирования? [Может быть, и ответ в том, что вы сообщаете компилятору, что это фиксированная форма, когда это не так.]   -  person francescalus    schedule 08.01.2015
comment
@francescalus верно, я одобрил редактирование, потому что это fortran95 и потому что первая ошибка не зависит от исходной формы, но другие ошибки предполагают фиксированную исходную форму.   -  person Vladimir F    schedule 08.01.2015
comment
Я использую онлайн-компилятор, поэтому я не знаю, откуда взялась моя ошибка. можете ли вы объяснить больше о самом предложении   -  person amanygooda    schedule 08.01.2015
comment
@VladimirF Честно говоря, я увидел сообщение об ошибке и суффикс .f и остановился на этом. (+1 за более подробный ответ.)   -  person francescalus    schedule 08.01.2015


Ответы (1)


   Subroutine( m,n, bb,AA)

не является допустимым синтаксисом Фортрана. Язык требует

   Subroutine name_of_the_subroutine(m, n, bb, AA)

Сообщение об ошибке

Real bb(m),AA(m,n)
1
Error: Non-numeric character in statement label at (1)
YCbT17Kz.f:4.1:

предполагает, что вы, вероятно, используете форму с фиксированным исходным кодом, где ожидается числовая метка в столбцах 1-5. Сам оператор должен начинаться со столбца 7 или позже. Но я могу предположить, что это могло быть следствием предыдущей ошибки.

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

Если онлайн-компилятор не позволяет изменить имя файла, вы можете попробовать принудительно использовать источник в свободной форме с помощью параметра компилятора, такого как -ffree-form для gfortran и аналогичного для других компиляторов.

person Vladimir F    schedule 08.01.2015
comment
Для полноты исходной формы (после исправления инвариантной синтаксической ошибки): рассмотрите возможность переименования файла в .f90 (или используйте параметры компилятора для исходного кода в свободной форме). - person francescalus; 08.01.2015