如何在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. Fortran中的int()函數77
- 4. Fortran中的函數指針
- 5. fortran中的combination_with_replacement函數?
- 6. FORTRAN函數
- 7. 的JavaScript OOP私有函數
- 8. flash as3中的私有函數和私有變量?
- 9. Fortran函數數組
- 10. 在FORTRAN中使用OMP將數組讀入私有變量(ifort)
- 11. javascript中的私有靜態函數
- 12. Fortran 90函數沒有參數?
- 13. 私有函數vs嵌套函數
- 14. Fortran函數中的可選參數
- 15. 私人構造函數或私有函數?
- 16. 抽象私有函數
- 17. VBA和私有函數
- 18. C#私有函數,IncrementArray
- 19. 調用私有函數
- 20. C++私有函數成員
- 21. JavaScript模塊私有函數
- 22. 訪問私有函數?
- 23. Fortran派生類型 - 指向私有數組的公共指針
- 24. 來自同一類的其他私有函數調用私有函數
- 25. 有組織的函數庫與Fortran函數
- 26. 在JavaScript函數中使變量私有
- 27. 在C++中公開私有函數
- 28. 在mathematica包中定義私有函數
- 29. C++中的私有函數與靜態函數
- 30. 使用C++中的私有函數覆蓋公共虛函數
你可以理解的謙虛你信用,但你可以更明確:答案是在該線程。公共/私有屬性存在於Fortran 90及更高版本的模塊中。 Fortran 77及更早版本 - 你運氣不好。 – jaredor 2008-10-21 13:08:40