diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index b55c45de3ce68f708be765dc50f95eaa0c7001ab..d05aec8a485d1d6b5e2bdde43fe15b2f20910ceb 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -285,7 +285,8 @@ USE MODD_CONF_n, ONLY: IDX_RVT, IDX_RCT, IDX_RRT, IDX_RIT, IDX_RST, IDX USE MODD_CST, ONLY: XALPW, XBETAW, XCPD, XGAMW, XMD, XMV, XP00, XRD USE MODD_CTURB, ONLY: XTKEMIN USE MODD_DYN_n, ONLY: LOCEAN -use modd_field, only: tfieldmetadata, tfieldlist, TYPEDATE, TYPEREAL, TYPELOG, TYPEINT +use modd_field, only: tfieldmetadata, tfieldlist, NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED, & + TYPEDATE, TYPEREAL, TYPELOG, TYPEINT USE MODD_FIELD_n, only: XZWS_DEFAULT USE MODD_FIRE, ONLY: CWINDFILTER, LBLAZE, LRESTA_ASE, LRESTA_AWC, LRESTA_EWAM, LRESTA_WLIM, LWINDFILTER USE MODD_IBM_PARAM_n, ONLY: LIBM @@ -689,142 +690,178 @@ IF (ZLRECYCL) THEN ! IF (NR_COUNT .NE. 0) THEN IF (LRECYCLW) THEN - TZFIELD%CMNHNAME = 'URECYCLW' - TZFIELD%CLONGNAME = 'URECYCLW' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'URECYCLW', & + CLONGNAME = 'URECYCLW', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-WEST side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PUMEANW) ! - TZFIELD%CMNHNAME = 'VRECYCLW' - TZFIELD%CLONGNAME = 'VRECYCLW' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'VRECYCLW', & + CLONGNAME = 'VRECYCLW', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-WEST side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PVMEANW) ! - TZFIELD%CMNHNAME = 'WRECYCLW' - TZFIELD%CLONGNAME = 'WRECYCLW' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'WRECYCLW', & + CLONGNAME = 'WRECYCLW', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-WEST side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PWMEANW) ! ENDIF IF (LRECYCLN) THEN - TZFIELD%CMNHNAME = 'URECYCLN' - TZFIELD%CLONGNAME = 'URECYCLN' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'URECYCLN', & + CLONGNAME = 'URECYCLN', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-NORTH side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PUMEANN) ! - TZFIELD%CMNHNAME = 'VRECYCLN' - TZFIELD%CLONGNAME = 'VRECYCLN' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'VRECYCLN', & + CLONGNAME = 'VRECYCLN', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-NORTH side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PVMEANN) ! - TZFIELD%CMNHNAME = 'WRECYCLN' - TZFIELD%CLONGNAME = 'WRECYCLN' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'WRECYCLN', & + CLONGNAME = 'WRECYCLN', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-NORTH side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PWMEANN) ! ENDIF IF (LRECYCLE) THEN - TZFIELD%CMNHNAME = 'URECYCLE' - TZFIELD%CLONGNAME = 'URECYCLE' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'URECYCLE', & + CLONGNAME = 'URECYCLE', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-EAST side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PUMEANE) ! - TZFIELD%CMNHNAME = 'VRECYCLE' - TZFIELD%CLONGNAME = 'VRECYCLE' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'VRECYCLE', & + CLONGNAME = 'VRECYCLE', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-EAST side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PVMEANE) ! - TZFIELD%CMNHNAME = 'WRECYCLE' - TZFIELD%CLONGNAME = 'WRECYCLE' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'WRECYCLE', & + CLONGNAME = 'WRECYCLE', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-EAST side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PWMEANE) ! ENDIF IF (LRECYCLS) THEN - TZFIELD%CMNHNAME = 'URECYCLS' - TZFIELD%CLONGNAME = 'URECYCLS' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'URECYCLS', & + CLONGNAME = 'URECYCLS', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-SOUTH side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PUMEANS) ! - TZFIELD%CMNHNAME = 'VRECYCLS' - TZFIELD%CLONGNAME = 'VRECYCLS' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'VRECYCLS', & + CLONGNAME = 'VRECYCLS', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-SOUTH side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PVMEANS) ! - TZFIELD%CMNHNAME = 'WRECYCLS' - TZFIELD%CLONGNAME = 'WRECYCLS' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'WRECYCLS', & + CLONGNAME = 'WRECYCLS', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-SOUTH side plan for recycling purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,PWMEANS) ENDIF ENDIF diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index e6b300e99bbaee580725c3c693d8dbf9b1f0216a..a3c1e91fc2d9804cdbf94d4a0bf15e1a812254bb 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -217,7 +217,8 @@ USE MODD_EOL_ALM USE MODD_EOL_MAIN USE MODD_EOL_SHARED_IO USE MODD_FIELD_n -use modd_field, only: NMNHDIM_UNUSED, tfieldmetadata, tfieldlist, TYPECHAR, TYPEDATE, TYPEINT, TYPELOG, TYPEREAL +use modd_field, only: NMNHDIM_UNUSED, tfieldmetadata, tfieldlist, NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED, & + TYPECHAR, TYPEDATE, TYPEINT, TYPELOG, TYPEREAL USE MODD_FIRE #ifdef MNH_FOREFIRE USE MODD_FOREFIRE @@ -538,6 +539,7 @@ IF (LRECYCL) THEN NGRID = 2, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'UMEAN-WEST side plan for recycling purpose' ) ! @@ -552,6 +554,7 @@ IF (LRECYCL) THEN NGRID = 3, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'VMEAN-WEST side plan for recycling purpose' ) ! @@ -566,6 +569,7 @@ IF (LRECYCL) THEN NGRID = 4, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'WMEAN-WEST side plan for recycling purpose' ) ! @@ -582,6 +586,7 @@ IF (LRECYCL) THEN NGRID = 2, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'UMEAN-NORTH side plan for recycling purpose' ) ! @@ -596,6 +601,7 @@ IF (LRECYCL) THEN NGRID = 3, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'VMEAN-NORTH side plan for recycling purpose' ) ! @@ -610,6 +616,7 @@ IF (LRECYCL) THEN NGRID = 4, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'WMEAN-NORTH side plan for recycling purpose' ) ! @@ -626,6 +633,7 @@ IF (LRECYCL) THEN NGRID = 2, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'UMEAN-EAST side plan for recycling purpose' ) ! @@ -640,6 +648,7 @@ IF (LRECYCL) THEN NGRID = 3, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'VMEAN-EAST side plan for recycling purpose' ) ! @@ -654,6 +663,7 @@ IF (LRECYCL) THEN NGRID = 4, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'WMEAN-EAST side plan for recycling purpose' ) ! @@ -670,6 +680,7 @@ IF (LRECYCL) THEN NGRID = 2, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'UMEAN-SOUTH side plan for recycling purpose' ) ! @@ -684,6 +695,7 @@ IF (LRECYCL) THEN NGRID = 3, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'VMEAN-SOUTH side plan for recycling purpose' ) ! @@ -698,6 +710,7 @@ IF (LRECYCL) THEN NGRID = 4, & NTYPE = TYPEREAL, & NDIMS = 3, & + NDIMLIST = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_NOTLISTED ], & LTIMEDEP = .TRUE., & CCOMMENT = 'WMEAN-SOUTH side plan for recycling purpose' ) !