Error non numeric character in statement label at 1

FORTRAN зараза какой fortran установить чтоб оно работало? Здравствуй, забаненный в гугле человек. Поменяй расширение файла с программой на f90, а еще лучше добавь по шесть пробелов в начале строки, фортран ищет там метку. а еще лучше добавь по шесть пробелов в начале строки, фортран ищет там метку. Не лучше, это для совместимости со […]

Содержание

  1. FORTRAN зараза
  2. FORTRAN зараза
  3. Синтаксические ошибки из старого кода, скопированного из книги
  4. 2 ответа

FORTRAN зараза

какой fortran установить чтоб оно работало?

Здравствуй, забаненный в гугле человек. Поменяй расширение файла с программой на f90, а еще лучше добавь по шесть пробелов в начале строки, фортран ищет там метку.

а еще лучше добавь по шесть пробелов в начале строки, фортран ищет там метку.

Не лучше, это для совместимости со старыми версиями. Т.н. фиксированная форма. Сейчас нет никакого смысла в ней. И кстати, переменные давно можно называть в нижнем регистре.

В программе кстати еще ошибка. Имя переменной BALANCE совпадает с названием программы.

Дела обстоят хуже, нужно скомпилировать CalculiX у кторого все расширения файлов заканчиваются на *.f, и компилируется он g77, а у меня gfortran-4.8 по gfortran-8. И какой из имеющихся есть g77?

Однозначно, есть такая опция у компилятора. Для меня фортран кончился вместе с курсом в институте, я уже не помню.

gfortran это g95, может есть опция совместимости с g77 но совсем не точно

Есть флаг -std=legacy , но он скорее просто отключает предупреждения о старых расширениях, несовместимых с новыми стандартами.

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

In order to efficiently implement the passing of array sections, binary compatibility to Fortran 77 had to be abandoned. You should not mix object files produced by g77 and gfortran, because this will not result in a working executable.

Сам код при этом вроде обещают, что компилироваться должен https://gcc.gnu.org/fortran/

We highly encourage users to move from g77, which is no longer maintained, and start taking advantage of GFortran’s modern features. Legacy g77 code will compile fine in almost all cases.

Т.е, код должен компироваться, но сам g77 уже давно не поддерживается и отсутствует в дистрибутивах.

Не помню, расширение файла должно быть .f77 для лучшей поддержки или только .f

Я что-то пропустил, или фортран неожиданно стал опять популярен?

Однозначно, есть такая опция у компилятора.

Выглядит идиотски, но похоже этой опции у gfortran или нет или далеко спрятана. Во всяком случае gfortran —help ее не предлагает. Думал опция -x подошла бы, но она похоже про другое. Получается все зависит от расширения у имени файла.

А он и не терял популярности =) В своей области конечно, но у меня впечатление, что современный фортран достаточно фичаст, чтобы на нем с успехом писать хоть бизнес-логику, хоть например веб-сервер.

Можно попробовать скормить компилятору опцию -ffree-form , если лень расширения файлов менять.

saufesma подробнее и больше опций совместимости здесь: https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html

И, как выше сказали, имя программы не должно совпадать с именем переменной. Если оно когда-то и работало в таком виде, то из-за того, что компилятор игнорировал такое.

Быстрогугл показал такое:

Use the following command-line arguments when invoking the gfortran compiler to get better compatibility:

gfortran -ffixed-line-length-none -fdefault-real-8 -std=legacy -fd-lines-as-comments

Я не заметил сразу, что там многоуровневый help. Ну в общем, да, есть опции самые разные.

Между прочим, посмотрел сравнение gfortran c Intel Fortran — все довольно печально для gfortran . https://benchmarksgame-team.pages.debian.net/benchmarksgame/q6600/fastest/ifc.

Как это сделать default

gfortran -ffixed-line-length-none -fdefault-real-8 -std=legacy -fd-lines-as-comments

Да, добавление опции компилятора -ffree-form и переименовывание BALANCE во что-то другое внутри PROGRAM и END PROGRAM достаточно.

