Как объявить частную функцию в Fortran?Частная функция в Fortran
ответ
Это будет работать только с модулем Fortran 90. В объявлении модуля вы можете указать ограничения доступа для списка переменных и подпрограмм с использованием «общедоступных» и «частных» ключевых слов. Обычно мне полезно сначала использовать собственное ключевое слово по умолчанию, которое указывает, что все внутри модуля является закрытым, если явно не открыто.
В приведенном ниже примере кода функции subroutine_1() и function_1() доступны извне модуля через требуемый оператор «use», но любая другая функция/подпрограмма/функция будет закрыта.
module so_example
implicit none
private
public :: subroutine_1
public :: function_1
contains
! Implementation of subroutines and functions goes here
end module so_example
Я никогда не писал строки ФОРТРАНА, но this thread about "Private module procedures" кажется актуальным, по крайней мере, я надеюсь. Кажется, содержит ответы, по крайней мере.
jaredor Резюме:
Атрибут открытый/закрытый существует внутри модулей в Fortran 90 и позже. Fortran 77 и раньше - вам не повезло.
Private xxx, yyy, zzz
real function xxx (v)
...
end function xxx
integer function yyy()
...
end function yyy
subroutine zzz (a,b,c)
...
end subroutine zzz
...
other stuff that calls them
...
Если вы используете модули, здесь синтаксис:
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
Все объекты, перечисленные в ЧАСТНЫЙ не будут доступны снаружи модуля и все объекты, перечисленные в PUBLIC могут быть доступны извне модуль. Все остальные объекты по умолчанию могут быть доступны извне модуля.
MODULE Field
IMPLICIT NONE
Integer :: Dimen
PUBLIC :: Gravity
PRIVATE :: Electric, Magnetic
CONTAINS
INTEGER FUNCTION Gravity()
..........
END FUNCTION Gravity
REAL FUNCTION Electric()
..........
END FUNCTION
REAL FUNCTION Magnetic()
..........
END FUNCTION
..........
END MODULE Field
- 1. PHP Частная статическая функция
- 2. Scala частная функция
- 3. C# частная функция, IncrementArray
- 4. Phpunit mock частная функция
- 5. Частная функция члена C++ vs Функция C
- 6. Частная функция, не возвращающая значение
- 7. Частная/общедоступная функция статического члена
- 8. Flash-On Timer Частная функция
- 9. Частная функция вызова защищенной функции?
- 10. C++ Частная и общественная функция
- 11. Тестирование проблем Частная статическая функция
- 12. Частная функция для перегрузки оператора
- 13. Логическая функция в Fortran
- 14. Частная функция JS, что в этом плохого?
- 15. unit test частная функция в фабрике angularjs внутри функция
- 16. Fortran Функция Объяснение
- 17. Функция Возвращение массива в Fortran
- 18. Функция int() в Fortran 77
- 19. Объем утечки, прежде чем частная функция возвращается
- 20. Частная функция didFinishLaunchingWithOptions не называется? (Swift 3)
- 21. AngularJS - Использование «это» внутри частная функция
- 22. Структура функции против модульного тестирования Частная функция
- 23. Частная функция ошибки с PHPUnit тестирования
- 24. Что такое частная чистая виртуальная функция?
- 25. Частная функция Javascript конструктору не доступен публично
- 26. Regex, матч «частная функция», «общественные функции» или просто «функция»
- 27. Функция Fortran 90 без аргументов?
- 28. Функция неожиданного выполнения в 1 в Fortran
- 29. перегружен частная функция, которая является частным в Clojure
- 30. частная некоммерческая и общественная функция члена-члена - сосуществует в мире?
Ваша понятная скромность дает вам кредит, но вы можете быть более окончательным: ответ в этой теме. Атрибут public/private существует в модулях в Fortran 90 и более поздних версиях. Fortran 77 и раньше - вам не повезло. – jaredor 2008-10-21 13:08:40