From e2d99e3fce71ed9e19362a158dba3369b460e5f9 Mon Sep 17 00:00:00 2001
From: Philippe Wautelet <philippe.wautelet@aero.obs-mip.fr>
Date: Tue, 9 Feb 2016 09:30:33 +0000
Subject: [PATCH] Philippe 09/02/2016: use NMNH_COMM_WORLD instead of
 MPI_COMM_WORLD

---
 src/MNH/flash_geom_elec.f90 | 48 ++++++++++++++++++-------------------
 src/MNH/mode_elec_ll.f90    | 35 ++++++++++++++-------------
 src/MNH/resolved_elecn.f90  |  9 +++----
 src/MNH/zdiffusetup.f90     |  3 ++-
 4 files changed, 50 insertions(+), 45 deletions(-)

diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90
index ce170ef9a..b655a21ac 100644
--- a/src/MNH/flash_geom_elec.f90
+++ b/src/MNH/flash_geom_elec.f90
@@ -106,7 +106,7 @@ USE MODD_RAIN_ICE_DESCR, ONLY : XLBR, XLBEXR, XLBS, XLBEXS, &
                                 XLBG, XLBEXG, XLBH, XLBEXH, &
                                 XRTMIN
 USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELECEND, NSV_ELEC
-USE MODD_VAR_ll, ONLY : NPROC
+USE MODD_VAR_ll, ONLY : NPROC,NMNH_COMM_WORLD
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll
 USE MODD_PRINT_ELEC,  ONLY : NLU_fgeom_diag, NLU_fgeom_coord, &
                              NIOSTAT_fgeom_diag, NIOSTAT_fgeom_coord
@@ -466,7 +466,7 @@ DO WHILE (.NOT. GEND_DOMAIN .AND. INB_CELL .LT. NMAX_CELL)
 ! 
 ! Broadcast the center of the cell to all procs
     CALL MPI_BCAST (ICELL_LOC(:,INB_CELL), 4, MPI_INTEGER, IPROC_CELL, &
-                    MPI_COMM_WORLD, IERR)
+                    NMNH_COMM_WORLD, IERR)
 !
 !
 !*      2.2     horizontal extension of the cell 
@@ -803,11 +803,11 @@ IF (INB_CELL .GE. 1) THEN
         ENDIF
 !
         CALL MPI_BCAST (GNEW_FLASH(IL),1, MPI_LOGICAL, IPROC_TRIG(IL), &
-                        MPI_COMM_WORLD, IERR)
+                        NMNH_COMM_WORLD, IERR)
         CALL MPI_BCAST (ZEM_TRIG(IL), 1, MPI_PRECISION, IPROC_TRIG(IL), &
-                        MPI_COMM_WORLD, IERR)
+                        NMNH_COMM_WORLD, IERR)
         CALL MPI_BCAST (INB_FL_REAL(IL), 1, MPI_INTEGER, IPROC_TRIG(IL), &
-                        MPI_COMM_WORLD, IERR)
+                        NMNH_COMM_WORLD, IERR)
       END IF
     END DO  ! end loop il
 !
@@ -1093,7 +1093,7 @@ IF (INB_CELL .GE. 1) THEN
           END IF
 !
           CALL MPI_BCAST (INB_NEUT_OK,1, MPI_INTEGER, IPROC_TRIG(IL), &
-                    MPI_COMM_WORLD, IERR)
+                    NMNH_COMM_WORLD, IERR)
 !
 !*      9.5     Gather lightning information from all processes
 !*              Save the particule charge and total pos/neg charge neutralization points.
@@ -1102,7 +1102,7 @@ IF (INB_CELL .GE. 1) THEN
           INBSEG_PROC(IPROC+1) = INBSEG(IL)
           DO IK = 0, NPROC-1
             CALL MPI_BCAST (INBSEG_PROC(IK+1), 1, MPI_INTEGER, IK,  &
-                            MPI_COMM_WORLD, IERR)
+                            NMNH_COMM_WORLD, IERR)
           END DO
 
           INBSEG_ALL(IL) = INBSEG(IL)
