diff --git a/src/MNH/ini_seriesn.f90 b/src/MNH/ini_seriesn.f90
index 45bdbdcca4945fcc696de676559089056cc5ec4c..f6cf8208f49ecc988fd8d2abf32f84b5cc0f1ff8 100644
--- a/src/MNH/ini_seriesn.f90
+++ b/src/MNH/ini_seriesn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 2002-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 2002-2023 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.
@@ -93,12 +93,14 @@ CHARACTER (LEN=5), DIMENSION(3) :: YSUF
 INTEGER  :: ILUOUT ! Logical unit number for output-listing
 INTEGER  :: IRESP   ! Return code of FM-routines
 INTEGER :: IMI ! Current model index
+INTEGER :: IDIGITS, ISIZE ! Length of character string
 !-------------------------------------------------------------------------------
 !
 !*       1.    INITIALIZATIONS
 !              ---------------
 !
 IMI = GET_CURRENT_MODEL_INDEX()
+IDIGITS = INT( LOG10(REAL(IMI)+0.1) + 1 ) !Get the number of digits of IMI
 !
 CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) 
 IKE = NKMAX + JPVEXT
@@ -317,7 +319,9 @@ YMASK(3) = 'SEA'
 !              -----------------
 !
 DO JI=1,NSTEMP_SERIE1
-  WRITE(CSCOMMENT1(JI),'("TEMPORAL SERIE (t)   : ",A,".",I0,".",A)') CEXP,IMI,CSEG
+  ISIZE = LEN("TEMPORAL SERIES (t)  : ") + LEN_TRIM(CEXP) + 1 + IDIGITS + 1 + LEN_TRIM(CSEG)
+  IF ( ISIZE > LEN(CSCOMMENT1(JI)) ) CALL PRINT_MSG( NVERB_WARNING, 'IO', 'INI_SERIES_n', 'CSCOMMENT1 truncated' )
+  WRITE(CSCOMMENT1(JI),'("TEMPORAL SERIES (t)  : ",A,".",I0,".",A)') TRIM(CEXP), IMI, TRIM(CSEG)
   IF (JI==1) WRITE(ILUOUT,FMT=*) CSCOMMENT1(JI)
 END DO
 !
@@ -383,7 +387,9 @@ end if
 !              ---------------------
 !
 DO JI=1,NSTEMP_SERIE2
-  WRITE(CSCOMMENT2(JI),'("TEMPORAL SERIE (z,t) : ",A,".",I0,".",A)') CEXP,IMI,CSEG
+  ISIZE = LEN("TEMPORAL SERIES (z,t): ") + LEN_TRIM(CEXP) + 1 + IDIGITS + 1 + LEN_TRIM(CSEG)
+  IF ( ISIZE > LEN(CSCOMMENT2(JI)) ) CALL PRINT_MSG( NVERB_WARNING, 'IO', 'INI_SERIES_n', 'CSCOMMENT2 truncated' )
+  WRITE(CSCOMMENT2(JI),'("TEMPORAL SERIES (z,t): ",A,".",I0,".",A)') TRIM(CEXP), IMI, TRIM(CSEG)
   IF (JI==1) WRITE(ILUOUT,FMT=*) CSCOMMENT2(JI)
 END DO
 !
@@ -428,7 +434,9 @@ end if
 !*    2.3 Temporal series (x,t)
 !
 DO JI=1,NSTEMP_SERIE3
-  WRITE(CSCOMMENT3(JI),'("TEMPORAL SERIE (x,t) : ",A,".",I0,".",A)') CEXP,IMI,CSEG 
+  ISIZE = LEN("TEMPORAL SERIES (x,t): ") + LEN_TRIM(CEXP) + 1 + IDIGITS + 1 + LEN_TRIM(CSEG)
+  IF ( ISIZE > LEN(CSCOMMENT3(JI)) ) CALL PRINT_MSG( NVERB_WARNING, 'IO', 'INI_SERIES_n', 'CSCOMMENT3 truncated' )
+  WRITE(CSCOMMENT3(JI),'("TEMPORAL SERIES (x,t): ",A,".",I0,".",A)') TRIM(CEXP), IMI, TRIM(CSEG)
   IF (JI==1) WRITE(ILUOUT,FMT=*) CSCOMMENT3(JI)
 END DO
 
diff --git a/src/MNH/modd_seriesn.f90 b/src/MNH/modd_seriesn.f90
index b407ae675e0c28458fbc50ca03bcce61e273d138..2c8ea55e08bed78845fd18189b8a55bcc5b385bc 100644
--- a/src/MNH/modd_seriesn.f90
+++ b/src/MNH/modd_seriesn.f90
@@ -1,4 +1,4 @@
-!MNH_LIC Copyright 1998-2021 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC Copyright 1998-2023 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.
@@ -39,7 +39,7 @@
 !*       0.   DECLARATIONS
 !             ------------
 !
-USE MODD_PARAMETERS, ONLY: JPMODELMAX
+USE MODD_PARAMETERS, ONLY: JPMODELMAX, NCOMMENTLGTMAX, NMNHNAMELGTMAX, NUNITLGTMAX
 use modd_type_date,  only: date_time
 
 IMPLICIT NONE
