From d44833388fac2f691106bef76cbed32c504fb7d1 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Tue, 12 Sep 2017 17:25:45 +0200
Subject: [PATCH] Philippe 12/09/2017: IO: MNH: length of record name is set
 with LEN_HREC

---
 src/MNH/advection_metsv.f90            |  2 +-
 src/MNH/c2r2_adjust.f90                |  2 +-
 src/MNH/call_rttov11.f90               |  2 +-
 src/MNH/call_rttov8.f90                |  2 +-
 src/MNH/check_zhat.f90                 |  2 +-
 src/MNH/check_zs.f90                   |  2 +-
 src/MNH/compare_dad.f90                |  2 +-
 src/MNH/compute_r00.f90                |  2 +-
 src/MNH/free_atm_profile.f90           |  2 +-
 src/MNH/ice_adjust.f90                 |  2 +-
 src/MNH/ice_adjust_elec.f90            |  2 +-
 src/MNH/ini_aircraft_balloon.f90       |  2 +-
 src/MNH/ini_cpl.f90                    |  2 +-
 src/MNH/ini_deep_convection.f90        |  2 +-
 src/MNH/ini_lb.f90                     |  2 +-
 src/MNH/ini_ls.f90                     |  2 +-
 src/MNH/ini_modeln.f90                 |  2 +-
 src/MNH/ini_param_elec.f90             |  2 +-
 src/MNH/ini_prog_var.f90               |  2 +-
 src/MNH/ini_radiations.f90             |  2 +-
 src/MNH/ini_radiations_ecmwf.f90       |  2 +-
 src/MNH/ini_segn.f90                   |  2 +-
 src/MNH/ini_size_spawn.f90             |  2 +-
 src/MNH/ini_sizen.f90                  |  2 +-
 src/MNH/ini_spectren.f90               |  2 +-
 src/MNH/ini_surf_rad.f90               |  2 +-
 src/MNH/init_for_convlfi.f90           |  2 +-
 src/MNH/khko_notadjust.f90             |  2 +-
 src/MNH/lima_adjust.f90                |  2 +-
 src/MNH/ls_coupling.f90                |  2 +-
 src/MNH/menu_diachro.f90               | 16 ++++++------
 src/MNH/mnhread_zs_dummyn.f90          |  2 +-
 src/MNH/mnhwrite_zs_dummyn.f90         |  2 +-
 src/MNH/modd_budget.f90                |  2 +-
 src/MNH/mode_RBK90_Integrator.f90      |  2 +-
 src/MNH/modeln.f90                     |  2 +-
 src/MNH/paspol.f90                     |  2 +-
 src/MNH/prandtl.f90                    |  2 +-
 src/MNH/prep_pgd.f90                   |  2 +-
 src/MNH/radiations.f90                 |  2 +-
 src/MNH/rain_c2r2_khko.f90             |  2 +-
 src/MNH/rain_ice_elec.f90              |  2 +-
 src/MNH/read_all_data_grib_case.f90    |  4 +--
 src/MNH/read_dummy_gr_fieldn.f90       |  2 +-
 src/MNH/read_field.f90                 |  2 +-
 src/MNH/read_grid_time_mesonh_case.f90 |  2 +-
 src/MNH/read_hgrid.f90                 |  2 +-
 src/MNH/read_hgridn.f90                |  2 +-
 src/MNH/read_precip_field.f90          |  2 +-
 src/MNH/read_surf_mnh.f90              | 36 +++++++++++++-------------
 src/MNH/set_grid.f90                   |  2 +-
 src/MNH/set_ref.f90                    |  2 +-
 src/MNH/set_subdomain.f90              |  2 +-
 src/MNH/shallow_mf_pack.f90            |  2 +-
 src/MNH/spawn_field2.f90               |  6 ++---
 src/MNH/tke_eps_sources.f90            |  2 +-
 src/MNH/turb.f90                       |  2 +-
 src/MNH/turb_cloud_index.f90           |  2 +-
 src/MNH/turb_hor_dyn_corr.f90          |  2 +-
 src/MNH/turb_hor_sv_flux.f90           |  2 +-
 src/MNH/turb_hor_thermo_corr.f90       |  2 +-
 src/MNH/turb_hor_thermo_flux.f90       |  2 +-
 src/MNH/turb_hor_uv.f90                |  2 +-
 src/MNH/turb_hor_uw.f90                |  2 +-
 src/MNH/turb_hor_vw.f90                |  2 +-
 src/MNH/turb_ver.f90                   |  2 +-
 src/MNH/turb_ver_dyn_flux.f90          |  2 +-
 src/MNH/turb_ver_sv_flux.f90           |  2 +-
 src/MNH/turb_ver_thermo_corr.f90       |  2 +-
 src/MNH/turb_ver_thermo_flux.f90       |  2 +-
 src/MNH/ver_thermo.f90                 |  2 +-
 src/MNH/write_balloonn.f90             |  2 +-
 src/MNH/write_budget.f90               |  2 +-
 src/MNH/write_diachro.f90              |  2 +-
 src/MNH/write_dummy_gr_fieldn.f90      |  2 +-
 src/MNH/write_lbn.f90                  |  2 +-
 src/MNH/write_lfifm1_for_diag.f90      |  2 +-
 src/MNH/write_lfifm1_for_diag_supp.f90 |  2 +-
 src/MNH/write_lfifmn_fordiachron.f90   |  2 +-
 src/MNH/write_lfin.f90                 |  4 +--
 src/MNH/write_phys_param.f90           |  4 +--
 src/MNH/write_zsmt.f90                 |  2 +-
 src/MNH/zoom_pgd.f90                   |  2 +-
 src/MNH/zsmt_pgd.f90                   |  2 +-
 84 files changed, 113 insertions(+), 113 deletions(-)

diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90
index 8318e5f05..85421dc8e 100644
--- a/src/MNH/advection_metsv.f90
+++ b/src/MNH/advection_metsv.f90
@@ -259,7 +259,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 INTEGER             :: ILUOUT       ! logical unit
 INTEGER             :: ISPLIT_PPM   ! temporal time splitting 
 INTEGER             :: IIB, IIE, IJB, IJE
diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90
index 7025d323a..26873c0ae 100644
--- a/src/MNH/c2r2_adjust.f90
+++ b/src/MNH/c2r2_adjust.f90
@@ -221,7 +221,7 @@ INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 INTEGER             :: JITER,ITERMAX  ! iterative loop for first order adjustment
 INTEGER             :: ILUOUT     ! Logical unit of output listing 
 CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
 !-------------------------------------------------------------------------------
 !
 !*       1.     PRELIMINARIES
diff --git a/src/MNH/call_rttov11.f90 b/src/MNH/call_rttov11.f90
index 876ec667a..220a7f2fe 100644
--- a/src/MNH/call_rttov11.f90
+++ b/src/MNH/call_rttov11.f90
@@ -219,7 +219,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=22) :: YCOMMENT       ! Comment string
 CHARACTER(LEN=8)  :: YINST  
 CHARACTER(LEN=4)  :: YBEG, YEND
diff --git a/src/MNH/call_rttov8.f90 b/src/MNH/call_rttov8.f90
index 72a8a9100..2646bc96b 100644
--- a/src/MNH/call_rttov8.f90
+++ b/src/MNH/call_rttov8.f90
@@ -622,7 +622,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=22) :: YCOMMENT       ! Comment string
 CHARACTER(LEN=8)  :: YINST  
 CHARACTER(LEN=4)  :: YBEG, YEND
diff --git a/src/MNH/check_zhat.f90 b/src/MNH/check_zhat.f90
index cf2592d03..7c4207be1 100644
--- a/src/MNH/check_zhat.f90
+++ b/src/MNH/check_zhat.f90
@@ -109,7 +109,7 @@ REAL                :: ZLEN2                ! Decay scale for small-scale topogr
 INTEGER             :: IRESP                ! return-code if problems occured
 INTEGER             :: ILUOUT0              ! logical unit for file CLUOUT0
 INTEGER             :: IGRID,ILENCH         !   File 
-CHARACTER (LEN=16)  :: YRECFM               ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM               ! management
 CHARACTER (LEN=100) :: YCOMMENT             ! variables 
 LOGICAL             :: GTHINSHELL
 !
diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90
index b564a4dac..4c73d928f 100644
--- a/src/MNH/check_zs.f90
+++ b/src/MNH/check_zs.f90
@@ -110,7 +110,7 @@ INTEGER,             INTENT(IN)    :: KJINF     ! domain, compared to the old
 INTEGER             :: IRESP                ! return-code if problems occured
 INTEGER             :: ILUOUT0              ! logical unit for file CLUOUT0
 INTEGER             :: IGRID,ILENCH         !   File 
-CHARACTER (LEN=16)  :: YRECFM               ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM               ! management
 CHARACTER (LEN=100) :: YCOMMENT             ! variables 
 !
 INTEGER             :: IDXRATIO = 0         ! aspect ratios during previous