Насчёт сравнения, у меня тут коллега возмущался (несерьёзно, конечно), что вот при сборке Intel в IDE флаги оптимизации уже включены, а у gfortran по умолчанию они не включены. Поэтому ещё вопрос, что за опции они для gfortran использовали. Хотя в листинге когда у них упоминается g95 -O3 reverse.f90 , так что не исключено, что они где-то взяли именно компилятор g95. Но может местами всё действительно примерно так и есть.

gfortran -ffixed-line-length-none -fdefault-real-8 -std=legacy -fd-lines-as-comments

Написать alias для баша?

А есть ли какое пусть не современное, но работающее на фортране графическое ПО под линукс? Ну там не знаю текстовый редактор например =) В гугле не нашёл. хотя есть gtk-fortran.

Источник

FORTRAN зараза

какой fortran установить чтоб оно работало?

Здравствуй, забаненный в гугле человек. Поменяй расширение файла с программой на f90, а еще лучше добавь по шесть пробелов в начале строки, фортран ищет там метку.

а еще лучше добавь по шесть пробелов в начале строки, фортран ищет там метку.

Не лучше, это для совместимости со старыми версиями. Т.н. фиксированная форма. Сейчас нет никакого смысла в ней. И кстати, переменные давно можно называть в нижнем регистре.

В программе кстати еще ошибка. Имя переменной BALANCE совпадает с названием программы.

Дела обстоят хуже, нужно скомпилировать CalculiX у кторого все расширения файлов заканчиваются на *.f, и компилируется он g77, а у меня gfortran-4.8 по gfortran-8. И какой из имеющихся есть g77?

Однозначно, есть такая опция у компилятора. Для меня фортран кончился вместе с курсом в институте, я уже не помню.

gfortran это g95, может есть опция совместимости с g77 но совсем не точно

Есть флаг -std=legacy , но он скорее просто отключает предупреждения о старых расширениях, несовместимых с новыми стандартами.

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

In order to efficiently implement the passing of array sections, binary compatibility to Fortran 77 had to be abandoned. You should not mix object files produced by g77 and gfortran, because this will not result in a working executable.

Сам код при этом вроде обещают, что компилироваться должен https://gcc.gnu.org/fortran/

We highly encourage users to move from g77, which is no longer maintained, and start taking advantage of GFortran’s modern features. Legacy g77 code will compile fine in almost all cases.

Т.е, код должен компироваться, но сам g77 уже давно не поддерживается и отсутствует в дистрибутивах.

Не помню, расширение файла должно быть .f77 для лучшей поддержки или только .f

Я что-то пропустил, или фортран неожиданно стал опять популярен?

Однозначно, есть такая опция у компилятора.

Выглядит идиотски, но похоже этой опции у gfortran или нет или далеко спрятана. Во всяком случае gfortran —help ее не предлагает. Думал опция -x подошла бы, но она похоже про другое. Получается все зависит от расширения у имени файла.

А он и не терял популярности =) В своей области конечно, но у меня впечатление, что современный фортран достаточно фичаст, чтобы на нем с успехом писать хоть бизнес-логику, хоть например веб-сервер.

Можно попробовать скормить компилятору опцию -ffree-form , если лень расширения файлов менять.

saufesma подробнее и больше опций совместимости здесь: https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html

И, как выше сказали, имя программы не должно совпадать с именем переменной. Если оно когда-то и работало в таком виде, то из-за того, что компилятор игнорировал такое.

Быстрогугл показал такое:

Use the following command-line arguments when invoking the gfortran compiler to get better compatibility:

gfortran -ffixed-line-length-none -fdefault-real-8 -std=legacy -fd-lines-as-comments

Я не заметил сразу, что там многоуровневый help. Ну в общем, да, есть опции самые разные.

Между прочим, посмотрел сравнение gfortran c Intel Fortran — все довольно печально для gfortran . https://benchmarksgame-team.pages.debian.net/benchmarksgame/q6600/fastest/ifc.

Как это сделать default

