source: LMDZ4/trunk/libf/dyn3dpar/mod_const_para.F90 @ 1012

Last change on this file since 1012 was 1008, checked in by lsce, 17 years ago
  • Changed variable name OCEAN to type_ocean in physiq.def

JG

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.5 KB
RevLine 
[774]1MODULE mod_const_mpi
2
[985]3  INTEGER,SAVE :: COMM_LMDZ
4  INTEGER,SAVE :: MPI_REAL_LMDZ
[774]5 
6
7CONTAINS
8
9  SUBROUTINE Init_const_mpi
[884]10    USE IOIPSL
11
12    IMPLICIT NONE
[1000]13#ifdef CPP_MPI
[774]14    INCLUDE 'mpif.h'
[1000]15#endif
[884]16    INTEGER             :: ierr
17    INTEGER             :: comp_id
[985]18    INTEGER             :: thread_required
19    INTEGER             :: thread_provided
[1008]20    CHARACTER(len = 6)  :: type_ocean
[884]21
22!$OMP MASTER
[1008]23    type_ocean = 'force '
24    CALL getin('type_ocean', type_ocean)
[985]25!$OMP END MASTER
26!$OMP BARRIER
[884]27
[1008]28    IF (type_ocean=='couple') THEN
[806]29#ifdef CPP_COUPLE
[985]30!$OMP MASTER
[884]31       CALL prism_init_comp_proto (comp_id, 'lmdz.x', ierr)
32       CALL prism_get_localcomm_proto(COMM_LMDZ,ierr)
[985]33!$OMP END MASTER
[1000]34#ifdef CPP_MPI
35      COMM_LMDZ=MPI_COMM_WORLD
36      MPI_REAL_LMDZ=MPI_REAL8
[806]37#endif
[1000]38#endif
[884]39    ELSE
[1000]40      CALL init_mpi
41    ENDIF
42
43  END SUBROUTINE Init_const_mpi
44 
45  SUBROUTINE Init_mpi
46  IMPLICIT NONE
47#ifdef CPP_MPI
48     INCLUDE 'mpif.h'
49#endif
50    INTEGER             :: ierr
51    INTEGER             :: thread_required
52    INTEGER             :: thread_provided
53
54#ifdef CPP_MPI
[985]55!$OMP MASTER
[1000]56      thread_required=MPI_THREAD_SERIALIZED
57
58      CALL MPI_INIT_THREAD(thread_required,thread_provided,ierr)
59      IF (thread_provided < thread_required) THEN
60        PRINT *,'Warning : The multithreaded level of MPI librairy do not provide the requiered level',  &
61                ' in mod_const_mpi::Init_const_mpi'
62      ENDIF
63      COMM_LMDZ=MPI_COMM_WORLD
64      MPI_REAL_LMDZ=MPI_REAL8
[985]65!$OMP END MASTER
[1000]66#endif
[806]67
[1000]68   END SUBROUTINE Init_mpi
69   
[774]70END MODULE mod_const_mpi
Note: See TracBrowser for help on using the repository browser.