@@ -1177,7 +1177,7 @@ IF (INB_CELL .GE. 1) THEN
 !               ---------------------------------------------------
 !
 ! Synchronizing all processes
-!   CALL MPI_BARRIER(MPI_COMM_WORLD, IERR)   ! A ACTIVER SI PB.
+!   CALL MPI_BARRIER(NMNH_COMM_WORLD, IERR)   ! A ACTIVER SI PB.
 !
     IF (IPROC .EQ. 0) THEN
       INBLIGHT = COUNT(GNEW_FLASH(1:INB_CELL))
@@ -1621,13 +1621,13 @@ DO IL = 1, INB_CELL
 !               ----------------------------
 !
     CALL MPI_BCAST (ZEM_TRIG(IL), 1, &
-                    MPI_PRECISION, IPROC_TRIG(IL), MPI_COMM_WORLD, IERR)
+                    MPI_PRECISION, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR)
     CALL MPI_BCAST (ISEG_LOC(:,IL), 3*SIZE(PRT,3), &     
-                    MPI_INTEGER, IPROC_TRIG(IL), MPI_COMM_WORLD, IERR)
+                    MPI_INTEGER, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR)
     CALL MPI_BCAST (ZCOORD_TRIG(:,IL), 3, &
-                    MPI_PRECISION, IPROC_TRIG(IL), MPI_COMM_WORLD, IERR)
+                    MPI_PRECISION, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR)
     CALL MPI_BCAST (ISIGNE_EZ(IL), 1, &
-                    MPI_INTEGER, IPROC_TRIG(IL), MPI_COMM_WORLD, IERR)
+                    MPI_INTEGER, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR)
 !
 !
 !*      5.      CHECK IF THE FLASH CAN DEVELOP
@@ -1641,9 +1641,9 @@ DO IL = 1, INB_CELL
       GNEW_FLASH(IL) = .TRUE.
       GNEW_FLASH_GLOB = .TRUE.
       CALL MPI_BCAST (GNEW_FLASH(IL),1, MPI_LOGICAL, IPROC_TRIG(IL), &
-                      MPI_COMM_WORLD, IERR)
+                      NMNH_COMM_WORLD, IERR)
       CALL MPI_BCAST (GNEW_FLASH_GLOB,1, MPI_LOGICAL, IPROC_TRIG(IL), &
-                      MPI_COMM_WORLD, IERR)
+                      NMNH_COMM_WORLD, IERR)
     END IF
   END IF 
 END DO
@@ -1812,9 +1812,9 @@ END IF  ! only iproc_trig was working
 !              ---------------------------------------
 !
 CALL MPI_BCAST (ISEG_LOC(:,IL), 3*SIZE(PRT,3), &  
-                MPI_INTEGER, IPROC_TRIG(IL), MPI_COMM_WORLD, IERR)
+                MPI_INTEGER, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR)
 CALL MPI_BCAST (ITYPE(IL), 1, &
-                MPI_INTEGER, IPROC_TRIG(IL), MPI_COMM_WORLD, IERR)
+                MPI_INTEGER, IPROC_TRIG(IL), NMNH_COMM_WORLD, IERR)
 !
 !
 END SUBROUTINE ONE_LEADER
@@ -1879,7 +1879,7 @@ DO IL = 1, INB_CELL
   END IF
 !
   CALL MPI_BCAST (ZSIGN(IL), 1, MPI_PRECISION, IPROC_TRIG(IL), &
-                  MPI_COMM_WORLD, IERR)
+                  NMNH_COMM_WORLD, IERR)
 END DO
 !
 DO WHILE (IEND_GLOB .NE. INB_CELL)