diff --git a/src/MNH/compare_dad.f90 b/src/MNH/compare_dad.f90
index b23db5199..abba81218 100644
--- a/src/MNH/compare_dad.f90
+++ b/src/MNH/compare_dad.f90
@@ -98,7 +98,7 @@ INTEGER             :: IIU_1,IIU_2    ! Upper dimension in x direction
 INTEGER             :: IJU_1,IJU_2    ! Upper dimension in y direction
 INTEGER             :: IKU_1,IKU_2    ! Upper dimension in z direction
 !
-CHARACTER (LEN=16) :: YRECFM
+CHARACTER (LEN=LEN_HREC) :: YRECFM
 INTEGER            :: ILENCH, IGRID
 CHARACTER (LEN=100):: YCOMMENT
 CHARACTER(LEN=2)    :: YDIR   ! Type  of the data field in LFIFM file
diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90
index a59a5c939..47da25091 100644
--- a/src/MNH/compute_r00.f90
+++ b/src/MNH/compute_r00.f90
@@ -99,7 +99,7 @@ INTEGER  :: ININAR               ! number of articles  present in
 INTEGER  :: ITYPE                ! type of file (conv2dia and transfer)
 !
 CHARACTER (LEN=100)                :: YCOMMENT
-CHARACTER (LEN=16)                 :: YRECFM
+CHARACTER (LEN=LEN_HREC)                 :: YRECFM
 INTEGER                            :: IFILECUR,JFILECUR,NIU,NJU,NKU,IGRID,ILENCH
 INTEGER                            :: NFILES,JLOOP
 REAL                               :: ZXOR,ZYOR,ZDX,ZDY
diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90
index e0bd002a1..be226a6ef 100644
--- a/src/MNH/free_atm_profile.f90
+++ b/src/MNH/free_atm_profile.f90
@@ -162,7 +162,7 @@ INTEGER                               :: IIMIN, IIMAX, IJMIN, IJMAX
 
 INTEGER           :: IRESP                !
 INTEGER           :: IGRID, ILENCH        !
-CHARACTER(LEN=16) :: YRECFM               ! name of field to be recorded
+CHARACTER(LEN=LEN_HREC) :: YRECFM               ! name of field to be recorded
 CHARACTER(LEN=100):: YCOMMENT             ! comment to be recorded
 
 REAL, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) &
diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90
index a04f63482..6e1a62996 100644
--- a/src/MNH/ice_adjust.f90
+++ b/src/MNH/ice_adjust.f90
@@ -253,7 +253,7 @@ INTEGER             :: ILENG      ! Length of comment string in LFIFM file
 INTEGER             :: IGRID      ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
 !
 INTEGER             :: IIU,IJU,IKU! dimensions of dummy arrays
 INTEGER             :: IIB,IJB    ! Horz index values of the first inner mass points
diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90
index 4c7b2c622..1f36d139c 100644
--- a/src/MNH/ice_adjust_elec.f90
+++ b/src/MNH/ice_adjust_elec.f90
@@ -287,7 +287,7 @@ INTEGER             :: ILENG      ! Length of comment string in LFIFM file
 INTEGER             :: IGRID      ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
 !
 INTEGER             :: IIU,IJU,IKU! dimensions of dummy arrays
 INTEGER             :: IIB,IJB    ! Horz index values of the first inner mass points
diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90
index 5b596df31..9af3141ec 100644
--- a/src/MNH/ini_aircraft_balloon.f90
+++ b/src/MNH/ini_aircraft_balloon.f90
@@ -134,7 +134,7 @@ CHARACTER(LEN=2)    :: YDIR   ! Type  of the data field in LFIFM file
 INTEGER             :: IGRID   ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH  ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT!comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM  ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM  ! Name of the desired field in LFIFM file
 
 !
 !----------------------------------------------------------------------------
diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90
index 7878ae970..7b102d7fd 100644
--- a/src/MNH/ini_cpl.f90
+++ b/src/MNH/ini_cpl.f90
@@ -308,7 +308,7 @@ REAL, DIMENSION(:,:,:,:),        INTENT(OUT) :: PLBYRS  ,PLBYSVS  ! in x and y-d
 INTEGER                :: ILUOUT                     !  Logical unit number
                                                      ! associated with HLUOUT 
 INTEGER                :: IGRID,ILENCH,IRESP,ININAR      !  File 
-CHARACTER (LEN=16)     :: YRECFM                               ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM                               ! management
 CHARACTER (LEN=100)    :: YCOMMENT                             ! variables 
 CHARACTER(LEN=2)       :: YDIR 
 CHARACTER (LEN=40)     :: YTITLE                     !  Title for date print 
diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90
index d3e9e033e..617602881 100644
--- a/src/MNH/ini_deep_convection.f90
+++ b/src/MNH/ini_deep_convection.f90
@@ -180,7 +180,7 @@ REAL, DIMENSION(:,:),   INTENT(INOUT) :: PCG_TOTAL_NUMBER ! Total number of CG
 !
 INTEGER                :: ILUOUT
 INTEGER                :: IGRID,ILENCH,IRESP  !   File 
-CHARACTER (LEN=16)     :: YRECFM                    ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM                    ! management
 CHARACTER (LEN=100)    :: YCOMMENT                  ! variables  
 INTEGER                :: JSV                       ! number of tracers
 !
diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90
index ced5e6c72..d468fed17 100644
--- a/src/MNH/ini_lb.f90
+++ b/src/MNH/ini_lb.f90
@@ -218,7 +218,7 @@ INTEGER             :: JSV,JRR                    ! Loop index for MOIST AND
                                                   !  additional scalar variables 
 INTEGER             :: IRR                        !  counter for moist variables
 INTEGER             :: IGRID,ILENCH,IRESP  !   File 
-CHARACTER (LEN=16)  :: YRECFM              ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM              ! management
 CHARACTER (LEN=100) :: YCOMMENT            ! variables  
 CHARACTER (LEN=2)   :: YDIR
 CHARACTER (LEN=4)   :: YDIRLB
diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90
index 25672c80b..7b8b7d34b 100644
--- a/src/MNH/ini_ls.f90
+++ b/src/MNH/ini_ls.f90
@@ -125,7 +125,7 @@ LOGICAL,               INTENT(IN),   OPTIONAL :: OSTEADY_DMASS ! Md evolution lo
 !*       0.2   declarations of local variables
 !
 INTEGER             :: IGRID,ILENCH,IRESP  !   File 
-CHARACTER (LEN=16)  :: YRECFM              ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM              ! management
 CHARACTER (LEN=100) :: YCOMMENT            ! variables  
 CHARACTER(LEN=2)    :: YDIR                ! 
 INTEGER                :: ILUOUT                     !  Logical unit number
diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90
index c9aa1051e..ffea563e7 100644
--- a/src/MNH/ini_modeln.f90
+++ b/src/MNH/ini_modeln.f90
@@ -452,7 +452,7 @@ CHARACTER(LEN=2)    :: YDIR   ! Type  of the data field in LFIFM file
 INTEGER             :: IGRID   ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH  ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT!comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM  ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM  ! Name of the desired field in LFIFM file
 INTEGER             :: IIU     ! Upper dimension in x direction (local)
 INTEGER             :: IJU     ! Upper dimension in y direction (local)
 INTEGER             :: IIU_ll  ! Upper dimension in x direction (global)
diff --git a/src/MNH/ini_param_elec.f90 b/src/MNH/ini_param_elec.f90
index e6b8039eb..8a3f2edf2 100644
--- a/src/MNH/ini_param_elec.f90
+++ b/src/MNH/ini_param_elec.f90
@@ -135,7 +135,7 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZMANSELL1, ZMANSELL2 ! Used to initialize
                                                           ! XMANSELL array
 INTEGER             :: IGRID,ILENCH,IRESP
 CHARACTER (LEN=100) :: YCOMMENT
-CHARACTER (LEN=16)  :: YRECFM
+CHARACTER (LEN=LEN_HREC)  :: YRECFM
 CHARACTER (LEN=2)   :: YDIR
 !
 INTEGER             :: JLWC, JTEMP
diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90
index 7494a0f41..f1a637a9b 100644
--- a/src/MNH/ini_prog_var.f90
+++ b/src/MNH/ini_prog_var.f90
@@ -148,7 +148,7 @@ CHARACTER(LEN=*), INTENT(IN), OPTIONAL  :: HCHEMFILE  ! Name of the chem file
 INTEGER                :: ILUOUT                     !  Logical unit number
                                                      ! associated with HLUOUT 
 INTEGER                :: IGRID,ILENCH,IRESP,ININAR      !  File 
-CHARACTER (LEN=16)     :: YRECFM                               ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM                               ! management
 CHARACTER (LEN=100)    :: YCOMMENT                             ! variables 
 CHARACTER(LEN=2)       :: YDIR 
 CHARACTER(LEN=32)      :: YDESFM
diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90
index 27926cdf6..2c4a1762f 100644
--- a/src/MNH/ini_radiations.f90
+++ b/src/MNH/ini_radiations.f90
@@ -177,7 +177,7 @@ REAL, DIMENSION(:,:,:),     INTENT(OUT) :: PRADEFF ! effective radius
 !*       0.2   declarations of local variables
 !
 INTEGER                :: IGRID,ILENCH,IRESP  !   File 
-CHARACTER (LEN=16)     :: YRECFM              ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM              ! management
 CHARACTER (LEN=100)    :: YCOMMENT            ! variables  
 !
 INTEGER, DIMENSION(0:11) :: IBIS, INOBIS ! Cumulative number of days per month
diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90
index 6c2cee16b..44e51a776 100644
--- a/src/MNH/ini_radiations_ecmwf.f90
+++ b/src/MNH/ini_radiations_ecmwf.f90
@@ -280,7 +280,7 @@ REAL, DIMENSION(:,:),ALLOCATABLE :: ZLON          ! longitude
 REAL, DIMENSION(SIZE(PSTATM,1)) :: ZZSTAT ! half level altitudes of standard atm.
 !
 INTEGER                :: IGRID,ILENCH,IRESP  !   File 
-CHARACTER (LEN=16)     :: YRECFM              ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM              ! management
 CHARACTER (LEN=100)    :: YCOMMENT            ! variables  
 !
 INTEGER :: IINFO_ll                   ! return code of parallel routine
diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90
index 503eebc72..61f716b43 100644
--- a/src/MNH/ini_segn.f90
+++ b/src/MNH/ini_segn.f90
@@ -219,7 +219,7 @@ INTEGER            :: IRESP,ILUSEG,ININAR         ! File management variables
 INTEGER            :: IGRID,ILENCH                !             "
 CHARACTER(LEN=100) :: YCOMMENT                    !             "
 CHARACTER(LEN=2)   :: YDIR    ! Type  of the data field in LFIFM file
-CHARACTER (LEN=16) :: YRECFM  ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC) :: YRECFM  ! Name of the desired field in LFIFM file
 CHARACTER (LEN=5)  :: YCONF                       ! Local variables which have
 LOGICAL            :: GFLAT                       ! the same definition as the
 LOGICAL            :: GUSERV,GUSERC,GUSERR,GUSERI ! variables in module MODD_CONF,
diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90
index b0a17124a..3117f1f1f 100644
--- a/src/MNH/ini_size_spawn.f90
+++ b/src/MNH/ini_size_spawn.f90
@@ -132,7 +132,7 @@ CHARACTER (LEN=5)  :: YPRESOPT        ! Pressure solver option of model 1
 INTEGER            :: IITR            ! Iterations of pressure solver of model 1
 CHARACTER (LEN=28) :: YMY_NAME, YDAD_NAME
 CHARACTER (LEN=2)  :: YSTORAGE_TYPE
-CHARACTER (LEN=16) :: YRECFM
+CHARACTER (LEN=LEN_HREC) :: YRECFM
 INTEGER            :: ILENCH, IGRID
 CHARACTER (LEN=100):: YCOMMENT
 INTEGER            :: IMI
diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90
index 3a94236b6..c25a82751 100644
--- a/src/MNH/ini_sizen.f90
+++ b/src/MNH/ini_sizen.f90
@@ -150,7 +150,7 @@ CHARACTER(LEN=2)    :: YDIR    ! Type  of the data field in LFIFM file
 INTEGER             :: IGRID   ! C-grid indicator in LFIFM file 
 INTEGER             :: ILENCH  ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM  ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM  ! Name of the desired field in LFIFM file
 INTEGER             :: IJPHEXT
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90
index 15bc6f897..15322b6a9 100644
--- a/src/MNH/ini_spectren.f90
+++ b/src/MNH/ini_spectren.f90
@@ -157,7 +157,7 @@ CHARACTER(LEN=2)    :: YDIR   ! Type  of the data field in LFIFM file
 INTEGER             :: IGRID   ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH  ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT!comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM  ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM  ! Name of the desired field in LFIFM file
 INTEGER             :: IIU     ! Upper dimension in x direction (local)
 INTEGER             :: IJU     ! Upper dimension in y direction (local)
 INTEGER             :: IIU_ll  ! Upper dimension in x direction (global)
diff --git a/src/MNH/ini_surf_rad.f90 b/src/MNH/ini_surf_rad.f90
index 9eb2433c7..b42199c00 100644
--- a/src/MNH/ini_surf_rad.f90
+++ b/src/MNH/ini_surf_rad.f90
@@ -82,7 +82,7 @@ REAL, DIMENSION(:,:),   INTENT(OUT) :: PTSRAD    ! radiative surface temperature
 !*       0.2   declarations of local variables
 !
 INTEGER                :: IGRID,ILENCH,IRESP  !   File 
-CHARACTER (LEN=16)     :: YRECFM              ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM              ! management
 CHARACTER (LEN=100)    :: YCOMMENT            ! variables  
 !
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/init_for_convlfi.f90 b/src/MNH/init_for_convlfi.f90
index 7384e4cdc..518ed32ce 100644
--- a/src/MNH/init_for_convlfi.f90
+++ b/src/MNH/init_for_convlfi.f90
@@ -106,7 +106,7 @@ CHARACTER(LEN=*),       INTENT(IN)    :: HLUOUT      ! output listing
 !*       0.2   Local variables
 !
 INTEGER  :: IGRID,ILENCH,IRESP,ILUOUT          ! return code of file management
-CHARACTER (LEN=16)     :: YRECFM               ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM               ! management
 CHARACTER (LEN=100)    :: YCOMMENT             ! variables
 CHARACTER (LEN=2)      :: YDIR                 !
 INTEGER, DIMENSION(3)  :: ITDATE               ! date array
diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90
index d4b667566..303fbc4d6 100644
--- a/src/MNH/khko_notadjust.f90
+++ b/src/MNH/khko_notadjust.f90
@@ -167,7 +167,7 @@ INTEGER             :: IGRID      ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH     ! Length of comment string in LFIFM file
 INTEGER             :: ILUOUT     ! Logical unit of output listing 
 CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
 
 ! For Activation :                       
 LOGICAL, DIMENSION(SIZE(PRHODREF,1),SIZE(PRHODREF,2),SIZE(PRHODREF,3)) &
diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90
index 1c2032fd9..ab37577e7 100644
--- a/src/MNH/lima_adjust.f90
+++ b/src/MNH/lima_adjust.f90
@@ -265,7 +265,7 @@ INTEGER                  :: IIE,IJE    ! Horz index values of the last inner mas
 INTEGER                  :: JITER,ITERMAX  ! iterative loop for first order adjustment
 INTEGER                  :: ILUOUT     ! Logical unit of output listing 
 CHARACTER (LEN=100)      :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)       :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)       :: YRECFM     ! Name of the desired field in LFIFM file
 !
 INTEGER                           :: ISIZE
 REAL, DIMENSION(:), ALLOCATABLE   :: ZRTMIN
diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90
index a7cb0438f..514aecbd5 100644
--- a/src/MNH/ls_coupling.f90
+++ b/src/MNH/ls_coupling.f90
@@ -263,7 +263,7 @@ REAL, DIMENSION(:,:,:,:),        INTENT(OUT) :: PLBYRS  ,PLBYSVS  ! in x and y-d
 INTEGER                :: ILUOUT                     !  Logical unit number
                                                      ! associated with HLUOUT 
 INTEGER                :: IGRID,ILENCH,IRESP   !  File 
-CHARACTER (LEN=16)     :: YRECFM                     ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM                     ! management
 CHARACTER (LEN=100)    :: YCOMMENT                   ! variables  
 CHARACTER(LEN=2)       :: YDIR
 REAL                   :: ZLENG                      ! Interpolation length
diff --git a/src/MNH/menu_diachro.f90 b/src/MNH/menu_diachro.f90
index c222f2a54..54e4b0225 100644
--- a/src/MNH/menu_diachro.f90
+++ b/src/MNH/menu_diachro.f90
@@ -74,9 +74,9 @@ CHARACTER(LEN=*) :: HFILEDIA, HLUOUTDIA
 !              ---------------
 
 !
-CHARACTER(LEN=16) :: YRECFM
+CHARACTER(LEN=LEN_HREC) :: YRECFM
 CHARACTER(LEN=20) :: YCOMMENT
-CHARACTER(LEN=16),DIMENSION(1500),SAVE    :: YGROUP
+CHARACTER(LEN=LEN_HREC),DIMENSION(1500),SAVE    :: YGROUP
 INTEGER   ::   ILENG, ILENCH, IGRID, J, JJ, IALREADY
 INTEGER   ::   IRESPDIA
 INTEGER,SAVE   ::   IGROUP=0
@@ -95,7 +95,7 @@ IF(HGROUP == 'END')THEN
     RETURN
   ENDIF
   IGRID=0
