From c929675bf0153b9f1bde3e88379e84f082c690ca Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 5 Apr 2018 14:15:38 +0200
Subject: [PATCH] Philippe 05/04/2018: IO: store XHAT and YHAT when written by
 SURFEX (needed by PREP_PGD program)

---
 src/MNH/write_surf_mnh.f90 | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90
index 4bc52b5a3..75a40faa5 100644
--- a/src/MNH/write_surf_mnh.f90
+++ b/src/MNH/write_surf_mnh.f90
@@ -257,6 +257,7 @@ USE MODE_TOOLS_ll
 USE MODE_WRITE_SURF_MNH_TOOLS
 !
 USE MODD_CONF_n,        ONLY: CSTORAGE_TYPE
+USE MODD_GRID_n,        ONLY: XXHAT, XYHAT
 USE MODD_IO_ll,         ONLY: TFILE_SURFEX
 USE MODD_IO_SURF_MNH,   ONLY :NMASK, CMASK,                          &
                               NIU, NJU, NIB, NJB, NIE, NJE,          &
@@ -408,6 +409,11 @@ IF (      (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU')  &
   IF (HDIR=='H') THEN
     CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT',IID,IRESP)
     CALL IO_WRITE_FIELD(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IIU-NHALO),KRESP)
+    IF (.NOT. (ASSOCIATED(XXHAT))) THEN
+      !Store XXHAT if not yet done (necessary for PREP_PGD program when writing netCDF files)
+      ALLOCATE(XXHAT(IIU-2*NHALO))
+      XXHAT(:) = ZW1D(1+NHALO:IIU-NHALO)
+    END IF
   END IF
   DEALLOCATE(ZW1D)
 ELSE IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU')  &
@@ -434,6 +440,11 @@ ELSE IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU')  &
   IF (HDIR=='H') THEN
     CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT',IID,IRESP)
     CALL IO_WRITE_FIELD(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IJU-NHALO),KRESP)
+    IF (.NOT. (ASSOCIATED(XYHAT))) THEN
+      !Store XYHAT if not yet done (necessary for PREP_PGD program when writing netCDF files)
+      ALLOCATE(XYHAT(IJU-2*NHALO))
+      XYHAT(:) = ZW1D(1+NHALO:IJU-NHALO)
+    END IF
   END IF
   DEALLOCATE(ZW1D)
 ELSE IF (HDIR=='H') THEN
-- 
GitLab