From 0b429b805ae162da563e04f707e19ec50b421604 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 16 Feb 2018 14:46:37 +0100
Subject: [PATCH] Philippe 16/02/2018: SURFEX: bug correction: allocate some
 work arrays to 0,1,1 instead of 0,0,1 (crash with XLF)

---
 src/SURFEX/init_isban.F90              | 24 ++++++++++++------------
 src/SURFEX/init_teb_garden_pgdn.F90    | 14 +++++++-------
 src/SURFEX/init_teb_greenroof_pgdn.F90 | 14 +++++++-------
 src/SURFEX/writesurf_tebn.F90          |  2 +-
 4 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/src/SURFEX/init_isban.F90 b/src/SURFEX/init_isban.F90
index 4f6d848f8..397e5385f 100644
--- a/src/SURFEX/init_isban.F90
+++ b/src/SURFEX/init_isban.F90
@@ -501,13 +501,13 @@ IF (.NOT.LSPLIT_PATCH) THEN
       ALLOCATE(IM%S%XSG2_WR(KI,ISNOW_NLAYER,IM%O%NPATCH))
       ALLOCATE(IM%S%XHIS_WR(KI,ISNOW_NLAYER,IM%O%NPATCH))
     ELSE
-      ALLOCATE(IM%S%XSG1_WR(0,0,1))
-      ALLOCATE(IM%S%XSG2_WR(0,0,1)) 
-      ALLOCATE(IM%S%XHIS_WR(0,0,1))   
+      ALLOCATE(IM%S%XSG1_WR(0,1,1))
+      ALLOCATE(IM%S%XSG2_WR(0,1,1)) 
+      ALLOCATE(IM%S%XHIS_WR(0,1,1))   
     ENDIF
   ELSE
-    ALLOCATE(IM%S%XHEA_WR(0,0,1))
-    ALLOCATE(IM%S%XAGE_WR(0,0,1))
+    ALLOCATE(IM%S%XHEA_WR(0,1,1))
+    ALLOCATE(IM%S%XAGE_WR(0,1,1))
   ENDIF
 
   ALLOCATE(IM%S%TDATE_WR(KI,IM%O%NPATCH))
@@ -516,14 +516,14 @@ ELSE
 
   ALLOCATE(IM%S%XWORK_WR(0,1))
 
-  ALLOCATE(IM%S%XWSN_WR(0,0,1))
-  ALLOCATE(IM%S%XRHO_WR(0,0,1))
+  ALLOCATE(IM%S%XWSN_WR(0,1,1))
+  ALLOCATE(IM%S%XRHO_WR(0,1,1))
   ALLOCATE(IM%S%XALB_WR(0,1))
-  ALLOCATE(IM%S%XHEA_WR(0,0,1))
-  ALLOCATE(IM%S%XAGE_WR(0,0,1))
-  ALLOCATE(IM%S%XSG1_WR(0,0,1))
-  ALLOCATE(IM%S%XSG2_WR(0,0,1)) 
-  ALLOCATE(IM%S%XHIS_WR(0,0,1))
+  ALLOCATE(IM%S%XHEA_WR(0,1,1))
+  ALLOCATE(IM%S%XAGE_WR(0,1,1))
+  ALLOCATE(IM%S%XSG1_WR(0,1,1))
+  ALLOCATE(IM%S%XSG2_WR(0,1,1)) 
+  ALLOCATE(IM%S%XHIS_WR(0,1,1))
 
   ALLOCATE(IM%S%TDATE_WR(0,1))
 
diff --git a/src/SURFEX/init_teb_garden_pgdn.F90 b/src/SURFEX/init_teb_garden_pgdn.F90
index 4b3b1ecc4..ff6785167 100644
--- a/src/SURFEX/init_teb_garden_pgdn.F90
+++ b/src/SURFEX/init_teb_garden_pgdn.F90
@@ -216,14 +216,14 @@ IF (OPATCH1) THEN
     CALL INIT_FROM_DATA_TEB_VEG_n(DTV, K, P, PEK, IDECADE, .FALSE., .TRUE., .FALSE.,.FALSE.)
   ENDIF
   !