gfortran -ffixed-line-length-none -fdefault-real-8 -std=legacy -fd-lines-as-comments

Да, добавление опции компилятора -ffree-form и переименовывание BALANCE во что-то другое внутри PROGRAM и END PROGRAM достаточно.

Насчёт сравнения, у меня тут коллега возмущался (несерьёзно, конечно), что вот при сборке Intel в IDE флаги оптимизации уже включены, а у gfortran по умолчанию они не включены. Поэтому ещё вопрос, что за опции они для gfortran использовали. Хотя в листинге когда у них упоминается g95 -O3 reverse.f90 , так что не исключено, что они где-то взяли именно компилятор g95. Но может местами всё действительно примерно так и есть.

gfortran -ffixed-line-length-none -fdefault-real-8 -std=legacy -fd-lines-as-comments

Написать alias для баша?

А есть ли какое пусть не современное, но работающее на фортране графическое ПО под линукс? Ну там не знаю текстовый редактор например =) В гугле не нашёл. хотя есть gtk-fortran.

Источник

Синтаксические ошибки из старого кода, скопированного из книги

Это книга 80-х годов, авторами которой являются французский К. Джаблон и Дж. С. Саймон. У меня есть эта книга в русском переводе. Название «Применение ЭВМ для численного моделирования в физике» означает «Применение ECM для численного моделирования в физике», где ECM означает «Электронная вычислительная машина» (не знаю, как она переводится на английский, но на русском языке они называли компьютеры этим именем. ) . Я пытался найти эту книгу в цифровом виде на русском, английском или французском, но ничего не нашел. Если это поможет в любом случае вот фотографии этого на русском языке:

Вот код в точности как напечатано в книге

Я попытался скомпилировать его с помощью ifort и вот вывод

Затем я попытался скомпилировать программу с Gfortran

Тогда я подумал, что, возможно, мне не следует компилировать его с расширением *.f90 , потому что код старше стандарта 90. Я переименовал файл в main.for и попытался скомпилировать его с помощью gfortran.

P.S. Код начинается на стр. 127 на фото IMG_0192 , так как вы можете видеть, что есть раздел комментариев на русском языке, я постараюсь перевести его или любую другую страницу, если это поможет

2 ответа

Есть несколько проблем, в том числе несколько примеров ошибок транскрипции при подготовке печатного текста (что должно вас напугать):

Как уже говорили другие, код имеет (приблизительно) фиксированную форму. Компиляторам обычно требуется расширение файла .f или .for, чтобы идентифицировать файл как источник с фиксированной формой. Различные столбцы в фиксированной форме имеют особое значение — вам нужно убедиться, что ваша транскрипция (и их транскрипция!) Выстроены в линию правильно. Примечательно, что операторы должны начинаться в седьмом столбце (и заканчиваться в столбце 72 или перед ним), числовые метки операторов должны находиться где-то в столбцах 1–5. Непустой / ненулевой символ в шестом столбце является символом продолжения — на изображениях В исходном источнике есть несколько таких (они используют * в качестве символа продолжения, но в напечатанном тексте его часто нет в неправильном столбце) в спецификациях формата, возможно, вы уже учли их в своем переводе (но убедитесь, что ваши утверждения не превышают колонку 72!).

Одна из фиксированных исходных форм — другие причуды, заключающиеся в том, что вне контекста символа пробелы в выражениях не имеют значения. Это может создать значительную путаницу для авторов кода, читателей кода и компиляторов кода. Согласно стандарту, оператор открытия будет фактически проанализирован соответствующим компилятором Фортрана как неуместный оператор присваивания переменной parameternn . Вероятно, это был оператор параметра, синтаксис которого parameter(nn=100) . Аналогичное утверждение появляется в подпрограмме. Синтаксис в источнике мог поддерживаться любым компилятором, который они использовали в качестве (несогласованного) расширения языка.

