From ab20b563e30f5e233f21c31616ffac3686ec846d Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Thu, 7 Sep 2023 16:49:30 +0200
Subject: [PATCH] Jean W. 07/09/2023: integration SURFEX v9 bugfix must TRIM
 YSUFFIX to keep len(hrec) = MNH_LEN_HREC = 16 for mnh/surfex

---
 src/MNH/read_surf_mnh.f90  | 6 ++++--
 src/MNH/write_surf_mnh.f90 | 5 +++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90
index e7758a91c..3e1cb2471 100644
--- a/src/MNH/read_surf_mnh.f90
+++ b/src/MNH/read_surf_mnh.f90
@@ -24,6 +24,7 @@ use modd_parameters, only: NMNHNAMELGTMAX
 use mode_field,      only: Find_field_id_from_mnhname
 !
 CHARACTER(LEN=MNH_LEN_HREC),INTENT(IN)  :: HREC     ! name of the article to write
+!CHARACTER(LEN=*),INTENT(IN)  :: HREC     ! name of the article to write
 CHARACTER(LEN=2),       INTENT(IN)  :: HDIR     ! Expected type of the data field (XX,XY,--...)
 INTEGER,                INTENT(IN)  :: KGRID    ! Localization on the model grid
 INTEGER,                INTENT(IN)  :: KTYPE    ! Datatype
@@ -1597,10 +1598,11 @@ CHARACTER(LEN=*),       INTENT(OUT) :: HCOMMENT ! comment
 !*      0.2   Declarations of local variables
 !
 CHARACTER(LEN=4), PARAMETER :: YSUFFIX = '_SFX'
-
+CHARACTER(LEN=MNH_LEN_HREC)           :: YREC
 INTEGER           :: ILUOUT
 TYPE(TFIELDMETADATA)  :: TZFIELD
 !-------------------------------------------------------------------------------
+YREC=TRIM(HREC)//YSUFFIX
 CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFL0_MNH',TRIM(TPINFILE%CNAME)//': reading '//TRIM(HREC))
 !
 ILUOUT = TOUT%NLU
@@ -1628,7 +1630,7 @@ ELSE
   ! Add a suffix to logical variables coming from SURFEX
   ! This is done because some variables can have the same name than MesoNH variables
   ! This suffix has been added in MesoNH 5.6.0
-  CALL PREPARE_METADATA_READ_SURF(TRIM(HREC)//YSUFFIX,'--',0,TYPELOG,0,'READ_SURFL0_MNH',TZFIELD)
+  CALL PREPARE_METADATA_READ_SURF(YREC,'--',0,TYPELOG,0,'READ_SURFL0_MNH',TZFIELD)
   CALL IO_Field_read(TPINFILE,TZFIELD,OFIELD,KRESP)
 
   IF ( KRESP /= 0 ) THEN
diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90
index e4db463b1..646bf9ed6 100644
--- a/src/MNH/write_surf_mnh.f90
+++ b/src/MNH/write_surf_mnh.f90
@@ -1361,10 +1361,11 @@ CHARACTER(LEN=100),     INTENT(IN)  :: HCOMMENT ! Comment string
 !*      0.2   Declarations of local variables
 !
 CHARACTER(LEN=4), PARAMETER :: YSUFFIX = '_SFX'
-
+CHARACTER(LEN=MNH_LEN_HREC)    :: YREC
 CHARACTER(LEN=5)     :: YMSG
 TYPE(TFIELDMETADATA) :: TZFIELD
 !
+YREC=TRIM(HREC)//YSUFFIX
 CALL PRINT_MSG(NVERB_DEBUG,'IO','WRITE_SURFL0_MNH',TRIM(TFILE_SURFEX%CNAME)//': writing '//TRIM(HREC))
 !
 IF( (CMASK /= 'FULL  ').AND. (HREC=='COVER') ) THEN
@@ -1375,7 +1376,7 @@ ELSE
   ! Add a suffix to logical variables coming from SURFEX
   ! This is done because some variables can have the same name than MesoNH variables
   ! This suffix has been added in MesoNH 5.6.0
-  CALL PREPARE_METADATA_WRITE_SURF(TRIM(HREC)//YSUFFIX,'--',HCOMMENT,0,TYPELOG,0,'WRITE_SURFL0_MNH',TZFIELD)
+  CALL PREPARE_METADATA_WRITE_SURF(YREC,'--',HCOMMENT,0,TYPELOG,0,'WRITE_SURFL0_MNH',TZFIELD)
   CALL IO_Field_write(TFILE_SURFEX,TZFIELD,OFIELD,KRESP)
 END IF
 !
-- 
GitLab