-  ILENG=16*IGROUP
+  ILENG=LEN_HREC*IGROUP
   ILENCH=LEN(YCOMMENT)
   YRECFM='MENU_BUDGET.DIM'
   CALL FMWRIT(HFILEDIA,YRECFM,HLUOUTDIA,'--',ILENG,&
@@ -104,8 +104,8 @@ IF(HGROUP == 'END')THEN
   YRECFM='MENU_BUDGET'
   ALLOCATE(ITABCHAR(ILENG))
   DO JJ=1,IGROUP
-    DO J = 1,16
-      ITABCHAR(16*(JJ-1)+J) = ICHAR(YGROUP(JJ)(J:J))
+    DO J = 1,LEN_HREC
+      ITABCHAR(LEN_HREC*(JJ-1)+J) = ICHAR(YGROUP(JJ)(J:J))
     ENDDO
   ENDDO
   CALL FMWRIT(HFILEDIA,YRECFM,HLUOUTDIA,'--',ITABCHAR, &
@@ -127,11 +127,11 @@ ELSE IF(HGROUP == 'READ')THEN
   YRECFM='MENU_BUDGET'
   CALL FMREAD(HFILEDIA,YRECFM,HLUOUTDIA,'--',ITABCHAR, &
   IGRID,ILENCH,YCOMMENT,IRESPDIA)
-  IGROUP=ILENG/16
+  IGROUP=ILENG/LEN_HREC
 ! print *,' ILENG ILENCH IGROUP ',ILENG,ILENCH,IGROUP
   DO JJ=1,IGROUP
-    DO J = 1,16
-      YGROUP(JJ)(J:J)=CHAR(ITABCHAR(16*(JJ-1)+J))
+    DO J = 1,LEN_HREC
+      YGROUP(JJ)(J:J)=CHAR(ITABCHAR(LEN_HREC*(JJ-1)+J))
     ENDDO
   ENDDO
   DO JJ=1,IGROUP
diff --git a/src/MNH/mnhread_zs_dummyn.f90 b/src/MNH/mnhread_zs_dummyn.f90
index 4f554c98b..6d9e2db05 100644
--- a/src/MNH/mnhread_zs_dummyn.f90
+++ b/src/MNH/mnhread_zs_dummyn.f90
@@ -88,7 +88,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be read
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 !
 INTEGER           :: IIU            ! X array size
diff --git a/src/MNH/mnhwrite_zs_dummyn.f90 b/src/MNH/mnhwrite_zs_dummyn.f90
index 7d68b018b..a2ba3ff72 100644
--- a/src/MNH/mnhwrite_zs_dummyn.f90
+++ b/src/MNH/mnhwrite_zs_dummyn.f90
@@ -84,7 +84,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
                                     ! at the open of the file in LFI  routines 
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be read
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be read
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 !
 !
diff --git a/src/MNH/modd_budget.f90 b/src/MNH/modd_budget.f90
index a132954f2..93658d229 100644
--- a/src/MNH/modd_budget.f90
+++ b/src/MNH/modd_budget.f90
@@ -74,7 +74,7 @@ CHARACTER(LEN=2), SAVE, DIMENSION(:,:),  & ! resulting string character of the
         ALLOCATABLE :: CBUACTION           ! transcription of the budget actions 
                                            ! (integer) read in  namelists or 
                                            ! set by default
-CHARACTER (LEN=16), SAVE, DIMENSION(:,:),& ! names of records on the FM file 
+CHARACTER (LEN=LEN_HREC), SAVE, DIMENSION(:,:),& ! names of records on the FM file 
                  ALLOCATABLE :: CBURECORD  ! for the budgets 
 !
 CHARACTER (LEN=99), SAVE, DIMENSION(:,:),& ! name of a process for a budget. It
diff --git a/src/MNH/mode_RBK90_Integrator.f90 b/src/MNH/mode_RBK90_Integrator.f90
index 3746e1712..4e1c88a42 100644
--- a/src/MNH/mode_RBK90_Integrator.f90
+++ b/src/MNH/mode_RBK90_Integrator.f90
@@ -303,7 +303,7 @@ INTEGER, INTENT(IN) :: KMI      ! model number
    REAL :: ros_A(15), ros_C(15), ros_M(6), ros_E(6), &
                     ros_Alpha(6), ros_Gamma(6), ros_ELO
    LOGICAL :: ros_NewF(6)
-   CHARACTER(LEN=LEN_HREC) :: ros_Name
+   CHARACTER(LEN=16) :: ros_Name
 !~~~>  Local variables
    REAL :: Roundoff, FacMin, FacMax, FacRej, FacSafe
    REAL :: Hmin, Hmax, Hstart
diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90
index 8b07c2ce1..5dca40ac1 100644
--- a/src/MNH/modeln.f90
+++ b/src/MNH/modeln.f90
@@ -444,7 +444,7 @@ REAL*8,DIMENSION(2)         :: ZTIME,ZTIME1,ZTIME2,ZEND,ZTOT,ZALL,ZTOT_PT
 REAL*8,DIMENSION(2)         :: ZTIME_STEP,ZTIME_STEP_PTS
 CHARACTER                 :: YMI
 INTEGER                   :: IPOINTS
-CHARACTER(len=LEN_HREC)         :: YTCOUNT,YPOINTS
+CHARACTER(len=16)         :: YTCOUNT,YPOINTS
 
 REAL         :: ZSTAT_CSTORE,ZSTAT_CBOUND,ZSTAT_CGUESS,ZSTAT_CADV,ZSTAT_CSOURCES
 REAL         :: ZSTAT_CDIFF,ZSTAT_CRELAX,ZSTAT_CPARAM
diff --git a/src/MNH/paspol.f90 b/src/MNH/paspol.f90
index a646154c3..b956876f4 100644
--- a/src/MNH/paspol.f90
+++ b/src/MNH/paspol.f90
@@ -146,7 +146,7 @@ REAL,  DIMENSION(:,:,:), ALLOCATABLE :: ZTEMPO, ZSVT ! Work array
 INTEGER           :: IGRID     ! IGRID : grid indicator
 INTEGER           :: ILENCH    ! ILENCH : length of comment string
 !
-CHARACTER(LEN=16) :: YRECFM    ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM    ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT  ! Comment string
 CHARACTER (LEN=2) :: YDIR      ! Type of the data field
 INTEGER           :: IRESP     ! IRESP  : return-code if a problem appears
diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90
index 9fedcde5c..a66ecfb7b 100644
--- a/src/MNH/prandtl.f90
+++ b/src/MNH/prandtl.f90
@@ -277,7 +277,7 @@ INTEGER             :: ILENG        ! Length of the data field in LFIFM file
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 INTEGER::  ISV                      ! number of scalar variables       
 INTEGER::  JSV                      ! loop index for the scalar variables  
 
diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90
index 2f5a3e205..be1891511 100644
--- a/src/MNH/prep_pgd.f90
+++ b/src/MNH/prep_pgd.f90
@@ -137,7 +137,7 @@ REAL, DIMENSION(:,:),ALLOCATABLE   :: ZWORK ! work array for lat and lon reshape
 REAL, DIMENSION(:,:),ALLOCATABLE   :: ZWORK_LAT ! work array for lat and lon reshape
 REAL, DIMENSION(:,:),ALLOCATABLE   :: ZWORK_LON ! work array for lat and lon reshape
 REAL, DIMENSION(:,:),ALLOCATABLE   :: ZZS ! work array for lat and lon reshape
-CHARACTER(LEN=16) :: YRECFM   ! name of record
+CHARACTER(LEN=LEN_HREC) :: YRECFM   ! name of record
 INTEGER           :: IGRID    ! grid location
 INTEGER           :: ILENCH   ! length of comment string
 CHARACTER(LEN=100):: YCOMMENT ! comment string
diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90
index 9101bfd49..0acb5111f 100644
--- a/src/MNH/radiations.f90
+++ b/src/MNH/radiations.f90
@@ -609,7 +609,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(SIZE(PDTHRAD,1),SIZE(PDTHRAD,2),SIZE(PDTHRAD,3)) &
      :: ZSTORE_3D, ZSTORE_3D2! 3D work array for storage
 REAL, DIMENSION(SIZE(PDTHRAD,1),SIZE(PDTHRAD,2)) &
diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90
index 77ed5a590..2c482fd43 100644
--- a/src/MNH/rain_c2r2_khko.f90
+++ b/src/MNH/rain_c2r2_khko.f90
@@ -426,7 +426,7 @@ REAL, DIMENSION(:), ALLOCATABLE    :: ZRTMIN
 REAL, DIMENSION(:), ALLOCATABLE    :: ZCTMIN
 REAL :: ZTMP
 CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
 !
 !
 !
diff --git a/src/MNH/rain_ice_elec.f90 b/src/MNH/rain_ice_elec.f90
index d2b1c005b..0e20f1992 100644
--- a/src/MNH/rain_ice_elec.f90
+++ b/src/MNH/rain_ice_elec.f90
@@ -458,7 +458,7 @@ REAL, DIMENSION(SIZE(XRTMIN))     :: ZRTMIN
 INTEGER , DIMENSION(SIZE(GMICRO)) :: I1,I2,I3 ! Used to replace the COUNT
 INTEGER                           :: JL       ! and PACK intrinsics
 CHARACTER (LEN=100) :: YCOMMENT   ! Comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM     ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM     ! Name of the desired field in LFIFM file
 !
 LOGICAL, DIMENSION(:,:),ALLOCATABLE :: GELEC ! Logical of work for elec
 REAL, DIMENSION(:),   ALLOCATABLE :: ZRSMIN_ELEC  ! Limit value of ZRXS where charge is available
diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90
index 91d0ac3d3..e55c8e12a 100644
--- a/src/MNH/read_all_data_grib_case.f90
+++ b/src/MNH/read_all_data_grib_case.f90
@@ -278,7 +278,7 @@ INTEGER  :: IDATE
 INTEGER  :: ITIMESTEP
 CHARACTER(LEN=10) :: CSTEPUNIT
 !chemistery field
-CHARACTER(LEN=LEN_HREC)                  :: YPRE_MOC="PRE_MOC1.nam"
+CHARACTER(LEN=16)                  :: YPRE_MOC="PRE_MOC1.nam"
 INTEGER, DIMENSION(:), ALLOCATABLE :: INUMGRIB, INUMLEV  ! grib
 INTEGER, DIMENSION(:), ALLOCATABLE :: INUMLEV1, INUMLEV2 !numbers
 INTEGER                            :: IMOC
@@ -287,7 +287,7 @@ INTEGER                            :: ICHANNEL
 INTEGER                            :: INDX
 INTEGER                            :: INACT
 CHARACTER(LEN=40)                  :: YINPLINE        ! input line
-CHARACTER(LEN=LEN_HREC)                  :: YFIELD
+CHARACTER(LEN=16)                  :: YFIELD
 CHARACTER, PARAMETER               :: YPTAB = CHAR(9) ! TAB character is ASCII : 9
 CHARACTER, PARAMETER               :: YPCOM = CHAR(44)! COMma character is ASCII : 44
 CHARACTER(LEN=40), DIMENSION(:), ALLOCATABLE :: YMNHNAME ! species names
diff --git a/src/MNH/read_dummy_gr_fieldn.f90 b/src/MNH/read_dummy_gr_fieldn.f90
index 0a733a324..1cf432567 100644
--- a/src/MNH/read_dummy_gr_fieldn.f90
+++ b/src/MNH/read_dummy_gr_fieldn.f90
@@ -126,7 +126,7 @@ LOGICAL,                         INTENT(IN) :: OREAD_ALL       ! flag to read th
 !*       0.2   declarations of local variables
 !
 INTEGER             :: IGRID,ILENCH,IRESP         !   File 
-CHARACTER (LEN=16)  :: YRECFM                     ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM                     ! management
 CHARACTER (LEN=100) :: YCOMMENT                   ! variables
 CHARACTER (LEN=20 ) :: YSTRING20                  ! string
 CHARACTER (LEN=3  ) :: YSTRING03                  ! string
diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90
index f9d403154..2676b6c8e 100644
--- a/src/MNH/read_field.f90
+++ b/src/MNH/read_field.f90
@@ -377,7 +377,7 @@ REAL, DIMENSION(KIU,KJU,KKU) :: Z3D               ! 3D array used to read  data
                                                   ! in initial file 
 REAL, DIMENSION(KIU,KJU,KKU) :: ZWORK             ! to compute supersaturation 
 INTEGER             :: IGRID,ILENCH,IRESP         !   File 
-CHARACTER (LEN=16)  :: YRECFM                     ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM                     ! management
 CHARACTER (LEN=100) :: YCOMMENT                   ! variables 
 CHARACTER (LEN=2)   :: YDIR                       !
 INTEGER             :: ILUOUT                     ! Unit number for prints
diff --git a/src/MNH/read_grid_time_mesonh_case.f90 b/src/MNH/read_grid_time_mesonh_case.f90
index 268b5fdf8..0919d6b04 100644
--- a/src/MNH/read_grid_time_mesonh_case.f90
+++ b/src/MNH/read_grid_time_mesonh_case.f90
@@ -128,7 +128,7 @@ INTEGER            :: ILENCH     ! length of comment string
 INTEGER            :: IMASDEV    ! Masdev version
 
 CHARACTER(LEN=100) :: YCOMMENT   ! comment string
-CHARACTER(LEN=16)  :: YRECFM     ! Name of the article to be read
+CHARACTER(LEN=LEN_HREC)  :: YRECFM     ! Name of the article to be read
 INTEGER            :: JL         ! loop controls
 INTEGER            :: ILMAX_LS
 !
diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90
index aff3b67d5..d7e1e4ed5 100644
--- a/src/MNH/read_hgrid.f90
+++ b/src/MNH/read_hgrid.f90
@@ -110,7 +110,7 @@ CHARACTER(LEN=2) , INTENT(OUT) :: HSTORAGE_TYPE
 !
 !*       0.2   declarations of local variables
 !
-CHARACTER(LEN=16)      :: YRECFM
+CHARACTER(LEN=LEN_HREC)      :: YRECFM
 INTEGER                :: IGRID,ILENCH,IRESP
 CHARACTER(LEN=100)     :: YCOMMENT
 INTEGER                :: IMASDEV
diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90
index 91e0c6711..57fdcb2b8 100644
--- a/src/MNH/read_hgridn.f90
+++ b/src/MNH/read_hgridn.f90
@@ -105,7 +105,7 @@ CHARACTER(LEN=2) , INTENT(OUT) :: HSTORAGE_TYPE
 !*       0.2   declarations of local variables
 !
 INTEGER             :: ILUOUT
-CHARACTER (LEN=16)  :: YRECFM
+CHARACTER (LEN=LEN_HREC)  :: YRECFM
 INTEGER             :: ILENCH, IGRID, IRESP
 CHARACTER (LEN=100) :: YCOMMENT
 REAL                :: ZLAT0,ZLON0,ZRPK,ZBETA
diff --git a/src/MNH/read_precip_field.f90 b/src/MNH/read_precip_field.f90
index 51336a7f8..e2a66e194 100644
--- a/src/MNH/read_precip_field.f90
+++ b/src/MNH/read_precip_field.f90
@@ -141,7 +141,7 @@ REAL, DIMENSION(SIZE(PINPRR,1),SIZE(PINPRR,2)) :: Z2D ! 2D array to read  data
 REAL, DIMENSION(SIZE(PINPRR3D,1),SIZE(PINPRR3D,2),SIZE(PINPRR3D,3)) :: Z3D ! 3D array to read  data
                                                   ! in initial file 
 INTEGER             :: IGRID,ILENCH,IRESP         !   File 
-CHARACTER (LEN=16)  :: YRECFM                     ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM                     ! management
 CHARACTER (LEN=100) :: YCOMMENT                   ! variables   
 CHARACTER(LEN=2)    :: YDIR
 CHARACTER(LEN=4)    :: YGETRCT,YGETRRT,YGETRST,YGETRGT,YGETRHT                    
diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90
index 74917206e..1493067cd 100644
--- a/src/MNH/read_surf_mnh.f90
+++ b/src/MNH/read_surf_mnh.f90
@@ -60,7 +60,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),  INTENT(IN)  :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),  INTENT(IN)  :: HREC     ! name of the article to be read
 REAL,               INTENT(OUT) :: PFIELD   ! the real scalar to be read
 INTEGER,            INTENT(OUT) :: KRESP    ! KRESP  : return-code if a problem appears
 CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment
@@ -195,7 +195,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),   INTENT(IN) :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),   INTENT(IN) :: HREC     ! name of the article to be read
 INTEGER,             INTENT(IN) :: KL       !  number of points
 REAL, DIMENSION(KL), INTENT(OUT):: PFIELD   ! array containing the data field
 INTEGER,             INTENT(OUT):: KRESP    ! KRESP  : return-code if a problem appears
@@ -217,7 +217,7 @@ REAL, DIMENSION(:),   ALLOCATABLE :: ZWORK1D! work array read in the file
 REAL                              :: ZW     ! work value
 
 INTEGER           :: IMASDEV
-CHARACTER(LEN=20) :: YREC
+CHARACTER(LEN=LEN_HREC) :: YREC
 CHARACTER(LEN=2)  :: YSTORAGE_TYPE
 !
 INTEGER           :: IIU, IJU, IIB, IJB, IIE, IJE ! dimensions of horizontal fields
@@ -458,7 +458,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),       INTENT(IN)  :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),       INTENT(IN)  :: HREC     ! name of the article to be read
 INTEGER,                 INTENT(IN)  :: KL1      ! number of points
 INTEGER,                 INTENT(IN)  :: KL2      ! second dimension
 REAL, DIMENSION(KL1,KL2),INTENT(OUT) :: PFIELD   ! array containing the data field