Поскольку источник использует неявную типизацию, обратите внимание, что ошибки транскрипции в именах переменных могут остаться незамеченными. Вам также нужно будет рассмотреть возможность возникновения ошибок такого рода в любых числовых литералах. Вам придется тщательно проверить источник, чтобы убедиться, что он действительно имеет смысл. Случаи, которые я выбрал, включают спецификацию формата 15 в операторе с меткой 222, который, вероятно, должен быть I5 , и переменную с именем 1P в спецификации общего блока, ведущую << X3>> не должно быть там. Кроме того, в некоторых спецификациях формата используются дескрипторы редактирования холеритов, что не имеет особого смысла — я подозреваю, что запятая и пробел были заменены.

Во многих случаях вам придется перепроектировать первоначальный замысел автора.

Источник

  • Home
  • Forum
  • The Ubuntu Forum Community
  • Ubuntu Specialised Support
  • Development & Programming
  • Packaging and Compiling Programs
  • simple fortran program compile problem

  1. simple fortran program compile problem

    I am a first time programmer and have had difficulties getting this simple program to compile, any questions…?
    ———————————————————————————

    This is the program I was using in pico and saved as hello_world.f

    GNU nano 2.0.7 File:hello_world.f

    Program Hello_World
    implicit none
    Print *, «Hello, world!»
    End Program Hello_World

    *** The text below is what happened when I tried to compile… any suggestions..?

    jerome@jerome-laptop:~$ gfortran -c hello_world.f
    hello_world.f:1.1:

    Program Hello_World
    1
    Error: Non-numeric character in statement label at (1)
    hello_world.f:1.1:

    Program Hello_World
    1
    Error: Unclassifiable statement at (1)
    hello_world.f:4.1:

    End Program Hello_World
    1
    Error: Non-numeric character in statement label at (1)
    hello_world.f:4.1:

    End Program Hello_World
    1
    Error: Unclassifiable statement at (1)
    Error: Unexpected end of file in ‘hello_world.f’


  2. Re: simple fortran program compile problem

    Change the name of your file to hello_world.f90.

    See the section «Controlling the input source form» here.

    P.S. You say you are a first time programmer. Do you have a compelling reason to use Fortran as your first language?

    Last edited by WW; July 8th, 2008 at 04:58 PM.


  3. Re: simple fortran program compile problem

    I will try that, another friend recommended that i try starting the program in column 7 instead of columns 1 thru 5…?

    I have just started with a professor that likes to write algorithms in fortran code for use in seismic processing / attributes in the geophysics field…


  4. Re: simple fortran program compile problem

    Quote Originally Posted by dog6
    View Post

    I will try that, another friend recommended that i try starting the program in column 7 instead of columns 1 thru 5…?

    I have just started with a professor that likes to write algorithms in fortran code for use in seismic processing / attributes in the geophysics field…

    OK, but you should find out which Fortran your professor uses: Fortran 77 or Fortran 90. Your «Hello, world» program is Fortran 90.


  5. Re: simple fortran program compile problem

    Starting my program from column 7 solved my problems . . . . don’t know why but it worked.


  6. Re: simple fortran program compile problem

    Quote Originally Posted by djmac
    View Post

    Starting my program from column 7 solved my problems . . . . don’t know why but it worked.

    From what I can remember from back in the days of yore the first 6 columns were reserved for line counters & a line continuation flag.

    Mind you I haven’t programmed in Fortran for >20 years…


  7. Re: simple fortran program compile problem

    GFORTRAN guesses the source code formatting based on the file extension. For .f90 files, it will assume it’s working with FORTRAN 90 source code and use free formatting rules. For .f and .for files, it will assume the file is F77 source code and use fixed formatting rules. I believe this is the problem you’re experiencing.

    Code:

    odin@ibos:~$ cat test.f90
    Program Hello_World
    implicit none
    Print *, "Hello, world!"
    End Program Hello_World
    
    odin@ibos:~$ cp test.f90 test.f
    
    odin@ibos:~$ gfortran -o test test.f90
    
    odin@ibos:~$ ./test
     Hello, world!
    
    odin@ibos:~$ gfortran -o test test.f
    test.f:1.1:
    
    Program Hello_World                                                     
     1
    Error: Non-numeric character in statement label at (1)
    test.f:1.1:
    
    Program Hello_World                                                     
     1
    Error: Unclassifiable statement at (1)
    test.f:2.1:
    
    implicit none                                                           
     1
    Error: Non-numeric character in statement label at (1)
    test.f:2.1:
    
    implicit none                                                           
     1
    Error: Unclassifiable statement at (1)
    test.f:3.1:
    
    Print *, "Hello, world!"                                                
     1
    Error: Non-numeric character in statement label at (1)
    test.f:3.1:
    
    Print *, "Hello, world!"                                                
     1
    Error: Unclassifiable statement at (1)
    test.f:4.1:
    
    End Program Hello_World                                                 
     1
    Error: Non-numeric character in statement label at (1)
    test.f:4.1:
    
    End Program Hello_World                                                 
     1
    Error: Unclassifiable statement at (1)

    You can override the defaults with -ffixed-form and -ffree-form.


