如何在Fortran中聲明私有函數?Fortran中的私有函數
8
A
回答
22
這隻會用Fortran 90的模塊工作。在模塊聲明中,您可以使用「public」和「private」關鍵字指定變量和例程列表的訪問限制。我通常發現最初使用private關鍵字會很有幫助,它指定模塊中的所有內容都是私有的,除非明確標記爲public。
在下面的代碼示例中,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
2
我從來沒有寫過一行FORTRAN,但this thread about "Private module procedures"似乎是熱門話題,至少我希望如此。似乎至少包含答案。
jaredor摘要:
的公共/私有屬性模塊中存在Fortran 90中和以後。 Fortran 77及更早版本 - 你運氣不好。
1
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
...
2
如果你使用的模塊,這裏是語法:
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
民營上市所有實體將無法從該模塊的外部訪問所有實體上市可從外部訪問該模塊。默認情況下,所有其他實體都可以從模塊外部訪問。
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. Fortran中的函數組合
- 2. FORTRAN函數
- 3. 的JavaScript OOP私有函數
- 4. flash as3中的私有函數和私有變量?
- 5. javascript中的私有靜態函數
- 6. Fortran 90函數沒有參數?
- 7. 私有函數vs嵌套函數
- 8. C#私有函數,IncrementArray
- 9. C++私有函數成員
- 10. VBA和私有函數
- 11. 來自同一類的其他私有函數調用私有函數
- 12. 有組織的函數庫與Fortran函數
- 13. 私有函數中的PHP調用函數類方法
- 14. 使用C++中的私有函數覆蓋公共虛函數
- 15. 如何從C++中的朋友函數訪問私有函數?
- 16. 在Fortran中使用公共/私有語句的首選樣式?
- 17. fortran中的Btest函數,python中是否有任何等價物?
- 18. Kotlin - 具有私有構造函數的工廠函數
- 19. Fortran傳遞語句函數到函數
- 20. 在java中,如何使用其父類也有私有構造函數的私有構造函數創建類?
- 21. 定義私有類的構造函數
- 22. CallInst構造函數是私有的?
- 23. 構造函數是私有的?
- 24. 使Qml可見的私有C++函數
- 25. 私人類的構造函數是否必須是私有的?
- 26. FORTRAN型missmatch調用函數
- 27. 對私有函數中私有靜態成員的未定義引用
- 28. Fortran:調用函數中的其他函數
- 29. 具有私有繼承的派生類中的朋友函數
- 30. 參數與構造函數中的私有參數不匹配
你可以理解的謙虛你信用,但你可以更明確:答案是在該線程。公共/私有屬性存在於Fortran 90及更高版本的模塊中。 Fortran 77及更早版本 - 你運氣不好。 – jaredor 2008-10-21 13:08:40