@@ -587,7 +587,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),   INTENT(IN) :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),   INTENT(IN) :: HREC     ! name of the article to be read
 INTEGER,             INTENT(IN) :: KL1,KL2  !  number of points
 REAL, DIMENSION(KL1,KL2), INTENT(OUT):: PFIELD   ! array containing the data field
 LOGICAL,DIMENSION(JPCOVER),   INTENT(IN) ::OFLAG  ! mask for array filling
@@ -605,7 +605,7 @@ INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string
 
 INTEGER           :: IMASDEV
-CHARACTER(LEN=20) :: YREC
+CHARACTER(LEN=LEN_HREC) :: YREC
 CHARACTER(LEN=2)  :: YDIR
 CHARACTER(LEN=2)  :: YSTORAGE_TYPE
 !
@@ -755,7 +755,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),   INTENT(IN) :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),   INTENT(IN) :: HREC     ! name of the article to be read
 INTEGER,             INTENT(IN) :: KL1  !  number of points
 INTEGER,             INTENT(IN) :: KCOVER ! index of the vertical level, it should be a index such that LCOVER(KCOVER)=.TRUE.
 REAL, DIMENSION(KL1), INTENT(OUT):: PFIELD   ! array containing the data field
@@ -773,7 +773,7 @@ INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string
 
 INTEGER           :: IMASDEV
-CHARACTER(LEN=20) :: YREC
+CHARACTER(LEN=LEN_HREC) :: YREC
 CHARACTER(LEN=2)  :: YDIR
 CHARACTER(LEN=2)  :: YSTORAGE_TYPE
 !
@@ -915,7 +915,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),  INTENT(IN)  :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),  INTENT(IN)  :: HREC     ! name of the article to be read
 INTEGER,            INTENT(OUT) :: KFIELD   ! the integer to be read
 INTEGER,            INTENT(OUT) :: KRESP    ! KRESP  : return-code if a problem appears
 CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment
@@ -935,7 +935,7 @@ INTEGER           :: INFO_ll
 LOGICAL, DIMENSION(255) :: GCOVER
 REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZCOVER
 INTEGER :: JCOVER
-CHARACTER(LEN=16) :: YRECFM
+CHARACTER(LEN=LEN_HREC) :: YRECFM
 !JUANZ
 INTEGER           :: NCOVER,ICOVER,IKL2
 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZWORK3D
@@ -1087,7 +1087,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),      INTENT(IN)  :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),      INTENT(IN)  :: HREC     ! name of the article to be read
 INTEGER,                INTENT(IN)  :: KL       ! number of points
 INTEGER, DIMENSION(KL), INTENT(OUT) :: KFIELD   ! the integer to be read
 INTEGER,                INTENT(OUT) :: KRESP    ! KRESP  : return-code if a problem appears
@@ -1189,7 +1189,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),  INTENT(IN)  :: HREC      ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),  INTENT(IN)  :: HREC      ! name of the article to be read
 CHARACTER(LEN=40),  INTENT(OUT) :: HFIELD    ! the integer to be read
 INTEGER,            INTENT(OUT) :: KRESP     ! KRESP  : return-code if a problem appears
 CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT  ! comment
@@ -1333,7 +1333,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),      INTENT(IN)  :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),      INTENT(IN)  :: HREC     ! name of the article to be read
 INTEGER,                INTENT(IN)  :: KL       ! number of points
 LOGICAL, DIMENSION(KL), INTENT(OUT) :: OFIELD   ! array containing the data field
 INTEGER,                INTENT(OUT) :: KRESP    ! KRESP  : return-code if a problem appears
@@ -1439,7 +1439,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),  INTENT(IN)  :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),  INTENT(IN)  :: HREC     ! name of the article to be read
 LOGICAL,            INTENT(OUT) :: OFIELD   ! array containing the data field
 INTEGER,            INTENT(OUT) :: KRESP    ! KRESP  : return-code if a problem appears
 CHARACTER(LEN=100), INTENT(OUT) :: HCOMMENT ! comment
@@ -1534,7 +1534,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),  INTENT(IN)    :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),  INTENT(IN)    :: HREC     ! name of the article to be read
 INTEGER,            INTENT(OUT)   :: KYEAR    ! year
 INTEGER,            INTENT(OUT)   :: KMONTH   ! month
 INTEGER,            INTENT(OUT)   :: KDAY     ! day
@@ -1547,7 +1547,7 @@ CHARACTER(LEN=100), INTENT(OUT)   :: HCOMMENT ! comment
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string
 !
-CHARACTER(LEN=16)              :: YRECFM     ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC)              :: YRECFM     ! Name of the article to be written
 CHARACTER(LEN=40)              :: YFILETYPE40! MESONH file type
 CHARACTER(LEN=2)               :: YFILETYPE2 ! MESONH file type
 INTEGER, DIMENSION(3)  :: ITDATE
@@ -1650,7 +1650,7 @@ IMPLICIT NONE
 !
 !*      0.1   Declarations of arguments
 !
-CHARACTER(LEN=16),  INTENT(IN)    :: HREC     ! name of the article to be read
+CHARACTER(LEN=LEN_HREC),  INTENT(IN)    :: HREC     ! name of the article to be read
 INTEGER,            INTENT(IN) :: KL1       ! number of points
 
 INTEGER, DIMENSION(KL1), INTENT(OUT)   :: KYEAR    ! year
@@ -1665,7 +1665,7 @@ CHARACTER(LEN=100), INTENT(OUT)   :: HCOMMENT ! comment
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string
 !
-CHARACTER(LEN=16)              :: YRECFM     ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC)              :: YRECFM     ! Name of the article to be written
 CHARACTER(LEN=40)              :: YFILETYPE40! MESONH file type
 CHARACTER(LEN=2)               :: YFILETYPE2 ! MESONH file type
 INTEGER, DIMENSION(3,KL1)  :: ITDATE
diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90
index 64af97f94..e96bab607 100644
--- a/src/MNH/set_grid.f90
+++ b/src/MNH/set_grid.f90
@@ -330,7 +330,7 @@ REAL, DIMENSION(:), ALLOCATABLE   :: ZYHAT_ll    !   Position y in the conformal
 REAL                         :: ZXHATM,ZYHATM    ! coordinates of mass point
 REAL                         :: ZLATORI, ZLONORI ! lat and lon of left-bottom point
 INTEGER                :: IGRID,ILENCH,IRESP  !   File
-CHARACTER (LEN=16)     :: YRECFM              ! management
+CHARACTER (LEN=LEN_HREC)     :: YRECFM              ! management
 CHARACTER (LEN=100)    :: YCOMMENT            ! variables
 CHARACTER (LEN=2)      :: YDIR                !
 INTEGER, DIMENSION(3)  :: ITDATE           ! date array
diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90
index 479fa8bf6..be247965d 100644
--- a/src/MNH/set_ref.f90
+++ b/src/MNH/set_ref.f90
@@ -213,7 +213,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHODJ    ! rhod J
 !*       0.2   declarations of local variables
 !
 INTEGER             :: IGRID,ILENCH,IRESP        !   File 
-CHARACTER (LEN=16)  :: YRECFM                    ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM                    ! management
 CHARACTER (LEN=100) :: YCOMMENT                  ! variables  
 CHARACTER  (LEN=2)  :: YDIR 
 INTEGER             :: ILUOUT                    ! Unit number for prints
diff --git a/src/MNH/set_subdomain.f90 b/src/MNH/set_subdomain.f90
index 001d82105..41b385180 100644
--- a/src/MNH/set_subdomain.f90
+++ b/src/MNH/set_subdomain.f90
@@ -137,7 +137,7 @@ REAL, DIMENSION(:),   ALLOCATABLE :: ZXHAT      ! = XXHAT(:)
 REAL, DIMENSION(:),   ALLOCATABLE :: ZYHAT      ! = XYHAT(:)
 !
 INTEGER             :: IGRID,ILENCH         !   File
-CHARACTER (LEN=16)  :: YRECFM               ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM               ! management
 CHARACTER (LEN=100) :: YCOMMENT             ! variables
 LOGICAL :: GFOUND     ! return code when searching namelist
 !
diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90
index a91a1d972..e6fe763f0 100644
--- a/src/MNH/shallow_mf_pack.f90
+++ b/src/MNH/shallow_mf_pack.f90
@@ -259,7 +259,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file 
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !------------------------------------------------------------------------
 
 !!! 1. Initialisation
diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90
index ae8476c64..45617fb5f 100644
--- a/src/MNH/spawn_field2.f90
+++ b/src/MNH/spawn_field2.f90
@@ -272,9 +272,9 @@ REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZRT1
 LOGICAL :: GUSERV
 !
 INTEGER             :: IGRID,ILENCH   !   File
