From 39f993a67e81b2e2ee90cee68f0b49182a4b14eb Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 16 Sep 2021 15:58:10 +0200
Subject: [PATCH] Philippe 16/09/2021: allow more flexibility for allocation of
 zero-size 3D and 4D arrays

---
 src/MNH/mode_mnh_zwork.f90 | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/MNH/mode_mnh_zwork.f90 b/src/MNH/mode_mnh_zwork.f90
index 95fc395d7..7e2e6bdcc 100644
--- a/src/MNH/mode_mnh_zwork.f90
+++ b/src/MNH/mode_mnh_zwork.f90
@@ -406,8 +406,10 @@ CONTAINS
     INTEGER                 :: KINDEX
 
     !local
-
-    IF ( (KI .EQ. IIU) .AND. (KJ .EQ. IJU) ) THEN
+    IF ( KI == 0 .OR. KJ == 0 ) THEN
+       CALL MNH_GET_ZT3D_N0(KINDEX)
+       PTAB => ZT3D_OSIZE
+    ELSE IF ( (KI .EQ. IIU) .AND. (KJ .EQ. IJU) ) THEN
        CALL MNH_GET_ZT3D_N0(KINDEX)
        IF       (KK .LE. IKU)  THEN           
           PTAB => ZT3D(:,:,1:KK,KINDEX)
@@ -432,7 +434,10 @@ CONTAINS
 
     INTEGER                 :: KINDEX_END
 
-    IF ( (KI .EQ. IIU) .AND. (KJ .EQ. IJU) .AND. (KK .EQ. IKU) ) THEN
+    IF ( KI == 0 .OR. KJ == 0 .OR. KK == 0 ) THEN
+       PTAB => ZT4D_OSIZE
+       KINDEX_BEG = 0
+    ELSE IF ( (KI .EQ. IIU) .AND. (KJ .EQ. IJU) .AND. (KK .EQ. IKU) ) THEN
        IF ( KL .GE. 1 ) THEN
           CALL MNH_GET_ZT4D(KL,KINDEX_BEG,KINDEX_END)
           PTAB => ZT3D(:,:,:,KINDEX_BEG:KINDEX_END)
-- 
GitLab