From efb07473d4dcc0f1ee6ae62feca27a76f91b3478 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 8 Feb 2023 14:02:27 +0100 Subject: [PATCH] Philippe 08/02/2023: use TFIELDMETADATA custom constructor --- src/MNH/read_field.f90 | 632 ++++++++++++++++++++++------------------- 1 file changed, 332 insertions(+), 300 deletions(-) diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index d05aec8a4..b1b7d3565 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -636,56 +636,62 @@ END SELECT ! IF (LIBM .AND. CPROGRAM=='MESONH') THEN ! - TZFIELD%CMNHNAME = 'LSFP' - TZFIELD%CLONGNAME = 'LSFP' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'LSFP', & + CLONGNAME = 'LSFP', & + CSTDNAME = '', & + CUNITS = 'm', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL IO_Field_read(TPINIFILE,TZFIELD,PIBM_LSF) ! - TZFIELD%CMNHNAME = 'XMUT' - TZFIELD%CLONGNAME = 'XMUT' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm2 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'XMUT', & + CLONGNAME = 'XMUT', & + CSTDNAME = '', & + CUNITS = 'm2 s-1', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL IO_Field_read(TPINIFILE,TZFIELD,PIBM_XMUT) ! ENDIF ! -TZFIELD%CMNHNAME = 'RECYCLING' -TZFIELD%CLONGNAME = 'RECYCLING' -TZFIELD%CSTDNAME = '' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPELOG -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'RECYCLING', & + CLONGNAME = 'RECYCLING', & + CSTDNAME = '', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,ZLRECYCL,IRESP) !If field not found (file from older version of MesoNH) => set ZLRECYCL to false IF ( IRESP /= 0 ) ZLRECYCL = .FALSE. IF (ZLRECYCL) THEN ! - TZFIELD%CMNHNAME = 'RCOUNT' - TZFIELD%CLONGNAME = 'RCOUNT' - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'RCOUNT', & + CLONGNAME = 'RCOUNT', & + CSTDNAME = '', & + CUNITS = '', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'Incremental counter for averaging purpose' ) CALL IO_Field_read(TPINIFILE,TZFIELD,NR_COUNT) ! IF (NR_COUNT .NE. 0) THEN @@ -1030,13 +1036,14 @@ DO JSV = NSV_PPBEG, NSV_PPEND END DO IF ( NSV_SNW >= 1 ) THEN - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic for SNOWCANO_M', & + CUNITS = 'kg kg-1', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) DO JSV = 1, NSV_SNW SELECT CASE(HGETSVT(JSV)) CASE ('READ') @@ -1080,29 +1087,31 @@ IF (CCONF == 'RESTA') THEN END DO DO JSV = NSV_C2R2BEG,NSV_C2R2END IF (JSV == NSV_C2R2BEG ) THEN - TZFIELD%CMNHNAME = 'RSVS_CLD1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RSVS_CLD1' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RHS_CLD' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'RSVS_CLD1', & + CSTDNAME = '', & + CLONGNAME = 'RSVS_CLD1', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RHS_CLD', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) END IF IF (JSV == NSV_C2R2BEG ) THEN - TZFIELD%CMNHNAME = 'RSVS_CLD2' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RSVS_CLD2' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RHS_CLD' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'RSVS_CLD2', & + CSTDNAME = '', & + CLONGNAME = 'RSVS_CLD2', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RHS_CLD', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) END IF END DO @@ -1261,59 +1270,63 @@ END SELECT ! READ FIELD ONLY FOR MODEL1 (identical for all model in GN) IF (LOCEAN .AND. (.NOT.LCOUPLES) .AND. (KOCEMI==1)) THEN ! - CALL IO_Field_read(TPINIFILE,'NFRCLT',NFRCLT) - CALL IO_Field_read(TPINIFILE,'NINFRT',NINFRT) -! - TZFIELD%CMNHNAME = 'SSUFL_T' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SSUFL' - TZFIELD%CUNITS = 'kg m-1 s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'sfc stress along U to force ocean LES ' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. - ALLOCATE(XSSUFL_T(NFRCLT)) + CALL IO_Field_read(TPINIFILE,'NFRCLT',NFRCLT) + CALL IO_Field_read(TPINIFILE,'NINFRT',NINFRT) +! + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'SSUFL_T', & + CSTDNAME = '', & + CLONGNAME = 'SSUFL', & + CUNITS = 'kg m-1 s-1', & + CDIR = '--', & + CCOMMENT = 'sfc stress along U to force ocean LES', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) + ALLOCATE(XSSUFL_T(NFRCLT)) CALL IO_Field_read(TPINIFILE,TZFIELD,XSSUFL_T(:)) ! - TZFIELD%CMNHNAME = 'SSVFL_T' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SSVFL' - TZFIELD%CUNITS = 'kg m-1 s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'sfc stress along V to force ocean LES ' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. -ALLOCATE(XSSVFL_T(NFRCLT)) + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'SSVFL_T', & + CSTDNAME = '', & + CLONGNAME = 'SSVFL', & + CUNITS = 'kg m-1 s-1', & + CDIR = '--', & + CCOMMENT = 'sfc stress along V to force ocean LES', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) + ALLOCATE(XSSVFL_T(NFRCLT)) CALL IO_Field_read(TPINIFILE,TZFIELD,XSSVFL_T(:)) ! - TZFIELD%CMNHNAME = 'SSTFL_T' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SSTFL' - TZFIELD%CUNITS = 'kg m3 K m s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'sfc total heat flux to force ocean LES ' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. - ALLOCATE(XSSTFL_T(NFRCLT)) + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'SSTFL_T', & + CSTDNAME = '', & + CLONGNAME = 'SSTFL', & + CUNITS = 'kg m3 K m s-1', & + CDIR = '--', & + CCOMMENT = 'sfc total heat flux to force ocean LES', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) + ALLOCATE(XSSTFL_T(NFRCLT)) CALL IO_Field_read(TPINIFILE,TZFIELD,XSSTFL_T(:)) ! - TZFIELD%CMNHNAME = 'SSOLA_T' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SSOLA' - TZFIELD%CUNITS = 'kg m3 K m s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'sfc solar flux at sfc to force ocean LES ' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. - ALLOCATE(XSSOLA_T(NFRCLT)) + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'SSOLA_T', & + CSTDNAME = '', & + CLONGNAME = 'SSOLA', & + CUNITS = 'kg m3 K m s-1', & + CDIR = '--', & + CCOMMENT = 'sfc solar flux to force ocean LES', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) + ALLOCATE(XSSOLA_T(NFRCLT)) CALL IO_Field_read(TPINIFILE,TZFIELD,XSSOLA_T(:)) ! END IF ! ocean sfc forcing end @@ -1324,160 +1337,173 @@ IF ( LFORCING ) THEN ! WRITE (YFRC,'(I3.3)') JT ! - TZFIELD%CMNHNAME = 'DTFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'seconds since YYYY-MM-DD HH:MM:SS.S' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Date of forcing profile '//YFRC - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEDATE - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'DTFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'DTFRC'//YFRC, & + CUNITS = 'seconds since YYYY-MM-DD HH:MM:SS.S', & + CDIR = '--', & + CCOMMENT = 'Date of forcing profile '//YFRC, & + NGRID = 0, & + NTYPE = TYPEDATE, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTFRC(JT)) ! - TZFIELD%CMNHNAME = 'UFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Zonal component of horizontal forcing wind' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'UFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'UFRC'//YFRC, & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = 'Zonal component of horizontal forcing wind', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PUFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'VFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Meridian component of horizontal forcing wind' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'VFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'VFRC'//YFRC, & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = 'Meridian component of horizontal forcing wind', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PVFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'WFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Vertical forcing wind' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'WFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'WFRC'//YFRC, & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = 'Vertical forcing wind', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PWFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'THFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Forcing potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'THFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'THFRC'//YFRC, & + CUNITS = 'K', & + CDIR = '--', & + CCOMMENT = 'Forcing potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PTHFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'RVFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Forcing vapor mixing ratio' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'RVFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'RVFRC'//YFRC, & + CUNITS = 'kg kg-1', & + CDIR = '--', & + CCOMMENT = 'Forcing vapor mixing ratio', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PRVFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Large-scale potential temperature tendency for forcing' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'TENDTHFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TENDTHFRC'//YFRC, & + CUNITS = 'K s-1', & + CDIR = '--', & + CCOMMENT = 'Large-scale potential temperature tendency for forcing', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDTHFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg kg-1 s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Large-scale vapor mixing ratio tendency for forcing' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'TENDRVFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TENDRVFRC'//YFRC, & + CUNITS = 'kg kg-1 s-1', & + CDIR = '--', & + CCOMMENT = 'Large-scale vapor mixing ratio tendency for forcing', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDRVFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K m-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Large-scale potential temperature gradient for forcing' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'GXTHFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'GXTHFRC'//YFRC, & + CUNITS = 'K m-1', & + CDIR = '--', & + CCOMMENT = 'Large-scale potential temperature gradient for forcing', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PGXTHFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K m-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Large-scale potential temperature gradient for forcing' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'GYTHFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'GYTHFRC'//YFRC, & + CUNITS = 'K m-1', & + CDIR = '--', & + CCOMMENT = 'Large-scale potential temperature gradient for forcing', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PGYTHFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'Pa' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Forcing ground pressure' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'PGROUNDFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'PGROUNDFRC'//YFRC, & + CUNITS = 'Pa', & + CDIR = '--', & + CCOMMENT = 'Forcing ground pressure', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PPGROUNDFRC(JT)) ! - TZFIELD%CMNHNAME = 'TENDUFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Large-scale U tendency for forcing' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'TENDUFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TENDUFRC'//YFRC, & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = 'Large-scale U tendency for forcing', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDUFRC(:,JT)) ! - TZFIELD%CMNHNAME = 'TENDVFRC'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Large-scale V tendency for forcing' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'TENDVFRC'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TENDVFRC'//YFRC, & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = 'Large-scale V tendency for forcing', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDVFRC(:,JT)) END DO END IF @@ -1488,40 +1514,43 @@ IF (L2D_ADV_FRC) THEN DO JT=1,KADVFRC WRITE (YFRC,'(I3.3)') JT ! - TZFIELD%CMNHNAME = 'DTADV'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'seconds since YYYY-MM-DD HH:MM:SS.S' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Date and time of the advecting forcing '//YFRC - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEDATE - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'DTADV'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'DTADV'//YFRC, & + CUNITS = 'seconds since YYYY-MM-DD HH:MM:SS.S', & + CDIR = '--', & + CCOMMENT = 'Date and time of the advecting forcing '//YFRC, & + NGRID = 0, & + NTYPE = TYPEDATE, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTADVFRC(JT)) ! - TZFIELD%CMNHNAME = 'TH_ADV'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'TH_ADV'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TH_ADV'//YFRC, & + CUNITS = 'K s-1', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PDTHFRC(:,:,:,JT)) ! - TZFIELD%CMNHNAME = 'Q_ADV'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg kg-1 s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'Q_ADV'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'Q_ADV'//YFRC, & + CUNITS = 'kg kg-1 s-1', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PDRVFRC(:,:,:,JT)) ENDDO ENDIF @@ -1531,41 +1560,44 @@ IF (L2D_REL_FRC) THEN DO JT=1,KRELFRC WRITE (YFRC,'(I3.3)') JT ! - TZFIELD%CMNHNAME = 'DTREL'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'seconds since YYYY-MM-DD HH:MM:SS.S' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Date and time of the relaxation forcing '//YFRC - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEDATE - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'DTREL'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'DTREL'//YFRC, & + CUNITS = 'seconds since YYYY-MM-DD HH:MM:SS.S', & + CDIR = '--', & + CCOMMENT = 'Date and time of the relaxation forcing '//YFRC, & + NGRID = 0, & + NTYPE = TYPEDATE, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTRELFRC(JT)) ! ! Relaxation - TZFIELD%CMNHNAME = 'TH_REL'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'TH_REL'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TH_REL'//YFRC, & + CUNITS = 'K', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PTHREL(:,:,:,JT)) ! - TZFIELD%CMNHNAME = 'Q_REL'//YFRC - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'Q_REL'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'Q_REL'//YFRC, & + CUNITS = 'kg kg-1', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,PRVREL(:,:,:,JT)) ENDDO ENDIF -- GitLab