@@ -2054,7 +2054,7 @@ DO WHILE (IM .LE. IDELTA_IND .AND. ISTOP .NE. 1)
       IF (IMAX_BRANCH(IM) .GT. 0) THEN
         INBPT_PROC(:) = 0
         CALL MPI_ALLGATHER(IPT_DIST, 1, MPI_INTEGER, &
-                   INBPT_PROC, 1, MPI_INTEGER, MPI_COMM_WORLD, IERR)
+                   INBPT_PROC, 1, MPI_INTEGER, NMNH_COMM_WORLD, IERR)
 !
         IF (IPROC .EQ. 0) THEN
           IF (INBPT_PROC(1) .NE. 0) THEN
@@ -2222,7 +2222,7 @@ IF (IPROC .EQ. 0) THEN
 END IF
 !
 CALL MPI_GATHERV (ZSEND, 3*INSEGPROC, MPI_PRECISION, ZRECV, INBSEG_PROC_X3, &
-                  IDECAL3, MPI_PRECISION, 0, MPI_COMM_WORLD, IERR)
+                  IDECAL3, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR)
 !
 IF (IPROC .EQ. 0) THEN
   ZCOORD_SEG_ALL(1:3*INSEGCELL,IL) = ZRECV(1:3*INSEGCELL)
@@ -2281,7 +2281,7 @@ IF (LLMA) THEN
   ALLOCATE (IRECV(3*INSEGCELL))
 !
   CALL MPI_GATHERV (ISEND, 3*INSEGPROC, MPI_INTEGER, IRECV, INBSEG_PROC_X3, &
-                    IDECAL3, MPI_INTEGER, 0, MPI_COMM_WORLD, IERR)
+                    IDECAL3, MPI_INTEGER, 0, NMNH_COMM_WORLD, IERR)
 !
   IF (IPROC .EQ. 0) THEN
     ILMA_SEG_ALL(1:3*INSEGCELL,IL) = IRECV(1:3*INSEGCELL)
@@ -2295,14 +2295,14 @@ IF (LLMA) THEN
   ALLOCATE (ZRECV(INSEGCELL))
 !
   CALL MPI_GATHERV (ZLMAPOS, INSEGPROC, MPI_PRECISION, ZRECV, INBSEG_PROC,  &
-                    IDECAL, MPI_PRECISION, 0, MPI_COMM_WORLD, IERR)
+                    IDECAL, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR)
 !
   IF (IPROC .EQ. 0) THEN
     ZLMA_NEUT_POS(1:INSEGCELL,IL) = ZRECV(1:INSEGCELL)
   END IF
 !
   CALL MPI_GATHERV (ZLMANEG, INSEGPROC, MPI_PRECISION, ZRECV, INBSEG_PROC,  &
-                    IDECAL, MPI_PRECISION, 0, MPI_COMM_WORLD, IERR)
+                    IDECAL, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR)
 !
   IF (IPROC .EQ. 0) THEN
     ZLMA_NEUT_NEG(1:INSEGCELL,IL) = ZRECV(1:INSEGCELL)
@@ -2324,7 +2324,7 @@ IF (LLMA) THEN
 !
   CALL MPI_GATHERV (ZLMAQMT, NSV_ELEC*INSEGPROC, MPI_PRECISION, ZRECV, &
                     INBSEG_PROC_XNSV,                                  &
-                    IDECALN, MPI_PRECISION, 0, MPI_COMM_WORLD, IERR    )
+                    IDECALN, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR    )
 !
   IF (IPROC .EQ. 0) THEN
     ZLMA_QMT(1:NSV_ELEC*INSEGCELL,IL) = ZRECV(1:NSV_ELEC*INSEGCELL)
@@ -2332,7 +2332,7 @@ IF (LLMA) THEN
 !
   CALL MPI_GATHERV (ZLMAPRT, NSV_ELEC*INSEGPROC, MPI_PRECISION, ZRECV, &
                     INBSEG_PROC_XNSV,                                  &
-                    IDECALN, MPI_PRECISION, 0, MPI_COMM_WORLD, IERR)
+                    IDECALN, MPI_PRECISION, 0, NMNH_COMM_WORLD, IERR)
 !
   IF (IPROC .EQ. 0) THEN
     ZLMA_PRT(1:NSV_ELEC*INSEGCELL,IL) = ZRECV(1:NSV_ELEC*INSEGCELL)
