From 331f5e21f336bf04d6c845feeb918958c4511d40 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 22 Jan 2018 11:35:33 +0100
Subject: [PATCH] Philippe 22/01/2018: IO: add support for Arakawa vorticity
 point in NC4 files

---
 src/LIB/SURCOUCHE/src/modd_netcdf.f90 |  2 +-
 src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 18 +++++++++++++++---
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/modd_netcdf.f90 b/src/LIB/SURCOUCHE/src/modd_netcdf.f90
index 688797691..6b0c890a2 100644
--- a/src/LIB/SURCOUCHE/src/modd_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/modd_netcdf.f90
@@ -24,7 +24,7 @@ TYPE DIMCDF
    TYPE(DIMCDF), POINTER    :: NEXT => NULL()
 END TYPE DIMCDF
 
-TYPE(DIMCDF),DIMENSION(3,0:4) :: NCOORDID !X,Y,Z coordinates for the 4 Arakawa points
+TYPE(DIMCDF),DIMENSION(3,0:7) :: NCOORDID !X,Y,Z coordinates for the 8 Arakawa points
                                           !0 2nd-dimension is to treat NGRID=0 case without crash
 
 END MODULE MODD_NETCDF
diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
index cced7d932..800498bc5 100644
--- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90
+++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90
@@ -121,7 +121,7 @@ TYPE(TFILEDATA),INTENT(IN) :: TPFILE
 INTEGER              :: IIU_ll, IJU_ll, IKU
 TYPE(IOCDF), POINTER :: PIOCDF
 
-CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_SET_KNOWNDIMS_NC4','called')
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_SET_KNOWNDIMS_NC4','called for '//TRIM(TPFILE%CNAME))
 
 PIOCDF => TPFILE%TNCDIMS
 
@@ -157,6 +157,18 @@ NCOORDID(3,3) = PIOCDF%DIM_LEVEL
 NCOORDID(1,4) = PIOCDF%DIM_NI
 NCOORDID(2,4) = PIOCDF%DIM_NJ
 NCOORDID(3,4) = PIOCDF%DIM_LEVEL_W
+! xi vorticity point (=f point =uv point)
+NCOORDID(1,5) = PIOCDF%DIM_NI_U
+NCOORDID(2,5) = PIOCDF%DIM_NJ_V
+NCOORDID(3,5) = PIOCDF%DIM_LEVEL
+! eta vorticity point (=uw point)
+NCOORDID(1,6) = PIOCDF%DIM_NI_U
+NCOORDID(2,6) = PIOCDF%DIM_NJ
+NCOORDID(3,6) = PIOCDF%DIM_LEVEL_W
+! xi vorticity point (=vw point)
+NCOORDID(1,7) = PIOCDF%DIM_NI
+NCOORDID(2,7) = PIOCDF%DIM_NJ_V
+NCOORDID(3,7) = PIOCDF%DIM_LEVEL_W
 
 END SUBROUTINE IO_SET_KNOWNDIMS_NC4
 
@@ -174,7 +186,7 @@ INTEGER(KIND=IDCDF_KIND)      :: INCID
 REAL,DIMENSION(:),ALLOCATABLE :: ZXHATM, ZYHATM,ZZHATM !Coordinates at mass points in the transformed space
 TYPE(IOCDF), POINTER          :: PIOCDF
 
-CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called')
+CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for'//TRIM(TPFILE%CNAME))
 
 PIOCDF => TPFILE%TNCDIMS
 
@@ -675,7 +687,7 @@ ELSE
   END IF
 END IF
 !
-IF(IGRID<0 .OR. IGRID>4) THEN
+IF(IGRID<0 .OR. IGRID>7) THEN
   WRITE(YINT,'( I0 )') IGRID
   CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME))
 END IF
-- 
GitLab