Fortran'da özel bir işlevi nasıl bildiririm?Özel işlev Fortran içinde
cevap
Bu yalnızca bir Fortran 90 modülü ile çalışacaktır. Modül bildiriminde "public" ve "private" anahtar kelimeleri kullanarak değişkenler ve rutinler listesi için erişim limitleri belirtebilirsiniz. Genelde özel anahtar kelimeyi başlangıçta kullanmanın yararını görüyorum, bu da açık bir şekilde herkese açık olarak işaretlenmedikçe, modül içindeki her şeyin özel olduğunu belirtir.
Aşağıdaki kod örneğinde, subroutine_1() ve function_1() öğesine, gerekli "use" ifadesi aracılığıyla modülün dışından erişilebilir, ancak diğer değişken/alt yordam/işlevler özel olacaktır. dışından erişilebilir KAMU listelenen özel olarak sıralanan
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
Tüm varlıklar modülün dışarıdan erişilebilir olmayacak ve tüm varlıklar: Eğer modülleri kullanıyorsanız
module so_example
implicit none
private
public :: subroutine_1
public :: function_1
contains
! Implementation of subroutines and functions goes here
end module so_example
Hiç bir FORTRAN hattı yazmamıştım, ama this thread about "Private module procedures" topikal gibi görünüyor, en azından öyle umuyorum. En azından cevapları içerdiği görülüyor.
jaredor özeti:
kamu/özel nitelik Fortran 90 modüllerin içinde var ve sonradan. Fortran 77 ve öncesi - şansın yok.
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
...
, burada sözdizimi modül. Diğer tüm varlıkların, varsayılan olarak, modülün dışından erişilebilir.
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 acos işlev argüman sağlamlığı
- 2. Fortran
- 3. Ajax başarı işlevi özel işlev içinde erişemiyor
- 4. Hata ayıklama Fortran kodu içinde R
- 5. Fortran kısıtlamalar
- 6. Fortran 2003'te türüne bağlı işlev aşırı yükleme
- 7. Benzersiz bir işlev kullanarak özel işlev adı
- 8. VIDE FORTRAN
- 9. FORTRAN WRITE()
- 10. Yönergede özel işlev oluşturma
- 11. Giden (özel) bir işlev go (golang) içinde nasıl test edilir?
- 12. assetmanager öğesinde özel işlev kullanın
- 13. Özel işlev kaybı PyTorch
- 14. İçinde statik işlev kullanılamaz
- 15. OCaml: Başka bir işlev içinde işlev çağırma
- 16. Fortran, çıkışımı yıldızlara uyarıyor - neden?
- 17. Paralel işlev çağrıları Node.js içinde
- 18. dplyr içinde add_rownames işlevinin tersi işlev
- 19. Bir fortran örtülü döngüsünün netleştirilmesi
- 20. Fortran fonksiyonlarında isteğe bağlı argümanlar
- 21. WPF: Özel + - TreeView içinde
- 22. Bir Dizgeden Bir İşlev Çağrma İşlev Çağın İçinde Clojure ile
- 23. Özel Etkinlikler için Özel Veriler İçinde HockeyApp
- 24. Maxscript FileIn Özel Öznitelik İçinde
- 25. jQuery $ .get içinde global değişkeni kullanamazsınız. Işlev içinde
- 26. jQuery seçici için özel işlev nasıl yapılır
- 27. Doldurma sırasında özel bir işlev Serisinin kullanılması
- 28. Vücudu özel bir işlev için nerede tanımlayabilirim?
- 29. arkadaş İşlev - özel alana erişemiyor C++
- 30. Aynı sınıftaki özel işlev çağrısı python
Anlaşılır derecede alçakgönüllülüğünüz kredi veriyor, ancak daha kesin olabilirsiniz: Cevap bu iş parçacığındadır. Kamu/özel nitelik Fortran 90 ve daha sonraki sürümlerde mevcut. Fortran 77 ve öncesi - şansın yok. – jaredor