From afa9bc6415d5b5525729e8984029859a302cfb19 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 21 Apr 2017 11:36:35 +0200 Subject: [PATCH] Philippe 21/04/2017: IO: use IO_WRITE_FIELD for write_hgrid(n) Warning: not tested (especially on ZOOM_PGD which is not supported anymore) --- src/LIB/SURCOUCHE/src/mode_field.f90 | 2 +- src/MNH/prep_ideal_case.f90 | 41 +++++++++++---- src/MNH/write_hgrid.f90 | 76 +++++++++------------------- src/MNH/write_hgridn.f90 | 75 +++++++++------------------ src/MNH/zoom_pgd.f90 | 65 ++++++++++++++---------- 5 files changed, 116 insertions(+), 143 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index 40fad9cf9..72df09876 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -340,7 +340,7 @@ TFIELDLIST(IDX)%NDIMS = 0 IDX = IDX+1 ! ! -IF (.NOT.LCARTESIAN) THEN +IF (.NOT.LCARTESIAN .OR. TRIM(CPROGRAM) == 'IDEAL') THEN ! IF(IDX>MAXFIELDS) CALL ERR_INI_FIELD_LIST() TFIELDLIST(IDX)%CMNHNAME = 'RPK' diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 95498935a..509bbcd2b 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -575,6 +575,7 @@ REAL :: ZZS_MAX, ZZS_MAX_ll INTEGER :: IJPHEXT ! TYPE(TFILEDATA),TARGET :: TZFILE +TYPE(TFILEDATA) :: TZINIFILEPGD ! ! !* 0.2 Namelist declarations @@ -1836,17 +1837,37 @@ IF (CSURF =='EXTE') THEN !* writing of physiographic fields in the file CSTORAGE_TYPE='PG' COUTFMFILE = CINIFILEPGD - CALL FMOPEN_ll(CINIFILEPGD,'WRITE',CLUOUT,NNPRAR,NTYPE,NVERB,NNINAR,NRESP) - CALL FMWRIT(CINIFILEPGD,'PROGRAM ',CLUOUT,'--',CPROGRAM,0,1,' ',NRESP) - CALL FMWRIT(CINIFILEPGD,'SURF ',CLUOUT,'--','EXTE',0,1,' ',NRESP) - CALL FMWRIT(CINIFILEPGD,'L1D ',CLUOUT,'--',L1D,0,1,' ',NRESP) - CALL FMWRIT(CINIFILEPGD,'L2D ',CLUOUT,'--',L2D,0,1,' ',NRESP) - CALL FMWRIT(CINIFILEPGD,'PACK ',CLUOUT,'--',LPACK,0,1,' ',NRESP) - CALL WRITE_HGRID(1,CINIFILEPGD,' ') + ! + TZINIFILEPGD%CNAME = CINIFILEPGD + TZINIFILEPGD%CTYPE = 'PREPIDEALCASE' + IF (LCDF4) THEN + IF (.NOT.LLFIOUT) THEN + TZINIFILEPGD%CFORMAT='NETCDF4' + ELSE + TZINIFILEPGD%CFORMAT='LFICDF4' + TZINIFILEPGD%NLFINPRAR= NNPRAR + END IF + ELSE IF (LLFIOUT) THEN + TZINIFILEPGD%CFORMAT='LFI' + TZINIFILEPGD%NLFINPRAR= NNPRAR + ELSE + CALL PRINT_MSG(NVERB_FATAL,'IO','PREP_IDEAL_CASE','unknown backup/output fileformat') + ENDIF + TZINIFILEPGD%CMODE = 'WRITE' + TZINIFILEPGD%NLFITYPE = NTYPE + TZINIFILEPGD%NLFIVERB = NVERB + ! + CALL IO_FILE_OPEN_ll(TZINIFILEPGD,CLUOUT,NRESP) + ! + CALL IO_WRITE_HEADER(TZINIFILEPGD,CLUOUT) + CALL IO_WRITE_FIELD(TZINIFILEPGD,'SURF',CLUOUT,IRESP,'EXTE') + CALL IO_WRITE_FIELD(TZINIFILEPGD,'L1D', CLUOUT,IRESP,L1D) + CALL IO_WRITE_FIELD(TZINIFILEPGD,'L2D', CLUOUT,IRESP,L2D) + CALL IO_WRITE_FIELD(TZINIFILEPGD,'PACK',CLUOUT,IRESP,LPACK) + CALL WRITE_HGRID(1,TZINIFILEPGD) CALL WRITE_PGD_SURF_ATM_n(YSURF_CUR,'MESONH') - CSTORAGE_TYPE='TT' + CSTORAGE_TYPE='TT' ENDIF - ! ! !* rereading of physiographic fields and definition of prognostic fields @@ -1866,7 +1887,7 @@ END IF ! --------------- ! IF (CSURF =='EXTE' .AND. (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM)) THEN - CALL FMCLOS_ll(CINIFILEPGD,'KEEP',CLUOUT,NRESP) + CALL IO_FILE_CLOSE_ll(TZINIFILEPGD,CLUOUT,NRESP) ENDIF CALL IO_FILE_CLOSE_ll(TZFILE,CLUOUT,NRESP) IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN diff --git a/src/MNH/write_hgrid.f90 b/src/MNH/write_hgrid.f90 index 075f923e9..314215609 100644 --- a/src/MNH/write_hgrid.f90 +++ b/src/MNH/write_hgrid.f90 @@ -12,19 +12,20 @@ MODULE MODI_WRITE_HGRID ! ####################### INTERFACE - SUBROUTINE WRITE_HGRID(KMI,HOUTFILE,HDADFILE) + SUBROUTINE WRITE_HGRID(KMI,TPFILE) ! -INTEGER, INTENT(IN) :: KMI ! model index -CHARACTER (LEN=*), INTENT(IN) :: HOUTFILE ! name of the file n -CHARACTER (LEN=*), INTENT(IN) :: HDADFILE ! name of the father of file n +USE MODD_IO_ll, ONLY: TFILEDATA +! +INTEGER, INTENT(IN) :: KMI ! model index +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! END SUBROUTINE WRITE_HGRID END INTERFACE END MODULE MODI_WRITE_HGRID ! -! ############################################# - SUBROUTINE WRITE_HGRID(KMI,HOUTFILE,HDADFILE) -! ############################################# +! ################################## + SUBROUTINE WRITE_HGRID(KMI,TPFILE) +! ################################## ! !!**** *WRITE_HGRID* - to write grid information in FM file of model KMI !! @@ -62,6 +63,7 @@ USE MODD_LUNIT USE MODD_CONF USE MODD_CONF_n USE MODD_GRID +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_PGDGRID USE MODD_PGDDIM USE MODD_PARAMETERS @@ -75,9 +77,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -INTEGER, INTENT(IN) :: KMI ! model index -CHARACTER (LEN=*), INTENT(IN) :: HOUTFILE ! name of the file n -CHARACTER (LEN=*), INTENT(IN) :: HDADFILE ! name of the father of file n +INTEGER, INTENT(IN) :: KMI ! model index +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! ! !* 0.2 declarations of local variables @@ -100,7 +101,7 @@ IF (KMI<0 .OR. KMI>JPMODELMAX) THEN STOP ENDIF IF (KMI/=0) THEN - CALL WRITE_HGRID_n(HOUTFILE,HDADFILE) + CALL WRITE_HGRID_n(TPFILE) RETURN END IF ! @@ -109,49 +110,20 @@ END IF !* 2. WRITING FROM MODD_PGD... ! ---------------------- ! -YCOMMENT=' ' -!------------------------------------------------------------------------------- -! -CALL FMWRIT(HOUTFILE,'MASDEV',CLUOUT0,'--',NMASDEV,0,LEN(YCOMMENT),YCOMMENT,IRESP) -CALL FMWRIT(HOUTFILE,'BUGFIX',CLUOUT0,'--',NBUGFIX,0,LEN(YCOMMENT),YCOMMENT,IRESP) -CALL FMWRIT(HOUTFILE,'BIBUSER',CLUOUT0,'--',CBIBUSER,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -CALL FMWRIT(HOUTFILE,'MY_NAME',CLUOUT0,'--',HOUTFILE,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -CALL FMWRIT(HOUTFILE,'DAD_NAME',CLUOUT0,'--',HDADFILE,0,LEN(YCOMMENT),YCOMMENT,IRESP) -!------------------------------------------------------------------------------- -! -CALL FMWRIT(HOUTFILE,'STORAGE_TYPE',CLUOUT0,'--',CSTORAGE_TYPE,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -!------------------------------------------------------------------------------- -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LAT0',CLUOUT0,'--',XLAT0,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LON0',CLUOUT0,'--',XLON0,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT=' ' -CALL FMWRIT(HOUTFILE,'RPK' ,CLUOUT0,'--',XRPK ,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'BETA',CLUOUT0,'--',XBETA,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LATOR',CLUOUT0,'--',XPGDLATOR,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LONOR',CLUOUT0,'--',XPGDLONOR,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT=' ' -CALL FMWRIT(HOUTFILE,'IMAX' ,CLUOUT0,'--',NPGDIMAX,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT=' ' -CALL FMWRIT(HOUTFILE,'JMAX' ,CLUOUT0,'--',NPGDJMAX,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -YCOMMENT='METERS' -CALL FMWRIT(HOUTFILE,'XHAT',CLUOUT0,'XX',XPGDXHAT,2,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='METERS' -CALL FMWRIT(HOUTFILE,'YHAT',CLUOUT0,'YY',XPGDYHAT,3,LEN(YCOMMENT),YCOMMENT,IRESP) +CALL IO_WRITE_FIELD(TPFILE,'LAT0', CLUOUT0,IRESP,XLAT0) +CALL IO_WRITE_FIELD(TPFILE,'LON0', CLUOUT0,IRESP,XLON0) +CALL IO_WRITE_FIELD(TPFILE,'RPK', CLUOUT0,IRESP,XRPK) +CALL IO_WRITE_FIELD(TPFILE,'BETA', CLUOUT0,IRESP,XBETA) +CALL IO_WRITE_FIELD(TPFILE,'LATORI',CLUOUT0,IRESP,XPGDLATOR) +CALL IO_WRITE_FIELD(TPFILE,'LONORI',CLUOUT0,IRESP,XPGDLONOR) +CALL IO_WRITE_FIELD(TPFILE,'IMAX', CLUOUT0,IRESP,NPGDIMAX) +CALL IO_WRITE_FIELD(TPFILE,'JMAX', CLUOUT0,IRESP,NPGDJMAX) +CALL IO_WRITE_FIELD(TPFILE,'XHAT', CLUOUT0,IRESP,XPGDXHAT) +CALL IO_WRITE_FIELD(TPFILE,'YHAT', CLUOUT0,IRESP,XPGDYHAT) ! IF (CSTORAGE_TYPE=='TT') THEN - YCOMMENT=' ' - CALL FMWRIT(HOUTFILE,'THINSHELL',CLUOUT0,'--',LTHINSHELL,0,LEN(YCOMMENT),YCOMMENT,IRESP) - YCOMMENT=' ' - CALL FMWRIT(HOUTFILE,'CARTESIAN',CLUOUT0,'--',LCARTESIAN,0,LEN(YCOMMENT),YCOMMENT,IRESP) + CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',CLUOUT0,IRESP,LTHINSHELL) + CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',CLUOUT0,IRESP,LCARTESIAN) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_hgridn.f90 b/src/MNH/write_hgridn.f90 index 125308409..96c29456c 100644 --- a/src/MNH/write_hgridn.f90 +++ b/src/MNH/write_hgridn.f90 @@ -12,19 +12,20 @@ MODULE MODI_WRITE_HGRIDn ! ######################## INTERFACE - SUBROUTINE WRITE_HGRID_n(HOUTFILE,HDADFILE) + SUBROUTINE WRITE_HGRID_n(TPFILE) ! -CHARACTER (LEN=*), INTENT(IN) :: HOUTFILE ! name of the file n -CHARACTER (LEN=*), INTENT(IN) :: HDADFILE ! name of the father of file n +USE MODD_IO_ll, ONLY: TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! END SUBROUTINE WRITE_HGRID_n ! END INTERFACE END MODULE MODI_WRITE_HGRIDn ! -! ########################################### - SUBROUTINE WRITE_HGRID_n(HOUTFILE,HDADFILE) -! ########################################### +! ################################ + SUBROUTINE WRITE_HGRID_n(TPFILE) +! ################################ ! !!**** *WRITE_HGRID_n* - to write grid information in FM file of model _n !! @@ -75,13 +76,14 @@ END MODULE MODI_WRITE_HGRIDn ! !* 0. DECLARATIONS ! -USE MODD_PARAMETERS USE MODD_CONF USE MODD_CONF_n +USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_DIM_n +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LUNIT_n +USE MODD_PARAMETERS ! USE MODE_FM USE MODE_FMWRIT @@ -90,62 +92,31 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER (LEN=*), INTENT(IN) :: HOUTFILE ! name of the file n -CHARACTER (LEN=*), INTENT(IN) :: HDADFILE ! name of the father of file n +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! ! !* 0.2 declarations of local variables ! INTEGER :: ILUOUT INTEGER :: IRESP -CHARACTER (LEN=100) :: YCOMMENT !------------------------------------------------------------------------------- ! CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) ! -YCOMMENT=' ' -! -!------------------------------------------------------------------------------- -CALL FMWRIT(HOUTFILE,'MASDEV',CLUOUT,'--',NMASDEV,0,LEN(YCOMMENT),YCOMMENT,IRESP) -CALL FMWRIT(HOUTFILE,'BUGFIX',CLUOUT,'--',NBUGFIX,0,LEN(YCOMMENT),YCOMMENT,IRESP) -CALL FMWRIT(HOUTFILE,'BIBUSER',CLUOUT,'--',CBIBUSER,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -CALL FMWRIT(HOUTFILE,'MY_NAME',CLUOUT,'--',HOUTFILE,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -CALL FMWRIT(HOUTFILE,'DAD_NAME',CLUOUT,'--',HDADFILE,0,LEN(YCOMMENT),YCOMMENT,IRESP) -!------------------------------------------------------------------------------- -! -CALL FMWRIT(HOUTFILE,'STORAGE_TYPE',CLUOUT,'--',CSTORAGE_TYPE,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -!------------------------------------------------------------------------------- -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LAT0',CLUOUT,'--',XLAT0,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LON0',CLUOUT,'--',XLON0,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT=' ' -CALL FMWRIT(HOUTFILE,'RPK' ,CLUOUT,'--',XRPK ,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'BETA',CLUOUT,'--',XBETA,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LATORI',CLUOUT,'--',XLATORI,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='DEGREES' -CALL FMWRIT(HOUTFILE,'LONORI',CLUOUT,'--',XLONORI,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT=' ' -CALL FMWRIT(HOUTFILE,'IMAX' ,CLUOUT,'--',NIMAX ,0,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT=' ' -CALL FMWRIT(HOUTFILE,'JMAX' ,CLUOUT,'--',NJMAX ,0,LEN(YCOMMENT),YCOMMENT,IRESP) -! -YCOMMENT='METERS' -CALL FMWRIT(HOUTFILE,'XHAT',CLUOUT,'XX',XXHAT,2,LEN(YCOMMENT),YCOMMENT,IRESP) -YCOMMENT='METERS' -CALL FMWRIT(HOUTFILE,'YHAT',CLUOUT,'YY',XYHAT,3,LEN(YCOMMENT),YCOMMENT,IRESP) +CALL IO_WRITE_FIELD(TPFILE,'LAT0', CLUOUT,IRESP,XLAT0) +CALL IO_WRITE_FIELD(TPFILE,'LON0', CLUOUT,IRESP,XLON0) +CALL IO_WRITE_FIELD(TPFILE,'RPK', CLUOUT,IRESP,XRPK) +CALL IO_WRITE_FIELD(TPFILE,'BETA', CLUOUT,IRESP,XBETA) +CALL IO_WRITE_FIELD(TPFILE,'LATORI',CLUOUT,IRESP,XLATORI) +CALL IO_WRITE_FIELD(TPFILE,'LONORI',CLUOUT,IRESP,XLONORI) +CALL IO_WRITE_FIELD(TPFILE,'IMAX', CLUOUT,IRESP,NIMAX) +CALL IO_WRITE_FIELD(TPFILE,'JMAX', CLUOUT,IRESP,NJMAX) +CALL IO_WRITE_FIELD(TPFILE,'XHAT', CLUOUT,IRESP,XXHAT) +CALL IO_WRITE_FIELD(TPFILE,'YHAT', CLUOUT,IRESP,XYHAT) ! IF (CSTORAGE_TYPE=='TT') THEN - YCOMMENT=' ' - CALL FMWRIT(HOUTFILE,'THINSHELL',CLUOUT,'--',LTHINSHELL,0,LEN(YCOMMENT),YCOMMENT,IRESP) - YCOMMENT=' ' - CALL FMWRIT(HOUTFILE,'CARTESIAN',CLUOUT,'--',LCARTESIAN,0,LEN(YCOMMENT),YCOMMENT,IRESP) + CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',CLUOUT,IRESP,LTHINSHELL) + CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',CLUOUT,IRESP,LCARTESIAN) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index 6b55a0a58..c53d85fec 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -52,6 +52,7 @@ ! USE MODD_CONF, ONLY : CPROGRAM, NMASDEV, NBUGFIX, CBIBUSER, & L1D, L2D, LPACK +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF @@ -64,6 +65,7 @@ USE MODE_FMWRIT USE MODE_FMREAD USE MODE_IO_ll USE MODE_ll +USE MODE_MSG USE MODE_MODELN_HANDLER ! USE MODI_READ_HGRID @@ -106,6 +108,7 @@ LOGICAL :: GFOUND INTEGER :: IXOR_DAD,IYOR_DAD ! compared to Dad file, if any INTEGER :: IXOR,IYOR ! given or computed INTEGER :: IDXRATIO,IDYRATIO +TYPE(TFILEDATA) :: TZZOOMFILE ! REAL, DIMENSION(:,:), ALLOCATABLE :: ZZS1,ZZSMT1,ZZS2,ZZSMT2 ! @@ -198,8 +201,28 @@ IF ( (LEN_TRIM(YZOOMFILE) == 0) .OR. (ADJUSTL(YZOOMFILE) == ADJUSTL(CPGDFILE)) ) YZOOMFILE=ADJUSTL(ADJUSTR(CPGDFILE)//'.z'//ADJUSTL(YZOOMNBR)) END IF ! -CALL FMOPEN_ll(YZOOMFILE,'WRITE',CLUOUT0,1,1,5,ININAR,IRESP) -CALL WRITE_HGRID(1,YZOOMFILE,YDAD_NAME) +TZZOOMFILE%CNAME = YZOOMFILE +TZZOOMFILE%CTYPE = 'ZOOMPGD' +IF (LCDF4) THEN + IF (.NOT.LLFIOUT) THEN + TZZOOMFILE%CFORMAT='NETCDF4' + ELSE + TZZOOMFILE%CFORMAT='LFICDF4' + TZZOOMFILE%NLFINPRAR= 1 + END IF +ELSE IF (LLFIOUT) THEN + TZZOOMFILE%CFORMAT='LFI' + TZZOOMFILE%NLFINPRAR= 1 +ELSE + CALL PRINT_MSG(NVERB_FATAL,'IO','ZOOM_PGD','unknown backup/output fileformat') +ENDIF +TZZOOMFILE%CMODE = 'WRITE' +TZZOOMFILE%NLFITYPE = 1 +TZZOOMFILE%NLFIVERB = 5 +!PW: TODO: points to dad file (if existing) ! TZZOOMFILE%TDADFILE => +! +CALL IO_FILE_OPEN_ll(TZZOOMFILE,CLUOUT0,IRESP) +CALL WRITE_HGRID(1,TZZOOMFILE) ! !* 2.5 Preparation of surface physiographic fields ! ------------------------------------------- @@ -225,40 +248,26 @@ IF (CSURF=='EXTE') THEN ELSE ALLOCATE(ZZS2(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ZZS2(:,:)=ZZS1(IXOR:IXOR+NIMAX+2*JPHEXT-1,IYOR:IYOR+NJMAX+2*JPHEXT-1) - YRECFM='ZS' - YCOMMENT='X_Y_orography (METERS)' - IGRID=4 - ILENCH=LEN(YCOMMENT) - CALL FMWRIT(YZOOMFILE,YRECFM,CLUOUT0,'XY',ZZS2,IGRID,ILENCH,YCOMMENT,IRESP) + CALL IO_WRITE_FIELD(TZZOOMFILE,'ZS',CLUOUT0,IRESP,ZZS2) END IF ! ALLOCATE(ZZSMT2(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ZZSMT2(:,:)=ZZSMT1(IXOR:IXOR+NIMAX+2*JPHEXT-1,IYOR:IYOR+NJMAX+2*JPHEXT-1) -YRECFM='ZSMT' -YCOMMENT='X_Y_smooth orography (METERS)' -IGRID=4 -ILENCH=LEN(YCOMMENT) -CALL FMWRIT(YZOOMFILE,YRECFM,CLUOUT0,'XY',ZZSMT2,IGRID,ILENCH,YCOMMENT,IRESP) +CALL IO_WRITE_FIELD(TZZOOMFILE,'ZSMT',CLUOUT0,IRESP,ZZSMT2) ! !* 2.7 Write configuration variables in the output file ! ------------------------------------------------ ! -CALL FMWRIT(YZOOMFILE,'MASDEV ',CLUOUT0,'--',NMASDEV,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'BUGFIX ',CLUOUT0,'--',NBUGFIX,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'BIBUSER ',CLUOUT0,'--',CBIBUSER,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'PROGRAM ',CLUOUT0,'--',CPROGRAM,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'STORAGE_TYPE',CLUOUT0,'--',CSTORAGE_TYPE,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'MY_NAME ',CLUOUT0,'--',YZOOMFILE,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'DAD_NAME ',CLUOUT0,'--',YDAD_NAME,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'DXRATIO ',CLUOUT0,'--',IDXRATIO,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'DYRATIO ',CLUOUT0,'--',IDYRATIO,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'XOR ',CLUOUT0,'--',IXOR_DAD,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'YOR ',CLUOUT0,'--',IYOR_DAD,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'L1D ',CLUOUT0,'--',L1D,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'L2D ',CLUOUT0,'--',L2D,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'PACK ',CLUOUT0,'--',LPACK,0,1,' ',IRESP) -CALL FMWRIT(YZOOMFILE,'SURF ',CLUOUT0,'--',CSURF,0,1,' ',IRESP) -CALL FMCLOS_ll(YZOOMFILE,'KEEP',CLUOUT0,IRESP) +CALL IO_WRITE_HEADER(TZZOOMFILE,CLUOUT0) +CALL IO_WRITE_FIELD(TZZOOMFILE,'DXRATIO',CLUOUT0,IRESP,IDXRATIO) +CALL IO_WRITE_FIELD(TZZOOMFILE,'DYRATIO',CLUOUT0,IRESP,IDYRATIO) +CALL IO_WRITE_FIELD(TZZOOMFILE,'XOR', CLUOUT0,IRESP,IXOR_DAD) +CALL IO_WRITE_FIELD(TZZOOMFILE,'YOR', CLUOUT0,IRESP,IYOR_DAD) +CALL IO_WRITE_FIELD(TZZOOMFILE,'L1D', CLUOUT0,IRESP,L1D) +CALL IO_WRITE_FIELD(TZZOOMFILE,'L2D', CLUOUT0,IRESP,L2D) +CALL IO_WRITE_FIELD(TZZOOMFILE,'PACK', CLUOUT0,IRESP,LPACK) +CALL IO_WRITE_FIELD(TZZOOMFILE,'SURF', CLUOUT0,IRESP,CSURF) +CALL IO_FILE_CLOSE_ll(TZZOOMFILE,CLUOUT0,IRESP) ! !* 2.8 Shift to new PGD file ! --------------------- -- GitLab