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

Last change on this file since 985 was 985, checked in by Laurent Fairhead, 16 years ago

Mise a jour de dyn3dpar par rapport a dyn3d, inclusion OpenMP et filtre FFT YM
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.1 KB
Line 
1MODULE mod_const_mpi
2
3  INTEGER,SAVE :: COMM_LMDZ
4  INTEGER,SAVE :: MPI_REAL_LMDZ
5 
6
7CONTAINS
8
9  SUBROUTINE Init_const_mpi
10    USE IOIPSL
11
12    IMPLICIT NONE
13    INCLUDE 'mpif.h'
14    INTEGER             :: ierr
15    INTEGER             :: comp_id
16    INTEGER             :: thread_required
17    INTEGER             :: thread_provided
18    CHARACTER(len = 6)  :: ocean
19
20!$OMP MASTER
21    ocean = 'force '
22    CALL getin('OCEAN', ocean)
23!$OMP END MASTER
24!$OMP BARRIER
25
26    IF (ocean=='couple') THEN
27#ifdef CPP_COUPLE
28!$OMP MASTER
29       CALL prism_init_comp_proto (comp_id, 'lmdz.x', ierr)
30       CALL prism_get_localcomm_proto(COMM_LMDZ,ierr)
31!$OMP END MASTER
32#endif
33    ELSE
34!$OMP MASTER
35       thread_required=MPI_THREAD_SERIALIZED
36       CALL MPI_INIT_THREAD(thread_required,thread_provided,ierr)
37       IF (thread_provided < thread_required) THEN
38         CALL abort_gcm('The multithreaded level of MPI librairy do not provide the requiered level', &
39                        'mod_const_mpi::Init_const_mpi',1)
40       ENDIF
41       COMM_LMDZ=MPI_COMM_WORLD
42!$OMP END MASTER
43    END IF
44
45    MPI_REAL_LMDZ=MPI_REAL8
46  END SUBROUTINE Init_const_mpi
47
48END MODULE mod_const_mpi
Note: See TracBrowser for help on using the repository browser.