From e8455742c6bde31594e8cd9eb41b1e35bcaf37a0 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Thu, 13 Jul 2023 10:18:39 +0200
Subject: [PATCH] Philippe 13/07/2023: stations/profilers: add a parameter for
 the maximum number of entries in namelists

---
 src/MNH/ini_posprofilern.f90  | 3 +++
 src/MNH/ini_surfstationn.f90  | 3 +++
 src/MNH/modd_allprofilern.f90 | 7 +++++--
 src/MNH/modd_allstationn.f90  | 7 +++++--
 src/MNH/modn_profilern.f90    | 7 ++++---
 src/MNH/modn_stationn.f90     | 7 ++++---
 6 files changed, 24 insertions(+), 10 deletions(-)

diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90
index f50249ebd..4ce19c155 100644
--- a/src/MNH/ini_posprofilern.f90
+++ b/src/MNH/ini_posprofilern.f90
@@ -105,6 +105,9 @@ allocate( tprofilers_time%tpdates(istore) )
 NUMBPROFILER_LOC = 0
 
 IF (CFILE_PROF=="NO_INPUT_CSV") THEN
+  IF ( NNUMB_PROF > NNOCSVPROFILERMAX ) &
+    call Print_msg( NVERB_FATAL, 'IO', 'INI_POSPROFILER_n', 'number of profilers is limited to NNOCSVPROFILERMAX' )
+
   ! Treat namelist
   INUMBPROF = 0
   IF ( NNUMB_PROF > 0 ) THEN
diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90
index b371bbfa0..c1eb1a20d 100644
--- a/src/MNH/ini_surfstationn.f90
+++ b/src/MNH/ini_surfstationn.f90
@@ -106,6 +106,9 @@ allocate( tstations_time%tpdates(istore) )
 NUMBSTAT_LOC = 0
 
 IF (CFILE_STAT=="NO_INPUT_CSV") THEN
+  IF ( NNUMB_STAT > NNOCSVSTATIONMAX ) &
+    call Print_msg( NVERB_FATAL, 'IO', 'INI_SURFSTATION_n', 'number of stations is limited to NNOCSVSTATIONMAX' )
+
   ! Treat namelist
   INUMBSTAT = 0
   IF ( NNUMB_STAT > 0 ) THEN
diff --git a/src/MNH/modd_allprofilern.f90 b/src/MNH/modd_allprofilern.f90
index e9fc522b7..cb9c52744 100644
--- a/src/MNH/modd_allprofilern.f90
+++ b/src/MNH/modd_allprofilern.f90
@@ -48,14 +48,17 @@ PUBLIC :: CNAME_PROF, CFILE_PROF, LDIAG_SURFRAD_PROF
 
 PUBLIC :: ALLPROFILER_GOTO_MODEL
 
+
+INTEGER, PUBLIC, PARAMETER :: NNOCSVPROFILERMAX = 100
+
 TYPE ALLPROFILER_t
 !
 !-------------------------------------------------------------------------------------------
 !
 !
   INTEGER                          :: NNUMB_PROF  !Number of stations as defined in namelist
-  REAL, DIMENSION(100)             :: XX_PROF, XY_PROF, XZ_PROF, XLAT_PROF, XLON_PROF
-  CHARACTER(LEN=NSENSORNAMELGTMAX), DIMENSION(100) :: CNAME_PROF
+  REAL,                             DIMENSION(NNOCSVPROFILERMAX) :: XX_PROF, XY_PROF, XZ_PROF, XLAT_PROF, XLON_PROF
+  CHARACTER(LEN=NSENSORNAMELGTMAX), DIMENSION(NNOCSVPROFILERMAX) :: CNAME_PROF
   CHARACTER(LEN=NFILENAMELGTMAX)   :: CFILE_PROF
   REAL                             :: XSTEP_PROF
   LOGICAL                          :: LDIAG_SURFRAD_PROF
diff --git a/src/MNH/modd_allstationn.f90 b/src/MNH/modd_allstationn.f90
index 4f2a6dafb..f36f760b2 100644
--- a/src/MNH/modd_allstationn.f90
+++ b/src/MNH/modd_allstationn.f90
@@ -47,14 +47,17 @@ PUBLIC :: CNAME_STAT, CFILE_STAT, LDIAG_SURFRAD_STAT
 
 PUBLIC :: ALLSTATION_GOTO_MODEL
 
+
+INTEGER, PUBLIC, PARAMETER :: NNOCSVSTATIONMAX = 100
+
 TYPE ALLSTATION_t
 !
 !-------------------------------------------------------------------------------------------
 !
 !
   INTEGER                          :: NNUMB_STAT  !Number of stations as defined in namelist
