From d0058a7d6f2d18ca6684a00b98764bd94424ee8d Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 28 Jun 2024 08:50:06 +0200
Subject: [PATCH] Philippe 28/06/2024: read_filed: read some fields only when
 available (ie not present if file generated from SPAWN)

---
 src/MNH/read_field.f90 | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index bd4a70fcf..fd5bf06f1 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1994-2023 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1994-2024 CNRS, Meteo-France and Universite Paul Sabatier
 !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
@@ -440,6 +440,7 @@ LOGICAL                      :: ZLRECYCL     ! switch if turbulence recycling is
 LOGICAL                      :: GOLDFILEFORMAT
 CHARACTER(LEN=3)             :: YFRC         ! To mark the different forcing dates
 CHARACTER(LEN=3)             :: YNUM3
+CHARACTER(LEN=6)             :: YPROGRAMFILE
 CHARACTER(LEN=15)            :: YVAL
 REAL, DIMENSION(KIU,KJU,KKU) :: ZWORK        ! to compute supersaturation
 TYPE(TFIELDMETADATA)         :: TZFIELD
@@ -455,6 +456,8 @@ ZWORK = 0.0
 !If TPINIFILE file was written with a MesoNH version < 5.6, some variables had different names or were not available
 GOLDFILEFORMAT = (        TPINIFILE%NMNHVERSION(1) < 5                                       &
                    .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) < 6 ) )
+!
+CALL IO_Field_read( TPINIFILE, 'PROGRAM', YPROGRAMFILE )
 !-------------------------------------------------------------------------------
 !
 !*       2.    READ PROGNOSTIC VARIABLES
@@ -506,8 +509,10 @@ SELECT CASE(HGETTKET)
       CALL IO_Field_read(TPINIFILE,'TKET',PTKET)
     END IF
     IF ( ( (TPINIFILE%NMNHVERSION(1)==5 .AND. TPINIFILE%NMNHVERSION(2)>0) .OR. TPINIFILE%NMNHVERSION(1)>5 ) &
-        .AND. (CCONF == 'RESTA') .AND. LSPLIT_CFL) THEN
-      CALL IO_Field_read(TPINIFILE,'TKEMS',PRTKEMS)
+        .AND. (CCONF == 'RESTA') .AND. LSPLIT_CFL .AND. TRIM(YPROGRAMFILE) == 'MESONH' ) THEN
+      CALL IO_Field_read( TPINIFILE, 'TKEMS', PRTKEMS )
+    ELSE
+      PRTKEMS(:,:,:) = 0.
     END IF
   CASE('INIT')
     PTKET(:,:,:)   = XTKEMIN
@@ -1060,7 +1065,7 @@ IF ( NSV_SNW >= 1 ) THEN
   END DO
 END IF
 !
-IF (CCONF == 'RESTA') THEN
+IF ( CCONF == 'RESTA' .AND. TRIM(YPROGRAMFILE) == 'MESONH' ) THEN
   IF (CTEMP_SCHEME/='LEFR') THEN
     CALL IO_Field_read(TPINIFILE,'US_PRES',PRUS_PRES)
     CALL IO_Field_read(TPINIFILE,'VS_PRES',PRVS_PRES)
-- 
GitLab