-CHARACTER (LEN=16)  :: YRECFM         ! management
-CHARACTER (LEN=16)  :: YRECFM_T        ! management
-CHARACTER (LEN=16)  :: YRECFM_M        ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM         ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM_T        ! management
+CHARACTER (LEN=LEN_HREC)  :: YRECFM_M        ! management
 CHARACTER (LEN=100) :: YCOMMENT       ! variables
 CHARACTER (LEN=2)   :: YDIR
 !
diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90
index b07ae8d7f..f8716dace 100644
--- a/src/MNH/tke_eps_sources.f90
+++ b/src/MNH/tke_eps_sources.f90
@@ -268,7 +268,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 TYPE(LIST_ll), POINTER :: TZFIELDDISS_ll ! list of fields to exchange
 INTEGER                :: IINFO_ll       ! return code of parallel routine
diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90
index ba6694e45..a1ed85f42 100644
--- a/src/MNH/turb.f90
+++ b/src/MNH/turb.f90
@@ -538,7 +538,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL                :: ZL0          ! Max. Mixing Length in Blakadar formula
 REAL                :: ZALPHA       ! proportionnality constant between Dz/2 and 
 !                                   ! BL89 mixing length near the surface
diff --git a/src/MNH/turb_cloud_index.f90 b/src/MNH/turb_cloud_index.f90
index fe6d17008..03a1fb888 100644
--- a/src/MNH/turb_cloud_index.f90
+++ b/src/MNH/turb_cloud_index.f90
@@ -145,7 +145,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 !-------------------------------------------------------------------------------
 !
diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90
index 216f2f5d5..cacfdac66 100644
--- a/src/MNH/turb_hor_dyn_corr.f90
+++ b/src/MNH/turb_hor_dyn_corr.f90
@@ -244,7 +244,7 @@ INTEGER             :: IKB,IKE
 INTEGER             :: IKU                                   
 INTEGER             :: JSV          ! scalar loop counter
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2),SIZE(PUM,3))  :: GX_U_M_PUM
 REAL, DIMENSION(SIZE(PVM,1),SIZE(PVM,2),SIZE(PVM,3))  :: GY_V_M_PVM
diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90
index c60ad2b59..e39d3eda9 100644
--- a/src/MNH/turb_hor_sv_flux.f90
+++ b/src/MNH/turb_hor_sv_flux.f90
@@ -192,7 +192,7 @@ INTEGER             :: IKB,IKE
 INTEGER             :: JSV          ! loop counter
 INTEGER             :: ISV          ! number of scalar var.
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1+JPVEXT:3+JPVEXT) :: ZCOEFF 
                                     ! coefficients for the uncentred gradient 
                                     ! computation near the ground
diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90
index 07f211706..af8c0894e 100644
--- a/src/MNH/turb_hor_thermo_corr.f90
+++ b/src/MNH/turb_hor_thermo_corr.f90
@@ -210,7 +210,7 @@ INTEGER             :: IKB,IKE,IKU
                                     ! Index values for the Beginning and End
                                     ! mass points of the domain  
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1+JPVEXT:3+JPVEXT) :: ZCOEFF 
                                     ! coefficients for the uncentred gradient 
                                     ! computation near the ground
diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90
index c61b7e549..a66b67944 100644
--- a/src/MNH/turb_hor_thermo_flux.f90
+++ b/src/MNH/turb_hor_thermo_flux.f90
@@ -226,7 +226,7 @@ INTEGER             :: IKB,IKE,IKU
                                     ! Index values for the Beginning and End
                                     ! mass points of the domain  
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1+JPVEXT:3+JPVEXT) :: ZCOEFF 
                                     ! coefficients for the uncentred gradient 
                                     ! computation near the ground
diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90
index ead785843..9fea6b9cb 100644
--- a/src/MNH/turb_hor_uv.f90
+++ b/src/MNH/turb_hor_uv.f90
@@ -219,7 +219,7 @@ INTEGER             :: IKB,IKE,IKU
                                     ! Index values for the Beginning and End
                                     ! mass points of the domain  
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 REAL, DIMENSION(SIZE(PUM,1),SIZE(PUM,2),SIZE(PUM,3))  :: GY_U_UV_PUM
 REAL, DIMENSION(SIZE(PVM,1),SIZE(PVM,2),SIZE(PVM,3))  :: GX_V_UV_PVM
diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90
index ef5ec34bd..57ce12d9c 100644
--- a/src/MNH/turb_hor_uw.f90
+++ b/src/MNH/turb_hor_uw.f90
@@ -198,7 +198,7 @@ INTEGER             :: IKB,IKE,IKU
                                     ! mass points of the domain  
 INTEGER             :: JSV          ! scalar loop counter
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 REAL, DIMENSION(SIZE(PWM,1),SIZE(PWM,2),SIZE(PWM,3))  :: GX_W_UW_PWM
 !
diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90
index 2918dfc39..c7da15c53 100644
--- a/src/MNH/turb_hor_vw.f90
+++ b/src/MNH/turb_hor_vw.f90
@@ -195,7 +195,7 @@ INTEGER             :: IKB,IKE,IKU
                                     ! mass points of the domain  
 INTEGER             :: JSV          ! scalar loop counter
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 REAL, DIMENSION(SIZE(PWM,1),SIZE(PWM,2),SIZE(PWM,3))  :: GY_W_VW_PWM
 !
diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90
index e4fb09672..9b8df9868 100644
--- a/src/MNH/turb_ver.f90
+++ b/src/MNH/turb_ver.f90
@@ -487,7 +487,7 @@ INTEGER             :: IRESP        ! Return code of FM routines
 INTEGER             :: IGRID        ! C-grid indicator in LFIFM file 
 INTEGER             :: ILENCH       ! Length of comment string in LFIFM file
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 LOGICAL :: GUSERV    ! flag to use water vapor
 INTEGER :: IKB,IKE   ! index value for the Beginning
diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90
index 3224c540b..92fcdd3fc 100644
--- a/src/MNH/turb_ver_dyn_flux.f90
+++ b/src/MNH/turb_ver_dyn_flux.f90
@@ -404,7 +404,7 @@ INTEGER             :: IKT          ! array size in k direction
 INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain
 INTEGER             :: JSV          ! scalar loop counter
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1) :: ZCOEFFLXU, &
                                     ZCOEFFLXV, ZUSLOPEM, ZVSLOPEM
                                     ! coefficients for the surface flux
diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90
index 35aef367a..1675dee94 100644
--- a/src/MNH/turb_ver_sv_flux.f90
+++ b/src/MNH/turb_ver_sv_flux.f90
@@ -366,7 +366,7 @@ INTEGER             :: JSV          ! loop counters
 INTEGER             :: JK           ! loop
 INTEGER             :: ISV          ! number of scalar var.
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 REAL :: ZTIME1, ZTIME2
 
diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90
index e3f63e18f..74ee521c8 100644
--- a/src/MNH/turb_ver_thermo_corr.f90
+++ b/src/MNH/turb_ver_thermo_corr.f90
@@ -441,7 +441,7 @@ INTEGER             :: IKB,IKE      ! I index values for the Beginning and End
                                     ! mass points of the domain in the 3 direct.
 INTEGER             :: I1,I2        ! For ZCOEFF allocation
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 REAL, DIMENSION(:,:,:),ALLOCATABLE  :: ZCOEFF
                                     ! coefficients for the uncentred gradient 
                                     ! computation near the ground
diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90
index 73c97baaf..b83254a7e 100644
--- a/src/MNH/turb_ver_thermo_flux.f90
+++ b/src/MNH/turb_ver_thermo_flux.f90
@@ -470,7 +470,7 @@ INTEGER             :: IKB,IKE      ! I index values for the Beginning and End
 INTEGER             :: IKT          ! array size in k direction
 INTEGER             :: IKTB,IKTE    ! start, end of k loops in physical domain 
 CHARACTER (LEN=100) :: YCOMMENT     ! comment string in LFIFM file
-CHARACTER (LEN=16)  :: YRECFM       ! Name of the desired field in LFIFM file
+CHARACTER (LEN=LEN_HREC)  :: YRECFM       ! Name of the desired field in LFIFM file
 !
 REAL :: ZTIME1, ZTIME2
 !
diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90
index 29fbd754d..c18d156f7 100644
--- a/src/MNH/ver_thermo.f90
+++ b/src/MNH/ver_thermo.f90
@@ -226,7 +226,7 @@ REAL,DIMENSION(SIZE(PJ,1),SIZE(PJ,2),SIZE(PJ,3))   :: ZRHOD,ZSUMRT
 !
 CHARACTER(LEN=100) :: YCOMMENT
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
-CHARACTER(LEN=16)  :: YRECFM
+CHARACTER(LEN=LEN_HREC)  :: YRECFM
 INTEGER      :: IINFO_ll
 TYPE(LIST_ll), POINTER :: TZFIELDS_ll => NULL()  ! list of fields to exchange
 !
