Используйте функцию внутри подпрограммы в FORTRAN77 - PullRequest
0 голосов
/ 12 июля 2011

Я обновляю устаревший код, и мне нужно использовать простую математическую функцию внутри подпрограммы.Я не могу понять, как это сделать.У меня есть функция, которая работает при вызове из тестовой программы.Что мне нужно сделать по-другому для подпрограммы?

пример:

subroutine foo(i,j,k)

i = bar(j,k)

stuff = otherstuff

return 
end

другая информация: bar - это приближение erf.Я использую компилятор PGF90.Я новичок в Фортране из C.

спасибо!

1 Ответ

3 голосов
/ 13 июля 2011

По сути, вызов из программы или подпрограммы не должен отличаться. Действительно ли код выглядит так, без каких-либо объявлений? Это означает, что все переменные будут иметь неявные типы: переменные с именами, начинающимися с букв i-n, будут целочисленными, все остальные - действительными; это также верно для возвращаемых значений функции. Код, который вы показываете, пытается присвоить вещественное число (bar()) целому числу (i).

Если вы пишете новый код, всегда запускайте программы и процедуры с IMPLICIT NONE. Это заставляет вас явно включать объявления типов для всех переменных и возвращаемых значений функций, что значительно сокращает количество ошибок.

...