diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index 4e12b6b4a8de2526b286301d1d20c9e696b9d1bf..9609697ee3d4b0f2a13a8e81205375c0f505c840 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 e3ab44721b445a5f5153e14e2a8d135eb69ddb1a..f3200a838d3d7d8412c323d014e86eaa4eb32c60 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() !