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