diff --git a/src/MNH/mode_elec_ll.f90 b/src/MNH/mode_elec_ll.f90
index f3c9c5ef0..dc4f100ef 100644
--- a/src/MNH/mode_elec_ll.f90
+++ b/src/MNH/mode_elec_ll.f90
@@ -23,9 +23,12 @@
 !!
 !------------------------------------------------------------------------
 !
+USE MODD_MPIF
+USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
+!
 IMPLICIT NONE
 !
-include "mpif.h"
+!include "mpif.h"
 !
 !
 INTEGER, PARAMETER :: IFIRST_PROC = 0   ! 0/1 to increase numerotation of proc number 
@@ -76,7 +79,7 @@ INTEGER :: KPROC
 INTEGER :: INFO
 !
 !
-CALL MPI_COMM_RANK (MPI_COMM_WORLD, KPROC, INFO)
+CALL MPI_COMM_RANK (NMNH_COMM_WORLD, KPROC, INFO)
 !
 KPROC = KPROC + IFIRST_PROC
 
@@ -113,7 +116,7 @@ INFO = -1
 !
 ! Sum(Proc)
 CALL MPI_ALLREDUCE(ZTAB, PSUM_INOUT, IDIM, MPI_PRECISION, &
-                   MPI_SUM, MPI_COMM_WORLD, INFO)
+                   MPI_SUM, NMNH_COMM_WORLD, INFO)
 !
 END SUBROUTINE RSUM_ELEC_ll
 !
@@ -150,7 +153,7 @@ INFO = -1
 !*     1.1    max(Proc)
 !
 CALL MPI_ALLREDUCE(ZTAB, PMIN_INOUT, IDIM, MPI_PRECISION, &
-                   MPI_MIN, MPI_COMM_WORLD, INFO)
+                   MPI_MIN, NMNH_COMM_WORLD, INFO)
 !
 !*     1.2    find the proc number of the maximum
 !
@@ -163,7 +166,7 @@ ENDIF
 !*     1.3    broadcast to all proc 
 !
 CALL MPI_ALLREDUCE(KPROC_LOCAL, KPROC,IDIM , MPI_INTEGER, &
-                   MPI_MAX, MPI_COMM_WORLD, INFO) 
+                   MPI_MAX, NMNH_COMM_WORLD, INFO) 
 !
 END SUBROUTINE RMIN0_ELEC_ll
 !
@@ -200,7 +203,7 @@ INFO = -1
 !*     1.1    max(Proc)
 !
 CALL MPI_ALLREDUCE(ZTAB, PMAX_INOUT, IDIM, MPI_PRECISION, &
-                   MPI_MAX, MPI_COMM_WORLD, INFO)
+                   MPI_MAX, NMNH_COMM_WORLD, INFO)
 !
 !*     1.2    find the proc number of the maximum
 !
@@ -213,7 +216,7 @@ ENDIF
 !*     1.3    broadcast to all proc 
 !
 CALL MPI_ALLREDUCE(KPROC_LOCAL, KPROC,IDIM , MPI_INTEGER, &
-                   MPI_MAX, MPI_COMM_WORLD, INFO) 
+                   MPI_MAX, NMNH_COMM_WORLD, INFO) 
 !
 END SUBROUTINE RMAX0_ELEC_ll
 !
@@ -250,7 +253,7 @@ INFO = -1
 !*     1.1    min(Proc)
 !
 CALL MPI_ALLREDUCE(ITAB, KMIN_INOUT, IDIM, MPI_INTEGER, &
-                   MPI_MIN, MPI_COMM_WORLD, INFO)
+                   MPI_MIN, NMNH_COMM_WORLD, INFO)
 !
 !*     1.2    find the proc number of the maximum
 !
