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