Fortran에서 개인 기능을 어떻게 선언합니까?Fortran의 개인 기능
8
A
답변
22
이 단지 포트란 90 모듈과 함께 작동합니다. 모듈 선언에서 "public"및 "private"키워드를 사용하여 변수 및 루틴 목록에 대한 액세스 제한을 지정할 수 있습니다. 일반적으로 처음에는 private 키워드를 사용하는 것이 도움이되는 것으로 나타났습니다.이 키워드는 명시 적으로 public으로 표시하지 않는 한 모듈 내의 모든 항목이 private임을 지정합니다.
아래 코드 샘플에서 subroutine_1() 및 function_1()은 필수 "사용"문을 통해 모듈 외부에서 액세스 할 수 있지만 다른 변수/서브 루틴/함수는 private이됩니다. 외부에서 액세스 할 수 있습니다 PUBLIC에 나열된 개인에 나와
PUBLIC :: subname-1, funname-2, ...
PRIVATE :: subname-1, funname-2, ...
모든 개체가 모듈의 외부에서 액세스 할 수 없습니다 및 모든 엔티티 : 당신이 모듈을 사용하는 경우
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 요약 :
공개/개인 속성이 포트란 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
, 여기에 구문 모듈. 기본적으로 다른 모든 엔티티는 모듈 외부에서 액세스 할 수 있습니다.
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. VBA 및 개인 기능
- 2. mac에서 fortran의 '정적'바이너리 컴파일
- 3. Fortran의 일반적인 블록 사용
- 4. 내부 (개인) 기능 및 클로저
- 5. Silverlight에서 개인 기능 테스트 단위
- 6. 정규식, 일치 "개인 기능", "공공 기능"하거나 "기능"
- 7. 오류 : Fortran의 두 가지 주요 프로그램
- 8. Fortran의 문자열 : 휴대용 LEN_TRIM 및 LNBLNK?
- 9. FORTRAN의 LEN_TRIM은 전달 된 매개 변수와 다르게 동작합니까?
- 10. 파일에서 읽고 FORTRAN의 stdout으로 인쇄하는 간단한 방법이 있습니까?
- 11. TestDriven.NET 개인 버전과 Professional 버전
- 12. 개인 테이블 기본 키
- 13. 개인 메서드의 개인 재정의? (ANSWER : NVI)
- 14. 개인 정수를 다른 개인 정수로 설정
- 15. 개인 메서드가 다른 개인 메서드를 호출하는 올바른?
- 16. 개인 생성자
- 17. 개인 소품이
- 18. 모바일 응용 프로그램 기능
- 19. libarchive로 Apple 개인 API 거부
- 20. XSLT : XML : 기능/기능
- 21. Devise를 사용하여 개인 프로필 만들기
- 22. 기능
- 23. 기능
- 24. 기능
- 25. 기능
- 26. 기능
- 27. 기능
- 28. 기능
- 29. 기능
- 30. 기능
당신이 이해할 수있는 겸손하다는 것을 인정하지만, 더 확실 할 수 있습니다. 답은 그 스레드에 있습니다. public/private 속성은 Fortran 90 이후 모듈에 존재합니다. Fortran 77 이전 버전 - 운이 좋지 않습니다. – jaredor