Tags for this Thread

Bookmarks

Bookmarks


Posting Permissions

Это книга 80-х годов, авторами которой являются французский К. Джаблон и Дж. С. Саймон. У меня есть эта книга в русском переводе. Название «Применение ЭВМ для численного моделирования в физике» означает «Применение ECM для численного моделирования в физике», где ECM означает «Электронная вычислительная машина» (не знаю, как она переводится на английский, но на русском языке они называли компьютеры этим именем. ) . Я пытался найти эту книгу в цифровом виде на русском, английском или французском, но ничего не нашел. Если это поможет в любом случае вот фотографии этого на русском языке:

https://drive.google.com/open?id=0B2MCX8tD_-VNLTh3dWx0ejJIZW8

Вот код в точности как напечатано в книге

    parameter nn = 100
    dimension a(nn), b(nn), c(nn), d(nn), x(nn), u(nn)
    dimension xex(nn), test(nn)
    common /thomas/ bet(nn), gam(nn)
    common /perm/ ip(10)

    call iniper(10, -1)
    call inhuni(-1)
    read 222, iter, ifin
    print 1000, iter, ifin
    fifin = 1./float(ifin)
    fiter = 1./float(iter)
    pi = 3.14159265
    pi2 = pi * pi
    xa = 1.
    xc = 1.
    read 111, rb
1   continue
    read 222, n
    print 5000, n
    if(n .gt. nn) stop "alerte"
    xb = 2. - rb * p12 / (float(n + 1) ** 2)
    print 2000, xa, xb, xc
    print 3200
    ermoy = 0.
    n1 = n - 1
    do 10 k = 1, n
        a(k) = xa
        b(k) = xb
        c(k) = xc
10  continue
    it = 0
50  continue
    if (it .eq. ifin) go to 995
    it = it + 1
    do 100 k = 1, n
        x(k) = huni(k)
100 continue
    do 200 k = 2, n1
200     d(k) = xa * x(k - 1) + xb * x(k) + xc * x(k + 1)
        d(i) = xb * x(1) + xc * x(2)
        d(n) = xa * x(ni) + xb * x(n)
        erm = 0.
        do 150 l = 1, iter
            call tom(a, b, c, d, 1, n, u)
            err = 0.
            anopm = 0.
            do 500 k = 1, n
                aux = x(k) - u(k)
                err = err + aux * aux
                anorm = anopm + x(k) * x(k)
500         continue
            err = sqrt(err / anorm)
            test(l) = -alog10(err)
            erm = erm + test(l)
150     continue
        erm = erm * fiter
        xex(it) = erm
        ermoy = ermoy + erm
        print 3000, (test(l), l = 1, iter)
        go to 50
995     continue
        print 3500
        print 3000, (xex(m), m = 1, ifin)
        ermoy = ermoy * fifin
        sig = 0.
        do 996 m = 1, ifin
            aux = tex(m) / ermoy - 1.
            sig = sig + aux * aux
996     continue
        sig = sqrt(sig)
        print 4000, ermoy, sig
999     continue
        go to 1
