diff --git a/src/MNH/modd_sub_modeln.f90 b/src/MNH/modd_sub_modeln.f90 index 5f08f0b0258c454e3cd8859f056519ef024d4945..c09ff09130140f34d41981449b83f2ef46283a83 100644 --- a/src/MNH/modd_sub_modeln.f90 +++ b/src/MNH/modd_sub_modeln.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2021 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. @@ -10,6 +10,7 @@ ! P. Wautelet 28/03/2019: use MNHTIME for time measurement variables ! J. Escobar 09/07/2019: norme Doctor -> Rename Module Type variable TZ -> T ! J. Escobar 09/07/2019: for bug in management of XLSZWSM variable, add/use specific 2D TLSFIELD2D_ll pointer +! P. Wautelet 07/01/2021: rename ibak/iout into nfile_backup_current/nfile_output_current !----------------------------------------------------------------- ! ################# MODULE MODD_SUB_MODEL_n @@ -36,7 +37,8 @@ TYPE SUB_MODEL_t TYPE(HALO2LIST_ll), POINTER :: THALO2T_ll => NULL() TYPE(HALO2LIST_ll), POINTER :: THALO2MT_ll => NULL() TYPE(HALO2LIST_ll), POINTER :: THALO2SC_ll => NULL() - INTEGER :: IBAK, IOUT ! number of the backup / output + integer :: nfile_backup_current = 0 ! Number of the current backup file + integer :: nfile_output_current = 0 ! Number of the current output file REAL(kind=MNHTIME), DIMENSION(2) :: XT_START REAL(kind=MNHTIME), DIMENSION(2) :: XT_STORE, XT_BOUND, XT_GUESS REAL(kind=MNHTIME), DIMENSION(2) :: XT_ADV, XT_SOURCES, XT_DRAG @@ -64,8 +66,8 @@ TYPE(LIST_ll), POINTER :: TLSFIELD2D_ll => NULL() TYPE(LIST_ll), POINTER :: TFIELDT_ll=>NULL(),TFIELDMT_ll=>NULL(),TFIELDSC_ll=>NULL() TYPE(HALO2LIST_ll), POINTER :: THALO2M_ll=>NULL(), TLSHALO2_ll=>NULL() TYPE(HALO2LIST_ll), POINTER :: THALO2T_ll=>NULL(), THALO2MT_ll=>NULL(), THALO2SC_ll=>NULL() -INTEGER, POINTER :: IBAK=>NULL() -INTEGER, POINTER :: IOUT=>NULL() +integer, pointer :: nfile_backup_current => Null() +integer, pointer :: nfile_output_current => Null() REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_START=>NULL() REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_STORE=>NULL(), XT_BOUND=>NULL(), XT_GUESS=>NULL() REAL(kind=MNHTIME), DIMENSION(:), POINTER :: XT_ADV=>NULL(), XT_SOURCES=>NULL(), XT_DRAG=>NULL() @@ -117,8 +119,8 @@ TLSHALO2_ll=>SUB_MODEL_MODEL(KTO)%TLSHALO2_ll THALO2T_ll=>SUB_MODEL_MODEL(KTO)%THALO2T_ll THALO2MT_ll=>SUB_MODEL_MODEL(KTO)%THALO2MT_ll THALO2SC_ll=>SUB_MODEL_MODEL(KTO)%THALO2SC_ll -IBAK=>SUB_MODEL_MODEL(KTO)%IBAK -IOUT=>SUB_MODEL_MODEL(KTO)%IOUT +nfile_backup_current => sub_model_model(kto)%nfile_backup_current +nfile_output_current => sub_model_model(kto)%nfile_output_current XT_START=>SUB_MODEL_MODEL(KTO)%XT_START XT_STORE=>SUB_MODEL_MODEL(KTO)%XT_STORE XT_BOUND=>SUB_MODEL_MODEL(KTO)%XT_BOUND diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index b7958c13fe04ae30d3172ad45823e96ba616a3c2..892a3b913ec7046c4c867c03a5a9af334e354318 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -610,10 +610,6 @@ IF (KTCOUNT == 1) THEN ! ALLOCATE(XWT_ACT_NUC(SIZE(XWT,1),SIZE(XWT,2),SIZE(XWT,3))) ALLOCATE(GMASKkids(SIZE(XWT,1),SIZE(XWT,2))) -! -! initialization of the FM file backup/output number - IBAK=0 - IOUT=0 ! IF ( .NOT. LIO_NO_WRITE ) THEN CALL IO_File_open(TDIAFILE) @@ -915,19 +911,19 @@ IF (CSURF=='EXTE') CALL GOTO_SURFEX(IMI) ! ZTIME1 = ZTIME2 ! -IF (IBAK < NBAK_NUMB ) THEN - IF (KTCOUNT == TBACKUPN(IBAK+1)%NSTEP) THEN - IBAK=IBAK+1 +IF ( nfile_backup_current < NBAK_NUMB ) THEN + IF ( KTCOUNT == TBACKUPN(nfile_backup_current + 1)%NSTEP ) THEN + nfile_backup_current = nfile_backup_current + 1 GCLOSE_OUT=.TRUE. ! - TZBAKFILE => TBACKUPN(IBAK)%TFILE + TZBAKFILE => TBACKUPN(nfile_backup_current)%TFILE IVERB = TZBAKFILE%NLFIVERB ! CALL IO_File_open(TZBAKFILE) ! CALL WRITE_DESFM_n(IMI,TZBAKFILE) - CALL IO_Header_write(TBACKUPN(IBAK)%TFILE) - CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME) + CALL IO_Header_write( TBACKUPN(nfile_backup_current)%TFILE ) + CALL WRITE_LFIFM_n( TBACKUPN(nfile_backup_current)%TFILE, TBACKUPN(nfile_backup_current)%TFILE%TDADFILE%CNAME ) TOUTDATAFILE => TZBAKFILE CALL MNHWRITE_ZS_DUMMY_n(TZBAKFILE) IF (CSURF=='EXTE') THEN @@ -960,17 +956,17 @@ ELSE TZBAKFILE => TFILE_DUMMY END IF ! -IF (IOUT < NOUT_NUMB ) THEN - IF (KTCOUNT == TOUTPUTN(IOUT+1)%NSTEP) THEN - IOUT=IOUT+1 +IF ( nfile_output_current < NOUT_NUMB ) THEN + IF ( KTCOUNT == TOUTPUTN(nfile_output_current + 1)%NSTEP ) THEN + nfile_output_current = nfile_output_current + 1 ! - TZOUTFILE => TOUTPUTN(IOUT)%TFILE + TZOUTFILE => TOUTPUTN(nfile_output_current)%TFILE ! CALL IO_File_open(TZOUTFILE) ! CALL IO_Header_write(TZOUTFILE) - CALL IO_Fieldlist_write(TOUTPUTN(IOUT)) - CALL IO_Field_user_write(TOUTPUTN(IOUT)) + CALL IO_Fieldlist_write( TOUTPUTN(nfile_output_current) ) + CALL IO_Field_user_write( TOUTPUTN(nfile_output_current) ) ! CALL IO_File_close(TZOUTFILE) ! @@ -1340,8 +1336,8 @@ IF (CDCONV/='NONE') THEN END IF END IF ! -IF (IBAK>0 .AND. IBAK <= NBAK_NUMB ) THEN - IF (KTCOUNT == TBACKUPN(IBAK)%NSTEP) THEN +IF ( nfile_backup_current > 0 .AND. nfile_backup_current <= NBAK_NUMB ) THEN + IF ( KTCOUNT == TBACKUPN(nfile_backup_current)%NSTEP ) THEN IF (CSURF=='EXTE') THEN CALL GOTO_SURFEX(IMI) CALL DIAG_SURF_ATM_n(YSURF_CUR,'MESONH')