@@ -68,18 +68,15 @@ TYPE SERIES_t
   REAL, DIMENSION(:,:,:,:,:,:), POINTER  :: XSSERIES2=>NULL() ! 2nd group:temporal serie (z,t)
   REAL, DIMENSION(:,:,:,:,:,:), POINTER  :: XSSERIES3=>NULL() ! 3rd group:temporal serie (x,t)
   type(date_time), dimension(:), pointer :: tpsdates => NULL() ! dates
-  CHARACTER(LEN=50),DIMENSION(:),POINTER :: CSCOMMENT1=>NULL() ! strings
-!     associated with the 1st group
-  CHARACTER(LEN=50),DIMENSION(:),POINTER :: CSCOMMENT2=>NULL() ! with the 2nd
-  CHARACTER(LEN=50),DIMENSION(:),POINTER :: CSCOMMENT3=>NULL() ! with the 3rd
-  CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSTITLE1=>NULL() ! strings
-!     associated with the 1st group
-  CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSTITLE2=>NULL() ! with the 2nd
-  CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSTITLE3=>NULL() ! with the 3rd
-  CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSUNIT1=>NULL() ! strings
-!     associated with the 1st group
-  CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSUNIT2=>NULL() ! with the 2nd
-  CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSUNIT3=>NULL() ! with the 3rd
+  CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(:), POINTER :: CSCOMMENT1 => NULL() ! comments associated with the 1st group
+  CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(:), POINTER :: CSCOMMENT2 => NULL() ! with the 2nd
+  CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(:), POINTER :: CSCOMMENT3 => NULL() ! with the 3rd
+  CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSTITLE1   => NULL() ! titles associated with the 1st group
+  CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSTITLE2   => NULL() ! with the 2nd
+  CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSTITLE3   => NULL() ! with the 3rd
+  CHARACTER(LEN=NUNITLGTMAX),    DIMENSION(:), POINTER :: CSUNIT1    => NULL() ! units associated with the 1st group
+  CHARACTER(LEN=NUNITLGTMAX),    DIMENSION(:), POINTER :: CSUNIT2    => NULL() ! with the 2nd
+  CHARACTER(LEN=NUNITLGTMAX),    DIMENSION(:), POINTER :: CSUNIT3    => NULL() ! with the 3rd
   CHARACTER(LEN=4),  DIMENSION(:),POINTER :: CSMASK1=>NULL()
   CHARACTER(LEN=4),  DIMENSION(:),POINTER :: CSMASK2=>NULL()
 !   CHARACTER(LEN=4),  DIMENSION(:),POINTER :: CSMASK3=>NULL()
@@ -130,15 +127,15 @@ REAL, DIMENSION(:,:,:,:,:,:), POINTER  :: XSSERIES1=>NULL()
 REAL, DIMENSION(:,:,:,:,:,:), POINTER  :: XSSERIES2=>NULL()
 REAL, DIMENSION(:,:,:,:,:,:), POINTER  :: XSSERIES3=>NULL()
 type(date_time), dimension(:), pointer :: tpsdates => NULL()
-CHARACTER(LEN=50),DIMENSION(:),POINTER :: CSCOMMENT1=>NULL()
-CHARACTER(LEN=50),DIMENSION(:),POINTER :: CSCOMMENT2=>NULL()
-CHARACTER(LEN=50),DIMENSION(:),POINTER :: CSCOMMENT3=>NULL()
-CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSTITLE1=>NULL()
-CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSTITLE2=>NULL()
-CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSTITLE3=>NULL()
-CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSUNIT1=>NULL()
-CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSUNIT2=>NULL()
-CHARACTER(LEN=100),DIMENSION(:),POINTER :: CSUNIT3=>NULL()
+CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(:), POINTER :: CSCOMMENT1 => NULL()
+CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(:), POINTER :: CSCOMMENT2 => NULL()
+CHARACTER(LEN=NCOMMENTLGTMAX), DIMENSION(:), POINTER :: CSCOMMENT3 => NULL()
+CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSTITLE1   => NULL()
+CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSTITLE2   => NULL()
+CHARACTER(LEN=NMNHNAMELGTMAX), DIMENSION(:), POINTER :: CSTITLE3   => NULL()
+CHARACTER(LEN=NUNITLGTMAX),    DIMENSION(:), POINTER :: CSUNIT1    => NULL()
+CHARACTER(LEN=NUNITLGTMAX),    DIMENSION(:), POINTER :: CSUNIT2    => NULL()
+CHARACTER(LEN=NUNITLGTMAX),    DIMENSION(:), POINTER :: CSUNIT3    => NULL()
 CHARACTER(LEN=4),  DIMENSION(:),POINTER :: CSMASK1=>NULL()
 CHARACTER(LEN=4),  DIMENSION(:),POINTER :: CSMASK2=>NULL()
 ! CHARACTER(LEN=4),  DIMENSION(:),POINTER :: CSMASK3=>NULL()