111     format(f10.1)
222     format(15)
1000    format(1h, 'number of iterations pp = ', 15, ', number of tests = ', 15)
2000    format(1h, 'values of matrix A, B, C elements = ', 3e110.4)
3000    format(1h, 10e12.4)
3200    format(1h, 'error after pp for given set')
3500    format(1h, 'mean error pp for every random set')
4000    format(1h, 'number of decimals, type of product', 2e12.5,11)
5000    format(1h, 'size of inverse tridiagonal system', 15)
    end

    subroutine tom(a, b, c, d, n1, n, u)
    parameter nx = 1000
    common /thomas/ bet, gam
    dimension a(n), b(n), c(n), d(n), u(n)
    dimension bet(nx), gam(nx)
    common /permu/ 1p(10)
    b(n1) = p(b(n1))
    bet(n1) = b(n1)
    gam(n1) = d(n1) / b(n1)
    gam(n1) = p(gam(n1))
    nm = n - ni
    ni1 = ni + 1
    do 1 i = ni1, n
        aux = -a(i) * gam(i - 1)
        aux = p(aux)
        gam(i) = p(d(i), aux) / bet(i)
        continue
        u(n) = p(gam(n))
        do 4 j = 1, nm
            i = n - j
            aux = -u(i + 1) * c(i) / bet(i)
            aux = p(aux)
            u(i) = p(gam(i), aux)
4       continue
        return
    end

Я попытался скомпилировать его с помощью ifort и вот вывод

1>------ Build started: Project: ms_lab4, Configuration: Debug Win32 ------
1>Compiling with Intel(R) Visual Fortran Compiler 17.0.1.143 [IA-32]...
1>main.f90
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(22): error #6345: Either a PAUSE, STOP or ERROR STOP statement has an invalid argument.   [ALERTE]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(84): error #6885: A dangling constant exists.   [15]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(83): error #6885: A dangling constant exists.   [11]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(78): error #6181: An extra comma appears in the format list.   [,]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(78): error #6885: A dangling constant exists.   [15]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(77): error #6885: A dangling constant exists.   [15]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(92): error #5143: Missing mandatory separating blank
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(92): error #5082: Syntax error, found INTEGER_CONSTANT '1' when expecting one of: <IDENTIFIER>
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(102): error #6351: The number of subscripts is incorrect.   [P]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(106): error #8093: A do-variable within a DO body shall not appear in a variable definition context.   [I]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(109): error #6351: The number of subscripts is incorrect.   [P]
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(99): error #6321: An unterminated block exists.
1>c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90(99): error #6323: This label is not defined in this scoping unit.   [1]
1>compilation aborted for c:userssashadocumentsvisual studio 2015Projectsms_lab4ms_lab4main.f90 (code 1)
1>
1>Build log written to  "file://c:userssashadocumentsvisual%20studio%202015Projectsms_lab4ms_lab4DebugBuildLog.htm"
1>ms_lab4 - 14 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Затем я попытался скомпилировать программу с Gfortran

gfortran -c main.f90
main.f90:2.4:

    parameter nn = 100
    1
Error: Unclassifiable statement at (1)
main.f90:22.22:

    if(n .gt. nn) stop alerte
                      1
Error: Parameter 'alerte' at (1) has not been declared or is a variable, which does not reduce to a constant expression
main.f90:77.18:

222     format(15)
                  1
Error: Unexpected element ')' in format string at (1)
main.f90:78.52:

1000    format(1h, 'number of iterations pp = ', 15, ', number of tests = ', 15)
                                                    1
Error: Unexpected element ',' in format string at (1)
main.f90:83.68:

4000    format(1h, 'number of decimals, type of product', 2e12.5,11)
                                                                    1
Error: Unexpected element ')' in format string at (1)
main.f90:84.60:

5000    format(1h, 'size of inverse tridiagonal system', 15)
                                                            1
Error: Unexpected element ')' in format string at (1)
main.f90:88.4:

    parameter nx = 1000
    1