diff --git a/src/MNH/write_balloonn.f90 b/src/MNH/write_balloonn.f90
index 37986ae61..b5ed03bf7 100644
--- a/src/MNH/write_balloonn.f90
+++ b/src/MNH/write_balloonn.f90
@@ -105,7 +105,7 @@ INTEGER            :: IRESP         ! IRESP  : return-code for fmwrit
 INTEGER            :: IGRID         ! IGRID : grid indicator
 CHARACTER (LEN=2)  :: YDIR          ! Type of the data field
 INTEGER            :: ILENCH        ! ILENCH : length of comment string
-CHARACTER(LEN=16)  :: YRECFM        ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC)  :: YRECFM        ! Name of the article to be written
 CHARACTER(LEN=100) :: YCOMMENT      ! Comment string
 !
 REAL               :: ZLAT          ! latitude of the balloon
diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90
index a50b48fd9..a606eb0be 100644
--- a/src/MNH/write_budget.f90
+++ b/src/MNH/write_budget.f90
@@ -165,7 +165,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=20) :: YCOMMENT       ! Comment string
 INTEGER           :: JT,JPROC,JMASK
 !
diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90
index 0569d601f..51d3c5c94 100644
--- a/src/MNH/write_diachro.f90
+++ b/src/MNH/write_diachro.f90
@@ -113,7 +113,7 @@ REAL,DIMENSION(:,:,:),OPTIONAL  :: PTRAJZ
 !              ---------------
 
 !
-CHARACTER(LEN=16) :: YRECFM
+CHARACTER(LEN=LEN_HREC) :: YRECFM
 CHARACTER(LEN=LEN(HFILEDIA)+4) :: YFILEDIA
 CHARACTER(LEN=100) :: YCOMMENT
 CHARACTER(LEN=3)  :: YJ
diff --git a/src/MNH/write_dummy_gr_fieldn.f90 b/src/MNH/write_dummy_gr_fieldn.f90
index 5ba90ee5d..21c1f0d90 100644
--- a/src/MNH/write_dummy_gr_fieldn.f90
+++ b/src/MNH/write_dummy_gr_fieldn.f90
@@ -85,7 +85,7 @@ INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string
 INTEGER           :: JDUMMY         ! loop counter
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 CHARACTER(LEN=20 ):: YSTRING20      ! string
 CHARACTER(LEN=3  ):: YSTRING03      ! string
diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90
index d017f3d11..aa2f06754 100644
--- a/src/MNH/write_lbn.f90
+++ b/src/MNH/write_lbn.f90
@@ -132,7 +132,7 @@ INTEGER            :: IRESP         ! IRESP  : return-code for fmwrit
 INTEGER            :: IGRID         ! IGRID : grid indicator
 CHARACTER (LEN=2)  :: YDIR          ! Type of the data field
 INTEGER            :: ILENCH        ! ILENCH : length of comment string 
-CHARACTER(LEN=16)  :: YRECFM        ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC)  :: YRECFM        ! Name of the article to be written
 CHARACTER(LEN=100) :: YCOMMENT      ! Comment string
 !
 INTEGER            :: IRR           ! Index for moist variables
diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90
index 2dee895ca..9cfabface 100644
--- a/src/MNH/write_lfifm1_for_diag.f90
+++ b/src/MNH/write_lfifm1_for_diag.f90
@@ -252,7 +252,7 @@ INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
 CHARACTER(LEN=28) :: YFMFILE        ! Temporary variable to store FM-file name
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 !
 CHARACTER(LEN=2)  :: YSTORAGE_TYPE  ! type of the new DIAG file ('DI')
diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90
index 8c5db78a9..bba0f8179 100644
--- a/src/MNH/write_lfifm1_for_diag_supp.f90
+++ b/src/MNH/write_lfifm1_for_diag_supp.f90
@@ -172,7 +172,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 !
 INTEGER           :: IIU,IJU,IKU,IIB,IJB,IKB,IIE,IJE,IKE ! Arrays bounds
diff --git a/src/MNH/write_lfifmn_fordiachron.f90 b/src/MNH/write_lfifmn_fordiachron.f90
index 3f59602ab..13b69e9eb 100644
--- a/src/MNH/write_lfifmn_fordiachron.f90
+++ b/src/MNH/write_lfifmn_fordiachron.f90
@@ -122,7 +122,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100) :: YCOMMENT       ! Comment string
 !
 LOGICAL                :: GPACK
diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90
index b982a8a35..d67f4f0b9 100644
--- a/src/MNH/write_lfin.f90
+++ b/src/MNH/write_lfin.f90
@@ -279,7 +279,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 CHARACTER (LEN=2) :: YDIR           ! Type of the data field
 !
@@ -306,7 +306,7 @@ INTEGER :: IMI ! Current model index
 !
 INTEGER           :: ICH_NBR        ! to write number and names of scalar 
 INTEGER,DIMENSION(:),ALLOCATABLE :: ICH_NAMES !(chem+aero+dust) variables
-CHARACTER(LEN=16),DIMENSION(:),ALLOCATABLE :: YDSTNAMES,YCHNAMES, YSLTNAMES
+CHARACTER(LEN=LEN_HREC),DIMENSION(:),ALLOCATABLE :: YDSTNAMES,YCHNAMES, YSLTNAMES
 INTEGER           :: ILREC,ILENG    !in NSV.DIM and NSV.TITRE
 INTEGER           :: INFO_ll
 INTEGER :: IKRAD
diff --git a/src/MNH/write_phys_param.f90 b/src/MNH/write_phys_param.f90
index db8256b61..1ce6ea982 100644
--- a/src/MNH/write_phys_param.f90
+++ b/src/MNH/write_phys_param.f90
@@ -172,7 +172,7 @@ INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears
 INTEGER           :: IGRID          ! IGRID : grid indicator
 INTEGER           :: ILENCH         ! ILENCH : length of comment string 
 !
-CHARACTER(LEN=16) :: YRECFM         ! Name of the article to be written
+CHARACTER(LEN=LEN_HREC) :: YRECFM         ! Name of the article to be written
 CHARACTER(LEN=100):: YCOMMENT       ! Comment string
 CHARACTER (LEN=2) :: YDIR           ! Type of the data field
 !
@@ -207,7 +207,7 @@ INTEGER :: KSPLT !
 !
 INTEGER           :: ICH_NBR        ! to write number and names of scalar 
 INTEGER,DIMENSION(:),ALLOCATABLE :: ICH_NAMES !(chem+aero+dust) variables
-CHARACTER(LEN=16),DIMENSION(:),ALLOCATABLE :: YDSTNAMES,YCHNAMES, YSLTNAMES
+CHARACTER(LEN=LEN_HREC),DIMENSION(:),ALLOCATABLE :: YDSTNAMES,YCHNAMES, YSLTNAMES
 INTEGER           :: ILREC,ILENG    !in NSV.DIM and NSV.TITRE
 INTEGER           :: INFO_ll
 !-------------------------------------------------------------------------------
diff --git a/src/MNH/write_zsmt.f90 b/src/MNH/write_zsmt.f90
index c184d33c6..a4da9dd37 100644
--- a/src/MNH/write_zsmt.f90
+++ b/src/MNH/write_zsmt.f90
@@ -77,7 +77,7 @@ CHARACTER(LEN=28),   INTENT(IN)  :: HFILE ! name of the input/output file
 !
 !
 INTEGER           :: IRESP    ! return code for I/O
-CHARACTER(LEN=16) :: YRECFM   ! name of record
+CHARACTER(LEN=LEN_HREC) :: YRECFM   ! name of record
 INTEGER           :: IGRID    ! grid location
 INTEGER           :: ILENCH   ! length of comment string
 CHARACTER(LEN=100):: YCOMMENT ! comment string
diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90
index ee07ef56a..ca50c69a1 100644
--- a/src/MNH/zoom_pgd.f90
+++ b/src/MNH/zoom_pgd.f90
@@ -95,7 +95,7 @@ INTEGER :: IINFO_ll
 INTEGER :: ININAR
 INTEGER :: IGRID
 INTEGER :: ILENCH
-CHARACTER (LEN=16) :: YRECFM   
+CHARACTER (LEN=LEN_HREC) :: YRECFM   
 CHARACTER(LEN=100) :: YCOMMENT
 CHARACTER(LEN=28)  :: YZOOMFILE             ! name of the output file
 CHARACTER(LEN=2)   :: YZOOMNBR
diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90
index da0fe8521..1550a904b 100644
--- a/src/MNH/zsmt_pgd.f90
+++ b/src/MNH/zsmt_pgd.f90
@@ -90,7 +90,7 @@ INTEGER :: IIU        ! number of points in X direction
 INTEGER :: IJU        ! number of points in Y direction
 !
 INTEGER           :: IRESP    ! return code for I/O
-CHARACTER(LEN=16) :: YRECFM   ! name of record
+CHARACTER(LEN=LEN_HREC) :: YRECFM   ! name of record
 INTEGER           :: IGRID    ! grid location
 INTEGER           :: ILENCH   ! length of comment string
 CHARACTER(LEN=100):: YCOMMENT ! comment string
-- 
GitLab