From 8c6597401a9682d0bb3aa7cf3e68834f9c0a602c Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Mon, 28 Jun 2021 10:35:53 +0200
Subject: [PATCH] Philippe 28/06/2021: IO: better management of pre-5.5 files
 (default values for missing fields instead of crash)

---
 src/MNH/ini_segn.f90   | 3 ++-
 src/MNH/read_field.f90 | 6 ++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 1663871b9..590efa55c 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -441,7 +441,8 @@ END IF
 ! routine which read related informations in the EXSEG descriptor in order to 
 ! check coherence between both informations.
 !
-CALL IO_Field_read(TPINIFILE,'LOCEAN',LOCEAN)
+CALL IO_Field_read(TPINIFILE,'LOCEAN',LOCEAN,IRESP)
+IF ( IRESP /= 0 ) LOCEAN = .FALSE.
 !
 CALL READ_EXSEG_n(KMI,TZFILE_DES,YCONF,GFLAT,GUSERV,GUSERC,                 &
                 GUSERR,GUSERI,GUSECI,GUSERS,GUSERG,GUSERH,GUSECHEM,         &
diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index f6ae881a7..1f8d4b3ca 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -641,7 +641,6 @@ IF (LIBM .AND. CPROGRAM=='MESONH') THEN
    !
 ENDIF
 !
-ZLRECYCL=.FALSE.
 TZFIELD%CMNHNAME   = 'RECYCLING'
 TZFIELD%CLONGNAME  = 'RECYCLING'
 TZFIELD%CSTDNAME   = ''
@@ -651,7 +650,10 @@ TZFIELD%NGRID      = 1
 TZFIELD%NTYPE      = TYPELOG
 TZFIELD%NDIMS      = 0
 TZFIELD%LTIMEDEP   = .FALSE. 
-CALL IO_Field_read(TPINIFILE,TZFIELD,ZLRECYCL)
+CALL IO_Field_read(TPINIFILE,TZFIELD,ZLRECYCL,IRESP)
+!If field not found (file from older version of MesoNH) => set ZLRECYCL to false
+IF ( IRESP /= 0 ) ZLRECYCL = .FALSE.
+
 IF (ZLRECYCL) THEN
   !
   TZFIELD%CMNHNAME   = 'RCOUNT'
-- 
GitLab