From a56f62efe245cb3957ce97ae46e686ea7583c9ce Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Tue, 11 Apr 2017 15:39:12 +0200 Subject: [PATCH] Philippe 11/04/2017: IO: * removed CDADFILENAME field from TOUTBAK structure * added TDADFILE field to TFILEDATA structure --- src/LIB/SURCOUCHE/src/modd_io.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 | 12 ++++++------ src/MNH/ini_modeln.f90 | 1 + src/MNH/modeln.f90 | 4 +--- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index 52a690279..d2eb939e0 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -59,7 +59,6 @@ TYPE TOUTBAK INTEGER :: NSTEP !Timestep number REAL :: XTIME !Time from start of the segment (in seconds and rounded to a timestep) INTEGER :: NOUTDAD = -1 !Index of the corresponding dad file (file with same time) - CHARACTER(LEN=28) :: CDADFILENAME !Filename of dad TYPE(TFILEDATA),POINTER :: TFILE => NULL() !Corresponding file TYPE(TFILE_ELT),DIMENSION(:),ALLOCATABLE :: TFILE_IOZ !Corresponding Z-splitted files INTEGER,DIMENSION(:),POINTER :: NFIELDLIST => NULL() !List of the fields to read or write @@ -88,6 +87,7 @@ TYPE TFILEDATA LOGICAL :: LNCCOMPRESS = .FALSE. ! Do compression on fields INTEGER(KIND=IDCDF_KIND) :: NNCCOMPRESS_LEVEL = 0 ! Compression level ! + TYPE(TFILEDATA),POINTER :: TDADFILE => NULL() !Corresponding dad file TYPE(TFILEDATA),POINTER :: TFILE_PREV => NULL() TYPE(TFILEDATA),POINTER :: TFILE_NEXT => NULL() END TYPE TFILEDATA diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index 25b3ffe3d..bd3fd3145 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -178,11 +178,11 @@ DO IMI = 1, NMODEL IF (NDAD(IMI) == IMI .OR. IMI == 1) THEN OUT_MODEL(IMI)%TBACKUPN(:)%NOUTDAD = 0 DO IPOS = 1,OUT_MODEL(IMI)%NBAK_NUMB - OUT_MODEL(IMI)%TBACKUPN(IPOS)%CDADFILENAME = OUT_MODEL(IMI)%TBACKUPN(IPOS)%TFILE%CNAME + OUT_MODEL(IMI)%TBACKUPN(IPOS)%TFILE%TDADFILE => OUT_MODEL(IMI)%TBACKUPN(IPOS)%TFILE !Points to itself END DO OUT_MODEL(IMI)%TOUTPUTN(:)%NOUTDAD = 0 DO IPOS = 1,OUT_MODEL(IMI)%NOUT_NUMB - OUT_MODEL(IMI)%TOUTPUTN(IPOS)%CDADFILENAME = OUT_MODEL(IMI)%TOUTPUTN(IPOS)%TFILE%CNAME + OUT_MODEL(IMI)%TOUTPUTN(IPOS)%TFILE%TDADFILE => OUT_MODEL(IMI)%TOUTPUTN(IPOS)%TFILE !Points to itself END DO ELSE DO IPOS = 1,OUT_MODEL(IMI)%NBAK_NUMB @@ -197,10 +197,10 @@ DO IMI = 1, NMODEL IF (IDX>0) THEN OUT_MODEL(IMI)%TBACKUPN(IPOS)%NOUTDAD = IDX WRITE (YDADNUMBER,FMT="('.',I3.3)") OUT_MODEL(IMI)%TBACKUPN(IPOS)%NOUTDAD - OUT_MODEL(IMI)%TBACKUPN(IPOS)%CDADFILENAME = ADJUSTL(ADJUSTR(CDAD_NAME(IMI))//YDADNUMBER) + OUT_MODEL(IMI)%TBACKUPN(IPOS)%TFILE%TDADFILE => OUT_MODEL(NDAD(IMI))%TBACKUPN(IDX)%TFILE ELSE OUT_MODEL(IMI)%TBACKUPN(IPOS)%NOUTDAD = -1 - WRITE ( OUT_MODEL(IMI)%TBACKUPN(IPOS)%CDADFILENAME , FMT="('NO_DAD_FILE')" ) + NULLIFY(OUT_MODEL(IMI)%TBACKUPN(IPOS)%TFILE%TDADFILE) !No dad file END IF END DO DO IPOS = 1,OUT_MODEL(IMI)%NOUT_NUMB @@ -215,10 +215,10 @@ DO IMI = 1, NMODEL IF (IDX>0) THEN OUT_MODEL(IMI)%TOUTPUTN(IPOS)%NOUTDAD = IDX WRITE (YDADNUMBER,FMT="('.',I3.3)") OUT_MODEL(IMI)%TOUTPUTN(IPOS)%NOUTDAD - OUT_MODEL(IMI)%TOUTPUTN(IPOS)%CDADFILENAME = ADJUSTL(ADJUSTR(CDAD_NAME(IMI))//YDADNUMBER) + OUT_MODEL(IMI)%TOUTPUTN(IPOS)%TFILE%TDADFILE => OUT_MODEL(NDAD(IMI))%TBACKUPN(IDX)%TFILE ELSE OUT_MODEL(IMI)%TOUTPUTN(IPOS)%NOUTDAD = -1 - WRITE ( OUT_MODEL(IMI)%TOUTPUTN(IPOS)%CDADFILENAME , FMT="('NO_DAD_FILE')" ) + NULLIFY(OUT_MODEL(IMI)%TOUTPUTN(IPOS)%TFILE%TDADFILE) !No dad file END IF END DO END IF diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index be57b8970..abf1559c5 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -1551,6 +1551,7 @@ IF (KMI == 1) THEN LUNIT_MODEL(IMI)%TDIAFILE%CMODE = 'WRITE' LUNIT_MODEL(IMI)%TDIAFILE%NLFITYPE = 1 LUNIT_MODEL(IMI)%TDIAFILE%NLFIVERB = NVERB + LUNIT_MODEL(IMI)%TDIAFILE%TDADFILE => LUNIT_MODEL(NDAD(IMI))%TDIAFILE END DO ! IF (CPROGRAM=='MESONH') THEN diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index 40c69a5f2..13ca3cf59 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -420,7 +420,6 @@ INTEGER :: ILUOUT ! Logical unit number for the output listing INTEGER :: IIU,IJU,IKU ! array size in first, second and third dimensions INTEGER :: IIB,IIE,IJB,IJE,IKB,IKE ! index values for the physical subdomain INTEGER :: JSV,JRR ! Loop index for scalar and moist variables -CHARACTER (LEN=28) :: YDADFILE ! name of the corresponding DAD model OUTPUT FM-file INTEGER :: INBVAR ! number of HALO2_lls to allocate INTEGER :: IRESP ! return code in FM routines INTEGER :: IINFO_ll ! return code of parallel routine @@ -908,14 +907,13 @@ IF (IBAK < NBAK_NUMB ) THEN GCLOSE_OUT=.TRUE. ! TZBAKFILE => TBACKUPN(IBAK)%TFILE - YDADFILE = TBACKUPN(IBAK)%CDADFILENAME IVERB = TZBAKFILE%NLFIVERB ! CALL IO_FILE_OPEN_ll(TZBAKFILE,CLUOUT,IRESP) ! CALL WRITE_DESFM_n(IMI,TRIM(TZBAKFILE%CNAME)//'.des',CLUOUT) CALL IO_WRITE_HEADER_NC4(TBACKUPN(IBAK)%TFILE,CLUOUT) - CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,YDADFILE) + CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME) COUTFMFILE = TZBAKFILE%CNAME CALL MNHWRITE_ZS_DUMMY_n(TZBAKFILE) IF (CSURF=='EXTE') THEN -- GitLab