2012-11-25 3 views
0

나는 문제가있다. 나는 그것이 무엇인지 모른다. MPI_INIT와 MPI_FINALIZE가있는 테스트 프로그램이 있습니다. 나는 5 개의 서브 루틴을 포함하는 모듈을 가지고있다 : 3 개의 서브 루틴은 의존적이고, 2 개의 다른 서브 루틴과 독립적이다. 테스트 모듈의 MPI 코드를이 모듈에 넣고 싶습니다. 나는 MPI_INIT를 변수가 선언 된 모듈과 서브 루틴 앞에 놓는다. "MPI_INIT 및 MPI_FINALIZE 한 번만 호출해야"않습니다 어떻게MPI_INIT는 어디에서 포트란 모듈에 넣어야합니까?

This statement must not appear in the specification part of a module 

포트란 프로그램, 모듈 및 서브 루틴에 영향을 미칠 : 저도 같은 오류 메시지가 오류의 시리즈를 얻을? MPI 함수와 변수를 어디에 두어야합니까? 여러 개의 독립적 인 프로그램이 있는데, 각각이 모듈의 서브 루틴을 여러 번 호출합니까?

+1

가능한 복제본 [업데이트 : 모듈 또는 모듈의 서브 루틴에 MPI를 넣어야합니까?] (http://stackoverflow.com/questions/13437672/updated-should-i-put-mpi-in-a-module -or-a-modules-subroutine) –

답변

1

모듈의 서브 루틴 부분에서 MPI 서브 루틴을 호출해야합니다.

일반적으로 나는 MPI_INIT를 호출하고 결국 MPI_COMM_RANK와 MPI_COMM_SIZE를 호출하는 init_mpi 서브 루틴을 정의합니다. 이 init_mpi 서브 루틴에서 MPI_INITIALIZED를 사용하여 다중 초기화를 피할 수도 있습니다.

관련 문제