Nikolay Yasinskiy Ответов: 2

Не могу понять код


В этой части кода мой компилятор выдает ошибку: недопустимый символ в имени.

Я не могу понять смысла этого оператора * *, это цикл умножения?

do i_lamda = 1, n_lamda_num ! Find and remember characteristic determinant members
                                  ! В этой записи ошибочно записаны TAU вместо 1 / TAU
        r_lamda = r_lamda_beg + (i_lamda - 1) * r_lamda_step
        r_memb_det(1,i_lamda) = -1.0 * (dx(1) % tau_sutky  + r_lamda)
     *                               * (dx(2) % tau_sutky  + r_lamda)
     *                               * (dx(3) % tau_sutky  + r_lamda)
     *                               * (dx(4) % tau_sutky  + r_lamda)
     *                               * (dx(5) % tau_sutky  + r_lamda)
        r_memb_det(2,i_lamda) = -1.0 * (dx(5) % tau_sutky  + r_lamda)


То же самое вот о чем пишут:
write (nf_res,'(5x,2a/)') 'Values alf_down by sections'
     *                           , ' from 1 to 5:'


Что я уже пробовал:

Я удалил * * и это помогло для записи. Но в первой части я не могу понять самого смысла.

2 Ответов

Рейтинг:
2

Jochen Arndt

Ваша звездочка находится в столбце 6, который является позицией продолжения линии (отметка продолжения). Смотреть также Линия продолжения - использование и перенос GNU Fortran[^].

Они сообщают компилятору, что оператор предыдущей строки продолжается. Сам персонаж игнорируется.


CHill60

Хорошее место! Я не использовал Fortran в течение xx лет и совсем забыл о характере продолжения (где xx-это > 30!)

Jochen Arndt

Последний раз я писал код на Фортране в университете, то есть почти 30 лет назад.

Но с тех пор я портировал алгоритмы, написанные на Fortan, на C, иногда там, где продолжение строки довольно часто встречается со сложными формулами.

Nikolay Yasinskiy

Спасибо, значит, мне следует сменить его на амперсанд? &усилитель;

Jochen Arndt

Я не знаю, почему компилятор GNU Fortran жалуется здесь.

Сначала убедитесь, что звездочка находится в столбце 6 и что в файлах исходного кода нет вкладок.

Но вы можете попробовать использовать "новый" режим продолжения линии Fortran-90 с амперсандом, который также требует использования расширения .f90.

Maciej Los

5ed!

Рейтинг:
2

CHill60

** является оператором возведения в степень - т. е. A ** b повышения A в силу b
Операторы Фортрана[^]

Если это подлинный пробел между * * затем уберите пробел - оператор есть **


Nikolay Yasinskiy

** оператор, которого я знаю, Спасибо.

Maciej Los

5ed!