Я новичок в Фортране. У меня есть файл, написанный на нестандартной версии Фортрана, написанный для компилятора Lahey-Fujitsu и использующий проприетарную числовую библиотеку IMSLF90 (см. мой предыдущий пост здесь). Назовем этот файл test.f
. В IMSLF90 есть функция, инвертирующая матрицы. Если я закомментирую эти матричные инверсии, я смогу скомпилировать исходный код либо с ifort
, либо с gfortran
. У меня нет доступа к IMSLF90, и я ищу способ ввести функцию обращения матрицы из какой-нибудь библиотеки. Я попытался использовать набор инструментов, представленный на ce-fortran.com (я новичок в Fortran и делаю лучше не знаю).
Моя проблема в том, что когда я include "toolbox.f90"
вверху файла и заменяю use IMSLF90
на use toolbox
в файле test.f
(и изменяю вычисление инверсии матрицы с .i. x
на lu_invert(x)
), а затем пытаюсь скомпилировать, компилятор жалуется:
ifort test.f -o test.out
toolbox.f90(21): error #5149: Illegal character in statement label field [m]
module toolbox
^
toolbox.f90(21): error #5149: Illegal character in statement label field [o]
module toolbox
-^
toolbox.f90(21): error #5149: Illegal character in statement label field [d]
module toolbox
--^
toolbox.f90(21): error #5149: Illegal character in statement label field [u]
module toolbox
---^
toolbox.f90(21): error #5149: Illegal character in statement label field [l]
module toolbox
----^
toolbox.f90(21): error #5118: First statement in file must not be continued
module toolbox
-----^
toolbox.f90(30): error #5149: Illegal character in statement label field [i]
implicit none
^
toolbox.f90(30): error #5149: Illegal character in statement label field [m]
implicit none
-^
toolbox.f90(30): error #5149: Illegal character in statement label field [p]
implicit none
--^
toolbox.f90(30): error #5149: Illegal character in statement label field [l]
implicit none
---^
toolbox.f90(30): error #5149: Illegal character in statement label field [i]
implicit none
----^
toolbox.f90(33): error #5149: Illegal character in statement label field [p]
private
^
toolbox.f90(33): error #5149: Illegal character in statement label field [r]
private
-^
toolbox.f90(33): error #5149: Illegal character in statement label field [i]
private
--^
toolbox.f90(33): error #5149: Illegal character in statement label field [v]
private
---^
toolbox.f90(33): error #5149: Illegal character in statement label field [a]
private
----^
toolbox.f90(36): error #5149: Illegal character in statement label field [r]
real*8, private :: starttime_cpu
^
toolbox.f90(36): error #5149: Illegal character in statement label field [e]
real*8, private :: starttime_cpu
-^
toolbox.f90(36): error #5149: Illegal character in statement label field [a]
real*8, private :: starttime_cpu
--^
toolbox.f90(36): error #5149: Illegal character in statement label field [l]
real*8, private :: starttime_cpu
---^
toolbox.f90(36): error #5149: Illegal character in statement label field [*]
real*8, private :: starttime_cpu
----^
toolbox.f90(39): error #5149: Illegal character in statement label field [l]
logical, private :: tbox_seed = .true.
^
toolbox.f90(39): error #5149: Illegal character in statement label field [o]
logical, private :: tbox_seed = .true.
-^
toolbox.f90(39): error #5149: Illegal character in statement label field [g]
logical, private :: tbox_seed = .true.
--^
toolbox.f90(39): error #5149: Illegal character in statement label field [i]
logical, private :: tbox_seed = .true.
---^
toolbox.f90(39): error #5149: Illegal character in statement label field [c]
logical, private :: tbox_seed = .true.
----^
test.f(41): catastrophic error: Too many errors, exiting
compilation aborted for test.f (code 1)
Я думаю, что происходит то, что оператор include
вверху по существу «записывает» код в toolbox.f90
в основной исходный код в test.f
, и, поскольку они не следуют одному и тому же стандарту Фортрана, компилятор запутывается.
Как я могу это решить?
test.f
имеет фиксированный формат, аtoolbox.f90
— нет. Если я переименуюtest.f
вtest.f90
, я все еще получаю некоторые ошибки, хотя и другие, чем раньше. Например: строки комментариев сc
ошибками. - person amrods   schedule 14.08.2019c
. Ваш код не является ни свободной, ни фиксированной формой. Но мы не знаем, потому что вы отказываетесь публиковать код. Удачи в изучении того, как правильно писать на Фортране. - person evets   schedule 14.08.2019test.f
, но если вы видите мой предыдущий пост, упомянутый выше, stackoverflow.com/questions/57472015/, вы найдете несколько примеров строк. Спасибо за добрые пожелания, всегда ценю их. - person amrods   schedule 14.08.2019