From 8bc982994bb9fa6b575926a0f670f9990e0244cf Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Mon, 28 Jun 2021 15:23:06 +0200 Subject: [PATCH] M.Goret 28/06/2021:bugfix increase LNOWRITE table and add abort if writing surfex field needs more memory (for long simulations/large number of surf. field writes without restart) --- src/SURFEX/modd_write_surf_atm.F90 | 3 ++- src/SURFEX/test_record_len.F90 | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/SURFEX/modd_write_surf_atm.F90 b/src/SURFEX/modd_write_surf_atm.F90 index 31c48a452..8e29a9834 100644 --- a/src/SURFEX/modd_write_surf_atm.F90 +++ b/src/SURFEX/modd_write_surf_atm.F90 @@ -46,7 +46,8 @@ LOGICAL :: LNAM_TEB_WRITTEN = .TRUE. LOGICAL :: LNAM_WATFLUX_WRITTEN = .TRUE. ! LOGICAL :: LFIRST_WRITE = .TRUE. -LOGICAL, DIMENSION(50000) :: LNOWRITE +INTEGER, PARAMETER :: NSIZE_LNOWRITE = 80000 +LOGICAL, DIMENSION(NSIZE_LNOWRITE) :: LNOWRITE INTEGER :: NCPT_WRITE = 0 ! LOGICAL :: LSPLIT_PATCH = .TRUE. diff --git a/src/SURFEX/test_record_len.F90 b/src/SURFEX/test_record_len.F90 index 6714e20bf..c3113beff 100644 --- a/src/SURFEX/test_record_len.F90 +++ b/src/SURFEX/test_record_len.F90 @@ -20,7 +20,7 @@ USE MODD_XIOS, ONLY : LXIOS, LXIOS_DEF_CLOSED USE XIOS, ONLY : XIOS_IS_VALID_FIELD, XIOS_FIELD_IS_ACTIVE #endif ! -USE MODD_WRITE_SURF_ATM, ONLY : LFIRST_WRITE, LNOWRITE, NCPT_WRITE +USE MODD_WRITE_SURF_ATM, ONLY : LFIRST_WRITE, LNOWRITE, NCPT_WRITE, NSIZE_LNOWRITE ! USE YOMHOOK ,ONLY : LHOOK, DR_HOOK USE PARKIND1 ,ONLY : JPRB @@ -48,6 +48,13 @@ IF (TRIM(HREC)=="time".OR.TRIM(HREC)=="longitude".OR.TRIM(HREC)=="latitude") THE ENDIF ! NCPT_WRITE = NCPT_WRITE + 1 +IF (NCPT_WRITE > NSIZE_LNOWRITE) THEN + WRITE(ILUOUT,*) '--------------------------------------' + WRITE(ILUOUT,*) 'Error when writing a field' + WRITE(ILUOUT,*) 'No more room available in LNOWRITE table' + WRITE(ILUOUT,*) 'Please increase its size in modd_write_surf_atm' + CALL ABOR1_SFX('TEST_RECORD_LEN: LNOWRITE table is full') +ENDIF ! IF (LFIRST_WRITE) THEN ! -- GitLab