-  ALLOCATE(S%XWSN_WR(0,0,1))
-  ALLOCATE(S%XRHO_WR(0,0,1))
+  ALLOCATE(S%XWSN_WR(0,1,1))
+  ALLOCATE(S%XRHO_WR(0,1,1))
   ALLOCATE(S%XALB_WR(0,1))
-  ALLOCATE(S%XHEA_WR(0,0,1))
-  ALLOCATE(S%XAGE_WR(0,0,1))
-  ALLOCATE(S%XSG1_WR(0,0,1))
-  ALLOCATE(S%XSG2_WR(0,0,1)) 
-  ALLOCATE(S%XHIS_WR(0,0,1))
+  ALLOCATE(S%XHEA_WR(0,1,1))
+  ALLOCATE(S%XAGE_WR(0,1,1))
+  ALLOCATE(S%XSG1_WR(0,1,1))
+  ALLOCATE(S%XSG2_WR(0,1,1)) 
+  ALLOCATE(S%XHIS_WR(0,1,1))
   !
 END IF
 
diff --git a/src/SURFEX/init_teb_greenroof_pgdn.F90 b/src/SURFEX/init_teb_greenroof_pgdn.F90
index 55624d65b..78a1249a2 100644
--- a/src/SURFEX/init_teb_greenroof_pgdn.F90
+++ b/src/SURFEX/init_teb_greenroof_pgdn.F90
@@ -227,14 +227,14 @@ IF (OPATCH1) THEN
     CALL INIT_FROM_DATA_TEB_VEG_n(DTV, K, P, PEK, IDECADE, .FALSE., .TRUE., .FALSE.,.FALSE.)
   ENDIF
   ! 
-  ALLOCATE(S%XWSN_WR(0,0,1))
-  ALLOCATE(S%XRHO_WR(0,0,1))
+  ALLOCATE(S%XWSN_WR(0,1,1))
+  ALLOCATE(S%XRHO_WR(0,1,1))
   ALLOCATE(S%XALB_WR(0,1))
-  ALLOCATE(S%XHEA_WR(0,0,1))
-  ALLOCATE(S%XAGE_WR(0,0,1))
-  ALLOCATE(S%XSG1_WR(0,0,1))
-  ALLOCATE(S%XSG2_WR(0,0,1)) 
-  ALLOCATE(S%XHIS_WR(0,0,1))
+  ALLOCATE(S%XHEA_WR(0,1,1))
+  ALLOCATE(S%XAGE_WR(0,1,1))
+  ALLOCATE(S%XSG1_WR(0,1,1))
+  ALLOCATE(S%XSG2_WR(0,1,1)) 
+  ALLOCATE(S%XHIS_WR(0,1,1))
   !
 END IF
 !
diff --git a/src/SURFEX/writesurf_tebn.F90 b/src/SURFEX/writesurf_tebn.F90
index 2a8247f9e..210b62535 100644
--- a/src/SURFEX/writesurf_tebn.F90
+++ b/src/SURFEX/writesurf_tebn.F90
@@ -98,7 +98,7 @@ INTEGER,           INTENT(IN)  :: KPATCH   ! current TEB patch
 !*       0.2   Declarations of local variables
 !              -------------------------------
 !
-REAL, DIMENSION(0,0,1) :: ZWSN_WR, ZRHO_WR, ZHEA_WR, ZAGE_WR, ZSG1_WR, ZSG2_WR, ZHIS_WR
+REAL, DIMENSION(0,1,1) :: ZWSN_WR, ZRHO_WR, ZHEA_WR, ZAGE_WR, ZSG1_WR, ZSG2_WR, ZHIS_WR
 REAL, DIMENSION(0,1) :: ZALB_WR
 !
 INTEGER, DIMENSION(SIZE(T%XT_ROOF,1)) :: IMASK
-- 
GitLab