-  REAL, DIMENSION(100)             :: XX_STAT, XY_STAT, XZ_STAT, XLAT_STAT, XLON_STAT
-  CHARACTER(LEN=NSENSORNAMELGTMAX), DIMENSION(100) :: CNAME_STAT
+  REAL,                             DIMENSION(NNOCSVSTATIONMAX) :: XX_STAT, XY_STAT, XZ_STAT, XLAT_STAT, XLON_STAT
+  CHARACTER(LEN=NSENSORNAMELGTMAX), DIMENSION(NNOCSVSTATIONMAX) :: CNAME_STAT
   CHARACTER(LEN=NFILENAMELGTMAX)   :: CFILE_STAT
   REAL                             :: XSTEP_STAT
   LOGICAL                          :: LDIAG_SURFRAD_STAT
diff --git a/src/MNH/modn_profilern.f90 b/src/MNH/modn_profilern.f90
index 8e66d80f8..319ef272d 100644
--- a/src/MNH/modn_profilern.f90
+++ b/src/MNH/modn_profilern.f90
@@ -27,6 +27,7 @@
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 USE MODD_ALLPROFILER_n, ONLY:&
+        NNOCSVPROFILERMAX               ,&
         NNUMB_PROF_n    =>NNUMB_PROF    ,&
         XSTEP_PROF_n    =>XSTEP_PROF    ,&
         XX_PROF_n       =>XX_PROF       ,&
@@ -48,9 +49,9 @@ IMPLICIT NONE
 
 INTEGER                          ,SAVE:: NNUMB_PROF
 REAL                             ,SAVE:: XSTEP_PROF
-REAL, DIMENSION(100)             ,SAVE:: XX_PROF, XY_PROF, XZ_PROF, XLAT_PROF, XLON_PROF
-CHARACTER (LEN=NSENSORNAMELGTMAX), DIMENSION(100),SAVE:: CNAME_PROF
-CHARACTER (LEN=NFILENAMELGTMAX),                   SAVE:: CFILE_PROF              !filename
+REAL,                              DIMENSION(NNOCSVPROFILERMAX),SAVE:: XX_PROF, XY_PROF, XZ_PROF, XLAT_PROF, XLON_PROF
+CHARACTER (LEN=NSENSORNAMELGTMAX), DIMENSION(NNOCSVPROFILERMAX),SAVE:: CNAME_PROF
+CHARACTER (LEN=NFILENAMELGTMAX)  ,SAVE:: CFILE_PROF              !filename
 LOGICAL                          ,SAVE:: LDIAG_SURFRAD
 
 NAMELIST /NAM_PROFILERn/  &
diff --git a/src/MNH/modn_stationn.f90 b/src/MNH/modn_stationn.f90
index 3a716ffb8..762ed48e5 100644
--- a/src/MNH/modn_stationn.f90
+++ b/src/MNH/modn_stationn.f90
@@ -26,6 +26,7 @@
 !!    IMPLICIT ARGUMENTS
 !!    ------------------
 USE MODD_ALLSTATION_n, ONLY:&
+        NNOCSVSTATIONMAX                ,&
         NNUMB_STAT_n    =>NNUMB_STAT    ,&
         XSTEP_STAT_n    =>XSTEP_STAT    ,&
         XX_STAT_n       =>XX_STAT       ,&
@@ -47,9 +48,9 @@ IMPLICIT NONE
 
 INTEGER                          ,SAVE:: NNUMB_STAT
 REAL                             ,SAVE:: XSTEP_STAT
-REAL, DIMENSION(100)             ,SAVE:: XX_STAT, XY_STAT, XZ_STAT, XLAT_STAT, XLON_STAT
-CHARACTER (LEN=NSENSORNAMELGTMAX), DIMENSION(100),SAVE:: CNAME_STAT
-CHARACTER (LEN=NFILENAMELGTMAX),                   SAVE:: CFILE_STAT              !filename
+REAL,                              DIMENSION(NNOCSVSTATIONMAX),SAVE:: XX_STAT, XY_STAT, XZ_STAT, XLAT_STAT, XLON_STAT
+CHARACTER (LEN=NSENSORNAMELGTMAX), DIMENSION(NNOCSVSTATIONMAX),SAVE:: CNAME_STAT
+CHARACTER (LEN=NFILENAMELGTMAX)  ,SAVE:: CFILE_STAT              !filename
 LOGICAL                          ,SAVE:: LDIAG_SURFRAD
 
 NAMELIST /NAM_STATIONn/  &
-- 
GitLab