Сохранить "указатель на функцию" в Фортран 90? - PullRequest
2 голосов
/ 07 октября 2010

в Фортране, вы можете передать функцию / подпрограмму A в качестве аргумента другой функции / подпрограмме B, но можете ли вы сохранить A для последующего извлечения и использования?

Например, это разрешено в C

int foo(float, char, char) { /*whatever*/};

int (*pointerToFunction)(float, char, char);
pointerToFunction = foo;

В Фортране вы можете передать подпрограмму в качестве аргумента

subroutine foo
! whatever
end subroutine foo

subroutine bar(func)
    call func
end subroutine bar

program x

    call bar(foo)

end program

, но как вы можете сохранить адрес foo аналогично C?

1 Ответ

4 голосов
/ 09 октября 2010

Начиная с так называемых указателей процедур "Fortran 2003" (ISO / IEC 1539-2004) является частью языка Fortran.Это определенно одна из главных новых возможностей языка Fortran.

Использование пример от Fortran Wiki.


Стефано, вы упомянули шаблон разработки стратегии.В Fortran 2003 вы можете использовать чистый способ ООП для его реализации (без указателей процедур).Пример от руки:

стратегия.4,6 (20100925).

...