업데이트 : 문제가 있으며 그게 무엇인지 모릅니다. MPI_INIT와 MPI_FINALIZE가있는 테스트 프로그램이 있습니다. 나는 5 개의 서브 루틴을 포함하는 모듈을 가지고있다 : 3 개의 서브 루틴은 의존적이고, 2 개의 다른 서브 루틴과 독립적이다. 테스트 모듈의 MPI 코드를이 모듈에 넣고 싶습니다. 나는 MPI_INIT를 변수가 선언 된 모듈과 서브 루틴 앞에 놓는다. "MPI_INIT 및 MPI_FINALIZE 한 번만 호출해야"않습니다 어떻게업데이트 : 모듈 또는 모듈의 서브 루틴에 MPI를 넣어야합니까?
This statement must not appear in the specification part of a module
포트란 프로그램, 모듈 및 서브 루틴에 영향을 미칠 : 저도 같은 오류 메시지가 오류의 시리즈를 얻을? MPI 함수와 변수를 어디에 두어야합니까? 여러 개의 독립적 인 프로그램이 있는데, 각각이 모듈의 서브 루틴을 여러 번 호출합니까?
~~~~~~~~~ 나는 병렬 처리하려는 루프를 포함하는 일련의 서브 루틴을 포함하는 모듈을 가지고 있습니다. 다른 프로그램에서 사용하는 서브 루틴은 공용입니다.
module ...
call MPI_INIT
subroutine 1
... (MPI code)
subroutine 2
subroutine 3
MPI_GATHERV
call MPI_FINALIZE
module
각 서브 루틴 내부 : 나는 서브 루틴 외부 MPI를 정의해야 하는가?
module ...
subroutine 1
call MPI_INIT
... (MPI code)
MPI_GATHERV
call MPI_FINALIZE
subroutine 2
call MPI_INIT
... (MPI code)
MPI_GATHERV
call MPI_FINALIZE
subroutine 3
call MPI_INIT
... (MPI code)
MPI_GATHERV
call MPI_FINALIZE
module
내가 솔루션 1. 거친 입자의 원리를 다음의 장점을 볼 수있는 프로그램이 호출하면 서브 루틴 1, 또한 서브 루틴 외부 MPI 코드를 실행합니다?
예, 주 프로그램의 시작 부분에서 MPI를 초기화하고 마지막에 완료하십시오. – milancurcic
답변 해 주셔서 감사합니다. – Pippi