@@ -263,7 +266,7 @@ ENDIF
 !*     1.3    broadcast to all proc 
 !
 CALL MPI_ALLREDUCE(IPROC_LOCAL, KPROC,IDIM, MPI_INTEGER, &
-                   MPI_MAX, MPI_COMM_WORLD, INFO) 
+                   MPI_MAX, NMNH_COMM_WORLD, INFO) 
 !
 END SUBROUTINE IMIN0_ELEC_ll
 !
@@ -300,7 +303,7 @@ INFO = -1
 !*     1.1    min(Proc)
 !
 CALL MPI_ALLREDUCE(ITAB, KMAX_INOUT, IDIM, MPI_INTEGER, &
-                   MPI_MAX, MPI_COMM_WORLD, INFO)
+                   MPI_MAX, NMNH_COMM_WORLD, INFO)
 !
 !*     1.2    find the proc number of the maximum
 !
@@ -313,7 +316,7 @@ ENDIF
 !*     1.3    brodcast to all proc 
 !
 CALL MPI_ALLREDUCE(IPROC_LOCAL, KPROC, IDIM, MPI_INTEGER, &
-                   MPI_MAX, MPI_COMM_WORLD, INFO) 
+                   MPI_MAX, NMNH_COMM_WORLD, INFO) 
 !
 END SUBROUTINE IMAX0_ELEC_ll
 !
@@ -348,7 +351,7 @@ INFO = -1
 !*     1.1    sum(Proc)
 !
 CALL MPI_ALLREDUCE(ITAB, KSUM_INOUT, IDIM, MPI_INTEGER, &
-                   MPI_SUM, MPI_COMM_WORLD, INFO)
+                   MPI_SUM, NMNH_COMM_WORLD, INFO)
 !
 END SUBROUTINE ISUM_ELEC_ll
 !
@@ -383,7 +386,7 @@ INFO = -1
 !*     1.1    sum(Proc)
 !
 CALL MPI_ALLREDUCE(ITAB, KSUM_INOUT, IDIM, MPI_INTEGER, &
-                   MPI_SUM, MPI_COMM_WORLD, INFO)
+                   MPI_SUM, NMNH_COMM_WORLD, INFO)
 !
 END SUBROUTINE ISUM0_ELEC_ll
 !
@@ -418,7 +421,7 @@ INFO = -1
 !*     1.1    sum(Proc)
 !
 CALL MPI_ALLREDUCE(ZTAB, PSUM_INOUT, IDIM, MPI_PRECISION, &
-                   MPI_SUM, MPI_COMM_WORLD, INFO)
+                   MPI_SUM, NMNH_COMM_WORLD, INFO)
 !
 END SUBROUTINE RSUM0_ELEC_ll
 !
@@ -473,8 +476,8 @@ JCENT_GLOB = IYOR + JCENT_LOC - 1
 !
 ! The proc with the center of the cell broadcast the global coord of the cell
 !
-CALL MPI_BCAST(ICENT_GLOB, 1, MPI_INTEGER, KPROC_COORD, MPI_COMM_WORLD, IERR)
-CALL MPI_BCAST(JCENT_GLOB, 1, MPI_INTEGER, KPROC_COORD, MPI_COMM_WORLD, IERR)
+CALL MPI_BCAST(ICENT_GLOB, 1, MPI_INTEGER, KPROC_COORD, NMNH_COMM_WORLD, IERR)
+CALL MPI_BCAST(JCENT_GLOB, 1, MPI_INTEGER, KPROC_COORD, NMNH_COMM_WORLD, IERR)
 !
 IS_GLOB = KIS + IXOR -1
 IE_GLOB = KIE + IXOR -1
diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90
index 842ab3bd3..4c810d6a3 100644
--- a/src/MNH/resolved_elecn.f90
+++ b/src/MNH/resolved_elecn.f90
@@ -200,6 +200,7 @@ USE MODD_LMA_SIMULATOR
 USE MODD_PRINT_ELEC
 !
 USE MODI_IO_ll
+USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
 USE MODI_RAIN_ICE_ELEC
 USE MODI_ICE_ADJUST_ELEC
 USE MODI_TO_ELEC_FIELD_n
@@ -869,7 +870,7 @@ IF (KTCOUNT .EQ. 1) THEN
     END IF
 !  
     CALL CLOSE_ll (YASCFILE)
-    CALL MPI_BCAST (NLU_fgeom_diag,1, MPI_INTEGER, 0, MPI_COMM_WORLD, IERR)
+    CALL MPI_BCAST (NLU_fgeom_diag,1, MPI_INTEGER, 0, NMNH_COMM_WORLD, IERR)
 !
     IF (LSAVE_COORD) THEN
       YASCFILE = CEXP//"_fgeom_coord.asc"
@@ -889,7 +890,7 @@ IF (KTCOUNT .EQ. 1) THEN
       END IF
 !
       CALL CLOSE_ll (YASCFILE)
-      CALL MPI_BCAST (NLU_fgeom_coord,1, MPI_INTEGER, 0, MPI_COMM_WORLD, IERR)
+      CALL MPI_BCAST (NLU_fgeom_coord,1, MPI_INTEGER, 0, NMNH_COMM_WORLD, IERR)
     END IF
   END IF
 !
@@ -925,7 +926,7 @@ IF (KTCOUNT .EQ. 1) THEN
     END IF
 !
     CALL CLOSE_ll (YASCFILE)
-    CALL MPI_BCAST (NLU_series_cloud_elec,1, MPI_INTEGER, 0, MPI_COMM_WORLD, IERR)
+    CALL MPI_BCAST (NLU_series_cloud_elec,1, MPI_INTEGER, 0, NMNH_COMM_WORLD, IERR)
   END IF
 END IF
 !
@@ -982,7 +983,7 @@ IF (LFLASH_GEOM .AND. LLMA) THEN
       WRITE (UNIT=ILMA_UNIT,FMT='(A)') '----------------------------------------'
     END IF
     CALL CLOSE_ll (CLMA_FILE)
-    CALL MPI_BCAST (ILMA_UNIT,1, MPI_INTEGER, 0, MPI_COMM_WORLD, IERR)
+    CALL MPI_BCAST (ILMA_UNIT,1, MPI_INTEGER, 0, NMNH_COMM_WORLD, IERR)
   END IF
 END IF
 !
diff --git a/src/MNH/zdiffusetup.f90 b/src/MNH/zdiffusetup.f90
index f7b6eb1f8..29dafe660 100644
--- a/src/MNH/zdiffusetup.f90
+++ b/src/MNH/zdiffusetup.f90
@@ -64,6 +64,7 @@ USE MODD_PARAMETERS
 USE MODD_CONF
 USE MODI_RELAX
 USE MODE_ll
+USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD
 USE MODI_SHUMAN
 USE MODD_ARGSLIST_ll, ONLY : LIST_ll, HALO2LIST_ll
 !
@@ -221,7 +222,7 @@ IKMAX_HALO2 = MAX(PZDIFFU_HALO2%NZDI,PZDIFFU_HALO2%NZDJ)
 PZDIFFU_HALO2%NZDLB = MAXVAL(IKMAX_HALO2) ! Model level, above which a truly horizontal computation of diffusion
                               ! is possible at all grid points
 !JUAN
-CALL MPI_ALLREDUCE(PZDIFFU_HALO2%NZDLB ,KZDLB_ll, 1, MPI_INTEGER, MPI_MAX, MPI_COMM_WORLD, IERR)
+CALL MPI_ALLREDUCE(PZDIFFU_HALO2%NZDLB ,KZDLB_ll, 1, MPI_INTEGER, MPI_MAX, NMNH_COMM_WORLD, IERR)
 
 !print*,"zdiffusetup:: PZDIFFU_HALO2%NZDLB=",PZDIFFU_HALO2%NZDLB,KZDLB_ll
 PZDIFFU_HALO2%NZDLB = KZDLB_ll
-- 
GitLab