From 57664e9027303cb2f29308ca3e2064e242ba4b4c Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Thu, 18 Jan 2018 16:26:20 +0100 Subject: [PATCH] Philippe 18/01/2018: IO: correct 2 problems in PREP_SURFEX --- src/LIB/SURCOUCHE/src/mode_netcdf.f90 | 6 ++++-- src/MNH/prep_surfex.f90 | 25 ++++++++++++------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 4e12b6b4a..9609697ee 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -163,7 +163,8 @@ PIOCDF => TPFILE%TNCDIMS INCID = TPFILE%NNCID IF (TPFILE%LMASTER) THEN - IF (TRIM(CPROGRAM)/='PGD') THEN + IF ( TRIM(CPROGRAM)/='PGD' & + .AND. .NOT.(TRIM(CPROGRAM)=='REAL'.AND. .NOT.ASSOCIATED(XXHAT)) ) THEN !condition to detect PREP_SURFEX IIU = SIZE(XXHAT) IJU = SIZE(XYHAT) ALLOCATE(ZXHATM(IIU),ZYHATM(IJU)) @@ -193,7 +194,8 @@ IF (TPFILE%LMASTER) THEN CALL WRITE_HOR_COORD(PIOCDF%DIM_NJ_V,'y-dimension of the grid at v location','y_grid_index_at_v_location','Y',-0.5,JPHEXT) ENDIF ! - IF (TRIM(CPROGRAM)/='PGD' .AND. TRIM(CPROGRAM)/='NESPGD') THEN + IF (TRIM(CPROGRAM)/='PGD' .AND. TRIM(CPROGRAM)/='NESPGD' & + .AND. .NOT.(TRIM(CPROGRAM)=='REAL'.AND. .NOT.ASSOCIATED(XXHAT)) ) THEN !condition to detect PREP_SURFEX IKU = SIZE(XZHAT) ALLOCATE(ZZHATM(IKU)) ZZHATM(1:IKU-1) = 0.5 * (XZHAT(2:IKU)+XZHAT(1:IKU-1)) diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index e3ab44721..f3200a838 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -40,7 +40,7 @@ USE MODD_CONF, ONLY : CPROGRAM,NMASDEV,NBUGFIX,CBIBUSER,& USE MODD_CONF_n, ONLY : CSTORAGE_TYPE USE MODD_IO_ll, ONLY : TFILEDATA, LIOCDF4, LLFIOUT, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX USE MODD_LUNIT, ONLY : CLUOUT0, TPGDFILE, TLUOUT0 -USE MODD_LUNIT_n, ONLY : CINIFILE +USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS, ONLY : JPMODELMAX,JPHEXT,JPVEXT, NUNDEF, XUNDEF USE MODD_TIME_n, ONLY : TDTCUR @@ -85,7 +85,6 @@ INTEGER :: IINFO_ll ! return code of // routines CHARACTER (LEN=100) :: HCOMMENT INTEGER :: II, IJ, IGRID, ILENGTH ! -TYPE(TFILEDATA),POINTER :: TZFILE => NULL() TYPE(TFILEDATA),POINTER :: TZATMFILE => NULL() TYPE(TFILEDATA),POINTER :: TZPGDFILE => NULL() TYPE(TFILEDATA),POINTER :: TZPRE_REAL1FILE => NULL() @@ -116,10 +115,6 @@ ILUOUT0 = TLUOUT0%NLU ! TPGDFILE => TZPGDFILE ! -CALL IO_FILE_ADD2LIST(TZFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1) -! -CALL IO_FILE_OPEN_ll(TZFILE) -! !------------------------------------------------------------------------------- ! !* 3. INITIALIZATION OF PHYSICAL CONSTANTS @@ -184,17 +179,21 @@ YSURF_CUR => YSURF_LIST(1) CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL GOTO_SURFEX(1) ! -TFILE_SURFEX => TZFILE +CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1) +! +CALL IO_FILE_OPEN_ll(TINIFILE) +! +TFILE_SURFEX => TINIFILE CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE) NULLIFY(TFILE_SURFEX) ! !------------------------------------------------------------------------------- ! -CALL IO_WRITE_HEADER(TZFILE) -CALL IO_WRITE_FIELD(TZFILE,'SURF','EXTE') -CALL IO_WRITE_FIELD(TZFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TZFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TZFILE,'PACK',LPACK) +CALL IO_WRITE_HEADER(TINIFILE) +CALL IO_WRITE_FIELD(TINIFILE,'SURF','EXTE') +CALL IO_WRITE_FIELD(TINIFILE,'L1D', L1D) +CALL IO_WRITE_FIELD(TINIFILE,'L2D', L2D) +CALL IO_WRITE_FIELD(TINIFILE,'PACK',LPACK) ! !------------------------------------------------------------------------------- WRITE(ILUOUT0,*) ' ' @@ -203,7 +202,7 @@ WRITE(ILUOUT0,*) '| |' WRITE(ILUOUT0,*) '| PREP_SURFEX ends correctly |' WRITE(ILUOUT0,*) '| |' WRITE(ILUOUT0,*) '----------------------------------' -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_FILE_CLOSE_ll(TINIFILE) ! IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() ! -- GitLab