VS 모듈 루틴 인수 의도 Confusion- INOUT는 벡터가 말하게 (dp
및 maxn
함께) 초기 루틴에 값을 할당하고, 메인 프로그램에서 호출포트란 OUT
REAL(KIND=dp), DIMENSION(maxn) :: rho
.
그러면 주 프로그램이 rho
으로 진화하기 위해 (다른) 서브 루틴을 포함하는 모듈을 호출합니다. rho
위한 서브 루틴 인자는 다음과 같이 정의된다 :이 서브 루틴 (ρ)에
SUBROUTINE sum_density(a, b, c, ....., rho)
가 선언된다
REAL(KIND=dp), DIMENSION(maxn), INTENT(OUT) :: rho
그러나 코드는 다음 라인, 어떤 값에 앞서이 rho
와 연관되고 포함
foo1= foo2*foo3(i)/rho(i)
모듈 서브 루틴이 주 프로그램에 정의 된 rho
에 액세스하지 못했을 것이라고 생각했을 것입니다. 컴파일러가 불만을 제기하고 (INOUT)
으로 변경하거나 rho
과 같은 것을 정의 할 것을 기대합니다. 비록 내가 그것을 (INOUT)
으로 바꾸더라도 결과에 차이가 없습니다. 모듈 서브 루틴은 주 프로그램에서 rho
의 값에 액세스하고 인 텐트가 OUT
으로 선언 되더라도 사용해야합니다.
내 질문은 -이 시나리오에서 INTENT(OUT)
과 INTENT(INOUT)
사이의 차이점은 무엇입니까?
정말 당신을 했
이 코드를 고려 마지막 문장에서 '의도 (IN)'를 의미합니까? –
죄송합니다. 지적 해 주셔서 감사합니다. - 수정 – 1QuickQuestion