From 416da8c40a59d66099d8aaa90f0ef5e4d99e9795 Mon Sep 17 00:00:00 2001
From: Philippe Wautelet <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 14 Apr 2016 15:24:29 +0000
Subject: [PATCH] Philippe 14/04/2016: remove special treatment if nbproc in
 one direction is a prime number (was causing problems with PREP_NEST_PGD)

---
 src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 | 40 +++++++++++----------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90
index db85137f8..5463a305d 100644
--- a/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90
+++ b/src/LIB/SURCOUCHE/src/mode_splitting_ll.f90
@@ -686,27 +686,29 @@ CONTAINS
     !*	 2.    FILL THE FIELDS OF TPROC
     !
     IF(HSPLITTING.EQ."BSPLITTING") THEN
-       IF ((PREM).AND.(NB_PROC.GT.2)) THEN
-          CALL DEF_SPLITTING2(X_DOMAINS,Y_DOMAINS,X_DIM-X_DIM/NB_PROC-1,  &
-               Y_DIM,NB_PROC-1,PREM)
-          !
-          ! the last proc is a vertical sub-domain
-          !
-          TPROC(NB_PROC)%NUMBER = NB_PROC
-          TPROC(NB_PROC)%NXOR = X_DIM-X_DIM/NB_PROC
-          TPROC(NB_PROC)%NXEND = X_DIM
-          TPROC(NB_PROC)%NYOR = 1
-          TPROC(NB_PROC)%NYEND = Y_DIM
-          !
-          ! cartesian splitting with NB_PROC-1
-          !
-          CALL CARTESIAN(TPROC,NB_PROC-1,X_DIM-X_DIM/NB_PROC-1,   &
-               Y_DIM,X_DOMAINS,Y_DOMAINS)
-          !
-       ELSE
+       !Philippe: we do not want to do that anymore
+       !          (i.e. source of problems for prep_nest_pgd parallel if PREM=.T.)
+       !IF ((PREM).AND.(NB_PROC.GT.2)) THEN
+       !   CALL DEF_SPLITTING2(X_DOMAINS,Y_DOMAINS,X_DIM-X_DIM/NB_PROC-1,  &
+       !        Y_DIM,NB_PROC-1,PREM)
+       !   !
+       !   ! the last proc is a vertical sub-domain
+       !   !
+       !   TPROC(NB_PROC)%NUMBER = NB_PROC
+       !   TPROC(NB_PROC)%NXOR = X_DIM-X_DIM/NB_PROC
+       !   TPROC(NB_PROC)%NXEND = X_DIM
+       !   TPROC(NB_PROC)%NYOR = 1
+       !   TPROC(NB_PROC)%NYEND = Y_DIM
+       !   !
+       !   ! cartesian splitting with NB_PROC-1
+       !   !
+       !   CALL CARTESIAN(TPROC,NB_PROC-1,X_DIM-X_DIM/NB_PROC-1,   &
+       !        Y_DIM,X_DOMAINS,Y_DOMAINS)
+       !   !
+       !ELSE
           !
           CALL CARTESIAN(TPROC,NB_PROC,X_DIM,Y_DIM,X_DOMAINS,Y_DOMAINS)
-       END IF
+       !END IF
     ELSEIF(HSPLITTING.EQ."XSPLITTING") THEN
        !
        CALL CARTESIAN(TPROC,NB_PROC,X_DIM,Y_DIM,NB_PROC,1)
-- 
GitLab