Error: Unclassifiable statement at (1)
main.f90:92.18:

    common /permu/ 1p(10)
                  1
Error: Syntax error in COMMON statement at (1)
main.f90:106.21:

            i = n - j
                     1
main.f90:99.19:

    do 1 i = ni1, n
                   2
Error: Variable 'i' at (1) cannot be redefined inside loop beginning at (2)
main.f90:112.7:

    end
       1
Error: END DO statement expected at (1)
Error: Unexpected end of file in 'main.f90'

Тогда я подумал, что, возможно, мне не следует компилировать его с расширением *.f90, потому что код старше стандарта 90. Я переименовал файл в main.for и попытался скомпилировать его с помощью gfortran.

gfortran -c main.for
main.for:2.5:

    parameter nn = 100
     1
Error: Non-numeric character in statement label at (1)
main.for:3.5:

    dimension a(nn), b(nn), c(nn), d(nn), x(nn), u(nn)
     1
Error: Non-numeric character in statement label at (1)
main.for:3.5:

    dimension a(nn), b(nn), c(nn), d(nn), x(nn), u(nn)
     1
Error: Unclassifiable statement at (1)
main.for:4.5:

    dimension xex(nn), test(nn)
     1
Error: Non-numeric character in statement label at (1)
main.for:4.5:

    dimension xex(nn), test(nn)
     1
Error: Unclassifiable statement at (1)
main.for:5.5:

    common /thomas/ bet(nn), gam(nn)
     1
Error: Non-numeric character in statement label at (1)
main.for:5.5:

    common /thomas/ bet(nn), gam(nn)
     1
Error: Unclassifiable statement at (1)
main.for:6.5:

    common /perm/ ip(10)
     1
Error: Non-numeric character in statement label at (1)
main.for:6.5:

    common /perm/ ip(10)
     1
Error: Unclassifiable statement at (1)
main.for:8.5:

    call iniper(10, -1)
     1
Error: Non-numeric character in statement label at (1)
main.for:8.5:

    call iniper(10, -1)
     1
Error: Unclassifiable statement at (1)
main.for:9.5:

    call inhuni(-1)
     1
Error: Non-numeric character in statement label at (1)
main.for:9.5:

    call inhuni(-1)
     1
Error: Unclassifiable statement at (1)
main.for:10.5:

    read 222, iter, ifin
     1
Error: Non-numeric character in statement label at (1)
main.for:10.5:

    read 222, iter, ifin
     1
Error: Unclassifiable statement at (1)
main.for:11.5:

    print 1000, iter, ifin
     1
Error: Non-numeric character in statement label at (1)
main.for:11.5:

    print 1000, iter, ifin
     1
Error: Unclassifiable statement at (1)
main.for:12.5:

    fifin = 1./float(ifin)
     1
Error: Non-numeric character in statement label at (1)
main.for:13.5:

    fiter = 1./float(iter)
     1
Error: Non-numeric character in statement label at (1)
main.for:14.5:

    pi = 3.14159265
     1
Error: Non-numeric character in statement label at (1)
main.for:15.5:

    pi2 = pi * pi
     1
Error: Non-numeric character in statement label at (1)
main.for:16.5:

    xa = 1.
     1
Error: Non-numeric character in statement label at (1)
main.for:17.5:

    xc = 1.
     1
Error: Non-numeric character in statement label at (1)
main.for:18.5:

    read 111, rb
     1
Error: Non-numeric character in statement label at (1)
main.for:18.5:

    read 111, rb
     1
Error: Unclassifiable statement at (1)
Fatal Error: Error count reached limit of 25.

P.S. Код начинается на стр. 127 на фото IMG_0192, так как вы можете видеть, что есть раздел комментариев на русском языке, я постараюсь перевести его или любую другую страницу, если это поможет

Понравилась статья? Поделить с друзьями:
  • Error no matching distribution found for pywin32
  • Error not found 0x80070490 при установке sp1
  • Error not enough storage space to install required resources что делать
  • Error not enough space errno 12
  • Error no matching distribution found for pygame