diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 index 42236655f7c00e3db69c6574f122cc343db0ff7e..1930838631bea8fe7286ba1bdbd9972602a933e3 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -123,16 +123,17 @@ subroutine IO_Mnhversion_get(tpfile) if ( .not. associated( tpfile%tmainfile ) ) then imnhversion(:) = 0 !use tzfield because tfieldlist could be not initialised - tzfield%cmnhname = 'MNHVERSION' - tzfield%cstdname = '' - tzfield%clongname = 'MesoNH version' - tzfield%cunits = '' - tzfield%cdir = '--' - tzfield%ccomment = '' - tzfield%ngrid = 0 - tzfield%ntype = TYPEINT - tzfield%ndims = 1 - tzfield%ltimedep = .false. + tzfield = tfielddata( & + cmnhname = 'MNHVERSION', & + cstdname = '', & + clongname = 'MesoNH version', & + cunits = '', & + cdir = '--', & + ccomment = '', & + ngrid = 0, & + ntype = TYPEINT, & + ndims = 1, & + ltimedep = .false. ) call IO_Field_read(tpfile,tzfield,imnhversion,iresp) if (iresp/=0) then tzfield%cmnhname = 'MASDEV' diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index cd93fe4fa34499fe46eb5fc4ca5ce4ab810cf196..107970bb15940b06dea2141347a63185a0b21073 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -366,54 +366,58 @@ END IF !* prints in the file the 3D Courant numbers (one should flag this) ! IF ( tpfile%lopened .AND. OCFL_WRIT .AND. (.NOT. L1D) ) THEN - TZFIELD%CMNHNAME = 'CFLU' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CFLU' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CFLU' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CFLU', & + CSTDNAME = '', & + CLONGNAME = 'CFLU', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CFLU', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZCFLU) ! IF (.NOT. L2D) THEN - TZFIELD%CMNHNAME = 'CFLV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CFLV' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CFLV' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CFLV', & + CSTDNAME = '', & + CLONGNAME = 'CFLV', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CFLV', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZCFLV) END IF ! - TZFIELD%CMNHNAME = 'CFLW' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CFLW' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CFLW' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CFLW', & + CSTDNAME = '', & + CLONGNAME = 'CFLW', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CFLW', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZCFLW) ! - TZFIELD%CMNHNAME = 'CFL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CFL' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CFL' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CFL', & + CSTDNAME = '', & + CLONGNAME = 'CFL', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CFL', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZCFL) END IF ! diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index b97914d1af619016ef85478e6aa2c275eb31421c..0112cd87a14e506d3afc204dc68f3e59b396938a 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -405,16 +405,17 @@ IF ( HRAD /= 'NONE' ) THEN END IF ! IF ( tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'NEB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NEB' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NEB', & + CSTDNAME = '', & + CLONGNAME = 'NEB', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NEB', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW1) END IF ! diff --git a/src/MNH/call_rttov11.f90 b/src/MNH/call_rttov11.f90 index e9eda58c83d726d4d3b27d595189f32abf9aadfd..e6a43b03e6ee8ca268b31ecf695ca520157a2d31 100644 --- a/src/MNH/call_rttov11.f90 +++ b/src/MNH/call_rttov11.f90 @@ -585,22 +585,17 @@ DO JSAT=1,IJSAT ! loop over sensors YEND=YTWO//YCHAN END IF -! IF (INRAD==1) THEN -! TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'rad' -! TZFIELD%CUNITS = 'mw/cm-1/ster/sq.m' -! TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' rad' -! ELSE - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT' - TZFIELD%CUNITS = 'K' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' BT' -! ENDIF - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT', & + CSTDNAME = '', & + CLONGNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' BT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! PRINT *,'YRECFM='//TRIM(TZFIELD%CMNHNAME) CALL IO_Field_write(TPFILE,TZFIELD,ZBT(:,:,JCH)) END DO diff --git a/src/MNH/call_rttov13.f90 b/src/MNH/call_rttov13.f90 index 97ccf20af2a1a608ad00478b2f05046572cef425..5c427dce7af43bb0ad843b7ea87a9d98c6211775 100644 --- a/src/MNH/call_rttov13.f90 +++ b/src/MNH/call_rttov13.f90 @@ -262,6 +262,7 @@ real (kind=jprb) :: zenangle integer (kind=jpim), parameter :: fin = 10 character (len=256) :: outstring ! ----------------------------------------------------------------------------- +CHARACTER(LEN=:), ALLOCATABLE :: YMNHNAME, YUNITS, YCOMMENT REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZTEMP TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- @@ -696,21 +697,25 @@ DO JSAT=1,IJSAT ! loop over sensors thermal = coefs%coef%ss_val_chn(ichan) < 2 ! solar = coefs%coef%ss_val_chn(ichan) > 0 IF (thermal) THEN - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT' - TZFIELD%CUNITS = 'K' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' brightness temperature' + YMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT' + YUNITS = 'K' + YCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' brightness temperature' ELSE - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'refl' - TZFIELD%CUNITS = '-' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' bidirectional reflectance factor' + YMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'refl' + YUNITS = '-' + YCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' bidirectional reflectance factor' END IF - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = 'MesoNH: ' // TRIM( YMNHNAME ), & + CUNITS = TRIM( YUNITS ), & + CDIR = 'XY', & + CCOMMENT = TRIM( YCOMMENT ), & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! ZOUT(:,:,JCH) = ZOUT(:,:,JCH) *ZCOSZEN(:,:) CALL IO_Field_write(TPFILE,TZFIELD,ZOUT(:,:,JCH)) END DO diff --git a/src/MNH/call_rttov8.f90 b/src/MNH/call_rttov8.f90 index 946021f408ea475fedeb5baeea3d2576a05df475..d38a71c2b540e56922818304d7202a84812f2a9f 100644 --- a/src/MNH/call_rttov8.f90 +++ b/src/MNH/call_rttov8.f90 @@ -686,6 +686,7 @@ REAL(Kind=jprb), PARAMETER :: q_mixratio_to_ppmv = 1.60771704e+6_JPRB REAL(Kind=jprb), PARAMETER :: o3_mixratio_to_ppmv = 6.03504e+5_JPRB INTEGER(Kind=jpim) :: alloc_status(40) +CHARACTER(LEN=:), ALLOCATABLE :: YMNHNAME, YUNITS, YCOMMENT TYPE(TFIELDDATA) :: TZFIELD ! - End of header -------------------------------------------------------- @@ -1567,16 +1568,17 @@ DO JSAT=1,IJSAT ! loop over sensors ! DO JK1=1,LEN_TRIM(inst_name(KRTTOVINFO(3,JSAT))) ! YINST(JK1:JK1)=CHAR(ICHAR(YINST(JK1:JK1))-32) ! END DO - TZFIELD%CMNHNAME = TRIM(YINST)//'_ANGL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'degree' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(YINST)//' ANGLE' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YINST)//'_ANGL', & + CSTDNAME = '', & + CLONGNAME = TRIM(YINST)//'_ANGL', & + CUNITS = 'degree', & + CDIR = 'XY', & + CCOMMENT = TRIM(YINST)//' ANGLE' & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT CALL IO_Field_write(TPFILE,TZFIELD,ZANTMP) END IF @@ -1619,36 +1621,41 @@ DO JSAT=1,IJSAT ! loop over sensors YEND=YTWO//YCHAN END IF IF (INRAD==1) THEN - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'rad' - TZFIELD%CUNITS = 'mw/cm-1/ster/sq.m' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' rad' + YMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'rad' + YUNITS = 'mw/cm-1/ster/sq.m' + YCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' rad' ELSE - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT' - TZFIELD%CUNITS = 'K' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' BT' + YMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'BT' + YUNITS = 'K' + YCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' BT' ENDIF - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & + CUNITS = TRIM( YUNITS ), & + CDIR = 'XY', & + CCOMMENT = TRIM( YCOMMENT ), & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZTBTMP(:,:,JCH),ZTBTMP(:,:,JCH)/=XUNDEF), & MAXVAL(ZTBTMP(:,:,JCH),ZTBTMP(:,:,JCH)/=XUNDEF) CALL IO_Field_write(TPFILE,TZFIELD,ZTBTMP(:,:,JCH)) IF (KRTTOVINFO(3,JSAT) == 4.AND. JCH==3 ) THEN ! AMSU-B - TZFIELD%CMNHNAME = TRIM(YBEG)//'_UTH' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'percent' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_UTH' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YBEG)//'_UTH', & + CSTDNAME = '', & + CLONGNAME = TRIM(YBEG)//'_UTH', & + CUNITS = 'percent', & + CDIR = 'XY', & + CCOMMENT = TRIM(YBEG)//'_UTH', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! UTH computation from Buehler and John JGR 2005 ZZH= 833000. ! (m) nominal altitude of the satellite zdeg_to_rad = XPI / 180.0 @@ -1720,31 +1727,33 @@ DO JSAT=1,IJSAT ! loop over sensors END DO END DO ! - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K K-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' JATEMP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAT', & + CSTDNAME = '', & + CLONGNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAT', & + CUNITS = 'K K-1', & + CDIR = 'XY', & + CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' JATEMP', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZTEMPK(:,:,:),ZTEMPK(:,:,:)/=XUNDEF), & MAXVAL(ZTEMPK(:,:,:),ZTEMPK(:,:,:)/=XUNDEF) CALL IO_Field_write(TPFILE,TZFIELD,ZTEMPK(:,:,:)) ! - TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' JAWVAP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAV', & + CSTDNAME = '', & + CLONGNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAV', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = TRIM(YBEG)//'_'//TRIM(YEND)//' JAWVAP', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) WHERE (ZWVAPK(:,:,:) /= XUNDEF) & ZWVAPK(:,:,:)=ZWVAPK(:,:,:)*(-0.1*PRT(:,:,:,1)) PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90 index 692fb3a1e0d1b8c90710f2d086f5bd37565c2962..85f43d0d24901e4ed87ba8814692f7604e984a8c 100644 --- a/src/MNH/compute_r00.f90 +++ b/src/MNH/compute_r00.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -106,6 +106,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:,:):: ZRV0 ! same fields ! for Rv as for the coordinates of the origin REAL, ALLOCATABLE, DIMENSION(:,:,:):: ZWORK1,ZWORK2,ZWORK3 TYPE(DATE_TIME) :: TDTCUR_START +CHARACTER(LEN=NMNHNAMELGTMAX) :: YMNHNAME CHARACTER(LEN=24) :: YDATE INTEGER :: IHOUR, IMINUTE REAL :: ZSECOND, ZREMAIN @@ -275,43 +276,49 @@ DO JFILECUR=1,NFILES ! IF (GSTART) THEN PRINT *,'INBR_START',INBR_START,' NBRFILES(JFILECUR)',NBRFILES(JFILECUR) - WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'X0',INBR_START - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME)//YDATE + WRITE(YMNHNAME,'(A2,I2.2)')'X0',INBR_START + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_'//TRIM(YMNHNAME)//YDATE, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) PRINT *,'YCOMMENT = ',TRIM(TZFIELD%CCOMMENT) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. CALL IO_Field_write(TPFILE,TZFIELD,ZX00(:,:,:)) ! - WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'Y0',INBR_START - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME)//YDATE + WRITE(YMNHNAME,'(A2,I2.2)')'Y0',INBR_START + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM(TZFIELD%CMNHNAME), & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_'//TRIM(YMNHNAME)//YDATE, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) PRINT *,'YCOMMENT = ',TRIM(TZFIELD%CCOMMENT) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. CALL IO_Field_write(TPFILE,TZFIELD,ZY00(:,:,:)) ! - WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'Z0',INBR_START - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME)//YDATE + WRITE(YMNHNAME,'(A2,I2.2)')'Z0',INBR_START + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_'//TRIM(YMNHNAME)//YDATE, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) PRINT *,'YCOMMENT = ',TRIM(TZFIELD%CCOMMENT) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. CALL IO_Field_write(TPFILE,TZFIELD,ZZ00(:,:,:)) END IF ! @@ -330,56 +337,60 @@ DO JFILECUR=1,NFILES ! IF (GSTART) THEN ! - WRITE(TZFIELD%CMNHNAME,'(A3,I2.2)')'TH0',INBR_START - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME)//YDATE + WRITE(YMNHNAME,'(A3,I2.2)')'TH0',INBR_START + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_'//TRIM(YMNHNAME)//YDATE, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) PRINT *,'YCOMMENT = ',TRIM(TZFIELD%CCOMMENT) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. CALL IO_Field_write(TPFILE,TZFIELD,ZWORK1(:,:,:)) ! - WRITE(TZFIELD%CMNHNAME,'(A3,I2.2)')'RV0',INBR_START - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'g kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME)//YDATE + WRITE(YMNHNAME,'(A3,I2.2)')'RV0',INBR_START + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & + CUNITS = 'g kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_'//TRIM(YMNHNAME)//YDATE, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) PRINT *,'YCOMMENT = ',TRIM(TZFIELD%CCOMMENT) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2(:,:,:)) ENDIF !* 4.4 compute the origin of the particules using one more segment ! IF (JFILECUR /= NFILES) THEN - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' !Unknown comment - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - ! - TZFIELD%CMNHNAME = 'LGXT' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LGXT', & + CSTDNAME = '', & + CLONGNAME = 'LGXT', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TZTRACFILE,TZFIELD,ZX0) ZX0(:,:,:)=ZX0(:,:,:)*1.E-3 ! ZX0 in km ! TZFIELD%CMNHNAME = 'LGYT' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) + TZFIELD%CLONGNAME = 'LGYT' CALL IO_Field_read(TZTRACFILE,TZFIELD,ZY0) ZY0(:,:,:)=ZY0(:,:,:)*1.E-3 ! ZY0 in km ! TZFIELD%CMNHNAME = 'LGZT' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) + TZFIELD%CLONGNAME = 'LGZT' CALL IO_Field_read(TZTRACFILE,TZFIELD,ZZ0) ZZ0(:,:,:)=ZZ0(:,:,:)*1.E-3 ! ZZ0 in km ! diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90 index 50496da72b87d003764faf82a65a856daf128c84..34fefa20ae0bdb144b7e86b510e6f93e8a93bb05 100644 --- a/src/MNH/free_atm_profile.f90 +++ b/src/MNH/free_atm_profile.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -468,32 +468,33 @@ IF (CPROGRAM == 'DIAG ' ) THEN Z2D(JI,JJ) = PZMASS_MX(JI,JJ,IK_BL_TOP(JI,JJ)) - PZS_LS(JI,JJ) END DO END DO - TZFIELD%CMNHNAME = 'HBLTOP' - TZFIELD%CSTDNAME = 'atmosphere_boundary_layer_thickness' - TZFIELD%CLONGNAME = 'HBLTOP' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Height of Boundary Layer TOP' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HBLTOP', & + CSTDNAME = 'atmosphere_boundary_layer_thickness', & + CLONGNAME = 'HBLTOP', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'Height of Boundary Layer TOP', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,Z2D) ! !* 11.2 Writing of level of boundary layer top ! -------------------------------------- ! - Z2D(:,:) = IK_BL_TOP(:,:) - TZFIELD%CMNHNAME = 'KBLTOP' - TZFIELD%CSTDNAME = 'model_level_number_at_top_of_atmosphere_boundary_layer' - TZFIELD%CLONGNAME = 'KBLTOP' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Index of Boundary Layer TOP' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'KBLTOP', & + CSTDNAME = 'model_level_number_at_top_of_atmosphere_boundary_layer', & + CLONGNAME = 'KBLTOP', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'Index of Boundary Layer TOP', & + NGRID = 4, & + NTYPE = TYPEINT, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,IK_BL_TOP) END IF ! @@ -502,19 +503,18 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN !* 11.3 Writing of free atmosphere gradient ! ----------------------------------- ! - Z2D(:,:)=ZFREE_GR(:,:) -! - TZFIELD%CMNHNAME = 'FREE_ATM_GR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'FREE_ATM_GR' - TZFIELD%CUNITS = 'K m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Free atmosphere gradient' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,Z2D) + TZFIELD = TFIELDDATA( & + CMNHNAME = 'FREE_ATM_GR', & + CSTDNAME = '', & + CLONGNAME = 'FREE_ATM_GR', & + CUNITS = 'K m-1', & + CDIR = 'XY', & + CCOMMENT = 'Free atmosphere gradient', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFREE_GR(:,:)) ! !* 11.4 Writing of free atmosphere 3D profiles ! -------------------------------------- @@ -525,16 +525,17 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN CALL COEF_VER_INTERP_LIN(PZ_FREE(:,:,:),ZZMASS(:,:,:),OLEUG=.TRUE.) Z3D(:,:,:)=VER_INTERP_LIN(PF_FREE(:,:,:),NKLIN(:,:,:),XCOEFLIN(:,:,:)) ! - TZFIELD%CMNHNAME = 'THV_FREE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THV_FREE' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_THV_FREE' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THV_FREE', & + CSTDNAME = '', & + CLONGNAME = 'THV_FREE', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_THV_FREE', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,Z3D) ! END IF diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90 index 0b22d34031958913fa591c450709ede432d98301..f5938cbc1951524bbd3d684ec386853181c2ae9b 100644 --- a/src/MNH/ini_aircraft_balloon.f90 +++ b/src/MNH/ini_aircraft_balloon.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2000-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -474,69 +474,74 @@ END IF IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) THEN ! read the current location in the FM_FILE ! - TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'LAT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'degree' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'LAT', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'LAT', & + CUNITS = 'degree', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,ZLAT,IRESP) ! IF ( IRESP /= 0 ) THEN WRITE(ILUOUT,*) "INI_LAUCH: Initial location take for ",TPFLYER%TITLE ELSE - TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'LON' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'degree' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'LON', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'LON', & + CUNITS = 'degree', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,ZLON) ! - TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'ALT', & + CUNITS = 'm', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%Z_CUR) ! TPFLYER%P_CUR = XUNDEF ! - TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'WASCENT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'WASCENT', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'WASCENT', & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%WASCENT) ! - TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg m-3' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'RHO', & + CUNITS = 'kg m-3', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%RHO) ! CALL SM_XYHAT(PLATOR,PLONOR,& diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90 index f4747410b9019c4081bb7335cd217cd6b0fb68ea..447fac0b06b38d843dfeaa16f1df28199800d920 100644 --- a/src/MNH/ini_deep_convection.f90 +++ b/src/MNH/ini_deep_convection.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -260,13 +260,14 @@ ELSE ! SELECT CASE(HGETSVCONV) CASE('READ') - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for ini_deep_convection', & !Temporary name to ease identification + CUNITS = 's-1', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! DO JSV = 1, NSV_USER WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index b4d44b50adff30ff2ee57769d3b6be3bbbceba63..b91b85868754149aeb5d1d01772a268f9be40a19 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -361,17 +361,18 @@ END SELECT !* 2.5 LB-Rx ! IF(KSIZELBXR_ll > 0 ) THEN - TZFIELD%CMNHNAME = 'HORELAX_R' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HORELAX_R' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Switch to activate the HOrizontal RELAXation' - TZFIELD%CLBTYPE = 'NONE' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPELOG - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HORELAX_R', & + CSTDNAME = '', & + CLONGNAME = 'HORELAX_R', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = 'Switch to activate the HOrizontal RELAXation', & + CLBTYPE = 'NONE', & + NGRID = 1, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_read(TPINIFILE,TZFIELD,GHORELAX_R) ! @@ -389,13 +390,13 @@ IF(KSIZELBXR_ll > 0 ) THEN IL3DY=2*JPHEXT ! 2 END IF ! - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CUNITS = 'kg kg-1', & + CDIR = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! IRR=0 JRR=1 diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index 344c2e97643255c8eca1400ab2da6eeb7bd860a0..b69b6a18ae466607cabdbc27a69a1c762a0c6a98 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -389,28 +389,30 @@ END IF PNPRO(:,:,:) = ZACT(:,:,:) ! IF ( tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'SURSAT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SURSAT' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SURSAT', & + CSTDNAME = '', & + CLONGNAME = 'SURSAT', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NEB', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! - TZFIELD%CMNHNAME = 'ACT_OD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ACT_OD' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ACT_OD', & + CSTDNAME = '', & + CLONGNAME = 'ACT_OD', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NEB', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZACT) END IF ! diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index 31ea1fefa3f64de70ef37019f48128354ae84871..0a7f2a4de44d9a7263a0625e493fb31ad3d9ff81 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -1187,16 +1187,17 @@ IF ( SIZE(PSRCS,3) /= 0 ) THEN END IF ! IF ( tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'NEB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NEB' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NEB', & + CSTDNAME = '', & + CLONGNAME = 'NEB', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NEB', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! @@ -1242,16 +1243,17 @@ IF ( tpfile%lopened ) THEN ZW1(:,:,:)= 2.0*PPABST(:,:,:)-PPABSM(:,:,:) ZW(:,:,:) = PRVT(:,:,:)*( ZW1(:,:,:)-ZW(:,:,:) ) / ( (XMV/XMD) * ZW(:,:,:) ) - 1.0 - TZFIELD%CMNHNAME = 'SSI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SSI' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SSI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SSI', & + CSTDNAME = '', & + CLONGNAME = 'SSI', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SSI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! diff --git a/src/MNH/lima_adjust_split.f90 b/src/MNH/lima_adjust_split.f90 index 6f7dbb738c7ebbe213c1145f31eba74964ecf3c4..67eefa30b93fcbe1f43482ec9a0d08c7f7b7a65d 100644 --- a/src/MNH/lima_adjust_split.f90 +++ b/src/MNH/lima_adjust_split.f90 @@ -726,16 +726,17 @@ IF ( OSUBG_COND ) THEN END IF ! fin test OSUBG_COND IF ( tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'NEB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NEB' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NEB', & + CSTDNAME = '', & + CLONGNAME = 'NEB', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NEB', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PCLDFR) END IF ! @@ -781,16 +782,17 @@ IF ( tpfile%lopened ) THEN ZW1(:,:,:)= 2.0*PPABST(:,:,:)-PPABSM(:,:,:) ZW(:,:,:) = PRVT(:,:,:)*( ZW1(:,:,:)-ZW(:,:,:) ) / ( (XMV/XMD) * ZW(:,:,:) ) - 1.0 - TZFIELD%CMNHNAME = 'SSI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SSI' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SSI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SSI', & + CSTDNAME = '', & + CLONGNAME = 'SSI', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SSI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90 index b7786ea4f056c16c1f632f33e51df67f572c71d1..2c2902a3751b6225e227c7952a6f39d17d56a0a9 100644 --- a/src/MNH/lima_ccn_activation.f90 +++ b/src/MNH/lima_ccn_activation.f90 @@ -488,28 +488,30 @@ IF ( tpfile%lopened ) THEN ZW2(:,:,:) = 0. END IF - TZFIELD%CMNHNAME ='SMAX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SMAX' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SMAX', & + CSTDNAME = '', & + CLONGNAME = 'SMAX', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SMAX', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW) ! - TZFIELD%CMNHNAME ='NACT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NACT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NACT', & + CSTDNAME = '', & + CLONGNAME = 'NACT', & + CUNITS = 'kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NACT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW2) END IF ! diff --git a/src/MNH/lima_notadjust.f90 b/src/MNH/lima_notadjust.f90 index 94ea1f4fdac0f3df7143f867cdd9e28740f8a5b6..e1eb550e465de662409847510cc406fef8df5d5b 100644 --- a/src/MNH/lima_notadjust.f90 +++ b/src/MNH/lima_notadjust.f90 @@ -566,16 +566,17 @@ END IF ! IF ( tpfile%lopened ) THEN ZW(:,:,:)=SUM(ZNAS,4)-ZW(:,:,:) - TZFIELD%CMNHNAME = 'NACT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NACT' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NACT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NACT', & + CSTDNAME = '', & + CLONGNAME = 'NACT', & + CUNITS = 'kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NACT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90 index 549a5fc8460f4ac857a2171b64b324f9aec84b95..8f50a87982fac6af7ee0a13de88a3ca529eb73e8 100644 --- a/src/MNH/lima_warm_nucl.f90 +++ b/src/MNH/lima_warm_nucl.f90 @@ -513,28 +513,30 @@ IF ( tpfile%lopened ) THEN ZW2(:,:,:) = 0. END IF - TZFIELD%CMNHNAME ='SMAX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SMAX' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SMAX', & + CSTDNAME = '', & + CLONGNAME = 'SMAX', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SMAX', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW) ! - TZFIELD%CMNHNAME ='NACT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NACT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NACT', & + CSTDNAME = '', & + CLONGNAME = 'NACT', & + CUNITS = 'kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NACT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZW2) END IF ! diff --git a/src/MNH/menu_diachro.f90 b/src/MNH/menu_diachro.f90 index 7c4fcea5abf4f33dfeb259ec7a071b8a9cb1ce44..88149a5697accc9c02078ccaf37e60c2a0ebb367 100644 --- a/src/MNH/menu_diachro.f90 +++ b/src/MNH/menu_diachro.f90 @@ -115,16 +115,17 @@ IF(HGROUP == 'END')THEN ILENG=NMNHNAMELGTMAX*IGROUP - TZFIELD%CMNHNAME = 'MENU_BUDGET.DIM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MENU_BUDGET.DIM' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MENU_BUDGET.DIM', & + CSTDNAME = '', & + CLONGNAME = 'MENU_BUDGET.DIM', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD,ILENG) ALLOCATE(ITABCHAR(ILENG)) @@ -134,16 +135,17 @@ IF(HGROUP == 'END')THEN ENDDO ENDDO - TZFIELD%CMNHNAME = 'MENU_BUDGET' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MENU_BUDGET' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MENU_BUDGET', & + CSTDNAME = '', & + CLONGNAME = 'MENU_BUDGET', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) @@ -154,16 +156,17 @@ ELSE IF(HGROUP == 'READ')THEN tzfile = tpdiafile tzfile%cformat = 'LFI' - TZFIELD%CMNHNAME = 'MENU_BUDGET.DIM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MENU_BUDGET.DIM' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MENU_BUDGET.DIM', & + CSTDNAME = '', & + CLONGNAME = 'MENU_BUDGET.DIM', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(tzfile,TZFIELD,ILENG,IRESPDIA) IF(IRESPDIA == -47)THEN ! print *,' No record MENU_BUDGET ' @@ -172,16 +175,17 @@ ELSE IF(HGROUP == 'READ')THEN ENDIF ALLOCATE(ITABCHAR(ILENG)) - TZFIELD%CMNHNAME = 'MENU_BUDGET' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MENU_BUDGET' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MENU_BUDGET', & + CSTDNAME = '', & + CLONGNAME = 'MENU_BUDGET', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(tzfile,TZFIELD,ITABCHAR) IGROUP=ILENG/NMNHNAMELGTMAX DO JJ=1,IGROUP diff --git a/src/MNH/mnh2lpdm_ech.f90 b/src/MNH/mnh2lpdm_ech.f90 index 67eb3ed1cfee5dd9b9b67986bac802aa11071fb9..62d3d9939b331215535cde1b8af4bd02ecea254b 100644 --- a/src/MNH/mnh2lpdm_ech.f90 +++ b/src/MNH/mnh2lpdm_ech.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2009-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -110,54 +110,59 @@ CALL IO_Field_read(TPFILE,'WT', XWT) CALL IO_Field_read(TPFILE,'THT', XTHT) CALL IO_Field_read(TPFILE,'TKET', XTKET) -tzfield%cmnhname = 'LM' -tzfield%clongname = '' -tzfield%cunits = 'm' -tzfield%cdir = 'XY' -tzfield%ccomment = 'Mixing length' -tzfield%ngrid = 1 -tzfield%ntype = TYPEREAL -tzfield%ndims = 3 +tzfield = tfielddata( & + cmnhname = 'LM', & + clongname = '', & + cunits = 'm', & + cdir = 'XY', & + ccomment = 'Mixing length', & + ngrid = 1, & + ntype = TYPEREAL, & + ndims = 3 ) CALL IO_Field_read(TPFILE, tzfield, XLM) -tzfield%cmnhname = 'THW_FLX' -tzfield%clongname = '' -tzfield%cunits = 'K s-1' !correct? -tzfield%cdir = 'XY' -tzfield%ccomment = 'Conservative potential temperature vertical flux' -tzfield%ngrid = 4 -tzfield%ntype = TYPEREAL -tzfield%ndims = 3 +tzfield = tfielddata( & + cmnhname = 'THW_FLX', & + clongname = '', & + cunits = 'K s-1', & !correct? + cdir = 'XY', & + ccomment = 'Conservative potential temperature vertical flux', & + ngrid = 4, & + ntype = TYPEREAL, & + ndims = 3 ) CALL IO_Field_read(TPFILE, tzfield, XWPTHP) -tzfield%cmnhname = 'DISS' -tzfield%clongname = '' -tzfield%cunits = '' !TODO: set units -tzfield%cdir = 'XY' -tzfield%ccomment = 'X_Y_Z_DISS' -tzfield%ngrid = 1 -tzfield%ntype = TYPEREAL -tzfield%ndims = 3 +tzfield = tfielddata( & + cmnhname = 'DISS', & + clongname = '', & + cunits = '', & !TODO: set units + cdir = 'XY', & + ccomment = 'X_Y_Z_DISS', & + ngrid = 1, & + ntype = TYPEREAL, & + ndims = 3 ) CALL IO_Field_read(TPFILE, tzfield, XDISSIP) -tzfield%cmnhname = 'FMU' -tzfield%clongname = '' -tzfield%cunits = 'kg m-1 s-2' -tzfield%cdir = 'XY' -tzfield%ccomment = 'X_Y_FMU' -tzfield%ngrid = 4 -tzfield%ntype = TYPEREAL -tzfield%ndims = 2 +tzfield = tfielddata( & + cmnhname = 'FMU', & + clongname = '', & + cunits = 'kg m-1 s-2', & + cdir = 'XY', & + ccomment = 'X_Y_FMU', & + ngrid = 4, & + ntype = TYPEREAL, & + ndims = 2 ) CALL IO_Field_read(TPFILE, tzfield, XSFU) -tzfield%cmnhname = 'FMV' -tzfield%clongname = '' -tzfield%cunits = 'kg m-1 s-2' -tzfield%cdir = 'XY' -tzfield%ccomment = 'X_Y_FMV' -tzfield%ngrid = 4 -tzfield%ntype = TYPEREAL -tzfield%ndims = 2 +tzfield = tfielddata( & + cmnhname = 'FMV', & + clongname = '', & + cunits = 'kg m-1 s-2', & + cdir = 'XY', & + ccomment = 'X_Y_FMV', & + ngrid = 4, & + ntype = TYPEREAL, & + ndims = 2 ) CALL IO_Field_read(TPFILE, tzfield, XSFV) CALL IO_Field_read(TPFILE,'INPRT', XINRT) diff --git a/src/MNH/mnh2lpdm_ini.f90 b/src/MNH/mnh2lpdm_ini.f90 index a430219a2c3e26b0ff17d55d836544c41648e91c..52a31e084c492da5b0f3914cb47f67d25a16a896 100644 --- a/src/MNH/mnh2lpdm_ini.f90 +++ b/src/MNH/mnh2lpdm_ini.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2009-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -207,14 +207,15 @@ CALL IO_Field_read(TPFILE1,'ZS',XZS) ! !* 2.8 Rugosite Z0. ! -tzfield%cmnhname = 'Z0' -tzfield%clongname = '' -tzfield%cunits = 'm' -tzfield%cdir = 'XY' -tzfield%ccomment = 'X_Y_Z0' -tzfield%ngrid = 4 -tzfield%ntype = TYPEREAL -tzfield%ndims = 2 +tzfield = tfielddata( & + cmnhname = 'Z0', & + clongname = '', & + cunits = 'm', & + cdir = 'XY', & + ccomment = 'X_Y_Z0', & + ngrid = 4, & + ntype = TYPEREAL, & + ndims = 2 ) CALL IO_Field_read(TPFILE1,tzfield,XZ0) ! XXPTSOMNH=XXHAT(1)+(XXHAT(2)-XXHAT(1))/2 diff --git a/src/MNH/paspol.f90 b/src/MNH/paspol.f90 index b3043a864dd8f4d66b9f7bae9e3d5d3ded8f1a1a..19ef9812903ca78da7b95c86498c28ea6d4e5408 100644 --- a/src/MNH/paspol.f90 +++ b/src/MNH/paspol.f90 @@ -141,7 +141,7 @@ REAL :: ZP, ZTH, ZT, ZRHO, ZMASAIR !INTEGER :: J4PTI,J4PTJ,J9PTI,J9PTJ ! REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZRHOM ! -REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZTEMPO, ZSVT ! Work arrays +REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZSVT ! Work arrays ! TYPE(DATE_TIME) :: TZDATE1,TZDATE2,TZDATE3,TZDATE4,TZDATE TYPE(TFIELDDATA) :: TZFIELD @@ -579,27 +579,23 @@ END DO !* 3.4 Ecriture conditionnelle. ! IF ( tpfile%lopened ) THEN - ALLOCATE( ZTEMPO(IIU,IJU,IKU) ) - ! - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'm-3' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for paspol', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = 'm-3', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! DO JSV=1,NSV_PP - ZTEMPO(:,:,:)=XATC(:,:,:,JSV) - ! WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'ATC',JSV+NSV_PPBEG-1 TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 ! - CALL IO_Field_write(TPFILE,TZFIELD,ZTEMPO) + CALL IO_Field_write(TPFILE,TZFIELD,XATC(:,:,:,JSV)) END DO - ! - DEALLOCATE(ZTEMPO) ENDIF ! DEALLOCATE(ZRHOM, ZSVT) diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90 index fbfe0a7621714cebb151faee288c99338a4a555b..370e025c4c7c8e7d950a6a3a425cc419121f125a 100644 --- a/src/MNH/prandtl.f90 +++ b/src/MNH/prandtl.f90 @@ -538,68 +538,73 @@ END IF ! end of HTURBDIM if-block IF ( OTURB_DIAG .AND. tpfile%lopened ) THEN ! ! stores the RED_TH1 - TZFIELD%CMNHNAME = 'RED_TH1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RED_TH1' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RED_TH1' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RED_TH1', & + CSTDNAME = '', & + CLONGNAME = 'RED_TH1', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RED_TH1', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PREDTH1) ! ! stores the RED_R1 - TZFIELD%CMNHNAME = 'RED_R1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RED_R1' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RED_R1' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RED_R1', & + CSTDNAME = '', & + CLONGNAME = 'RED_R1', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RED_R1', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PREDR1) ! ! stores the RED2_TH3 - TZFIELD%CMNHNAME = 'RED2_TH3' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RED2_TH3' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RED2_TH3' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RED2_TH3', & + CSTDNAME = '', & + CLONGNAME = 'RED2_TH3', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RED2_TH3', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PRED2TH3) ! ! stores the RED2_R3 - TZFIELD%CMNHNAME = 'RED2_R3' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RED2_R3' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RED2_R3' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RED2_R3', & + CSTDNAME = '', & + CLONGNAME = 'RED2_R3', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RED2_R3', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PRED2R3) ! ! stores the RED2_THR3 - TZFIELD%CMNHNAME = 'RED2_THR3' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RED2_THR3' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RED2_THR3' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RED2_THR3', & + CSTDNAME = '', & + CLONGNAME = 'RED2_THR3', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RED2_THR3', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PRED2THR3) ! END IF diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index e0bda3fcab8d068a4574d5adb6c0baaf8d966406..b6151ba3ff4959189f7df85b71ca4a53a6c16597 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -535,7 +535,7 @@ CHARACTER (LEN=2) :: YDIR ! Type of the data field INTEGER :: ISWB ! number of SW spectral bands (between radiations and surface schemes) INTEGER :: JSWB ! loop on SW spectral bands INTEGER :: JAE ! loop on aerosol class -TYPE(TFIELDDATA) :: TZFIELD +TYPE(TFIELDDATA) :: TZFIELD2D, TZFIELD3D ! REAL, DIMENSION(SIZE(PTHT,1),SIZE(PTHT,2),SIZE(PTHT,3)) :: ZDZPABST REAL :: ZMINVAL @@ -2684,6 +2684,24 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_3D2(:,:,:) = 0.0 ZSTORE_2D(:,:) = 0.0 ! + TZFIELD2D = TFIELDDATA( & + CMNHNAME = 'generic 2D for radiations', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) + + TZFIELD3D = TFIELDDATA( & + CMNHNAME = 'generic 3D for radiations', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) + IF( KRAD_DIAG >= 1) THEN ! ILUOUT = TLUOUT%NLU @@ -2698,17 +2716,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SWF_DOWN' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWF_DOWN' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SWF_DOWN' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SWF_DOWN' + TZFIELD3D%CLONGNAME = 'SWF_DOWN' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SWF_DOWN' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2719,17 +2731,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SWF_UP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWF_UP' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SWF_UP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SWF_UP' + TZFIELD3D%CLONGNAME = 'SWF_UP' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SWF_UP' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2740,17 +2746,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'LWF_DOWN' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWF_DOWN' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWF_DOWN' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'LWF_DOWN' + TZFIELD3D%CLONGNAME = 'LWF_DOWN' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LWF_DOWN' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2761,17 +2761,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'LWF_UP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWF_UP' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWF_UP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'LWF_UP' + TZFIELD3D%CLONGNAME = 'LWF_UP' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LWF_UP' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2782,17 +2776,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'LWF_NET' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWF_NET' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWF_NET' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'LWF_NET' + TZFIELD3D%CLONGNAME = 'LWF_NET' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LWF_NET' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2803,17 +2791,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SWF_NET' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWF_NET' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SWF_NET' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SWF_NET' + TZFIELD3D%CLONGNAME = 'SWF_NET' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SWF_NET' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE DO JJ=IJB,IJE @@ -2822,17 +2804,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'DTRAD_LW' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DTRAD_LW' - TZFIELD%CUNITS = 'K day-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DTRAD_LW' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'DTRAD_LW' + TZFIELD3D%CLONGNAME = 'DTRAD_LW' + TZFIELD3D%CUNITS = 'K day-1' + TZFIELD3D%CCOMMENT = 'X_Y_Z_DTRAD_LW' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE DO JJ=IJB,IJE @@ -2841,17 +2817,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'DTRAD_SW' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DTRAD_SW' - TZFIELD%CUNITS = 'K day-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DTRAD_SW' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'DTRAD_SW' + TZFIELD3D%CLONGNAME = 'DTRAD_SW' + TZFIELD3D%CUNITS = 'K day-1' + TZFIELD3D%CCOMMENT = 'X_Y_Z_DTRAD_SW' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2859,17 +2829,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZFLUX_TOP_GND_IRVISNIR(IIJ,5) END DO END DO - TZFIELD%CMNHNAME = 'RADSWD_VIS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RADSWD_VIS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_RADSWD_VIS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'RADSWD_VIS' + TZFIELD2D%CLONGNAME = 'RADSWD_VIS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_RADSWD_VIS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2877,17 +2841,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZFLUX_TOP_GND_IRVISNIR(IIJ,6) END DO END DO - TZFIELD%CMNHNAME = 'RADSWD_NIR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RADSWD_NIR' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_RADSWD_NIR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'RADSWD_NIR' + TZFIELD2D%CLONGNAME = 'RADSWD_NIR' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_RADSWD_NIR' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2895,17 +2853,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZFLUX_TOP_GND_IRVISNIR(IIJ,4) END DO END DO - TZFIELD%CMNHNAME = 'RADLWD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RADLWD' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_RADLWD' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'RADLWD' + TZFIELD2D%CLONGNAME = 'RADLWD' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_RADLWD' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) END IF ! ! @@ -2919,17 +2871,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SWF_DOWN_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWF_DOWN_CS' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SWF_DOWN_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SWF_DOWN_CS' + TZFIELD3D%CLONGNAME = 'SWF_DOWN_CS' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SWF_DOWN_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2940,17 +2886,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SWF_UP_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWF_UP_CS' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SWF_UP_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SWF_UP_CS' + TZFIELD3D%CLONGNAME = 'SWF_UP_CS' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SWF_UP_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2961,17 +2901,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'LWF_DOWN_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWF_DOWN_CS' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWF_DOWN_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'LWF_DOWN_CS' + TZFIELD3D%CLONGNAME = 'LWF_DOWN_CS' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LWF_DOWN_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2982,17 +2916,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'LWF_UP_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWF_UP_CS' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWF_UP_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'LWF_UP_CS' + TZFIELD3D%CLONGNAME = 'LWF_UP_CS' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LWF_UP_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3003,17 +2931,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'LWF_NET_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWF_NET_CS' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWF_NET_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'LWF_NET_CS' + TZFIELD3D%CLONGNAME = 'LWF_NET_CS' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LWF_NET_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3024,17 +2946,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SWF_NET_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWF_NET_CS' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SWF_NET_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SWF_NET_CS' + TZFIELD3D%CLONGNAME = 'SWF_NET_CS' + TZFIELD3D%CUNITS = 'W m-2' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SWF_NET_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK-JPVEXT @@ -3045,17 +2961,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'DTRAD_SW_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DTRAD_SW_CS' - TZFIELD%CUNITS = 'K day-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DTRAD_SW_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'DTRAD_SW_CS' + TZFIELD3D%CLONGNAME = 'DTRAD_SW_CS' + TZFIELD3D%CUNITS = 'K day-1' + TZFIELD3D%CCOMMENT = 'X_Y_Z_DTRAD_SW_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK-JPVEXT @@ -3066,17 +2976,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'DTRAD_LW_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DTRAD_LW_CS' - TZFIELD%CUNITS = 'K day-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DTRAD_LW_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'DTRAD_LW_CS' + TZFIELD3D%CLONGNAME = 'DTRAD_LW_CS' + TZFIELD3D%CUNITS = 'K day-1' + TZFIELD3D%CCOMMENT = 'X_Y_Z_DTRAD_LW_CS' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3084,17 +2988,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZFLUX_TOP_GND_IRVISNIR_CS(IIJ,5) END DO END DO - TZFIELD%CMNHNAME = 'RADSWD_VIS_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RADSWD_VIS_CS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_RADSWD_VIS_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'RADSWD_VIS_CS' + TZFIELD2D%CLONGNAME = 'RADSWD_VIS_CS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_RADSWD_VIS_CS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3102,17 +3000,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZFLUX_TOP_GND_IRVISNIR_CS(IIJ,6) END DO END DO - TZFIELD%CMNHNAME = 'RADSWD_NIR_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RADSWD_NIR_CS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_RADSWD_NIR_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'RADSWD_NIR_CS' + TZFIELD2D%CLONGNAME = 'RADSWD_NIR_CS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_RADSWD_NIR_CS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3120,17 +3012,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZFLUX_TOP_GND_IRVISNIR_CS(IIJ,4) END DO END DO - TZFIELD%CMNHNAME = 'RADLWD_CS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RADLWD_CS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_RADLWD_CS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'RADLWD_CS' + TZFIELD2D%CLONGNAME = 'RADLWD_CS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_RADLWD_CS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) END IF ! ! @@ -3141,17 +3027,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZPLAN_ALB_VIS(IIJ) END DO END DO - TZFIELD%CMNHNAME = 'PLAN_ALB_VIS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PLAN_ALB_VIS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_PLAN_ALB_VIS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'PLAN_ALB_VIS' + TZFIELD2D%CLONGNAME = 'PLAN_ALB_VIS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_PLAN_ALB_VIS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3159,17 +3039,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZPLAN_ALB_NIR(IIJ) END DO END DO - TZFIELD%CMNHNAME = 'PLAN_ALB_NIR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PLAN_ALB_NIR' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_PLAN_ALB_NIR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'PLAN_ALB_NIR' + TZFIELD2D%CLONGNAME = 'PLAN_ALB_NIR' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_PLAN_ALB_NIR' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3177,17 +3051,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZPLAN_TRA_VIS(IIJ) END DO END DO - TZFIELD%CMNHNAME = 'PLAN_TRA_VIS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PLAN_TRA_VIS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_PLAN_TRA_VIS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'PLAN_TRA_VIS' + TZFIELD2D%CLONGNAME = 'PLAN_TRA_VIS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_PLAN_TRA_VIS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3195,17 +3063,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZPLAN_TRA_NIR(IIJ) END DO END DO - TZFIELD%CMNHNAME = 'PLAN_TRA_NIR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PLAN_TRA_NIR' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_PLAN_TRA_NIR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'PLAN_TRA_NIR' + TZFIELD2D%CLONGNAME = 'PLAN_TRA_NIR' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_PLAN_TRA_NIR' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3213,17 +3075,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZPLAN_ABS_VIS(IIJ) END DO END DO - TZFIELD%CMNHNAME = 'PLAN_ABS_VIS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PLAN_ABS_VIS' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_PLAN_ABS_VIS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'PLAN_ABS_VIS' + TZFIELD2D%CLONGNAME = 'PLAN_ABS_VIS' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_PLAN_ABS_VIS' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3231,17 +3087,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(JI,JJ) = ZPLAN_ABS_NIR(IIJ) END DO END DO - TZFIELD%CMNHNAME = 'PLAN_ABS_NIR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PLAN_ABS_NIR' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_PLAN_ABS_NIR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) + TZFIELD2D%CMNHNAME = 'PLAN_ABS_NIR' + TZFIELD2D%CLONGNAME = 'PLAN_ABS_NIR' + TZFIELD2D%CUNITS = '' + TZFIELD2D%CCOMMENT = 'X_Y_PLAN_ABS_NIR' + CALL IO_Field_write(TPFILE,TZFIELD2D,ZSTORE_2D) ! ! END IF @@ -3257,17 +3107,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'EFNEB_DOWN' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'EFNEB_DOWN' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_EFNEB_DOWN' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'EFNEB_DOWN' + TZFIELD3D%CLONGNAME = 'EFNEB_DOWN' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_EFNEB_DOWN' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3278,17 +3122,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'EFNEB_UP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'EFNEB_UP' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_EFNEB_UP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'EFNEB_UP' + TZFIELD3D%CLONGNAME = 'EFNEB_UP' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_EFNEB_UP' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3299,17 +3137,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'FLWP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'FLWP' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_FLWP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'FLWP' + TZFIELD3D%CLONGNAME = 'FLWP' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_FLWP' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3320,17 +3152,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'FIWP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'FIWP' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_FIWP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'FIWP' + TZFIELD3D%CLONGNAME = 'FIWP' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_FIWP' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3341,17 +3167,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'EFRADL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'EFRADL' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RAD_microm' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'EFRADL' + TZFIELD3D%CLONGNAME = 'EFRADL' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_RAD_microm' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3362,17 +3182,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'EFRADI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'EFRADI' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RAD_microm' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'EFRADI' + TZFIELD3D%CLONGNAME = 'EFRADI' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_RAD_microm' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3383,17 +3197,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SW_NEB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SW_NEB' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SW_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SW_NEB' + TZFIELD3D%CLONGNAME = 'SW_NEB' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SW_NEB' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3404,17 +3212,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'RRTM_LW_NEB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RRTM_LW_NEB' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LW_NEB' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'RRTM_LW_NEB' + TZFIELD3D%CLONGNAME = 'RRTM_LW_NEB' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_LW_NEB' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! ! spectral bands IF (KSWB_OLD==6) THEN @@ -3431,41 +3233,23 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO ! DO JBAND=1,KSWB_OLD - TZFIELD%CMNHNAME = 'ODAER_'//YBAND_NAME(JBAND) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_OD_'//YBAND_NAME(JBAND) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZTAUAZ(:,:,:,JBAND)) + TZFIELD3D%CMNHNAME = 'ODAER_'//YBAND_NAME(JBAND) + TZFIELD3D%CLONGNAME = 'ODAER_'//YBAND_NAME(JBAND) + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_OD_'//YBAND_NAME(JBAND) + CALL IO_Field_write(TPFILE,TZFIELD3D,ZTAUAZ(:,:,:,JBAND)) ! - TZFIELD%CMNHNAME = 'SSAAER_'//YBAND_NAME(JBAND) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZPIZAZ(:,:,:,JBAND)) + TZFIELD3D%CMNHNAME = 'SSAAER_'//YBAND_NAME(JBAND) + TZFIELD3D%CLONGNAME = 'SSAAER_'//YBAND_NAME(JBAND) + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND) + CALL IO_Field_write(TPFILE,TZFIELD3D,ZPIZAZ(:,:,:,JBAND)) ! - TZFIELD%CMNHNAME = 'GAER_'//YBAND_NAME(JBAND) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_G_'//YBAND_NAME(JBAND) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZCGAZ(:,:,:,JBAND)) + TZFIELD3D%CMNHNAME = 'GAER_'//YBAND_NAME(JBAND) + TZFIELD3D%CLONGNAME = 'GAER_'//YBAND_NAME(JBAND) + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_G_'//YBAND_NAME(JBAND) + CALL IO_Field_write(TPFILE,TZFIELD3D,ZCGAZ(:,:,:,JBAND)) ENDDO DO JBAND=1,KSWB_OLD @@ -3478,17 +3262,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'OTH_'//YBAND_NAME(JBAND) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_OTH_'//YBAND_NAME(JBAND) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'OTH_'//YBAND_NAME(JBAND) + TZFIELD3D%CLONGNAME = 'OTH_'//YBAND_NAME(JBAND) + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_OTH_'//YBAND_NAME(JBAND) + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3499,17 +3277,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'SSA_'//YBAND_NAME(JBAND) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'SSA_'//YBAND_NAME(JBAND) + TZFIELD3D%CLONGNAME = 'SSA_'//YBAND_NAME(JBAND) + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_SSA_'//YBAND_NAME(JBAND) + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3520,17 +3292,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'ASF_'//YBAND_NAME(JBAND) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_ASF_'//YBAND_NAME(JBAND) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'ASF_'//YBAND_NAME(JBAND) + TZFIELD3D%CLONGNAME = 'ASF_'//YBAND_NAME(JBAND) + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_ASF_'//YBAND_NAME(JBAND) + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) END DO END IF ! @@ -3548,17 +3314,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN END DO END DO END DO - TZFIELD%CMNHNAME = 'O3CLIM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'O3CLIM' - TZFIELD%CUNITS = 'Pa Pa-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_O3' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) + TZFIELD3D%CMNHNAME = 'O3CLIM' + TZFIELD3D%CLONGNAME = 'O3CLIM' + TZFIELD3D%CUNITS = 'Pa Pa-1' + TZFIELD3D%CCOMMENT = 'X_Y_Z_O3' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D) ! !cumulated optical thickness of aerosols !cumul begin from the top of the domain, not from the TOA ! @@ -3579,17 +3339,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_2D(:,:) = ZSTORE_2D(:,:) + ZSTORE_3D(:,:,JK1) ZSTORE_3D2(:,:,JK1) = ZSTORE_2D(:,:) END DO - TZFIELD%CMNHNAME = 'CUM_AER_LAND' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CUM_AER_LAND' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) + TZFIELD3D%CMNHNAME = 'CUM_AER_LAND' + TZFIELD3D%CLONGNAME = 'CUM_AER_LAND' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D2) ! ! sea DO JK=IKB,IKE @@ -3608,17 +3362,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_3D2(:,:,JK1) = ZSTORE_2D(:,:) END DO ! - TZFIELD%CMNHNAME = 'CUM_AER_SEA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CUM_AER_SEA' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) + TZFIELD3D%CMNHNAME = 'CUM_AER_SEA' + TZFIELD3D%CLONGNAME = 'CUM_AER_SEA' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D2) ! ! desert DO JK=IKB,IKE @@ -3637,17 +3385,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_3D2(:,:,JK1) = ZSTORE_2D(:,:) END DO ! - TZFIELD%CMNHNAME = 'CUM_AER_DES' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CUM_AER_DES' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) + TZFIELD3D%CMNHNAME = 'CUM_AER_DES' + TZFIELD3D%CLONGNAME = 'CUM_AER_DES' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D2) ! ! urban DO JK=IKB,IKE @@ -3666,17 +3408,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_3D2(:,:,JK1) = ZSTORE_2D(:,:) END DO ! - TZFIELD%CMNHNAME = 'CUM_AER_URB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CUM_AER_URB' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) + TZFIELD3D%CMNHNAME = 'CUM_AER_URB' + TZFIELD3D%CLONGNAME = 'CUM_AER_URB' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D2) ! ! Volcanoes DO JK=IKB,IKE @@ -3695,17 +3431,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_3D2(:,:,JK1) = ZSTORE_2D(:,:) END DO ! - TZFIELD%CMNHNAME = 'CUM_AER_VOL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CUM_AER_VOL' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) + TZFIELD3D%CMNHNAME = 'CUM_AER_VOL' + TZFIELD3D%CLONGNAME = 'CUM_AER_VOL' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D2) ! ! stratospheric background DO JK=IKB,IKE @@ -3724,17 +3454,11 @@ IF( tpfile%lopened .AND. (KRAD_DIAG >= 1) ) THEN ZSTORE_3D2(:,:,JK1) = ZSTORE_2D(:,:) END DO ! - TZFIELD%CMNHNAME = 'CUM_AER_STRB' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CUM_AER_STRB' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) + TZFIELD3D%CMNHNAME = 'CUM_AER_STRB' + TZFIELD3D%CLONGNAME = 'CUM_AER_STRB' + TZFIELD3D%CUNITS = '' + TZFIELD3D%CCOMMENT = 'X_Y_Z_CUM_AER_OPT' + CALL IO_Field_write(TPFILE,TZFIELD3D,ZSTORE_3D2) ENDIF END IF ! diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90 index 5708c0d4c4742afee013137bff42bc0fc1d51c48..2aa49c4a406aac48604d616b3886820eda4d77d1 100644 --- a/src/MNH/rain_c2r2_khko.f90 +++ b/src/MNH/rain_c2r2_khko.f90 @@ -595,16 +595,17 @@ end if !! !! ! IF ( tpfile%lopened ) THEN -! TZFIELD%CMNHNAME = 'ZCHEN' -! TZFIELD%CSTDNAME = '' -! TZFIELD%CLONGNAME = 'ZCHEN' -! TZFIELD%CUNITS = '' -! TZFIELD%CDIR = 'XY' -! TZFIELD%CCOMMENT = 'X_Y_Z_ZCHEN' -! TZFIELD%NGRID = 1 -! TZFIELD%NTYPE = TYPEREAL -! TZFIELD%NDIMS = 3 -! TZFIELD%LTIMEDEP = .TRUE. +! TZFIELD = TFIELDDATA( & +! CMNHNAME = 'ZCHEN', & +! CSTDNAME = '', & +! CLONGNAME = 'ZCHEN', & +! CUNITS = '', & +! CDIR = 'XY', & +! CCOMMENT = 'X_Y_Z_ZCHEN', & +! NGRID = 1, & +! NTYPE = TYPEREAL, & +! NDIMS = 3, & +! LTIMEDEP = .TRUE. ) ! CALL IO_Field_write(TPFILE,TZFIELD,ZCHEN) ! END IF ! @@ -878,16 +879,17 @@ INUCT = COUNTJV( GNUCT(:,:,:),I1(:),I2(:),I3(:)) ! END IF ! IF ( tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'SMAX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SMAX' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SMAX' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SMAX', & + CSTDNAME = '', & + CLONGNAME = 'SMAX', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SMAX', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZZW1LOG) END IF ! @@ -1896,28 +1898,30 @@ DO JN = 1 , KSPLITR END IF ! IF ( OSEDC .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'SEDFLUXC' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SEDFLUXC' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SEDFLUXC' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SEDFLUXC', & + CSTDNAME = '', & + CLONGNAME = 'SEDFLUXC', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SEDFLUXC', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWSEDC) ! - TZFIELD%CMNHNAME = 'SEDFLUXR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SEDFLUXR' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_SEDFLUXR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SEDFLUXR', & + CSTDNAME = '', & + CLONGNAME = 'SEDFLUXR', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_SEDFLUXR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWSEDR) END IF END DO diff --git a/src/MNH/read_dummy_gr_fieldn.f90 b/src/MNH/read_dummy_gr_fieldn.f90 index 80f9ceefd4eb572e8c9f69a5eace441a7a0d2da6..7aa4136af72e3a82b01c0439bb7ac9ad6a0e8035 100644 --- a/src/MNH/read_dummy_gr_fieldn.f90 +++ b/src/MNH/read_dummy_gr_fieldn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -147,16 +147,17 @@ END IF ! ! IF (TPINIFILE%NMNHVERSION(1)>=4) THEN - TZFIELD%CMNHNAME = 'DUMMY_GR_NBR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DUMMY_GR_NBR' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'number of dummy pgd fields chosen by user' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DUMMY_GR_NBR', & + CSTDNAME = '', & + CLONGNAME = 'DUMMY_GR_NBR', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = 'number of dummy pgd fields chosen by user', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_read(TPINIFILE,TZFIELD,NDUMMY_GR_NBR,IRESP) ! @@ -176,18 +177,19 @@ ALLOCATE(XDUMMY_GR_FIELDS(SIZE(XXHAT),SIZE(XYHAT),NDUMMY_GR_NBR)) ! DO JDUMMY=1,NDUMMY_GR_NBR WRITE(YRECFM,'(A8,I3.3)') 'DUMMY_GR',JDUMMY - TZFIELD%CMNHNAME = TRIM(YRECFM) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(YRECFM) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - ! Expected comment is not known but is in the following form: - ! 'X_Y_'//TRIM(YRECFM)//YSTRING20//YSTRING03 - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YRECFM), & + CSTDNAME = '', & + CLONGNAME = TRIM(YRECFM), & + CUNITS = '', & + CDIR = 'XY', & + ! Expected comment is not known but is in the following form: + ! 'X_Y_'//TRIM(YRECFM)//YSTRING20//YSTRING03 + CCOMMENT = '', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! CALL IO_Field_read(TPINIFILE,TZFIELD,ZWORK(:,:),IRESP) ! diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index f051ed7393a5eb3042200c278fb0c6af3ebcbf0a..881e58362e63b7fc29199c7b32e458e3807ea78b 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2003-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -18,7 +18,7 @@ CONTAINS SUBROUTINE PREPARE_METADATA_READ_SURF(HREC,HDIR,KGRID,KTYPE,KDIMS,HSUBR,TPFIELD) ! -use modd_field, only: tfielddata, tfieldlist, TYPECHAR, TYPEDATE, TYPELOG +use modd_field, only: tfielddata, tfieldlist use mode_field, only: Find_field_id_from_mnhname ! CHARACTER(LEN=LEN_HREC),INTENT(IN) :: HREC ! name of the article to write @@ -71,25 +71,24 @@ IF (IRESP==0) THEN END IF ELSE CALL PRINT_MSG(NVERB_DEBUG,'IO',TRIM(HSUBR),TRIM(HREC)//' not found in FIELDLIST. Generating default metadata') - TPFIELD%CMNHNAME = TRIM(HREC) - TPFIELD%CSTDNAME = '' - TPFIELD%CLONGNAME = TRIM(HREC) - TPFIELD%CUNITS = '' - TPFIELD%CDIR = HDIR - TPFIELD%CCOMMENT = '' !Expected comment is not known - TPFIELD%NGRID = KGRID - TPFIELD%NTYPE = KTYPE - TPFIELD%NDIMS = KDIMS + TPFIELD = TFIELDDATA( & + CMNHNAME = TRIM(HREC), & + CSTDNAME = '', & + CLONGNAME = TRIM(HREC), & + CUNITS = '', & + CDIR = HDIR, & + CCOMMENT = '', & !Expected comment is not known + NGRID = KGRID, & + NTYPE = KTYPE, & + NDIMS = KDIMS, & + LTIMEDEP = .FALSE. ) #if 0 IF (TPFIELD%NDIMS==0 .OR. TPFIELD%NTYPE==TYPECHAR .OR. TPFIELD%NTYPE==TYPEDATE .OR. TPFIELD%NTYPE==TYPELOG) THEN TPFIELD%LTIMEDEP = .FALSE. ELSE TPFIELD%LTIMEDEP = .TRUE. END IF -#else - TPFIELD%LTIMEDEP = .FALSE. #endif - END IF ! END SUBROUTINE PREPARE_METADATA_READ_SURF @@ -810,33 +809,36 @@ CALL IO_Field_read(TPINFILE,'BUG', IBUGFIX) IF (IVERSION<7 .OR. (IVERSION==7 .AND. IBUGFIX==0)) THEN GCOVER_PACKED = .FALSE. ELSE - TZFIELD%CMNHNAME = 'COVER_PACKED' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'COVER_PACKED' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPELOG - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'COVER_PACKED', & + CSTDNAME = '', & + CLONGNAME = 'COVER_PACKED', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINFILE,TZFIELD,GCOVER_PACKED) END IF ! IF (.NOT. GCOVER_PACKED) THEN ICOVER=0 - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = '' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic no COVER_PACKED', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = '', & + CDIR = YDIR, & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) DO JL2=1,SIZE(OFLAG) WRITE(YREC,'(A5,I3.3)') 'COVER',JL2 TZFIELD%CMNHNAME = TRIM(YREC) TZFIELD%CLONGNAME = TRIM(YREC) TZFIELD%CCOMMENT = 'X_Y_'//TRIM(YREC) - TZFIELD%CDIR = YDIR IF (OFLAG(JL2)) THEN ICOVER=ICOVER+1 CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK3D(:,:,ICOVER),IRESP) @@ -1004,31 +1006,33 @@ CALL IO_Field_read(TPINFILE,'BUG', IBUGFIX) IF (IVERSION<7 .OR. (IVERSION==7 .AND. IBUGFIX==0)) THEN GCOVER_PACKED = .FALSE. ELSE - TZFIELD%CMNHNAME = 'COVER_PACKED' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'COVER_PACKED' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPELOG - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'COVER_PACKED', & + CSTDNAME = '', & + CLONGNAME = 'COVER_PACKED', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINFILE,TZFIELD,GCOVER_PACKED,KRESP) END IF ! IF (.NOT. GCOVER_PACKED) THEN WRITE(YREC,'(A5,I3.3)') 'COVER',KCOVER - TZFIELD%CMNHNAME = TRIM(YREC) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(YREC) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = YDIR1 - TZFIELD%CCOMMENT = 'X_Y_'//TRIM(YREC) - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YREC), & + CSTDNAME = '', & + CLONGNAME = TRIM(YREC), & + CUNITS = '', & + CDIR = YDIR1, & + CCOMMENT = 'X_Y_'//TRIM(YREC), & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK2D,KRESP) ELSE call Print_msg( NVERB_FATAL, 'IO', 'READ_SURFX2COV_1COV_MNH', 'GCOVER_PACKED=TRUE and we try to read the covers one by one' ) @@ -1706,16 +1710,17 @@ HCOMMENT = '' IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YFILETYPE2) ELSE - TZFIELD%CMNHNAME = 'STORAGETYPE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'STORAGETYPE' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPECHAR - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'STORAGETYPE', & + CSTDNAME = '', & + CLONGNAME = 'STORAGETYPE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPECHAR, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINFILE,TZFIELD,YFILETYPE40) YFILETYPE2 = YFILETYPE40(1:2) END IF @@ -1829,16 +1834,17 @@ HCOMMENT = '' IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YFILETYPE2) ELSE - TZFIELD%CMNHNAME = 'STORAGETYPE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'STORAGETYPE' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPECHAR - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'STORAGETYPE', & + CSTDNAME = '', & + CLONGNAME = 'STORAGETYPE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPECHAR, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_read(TPINFILE,TZFIELD,YFILETYPE40) YFILETYPE2 = YFILETYPE40(1:2) END IF @@ -1852,16 +1858,17 @@ END IF ! RETURN !END IF ! -TZFIELD%CMNHNAME = TRIM(HREC)//'%TDATE' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEINT -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(HREC)//'%TDATE', & + CSTDNAME = '', & + CLONGNAME = TRIM(HREC)//'%TDATE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_read(TPINFILE,TZFIELD,ITDATE(:,:),KRESP) ! @@ -1877,16 +1884,17 @@ IF (KRESP /=0) THEN WRITE(ILUOUT,*) ' ' ENDIF ! -TZFIELD%CMNHNAME = TRIM(HREC)//'%xtime' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 1 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(HREC)//'%xtime', & + CSTDNAME = '', & + CLONGNAME = TRIM(HREC)//'%xtime', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_read(TPINFILE,TZFIELD,PTIME(:),KRESP) ! diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90 index d5c0bbdfe887248e48f5ba99f4480353bce46465..b898b4bdaab0735a360dc20236576f881651c5ae 100644 --- a/src/MNH/shallow_mf_pack.f90 +++ b/src/MNH/shallow_mf_pack.f90 @@ -395,72 +395,77 @@ end if IF ( OMF_FLX .AND. tpfile%lopened ) THEN ! stores the conservative potential temperature vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZTHMF (:,:),(/ IIU,IJU,IKU /) ) - TZFIELD%CMNHNAME = 'MF_THW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MF_THW_FLX' - TZFIELD%CUNITS = 'K m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MF_THW_FLX' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MF_THW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'MF_THW_FLX', & + CUNITS = 'K m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MF_THW_FLX', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the conservative mixing ratio vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZRMF(:,:),(/ IIU,IJU,IKU /) ) - TZFIELD%CMNHNAME = 'MF_RCONSW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MF_RCONSW_FLX' - TZFIELD%CUNITS = 'K m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MF_RCONSW_FLX' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MF_RCONSW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'MF_RCONSW_FLX', & + CUNITS = 'K m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MF_RCONSW_FLX', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the theta_v vertical flux - TZFIELD%CMNHNAME = 'MF_THVW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MF_THVW_FLX' - TZFIELD%CUNITS = 'K m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MF_THVW_FLX' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MF_THVW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'MF_THVW_FLX', & + CUNITS = 'K m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MF_THVW_FLX', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PFLXZTHVMF) ! IF (OMIXUV) THEN ! stores the U momentum vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZUMF(:,:),(/ IIU,IJU,IKU /) ) - TZFIELD%CMNHNAME = 'MF_UW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MF_UW_FLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MF_UW_FLX' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MF_UW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'MF_UW_FLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MF_UW_FLX', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the V momentum vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZVMF(:,:),(/ IIU,IJU,IKU /) ) - TZFIELD%CMNHNAME = 'MF_VW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MF_VW_FLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MF_VW_FLX' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MF_VW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'MF_VW_FLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MF_VW_FLX', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! END IF diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 4efe246beff2b829a835448166f9ad33bd6ea51f..40a902d17e2e22391bd9d15a3fcb81b1615892c8 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -415,58 +415,62 @@ IF ( OTURB_DIAG .AND. tpfile%lopened ) THEN ! ! stores the dynamic production ! - TZFIELD%CMNHNAME = 'DP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DP' - TZFIELD%CUNITS = 'm2 s-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DP', & + CSTDNAME = '', & + CLONGNAME = 'DP', & + CUNITS = 'm2 s-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_DP', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PDP) ! ! stores the thermal production ! - TZFIELD%CMNHNAME = 'TP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'TP' - TZFIELD%CUNITS = 'm2 s-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_TP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TP', & + CSTDNAME = '', & + CLONGNAME = 'TP', & + CUNITS = 'm2 s-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_TP', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PTP) ! ! stores the whole turbulent transport ! - TZFIELD%CMNHNAME = 'TR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'TR' - TZFIELD%CUNITS = 'm2 s-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_TR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TR', & + CSTDNAME = '', & + CLONGNAME = 'TR', & + CUNITS = 'm2 s-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_TR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PTR) ! ! stores the dissipation of TKE ! - TZFIELD%CMNHNAME = 'DISS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DISS' - TZFIELD%CUNITS = 'm2 s-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DISS' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DISS', & + CSTDNAME = '', & + CLONGNAME = 'DISS', & + CUNITS = 'm2 s-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_DISS', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PDISS) END IF ! diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 228241e2ce6e40965f1766ef2b8396210a08c4c9..44178ca883f98abe259e7d7ba18a87243a4d9a6d 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -699,28 +699,30 @@ IF (KRRL >=1) THEN ! ! IF ( tpfile%lopened .AND. OTURB_DIAG ) THEN - TZFIELD%CMNHNAME = 'ATHETA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ATHETA' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_ATHETA' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ATHETA', & + CSTDNAME = '', & + CLONGNAME = 'ATHETA', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_ATHETA', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZATHETA) -! - TZFIELD%CMNHNAME = 'AMOIST' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'AMOIST' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_AMOIST' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. +! + TZFIELD = TFIELDDATA( & + CMNHNAME = 'AMOIST', & + CSTDNAME = '', & + CLONGNAME = 'AMOIST', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_AMOIST', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZAMOIST) END IF ! @@ -1152,46 +1154,49 @@ IF ( OTURB_DIAG .AND. tpfile%lopened ) THEN ! ! stores the mixing length ! - TZFIELD%CMNHNAME = 'LM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LM' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Mixing length' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LM', & + CSTDNAME = '', & + CLONGNAME = 'LM', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'Mixing length', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PLEM) ! IF (KRR /= 0) THEN ! ! stores the conservative potential temperature ! - TZFIELD%CMNHNAME = 'THLM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THLM' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Conservative potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THLM', & + CSTDNAME = '', & + CLONGNAME = 'THLM', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'Conservative potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PTHLT) ! ! stores the conservative mixing ratio ! - TZFIELD%CMNHNAME = 'RNPM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RNPM' - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Conservative mixing ratio' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RNPM', & + CSTDNAME = '', & + CLONGNAME = 'RNPM', & + CUNITS = 'kg kg-1', & + CDIR = 'XY', & + CCOMMENT = 'Conservative mixing ratio',& + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PRT(:,:,:,1)) END IF END IF @@ -1820,16 +1825,17 @@ ENDIF ! ! Impression before modification of the mixing length IF ( OTURB_DIAG .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'LM_CLEAR_SKY' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LM_CLEAR_SKY' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LM CLEAR SKY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LM_CLEAR_SKY', & + CSTDNAME = '', & + CLONGNAME = 'LM_CLEAR_SKY', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_LM CLEAR SKY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PLEM) ENDIF ! @@ -1846,27 +1852,30 @@ WHERE (PCEI(:,:,:) == -1.) PLEM(:,:,:) = ZLM_CLOUD(:,:,:) ! ---------- ! IF ( OTURB_DIAG .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'COEF_AMPL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'COEF_AMPL' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_COEF AMPL' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'COEF_AMPL', & + CSTDNAME = '', & + CLONGNAME = 'COEF_AMPL', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_COEF AMPL', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZCOEF_AMPL) ! - TZFIELD%CMNHNAME = 'LM_CLOUD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LM_CLOUD' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LM CLOUD' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LM_CLOUD', & + CSTDNAME = '', & + CLONGNAME = 'LM_CLOUD', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_LM CLOUD', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZLM_CLOUD) ! ENDIF diff --git a/src/MNH/turb_cloud_index.f90 b/src/MNH/turb_cloud_index.f90 index c194db61154a5c3fe6fcf2308dae47d01720856c..44392d8fa556542c6c41bd4f56a148ca49eef659 100644 --- a/src/MNH/turb_cloud_index.f90 +++ b/src/MNH/turb_cloud_index.f90 @@ -244,100 +244,108 @@ ENDDO !* 2.5 Writing ! IF ( OTURB_DIAG .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RVCI' - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RVCI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RVCI', & + CSTDNAME = '', & + CLONGNAME = 'RVCI', & + CUNITS = 'kg kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RVCI',& + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZRVCI) ! - TZFIELD%CMNHNAME = 'GX_RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'GX_RVCI' - TZFIELD%CUNITS = 'kg kg-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_GX_RVCI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'GX_RVCI', & + CSTDNAME = '', & + CLONGNAME = 'GX_RVCI', & + CUNITS = 'kg kg-1 m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_GX_RVCI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZG_RVCI(:,:,:,1)) ! - TZFIELD%CMNHNAME = 'GY_RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'GY_RVCI' - TZFIELD%CUNITS = 'kg kg-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_GY_RVCI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'GY_RVCI', & + CSTDNAME = '', & + CLONGNAME = 'GY_RVCI', & + CUNITS = 'kg kg-1 m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_GY_RVCI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZG_RVCI(:,:,:,2)) ! - TZFIELD%CMNHNAME = 'GNORM_RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'GNORM_RVCI' - TZFIELD%CUNITS = 'kg kg-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_NORM G' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'GNORM_RVCI', & + CSTDNAME = '', & + CLONGNAME = 'GNORM_RVCI', & + CUNITS = 'kg kg-1 m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_NORM G', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZGNORM_RVCI) ! - TZFIELD%CMNHNAME = 'QX_RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'QX_RVCI' - TZFIELD%CUNITS = 'kg kg-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_QX_RVCI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'QX_RVCI', & + CSTDNAME = '', & + CLONGNAME = 'QX_RVCI', & + CUNITS = 'kg kg-1 m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_QX_RVCI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,1)) ! - TZFIELD%CMNHNAME = 'QY_RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'QY_RVCI' - TZFIELD%CUNITS = 'kg kg-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_QY_RVCI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'QY_RVCI', & + CSTDNAME = '', & + CLONGNAME = 'QY_RVCI', & + CUNITS = 'kg kg-1 m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_QY_RVCI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,2)) ! - TZFIELD%CMNHNAME = 'QNORM_RVCI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'QNORM_RVCI' - TZFIELD%CUNITS = 'kg kg-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_QNORM_RVCI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'QNORM_RVCI', & + CSTDNAME = '', & + CLONGNAME = 'QNORM_RVCI', & + CUNITS = 'kg kg-1 m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_QNORM_RVCI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZQNORM_RVCI) ! - TZFIELD%CMNHNAME = 'CEI' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CEI' - TZFIELD%CUNITS = 'kg kg-1 m-1 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CEI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CEI', & + CSTDNAME = '', & + CLONGNAME = 'CEI', & + CUNITS = 'kg kg-1 m-1 s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CEI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,PCEI) END IF ! diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90 index 2a4a3e98d7fa391aa25e8b6c048680eca238bb63..a0c5ad948f0e4a9c3dd11fa1811298e69fdb962b 100644 --- a/src/MNH/turb_hor_dyn_corr.f90 +++ b/src/MNH/turb_hor_dyn_corr.f90 @@ -371,16 +371,17 @@ ZFLX(:,:,IKB-1) = 2. * ZFLX(:,:,IKB-1) - ZFLX(:,:,IKB) CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll) IF ( tpfile%lopened .AND. OTURB_FLX ) THEN ! stores <U U> - TZFIELD%CMNHNAME = 'U_VAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'U_VAR' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_U_VAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'U_VAR', & + CSTDNAME = '', & + CLONGNAME = 'U_VAR', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_U_VAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -466,16 +467,17 @@ CALL UPDATE_HALO_ll(TZFIELDS_ll, IINFO_ll) ! IF ( tpfile%lopened .AND. OTURB_FLX ) THEN ! stores <V V> - TZFIELD%CMNHNAME = 'V_VAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'V_VAR' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_V_VAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'V_VAR', & + CSTDNAME = '', & + CLONGNAME = 'V_VAR', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_V_VAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -553,16 +555,17 @@ ZFLX(:,:,IKB-1) = 2. * ZFLX(:,:,IKB-1) - ZFLX(:,:,IKB) ! IF ( tpfile%lopened .AND. OTURB_FLX ) THEN ! stores <W W> - TZFIELD%CMNHNAME = 'W_VAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'W_VAR' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_W_VAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'W_VAR', & + CSTDNAME = '', & + CLONGNAME = 'W_VAR', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_W_VAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90 index 163ee3d0203f1e9cad04a62d18573d07707c4c20..de501f779bb9bc71c51c4834e84178eca90e5ea3 100644 --- a/src/MNH/turb_hor_sv_flux.f90 +++ b/src/MNH/turb_hor_sv_flux.f90 @@ -185,6 +185,7 @@ REAL, DIMENSION(SIZE(PDZZ,1),SIZE(PDZZ,2),1+JPVEXT:3+JPVEXT) :: ZCOEFF ! coefficients for the uncentred gradient ! computation near the ground ! +CHARACTER(LEN=NMNHNAMELGTMAX) :: YMNHNAME INTEGER :: IKU TYPE(TFIELDDATA) :: TZFIELD REAL :: ZTIME1, ZTIME2 @@ -248,16 +249,18 @@ DO JSV=1,ISV ! ! stores <U SVth> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - WRITE(TZFIELD%CMNHNAME,'("USV_FLX_",I3.3)') JSV - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'SVUNIT m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + WRITE(YMNHNAME,'("USV_FLX_",I3.3)') JSV + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & + CUNITS = 'SVUNIT m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_' // TRIM( YMNHNAME ), & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXX) END IF ! @@ -299,16 +302,18 @@ DO JSV=1,ISV ! ! stores <V SVth> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - WRITE(TZFIELD%CMNHNAME,'("VSV_FLX_",I3.3)') JSV - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'SVUNIT m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + WRITE(YMNHNAME,'("VSV_FLX_",I3.3)') JSV + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM(TZFIELD%CMNHNAME), & + CUNITS = 'SVUNIT m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME), & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXY) END IF ! diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90 index b619486765f9001c536c5b7860997c9c8894aaca..d5102212b4abbf325a821e18f3fcec74cc005142 100644 --- a/src/MNH/turb_hor_thermo_corr.f90 +++ b/src/MNH/turb_hor_thermo_corr.f90 @@ -266,16 +266,17 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ! ! stores <THl THl> IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'THL_HVAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THL_HVAR' - TZFIELD%CUNITS = 'K2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_THL_HVAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THL_HVAR', & + CSTDNAME = '', & + CLONGNAME = 'THL_HVAR', & + CUNITS = 'K2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_THL_HVAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -354,16 +355,17 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ! ! stores <THl Rnp> IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'THLR_HCOR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THLR_HCOR' - TZFIELD%CUNITS = 'K kg kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_THLR_HCOR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THLR_HCOR', & + CSTDNAME = '', & + CLONGNAME = 'THLR_HCOR', & + CUNITS = 'K kg kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_THLR_HCOR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -422,16 +424,17 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. tpfile%lopened ) & ! ! stores <Rnp Rnp> IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'R_HVAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'R_HVAR' - TZFIELD%CUNITS = 'kg2 kg-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_R_HVAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'R_HVAR', & + CSTDNAME = '', & + CLONGNAME = 'R_HVAR', & + CUNITS = 'kg2 kg-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_R_HVAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90 index 90d189a2bf41c8261bc26bc692a95ec3fc2297a6..a4dd3bdee5b758465a901e69eda9ffd064b8f5f8 100644 --- a/src/MNH/turb_hor_thermo_flux.f90 +++ b/src/MNH/turb_hor_thermo_flux.f90 @@ -311,16 +311,17 @@ END IF ! ! stores the horizontal <U THl> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'UTHL_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UTHL_FLX' - TZFIELD%CUNITS = 'K m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_UTHL_FLX' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UTHL_FLX', & + CSTDNAME = '', & + CLONGNAME = 'UTHL_FLX', & + CUNITS = 'K m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_UTHL_FLX', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -414,16 +415,17 @@ IF (KRR/=0) THEN ! ! stores the horizontal <U Rnp> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'UR_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UR_FLX' - TZFIELD%CUNITS = 'kg kg-1 m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_UR_FLX' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UR_FLX', & + CSTDNAME = '', & + CLONGNAME = 'UR_FLX', & + CUNITS = 'kg kg-1 m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_UR_FLX', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -463,16 +465,17 @@ END IF !! ! !! ! stores the horizontal <U VPT> !! IF ( tpfile%lopened .AND. OTURB_FLX ) THEN -!! TZFIELD%CMNHNAME = 'UVPT_FLX' -!! TZFIELD%CSTDNAME = '' -!! TZFIELD%CLONGNAME = 'UVPT_FLX' -!! TZFIELD%CUNITS = 'K m s-1' -!! TZFIELD%CDIR = 'XY' -!! TZFIELD%CCOMMENT = 'X_Y_Z_UVPT_FLX' -!! TZFIELD%NGRID = 2 -!! TZFIELD%NTYPE = TYPEREAL -!! TZFIELD%NDIMS = 3 -!! TZFIELD%LTIMEDEP = .TRUE. +!! TZFIELD = TFIELDDATA( & +!! CMNHNAME = 'UVPT_FLX', & +!! CSTDNAME = '', & +!! CLONGNAME = 'UVPT_FLX', & +!! CUNITS = 'K m s-1', & +!! CDIR = 'XY', & +!! CCOMMENT = 'X_Y_Z_UVPT_FLX', & +!! NGRID = 2, & +!! NTYPE = TYPEREAL, & +!! NDIMS = 3, & +!! LTIMEDEP = .TRUE. ) !! CALL IO_Field_write(TPFILE,TZFIELD,ZVPTU) !! END IF !!! @@ -566,16 +569,17 @@ END IF ! ! stores the horizontal <V THl> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'VTHL_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VTHL_FLX' - TZFIELD%CUNITS = 'K m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_VTHL_FLX' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VTHL_FLX', & + CSTDNAME = '', & + CLONGNAME = 'VTHL_FLX', & + CUNITS = 'K m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_VTHL_FLX', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -678,16 +682,17 @@ IF (KRR/=0) THEN ! ! stores the horizontal <V Rnp> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'VR_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VR_FLX' - TZFIELD%CUNITS = 'kg kg-1 m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_VR_FLX' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VR_FLX', & + CSTDNAME = '', & + CLONGNAME = 'VR_FLX', & + CUNITS = 'kg kg-1 m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_VR_FLX', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! @@ -731,16 +736,17 @@ END IF !! ! !! ! stores the horizontal <V VPT> !! IF ( tpfile%lopened .AND. OTURB_FLX ) THEN -!! TZFIELD%CMNHNAME = 'VVPT_FLX' -!! TZFIELD%CSTDNAME = '' -!! TZFIELD%CLONGNAME = 'VVPT_FLX' -!! TZFIELD%CUNITS = 'K m s-1' -!! TZFIELD%CDIR = 'XY' -!! TZFIELD%CCOMMENT = 'X_Y_Z_VVPT_FLX' -!! TZFIELD%NGRID = 3 -!! TZFIELD%NTYPE = TYPEREAL -!! TZFIELD%NDIMS = 3 -!! TZFIELD%LTIMEDEP = .TRUE. +!! TZFIELD = TFIELDDATA( & +!! CMNHNAME = 'VVPT_FLX', & +!! CSTDNAME = '', & +!! CLONGNAME = 'VVPT_FLX', & +!! CUNITS = 'K m s-1', & +!! CDIR = 'XY', & +!! CCOMMENT = 'X_Y_Z_VVPT_FLX', & +!! NGRID = 3, & +!! NTYPE = TYPEREAL, & +!! NDIMS = 3, & +!! LTIMEDEP = .TRUE. ) !! CALL IO_Field_write(TPFILE,TZFIELD,ZVPTV) !! END IF !!! diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90 index 3fcecc20e2d98fa1844db2631a0c1e10256cd7f3..112c60c853405f299f0f15a946b3dbdf9c1a1b9f 100644 --- a/src/MNH/turb_hor_uv.f90 +++ b/src/MNH/turb_hor_uv.f90 @@ -270,16 +270,17 @@ ZFLX(:,:,IKB-1:IKB-1) = 2. * MXM( MYM( ZFLX(:,:,IKB-1:IKB-1) ) ) & ! ! stores <U V> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'UV_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UV_FLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_UV_FLX' - TZFIELD%NGRID = 5 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UV_FLX', & + CSTDNAME = '', & + CLONGNAME = 'UV_FLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_UV_FLX', & + NGRID = 5, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90 index d19c68bae6607c4805871d5e4169380917ccdb80..f1289d73a5b72763dcd883dd0d3f8f5e7e8945b6 100644 --- a/src/MNH/turb_hor_uw.f90 +++ b/src/MNH/turb_hor_uw.f90 @@ -220,16 +220,17 @@ ZFLX(:,:,IKB-1)=2.*ZFLX(:,:,IKB)- ZFLX(:,:,IKB+1) ! ! stores <U W> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'UW_HFLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UW_HFLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_UW_HFLX' - TZFIELD%NGRID = 6 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UW_HFLX', & + CSTDNAME = '', & + CLONGNAME = 'UW_HFLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_UW_HFLX', & + NGRID = 6, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90 index df888c2c7ba810d520a842ae57584710b2708359..48f5be9bc674643cf316ff6eecee5347a16a77f6 100644 --- a/src/MNH/turb_hor_vw.f90 +++ b/src/MNH/turb_hor_vw.f90 @@ -222,16 +222,17 @@ ZFLX(:,:,IKB-1)= 2.*ZFLX(:,:,IKB) - ZFLX(:,:,IKB+1) ! ! stores <V W> IF ( tpfile%lopened .AND. OTURB_FLX ) THEN - TZFIELD%CMNHNAME = 'VW_HFLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VW_HFLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_VW_HFLX' - TZFIELD%NGRID = 7 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VW_HFLX', & + CSTDNAME = '', & + CLONGNAME = 'VW_HFLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_VW_HFLX', & + NGRID = 7, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index 4117d8191eb9def704b654e606eba90307fe65ec..d7b0f4800d91c9ef28218d1b8ca4bcf43703b618 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -696,42 +696,46 @@ IF ( OTURB_FLX .AND. tpfile%lopened ) THEN ! ! stores the Turbulent Prandtl number ! - TZFIELD%CMNHNAME = 'PHI3' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PHI3' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Turbulent Prandtl number' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'PHI3', & + CSTDNAME = '', & + CLONGNAME = 'PHI3', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'Turbulent Prandtl number', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZPHI3) ! ! stores the Turbulent Schmidt number ! - TZFIELD%CMNHNAME = 'PSI3' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PSI3' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Turbulent Schmidt number' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'PSI3', & + CSTDNAME = '', & + CLONGNAME = 'PSI3', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'Turbulent Schmidt number', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZPSI3) ! ! ! stores the Turbulent Schmidt number for the scalar variables ! - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for SV in turb_ver', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = '1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) DO JSV=1,NSV WRITE(TZFIELD%CMNHNAME, '("PSI_SV_",I3.3)') JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index 51bc4e7e1b868799b038e1e56b089bd2cb88ae22..ad27b69f246f248369013f7a0d9b68a065f04c85 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -541,16 +541,17 @@ END IF ! IF ( OTURB_FLX .AND. tpfile%lopened ) THEN ! stores the U wind component vertical flux - TZFIELD%CMNHNAME = 'UW_VFLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UW_VFLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'U wind component vertical flux' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UW_VFLX', & + CSTDNAME = '', & + CLONGNAME = 'UW_VFLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'U wind component vertical flux', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! @@ -769,16 +770,17 @@ END IF ! IF ( OTURB_FLX .AND. tpfile%lopened ) THEN ! stores the V wind component vertical flux - TZFIELD%CMNHNAME = 'VW_VFLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VW_VFLX' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'V wind component vertical flux' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VW_VFLX', & + CSTDNAME = '', & + CLONGNAME = 'VW_VFLX', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'V wind component vertical flux', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! @@ -906,16 +908,17 @@ IF ( OTURB_FLX .AND. tpfile%lopened .AND. HTURBDIM == '1DIM') THEN ! to be tested & ! +XCMFB*(4./3.)*PLM(:,:,:)/SQRT(PTKEM(:,:,:))*PTP(:,:,:) ! stores the W variance - TZFIELD%CMNHNAME = 'W_VVAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'W_VVAR' - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_W_VVAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'W_VVAR', & + CSTDNAME = '', & + CLONGNAME = 'W_VVAR', & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_W_VVAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90 index 23d8bee0342d4fc3a6f28f73733d8f35c27308bc..08491bc73559c564df3a771d1a8ab2580a6bed4c 100644 --- a/src/MNH/turb_ver_sv_flux.f90 +++ b/src/MNH/turb_ver_sv_flux.f90 @@ -359,6 +359,7 @@ REAL :: ZTIME1, ZTIME2 REAL :: ZCSVP = 4.0 ! constant for scalar flux presso-correlation (RS81) REAL :: ZCSV !constant for the scalar flux ! +CHARACTER(LEN=NMNHNAMELGTMAX) :: YMNHNAME TYPE(TFIELDDATA) :: TZFIELD !---------------------------------------------------------------------------- ! @@ -453,17 +454,19 @@ DO JSV=1,ISV ! IF (OTURB_FLX .AND. tpfile%lopened) THEN ! stores the JSVth vertical flux - WRITE(TZFIELD%CMNHNAME,'("WSV_FLX_",I3.3)') JSV - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) + WRITE(YMNHNAME,'("WSV_FLX_",I3.3)') JSV + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM( YMNHNAME ), & + CSTDNAME = '', & + CLONGNAME = TRIM( YMNHNAME ), & !PW: TODO: use the correct units of the JSV variable (and multiply it by m s-1) - TZFIELD%CUNITS = 'SVUNIT m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + CUNITS = 'SVUNIT m s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_' // TRIM( YMNHNAME ), & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index bdd074e5c52af78809d84b8fa5077d56e12a76d5..0175f76c95571d69f5670de6b7599c7977140d4f 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -568,16 +568,17 @@ END IF ! ! stores <THl THl> IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'THL_VVAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THL_VVAR' - TZFIELD%CUNITS = 'K2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_THL_VVAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THL_VVAR', & + CSTDNAME = '', & + CLONGNAME = 'THL_VVAR', & + CUNITS = 'K2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_THL_VVAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! @@ -695,16 +696,17 @@ END IF END IF ! stores <THl Rnp> IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'THLRCONS_VCOR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THLRCONS_VCOR' - TZFIELD%CUNITS = 'K kg kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_THLRCONS_VCOR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THLRCONS_VCOR', & + CSTDNAME = '', & + CLONGNAME = 'THLRCONS_VCOR', & + CUNITS = 'K kg kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_THLRCONS_VCOR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! @@ -802,16 +804,17 @@ END IF END IF ! stores <Rnp Rnp> IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'RTOT_VVAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RTOT_VVAR' - TZFIELD%CUNITS = 'kg2 kg-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RTOT_VVAR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RTOT_VVAR', & + CSTDNAME = '', & + CLONGNAME = 'RTOT_VVAR', & + CUNITS = 'kg2 kg-2', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RTOT_VVAR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index cf539984e7751f862a6251a3e80b048274740073..816cb9a4e205ae778e4b23fc34c6d36d6d7401e4 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -753,16 +753,17 @@ END IF ! IF ( OTURB_FLX .AND. tpfile%lopened ) THEN ! stores the conservative potential temperature vertical flux - TZFIELD%CMNHNAME = 'THW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THW_FLX' - TZFIELD%CUNITS = 'K m s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Conservative potential temperature vertical flux' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'THW_FLX', & + CUNITS = 'K m s-1', & + CDIR = 'XY', & + CCOMMENT = 'Conservative potential temperature vertical flux', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! @@ -989,16 +990,17 @@ IF (KRR /= 0) THEN ! IF ( OTURB_FLX .AND. tpfile%lopened ) THEN ! stores the conservative mixing ratio vertical flux - TZFIELD%CMNHNAME = 'RCONSW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RCONSW_FLX' - TZFIELD%CUNITS = 'kg m s-1 kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Conservative mixing ratio vertical flux' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RCONSW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'RCONSW_FLX', & + CUNITS = 'kg m s-1 kg-1', & + CDIR = 'XY', & + CCOMMENT = 'Conservative mixing ratio vertical flux', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! @@ -1078,16 +1080,17 @@ IF ( ((OTURB_FLX .AND. tpfile%lopened) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN ! ! store the liquid water mixing ratio vertical flux IF ( OTURB_FLX .AND. tpfile%lopened ) THEN - TZFIELD%CMNHNAME = 'RCW_FLX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'RCW_FLX' - TZFIELD%CUNITS = 'kg m s-1 kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Liquid water mixing ratio vertical flux' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RCW_FLX', & + CSTDNAME = '', & + CLONGNAME = 'RCW_FLX', & + CUNITS = 'kg m s-1 kg-1', & + CDIR = 'XY', & + CCOMMENT = 'Liquid water mixing ratio vertical flux', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index d926e6c26166d796723e9c9050aad7b41e79ae0a..d7462dd35207a773b4059a42187be5dbefcd877e 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -295,16 +295,17 @@ DO JRR=1,SIZE(XRT,4) END DO ! IF (NVERB>=10) THEN - TZFIELD%CMNHNAME = 'THV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THV' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_THV' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THV', & + CSTDNAME = '', & + CLONGNAME = 'THV', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_THV', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHV) END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/write_balloonn.f90 b/src/MNH/write_balloonn.f90 index f0c790ddd868d44f382b961b742bc4f6528b545e..cc6d8269c28c8eb58813c46fd0d321ddd02612ae 100644 --- a/src/MNH/write_balloonn.f90 +++ b/src/MNH/write_balloonn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2001-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -113,64 +113,69 @@ CALL SM_LATLON(XLATORI,XLONORI, & TPFLYER%X_CUR,TPFLYER%Y_CUR,ZLAT,ZLON) ! ! -TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'LAT' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = 'degree' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .TRUE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'LAT', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'LAT', & + CUNITS = 'degree', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZLAT) ! -TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'LON' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = 'degree' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .TRUE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'LON', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'LON', & + CUNITS = 'degree', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZLON) ! -TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = 'm' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .TRUE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'ALT', & + CUNITS = 'm', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%Z_CUR) ! -TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'WASCENT' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = 'm s-1' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .TRUE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'WASCENT', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'WASCENT', & + CUNITS = 'm s-1', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%WASCENT) ! -TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) -TZFIELD%CUNITS = 'kg m-3' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .TRUE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO', & + CSTDNAME = '', & + CLONGNAME = TRIM(TPFLYER%TITLE)//'RHO', & + CUNITS = 'kg m-3', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%RHO) ! ! diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90 index 767541ad935a58606ffd9de97aaddc47c1fe836c..9f82ff30cfcaa284da84f66a215591b441fa62d6 100644 --- a/src/MNH/write_budget.f90 +++ b/src/MNH/write_budget.f90 @@ -108,7 +108,7 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) tfielddata, TYPEINT, TYPEREAL use modd_io, only: tfiledata use modd_lunit_n, only: tluout - use modd_parameters, only: NMNHNAMELGTMAX + use modd_parameters, only: NCOMMENTLGTMAX, NMNHNAMELGTMAX use modd_type_date, only: date_time use mode_datetime, only: datetime_distance @@ -126,6 +126,8 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) real, intent(in) :: ptstep ! time step integer, intent(in) :: ksv ! number of scalar variables + character(len=NCOMMENTLGTMAX) :: ycomment + character(len=NMNHNAMELGTMAX) :: ymnhname character(len=NMNHNAMELGTMAX) :: yrecfm ! name of the article to be written integer :: jt, jmask integer :: jsv ! loop index over the ksv svx @@ -145,28 +147,30 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) !* Write TSTEP and BULEN ! --------------------- ! - TZFIELD%CMNHNAME = 'TSTEP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'TSTEP' - TZFIELD%CUNITS = 's' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Time step' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TSTEP', & + CSTDNAME = '', & + CLONGNAME = 'TSTEP', & + CUNITS = 's', & + CDIR = '--', & + CCOMMENT = 'Time step', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPDIAFILE,TZFIELD,PTSTEP) ! - TZFIELD%CMNHNAME = 'BULEN' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'BULEN' - TZFIELD%CUNITS = 's' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Time step' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'BULEN', & + CSTDNAME = '', & + CLONGNAME = 'BULEN', & + CUNITS = 's', & + CDIR = '--', & + CCOMMENT = 'Length of the budget temporal average', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPDIAFILE,TZFIELD,XBULEN) ! ! Initialize NBUTSHIFT @@ -245,22 +249,20 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) tzfile = tpdiafile tzfile%cformat = 'LFI' - Write( tzfield%cmnhname, fmt = "( 'MASK_', i4.4, '.MASK' )" ) nbutshift - tzfield%cstdname = '' - tzfield%clongname = Trim( tzfield%cmnhname ) - tzfield%cunits = '' - tzfield%cdir = 'XY' - Write( tzfield%ccomment, fmt = "( 'X_Y_MASK', i4.4 )" ) nbutshift - tzfield%ngrid = 1 - tzfield%ntype = TYPEREAL - tzfield%ndims = 6 - tzfield%ltimedep = .FALSE. - tzfield%ndimlist(1) = NMNHDIM_NI - tzfield%ndimlist(2) = NMNHDIM_NJ - tzfield%ndimlist(3) = NMNHDIM_ONE - tzfield%ndimlist(4) = NMNHDIM_BUDGET_TIME - tzfield%ndimlist(5) = NMNHDIM_BUDGET_MASK_NBUMASK - tzfield%ndimlist(6) = NMNHDIM_ONE + Write( ymnhname, fmt = "( 'MASK_', i4.4, '.MASK' )" ) nbutshift + Write( ycomment, fmt = "( 'X_Y_MASK', i4.4 )" ) nbutshift + tzfield = tfielddata( & + cmnhname = Trim( ymnhname ), & + cstdname = '', & + clongname = Trim( ymnhname ), & + cunits = '', & + cdir = 'XY', & + ccomment = Trim ( ycomment ), & + ngrid = 1, & + ntype = TYPEREAL, & + ndims = 6, & + ndimlist = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_ONE, NMNHDIM_BUDGET_TIME, NMNHDIM_BUDGET_MASK_NBUMASK, NMNHDIM_ONE ], & + ltimedep = .FALSE. ) call IO_Field_write( tzfile, tzfield, zworkmask(:, :, :, :, :, :) ) Write( yrecfm, fmt = "( 'MASK_', i4.4 )" ) nbutshift @@ -274,21 +276,18 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) tzfile = tpdiafile tzfile%cformat = 'NETCDF4' - tzfield%cmnhname = CMASK_VARNAME - tzfield%cstdname = '' - tzfield%clongname = Trim( tzfield%cmnhname ) - tzfield%cunits = '1' - tzfield%cdir = 'XY' - tzfield%ccomment = 'Masks for budget areas' - tzfield%ngrid = 1 - tzfield%ntype = TYPEINT - tzfield%ndims = 4 - tzfield%ltimedep = .false. !The time dependance is in the NMNHDIM_BUDGET_TIME dimension - tzfield%ndimlist(1) = NMNHDIM_NI - tzfield%ndimlist(2) = NMNHDIM_NJ - tzfield%ndimlist(3) = NMNHDIM_BUDGET_MASK_NBUMASK - tzfield%ndimlist(4) = NMNHDIM_BUDGET_TIME - tzfield%ndimlist(5:) = NMNHDIM_UNUSED + tzfield = tfielddata( & + cmnhname = CMASK_VARNAME, & + cstdname = '', & + clongname = CMASK_VARNAME, & + cunits = '1', & + cdir = 'XY', & + ccomment = 'Masks for budget areas', & + ngrid = 1, & + ntype = TYPEINT, & + ndims = 4, & + ndimlist = [ NMNHDIM_NI, NMNHDIM_NJ, NMNHDIM_BUDGET_MASK_NBUMASK, NMNHDIM_BUDGET_TIME ], & + ltimedep = .false. ) !The time dependance is in the NMNHDIM_BUDGET_TIME dimension !Create the metadata of the field (has to be done only once) if ( nbutshift == 1 ) call IO_Field_create( tzfile, tzfield ) diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90 index 8ad7c453850bb1409087333d0c8ed12fcb1bfd0b..46984a2c533690d52d8f4d33a64876d9df01c257 100644 --- a/src/MNH/write_diachro.f90 +++ b/src/MNH/write_diachro.f90 @@ -408,30 +408,32 @@ ILENCOMMENT = LFICOMMENTLGT ! ! 1er enregistrement TYPE ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.TYPE' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.TYPE' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPECHAR -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TYPE', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TYPE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPECHAR, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD,YTYPE) ! ! 2eme enregistrement DIMENSIONS des MATRICES et LONGUEUR des TABLEAUX de CARACTERES et FLAGS de COMPRESSION sur les DIFFERENTS AXES ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.DIM' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.DIM' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPEINT -TZFIELD%NDIMS = 1 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.DIM', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.DIM', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEINT, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) SELECT CASE(YTYPE) CASE('CART','MASK','SPXY') if ( iil < 0 .or. iih < 0 .or. ijl < 0 .or. ijh < 0 .or. ikl < 0 .or. ikh < 0 ) then @@ -488,16 +490,17 @@ END SELECT ! ! 3eme enregistrement TITRE ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.TITRE' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.TITRE' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPECHAR -TZFIELD%NDIMS = 1 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TITRE', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TITRE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPECHAR, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) allocate( ytitles( ip ) ) ytitles(:) = tpfields(1 : ip)%cmnhname CALL IO_Field_write(tzfile,TZFIELD,ytitles(:)) @@ -505,16 +508,17 @@ deallocate( ytitles ) ! ! 4eme enregistrement UNITE ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.UNITE' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.UNITE' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPECHAR -TZFIELD%NDIMS = 1 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.UNITE', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.UNITE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPECHAR, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) allocate( yunits( ip ) ) yunits(:) = tpfields(1 : ip)%cunits CALL IO_Field_write(tzfile,TZFIELD,yunits(:)) @@ -522,16 +526,17 @@ deallocate( yunits ) ! ! 5eme enregistrement COMMENT ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.COMMENT' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.COMMENT' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPECHAR -TZFIELD%NDIMS = 1 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.COMMENT', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.COMMENT', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPECHAR, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) allocate( ycomments( ip ) ) ycomments(:) = tpfields(1 : ip)%ccomment CALL IO_Field_write(tzfile,TZFIELD,ycomments(:)) @@ -564,30 +569,32 @@ DO J = 1,IP WRITE(YJ,'(I3)')J ENDIF IF ( gdistributed ) THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.PROC'//YJ - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = tpfields(j)%cunits - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(tpfields(j)%cmnhname)//' - '//TRIM(tpfields(j)%ccomment)//' ('// Trim( tpfields(j)%cunits ) //')' - TZFIELD%NGRID = tpfields(j)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 5 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.PROC'//YJ, & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.PROC'//YJ, & + CUNITS = tpfields(j)%cunits, & + CDIR = 'XY', & + CCOMMENT = TRIM(tpfields(j)%cmnhname)//' - '//TRIM(tpfields(j)%ccomment)//' ('// Trim( tpfields(j)%cunits ) //')', & + NGRID = tpfields(j)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 5, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write_BOX(tzfile,TZFIELD,'BUDGET',PVAR(:,:,:,:,:,J), & iil+JPHEXT,iih+JPHEXT,ijl+JPHEXT,ijh+JPHEXT) ELSE - TZFIELD%CMNHNAME = TRIM(ygroup)//'.PROC'//YJ - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = tpfields(j)%cunits - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(tpfields(j)%cmnhname)//' - '//TRIM(tpfields(j)%ccomment)//' ('// Trim( tpfields(j)%cunits ) //')' - TZFIELD%NGRID = tpfields(j)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 5 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.PROC'//YJ, & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.PROC'//YJ, & + CUNITS = tpfields(j)%cunits, & + CDIR = '--', & + CCOMMENT = TRIM(tpfields(j)%cmnhname)//' - '//TRIM(tpfields(j)%ccomment)//' ('// Trim( tpfields(j)%cunits ) //')', & + NGRID = tpfields(j)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 5, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD,PVAR(:,:,:,:,:,J)) ENDIF @@ -596,16 +603,17 @@ ENDDO ! ! 7eme enregistrement TRAJT ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJT' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJT' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJT', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJT', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) !NMNHDIM_FLYER_TIME excluded because created only in netCDF/HDF groups (local to each flyer) if ( tpfields(1)%ndimlist(4) /= NMNHDIM_UNKNOWN .and. tpfields(1)%ndimlist(4) /= NMNHDIM_UNUSED & @@ -635,28 +643,30 @@ deallocate( ztimes ) ! 8eme enregistrement TRAJX ! IF(PRESENT(tpflyer))THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJX' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(YCOMMENT) - TZFIELD%NGRID = tpfields(1)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJX', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJX', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD, Reshape( tpflyer%x, [1, Size( tpflyer%x), 1] ) ) ELSE IF ( ycategory == 'LES_budgets' .and. tpbudiachro%clevels(NLVL_SHAPE) == 'Cartesian' ) THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJX' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(YCOMMENT) - TZFIELD%NGRID = tpfields(1)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJX', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJX', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) !TRAJX is given in extended domain coordinates (=> +jphext) for backward compatibility CALL IO_Field_write(tzfile,TZFIELD, Real( Reshape( & Spread( source = ( nles_current_iinf + nles_current_isup) / 2 + jphext, dim = 1, ncopies = IN ), & @@ -666,28 +676,30 @@ ENDIF ! 9eme enregistrement TRAJY ! IF(PRESENT(tpflyer))THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJY' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJY' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(YCOMMENT) - TZFIELD%NGRID = tpfields(1)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJY', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJY', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD, Reshape( tpflyer%y, [1, Size( tpflyer%y), 1] ) ) ELSE IF ( ycategory == 'LES_budgets' .and. tpbudiachro%clevels(NLVL_SHAPE) == 'Cartesian' ) THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJY' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJY' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(YCOMMENT) - TZFIELD%NGRID = tpfields(1)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJY', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJY', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) !TRAJY is given in extended domain coordinates (=> +jphext) for backward compatibility CALL IO_Field_write(tzfile,TZFIELD, Real( Reshape( & Spread( source = ( nles_current_jinf + nles_current_jsup) / 2 + jphext, dim = 1, ncopies = IN ), & @@ -697,28 +709,30 @@ ENDIF ! 10eme enregistrement TRAJZ ! IF(PRESENT(tpflyer))THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJZ' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJZ' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(YCOMMENT) - TZFIELD%NGRID = tpfields(1)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJZ', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJZ', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(tzfile,TZFIELD, Reshape( tpflyer%z, [1, Size( tpflyer%z), 1] ) ) ELSE IF ( ycategory == 'LES_budgets' .and. tpbudiachro%clevels(NLVL_SHAPE) == 'Cartesian' ) THEN - TZFIELD%CMNHNAME = TRIM(ygroup)//'.TRAJZ' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(ygroup)//'.TRAJZ' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(YCOMMENT) - TZFIELD%NGRID = tpfields(1)%ngrid - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.TRAJZ', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.TRAJZ', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) Allocate( ztrajz(IK, 1, IN) ) do jj = 1, IK @@ -730,16 +744,17 @@ ENDIF ! ! 11eme enregistrement PDATIME ! -TZFIELD%CMNHNAME = TRIM(ygroup)//'.DATIM' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = TRIM(ygroup)//'.DATIM' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = TRIM(YCOMMENT) -TZFIELD%NGRID = tpfields(1)%ngrid -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(ygroup)//'.DATIM', & + CSTDNAME = '', & + CLONGNAME = TRIM(ygroup)//'.DATIM', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(YCOMMENT), & + NGRID = tpfields(1)%ngrid, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) !Reconstitute old diachro format allocate( zdatime( 16, size(tpdates) ) ) @@ -1480,18 +1495,18 @@ if ( Present( tpflyer ) ) then ystdnameprefix = 'projection' endif - tzfield%cmnhname = 'X' - tzfield%cstdname = Trim( ystdnameprefix ) // '_x_coordinate' - tzfield%clongname = 'x-position of the flyer' - tzfield%cunits = 'm' - tzfield%cdir = '--' - tzfield%ccomment = '' - tzfield%ngrid = 0 - tzfield%ntype = TYPEREAL - tzfield%ltimedep = .false. - tzfield%ndims = 1 - tzfield%ndimlist(1) = NMNHDIM_FLYER_TIME - tzfield%ndimlist(2:) = NMNHDIM_UNUSED + tzfield = tfielddata( & + cmnhname = 'X', & + cstdname = Trim( ystdnameprefix ) // '_x_coordinate', & + clongname = 'x-position of the flyer', & + cunits = 'm', & + cdir = '--', & + ccomment = '', & + ngrid = 0, & + ntype = TYPEREAL, & + ndims = 1, & + ndimlist = [ NMNHDIM_FLYER_TIME ], & + ltimedep = .false. ) call IO_Field_write( tzfile, tzfield, tpflyer%x ) diff --git a/src/MNH/write_dummy_gr_fieldn.f90 b/src/MNH/write_dummy_gr_fieldn.f90 index 74f56e63cbd956f50ef7992ef52b3b2fbaebfce9..6b9aa7949011367de58b2566a31baa7c53866606 100644 --- a/src/MNH/write_dummy_gr_fieldn.f90 +++ b/src/MNH/write_dummy_gr_fieldn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -104,16 +104,17 @@ ALLOCATE(ZWORK2D(SIZE(XDUMMY_GR_FIELDS,1),SIZE(XDUMMY_GR_FIELDS,2))) !* 3. Dummy fields : ! ------------ ! -TZFIELD%CMNHNAME = 'DUMMY_GR_NBR' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = 'DUMMY_GR_NBR' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = 'number of dummy pgd fields chosen by user' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPEINT -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = 'DUMMY_GR_NBR', & + CSTDNAME = '', & + CLONGNAME = 'DUMMY_GR_NBR', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = 'number of dummy pgd fields chosen by user', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,NDUMMY_GR_NBR) ! DO JDUMMY=1,NDUMMY_GR_NBR @@ -121,16 +122,17 @@ DO JDUMMY=1,NDUMMY_GR_NBR YSTRING20=CDUMMY_GR_NAME(JDUMMY) YSTRING03=CDUMMY_GR_AREA(JDUMMY) ! - TZFIELD%CMNHNAME = TRIM(YRECFM) - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(YRECFM) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_'//YRECFM//YSTRING20//YSTRING03 - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YRECFM), & + CSTDNAME = '', & + CLONGNAME = TRIM(YRECFM), & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_'//YRECFM//YSTRING20//YSTRING03, & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! ZWORK2D(:,:) = XDUMMY_GR_FIELDS(:,:,JDUMMY) ! diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index dc3fd036f944836a55cfef155c74925c3b9fcaf4..f3614c14a1f560b534970b1e1b820311d3169838 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -213,17 +213,18 @@ IF (NRR >=1) THEN LHORELAX_RI .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. & LHORELAX_RH ! - TZFIELD%CMNHNAME = 'HORELAX_R' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HORELAX_R' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Switch to activate the HOrizontal RELAXation' - TZFIELD%CLBTYPE = 'NONE' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPELOG - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HORELAX_R', & + CSTDNAME = '', & + CLONGNAME = 'HORELAX_R', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = 'Switch to activate the HOrizontal RELAXation', & + CLBTYPE = 'NONE', & + NGRID = 1, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_write(TPFILE,TZFIELD,GHORELAX_R) ! @@ -268,17 +269,18 @@ END IF IF (NSV >=1) THEN GHORELAX_SV=ANY ( LHORELAX_SV ) ! - TZFIELD%CMNHNAME = 'HORELAX_SV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HORELAX_SV' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%CLBTYPE = 'NONE' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPELOG - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HORELAX_SV', & + CSTDNAME = '', & + CLONGNAME = 'HORELAX_SV', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + CLBTYPE = 'NONE', & + NGRID = 0, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,GHORELAX_SV) ! IRIMX =(NSIZELBXSV_ll-2*JPHEXT)/2 diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 60240e9caf00f71d49bb49ef35d0410ceb14dfa1..6f4d6d5c4beb33c4453189186badcd5fecaede2b 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -511,16 +511,17 @@ ZPOVO(:,:,:)= ZPOVO(:,:,:)*1E6/XRHODREF(:,:,:) ZPOVO(:,:,1) =-1.E+11 ZPOVO(:,:,IKU)=-1.E+11 IF (INDEX(CISO,'EV') /= 0) THEN - TZFIELD%CMNHNAME = 'POVOT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'POVOT' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_POtential VOrticity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'POVOT', & + CSTDNAME = '', & + CLONGNAME = 'POVOT', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_POtential VOrticity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZPOVO) END IF ! @@ -530,27 +531,29 @@ IF (LVAR_RS) THEN CALL IO_Field_write(TPFILE,'VT',XVT) ! IF (LWIND_ZM) THEN - TZFIELD2(1)%CMNHNAME = 'UM_ZM' - TZFIELD2(1)%CSTDNAME = '' - TZFIELD2(1)%CLONGNAME = 'UM_ZM' - TZFIELD2(1)%CUNITS = 'm s-1' - TZFIELD2(1)%CDIR = 'XY' - TZFIELD2(1)%CCOMMENT = 'Zonal component of horizontal wind' - TZFIELD2(1)%NGRID = 2 - TZFIELD2(1)%NTYPE = TYPEREAL - TZFIELD2(1)%NDIMS = 3 - TZFIELD2(1)%LTIMEDEP = .TRUE. + TZFIELD2(1) = TFIELDDATA( & + CMNHNAME = 'UM_ZM', & + CSTDNAME = '', & + CLONGNAME = 'UM_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Zonal component of horizontal wind', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! - TZFIELD2(2)%CMNHNAME = 'VM_ZM' - TZFIELD2(2)%CSTDNAME = '' - TZFIELD2(2)%CLONGNAME = 'VM_ZM' - TZFIELD2(2)%CUNITS = 'm s-1' - TZFIELD2(2)%CDIR = 'XY' - TZFIELD2(2)%CCOMMENT = 'Meridian component of horizontal wind' - TZFIELD2(2)%NGRID = 3 - TZFIELD2(2)%NTYPE = TYPEREAL - TZFIELD2(2)%NDIMS = 3 - TZFIELD2(2)%LTIMEDEP = .TRUE. + TZFIELD2(2) = TFIELDDATA( & + CMNHNAME = 'VM_ZM', & + CSTDNAME = '', & + CLONGNAME = 'VM_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Meridian component of horizontal wind', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL UV_TO_ZONAL_AND_MERID(XUT,XVT,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) END IF @@ -737,16 +740,17 @@ IF (LVAR_PR ) THEN ZWORK23(:,:) = 0. END DO !* Precipitable water in kg/m**2 - TZFIELD%CMNHNAME = 'PRECIP_WAT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'PRECIP_WAT' - TZFIELD%CUNITS = 'kg m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'PRECIP_WAT', & + CSTDNAME = '', & + CLONGNAME = 'PRECIP_WAT', & + CUNITS = 'kg m-2', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ENDIF ! @@ -816,152 +820,164 @@ IF (LHU_FLX) THEN ENDIF ! Ecriture ! composantes U et V du flux surfacique d'humidité - TZFIELD%CMNHNAME = 'UM90' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM90' - TZFIELD%CUNITS = 'kg s-1 m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM90', & + CSTDNAME = '', & + CLONGNAME = 'UM90', & + CUNITS = 'kg s-1 m-2', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! - TZFIELD%CMNHNAME = 'VM90' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM90' - TZFIELD%CUNITS = 'kg s-1 m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM90', & + CSTDNAME = '', & + CLONGNAME = 'VM90', & + CUNITS = 'kg s-1 m-2', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! composantes U et V du flux d'humidité intégré sur 3000 metres - TZFIELD%CMNHNAME = 'UM91' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM91' - TZFIELD%CUNITS = 'kg s-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM91', & + CSTDNAME = '', & + CLONGNAME = 'UM91', & + CUNITS = 'kg s-1 m-1', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! - TZFIELD%CMNHNAME = 'VM91' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM91' - TZFIELD%CUNITS = 'kg s-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM91', & + CSTDNAME = '', & + CLONGNAME = 'VM91', & + CUNITS = 'kg s-1 m-1', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! ! Convergence d'humidité - TZFIELD%CMNHNAME = 'HMCONV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HMCONV' - TZFIELD%CUNITS = 'kg s-1 m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Horizontal CONVergence of moisture flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HMCONV', & + CSTDNAME = '', & + CLONGNAME = 'HMCONV', & + CUNITS = 'kg s-1 m-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Horizontal CONVergence of moisture flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK35) ! ! Convergence d'humidité intégré sur 3000 mètres - TZFIELD%CMNHNAME = 'HMCONV3000' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HMCONV3000' - TZFIELD%CUNITS = 'kg s-1 m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Horizontal CONVergence of moisture flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HMCONV3000', & + CSTDNAME = '', & + CLONGNAME = 'HMCONV3000', & + CUNITS = 'kg s-1 m-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Horizontal CONVergence of moisture flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK25) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN ! composantes U et V du flux surfacique d'hydrométéores - TZFIELD%CMNHNAME = 'UM92' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM92' - TZFIELD%CUNITS = 'kg s-1 m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM92', & + CSTDNAME = '', & + CLONGNAME = 'UM92', & + CUNITS = 'kg s-1 m-2', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! - TZFIELD%CMNHNAME = 'VM92' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM92' - TZFIELD%CUNITS = 'kg s-1 m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM92', & + CSTDNAME = '', & + CLONGNAME = 'VM92', & + CUNITS = 'kg s-1 m-2', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! composantes U et V du flux d'hydrométéores intégré sur 3000 metres - TZFIELD%CMNHNAME = 'UM93' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM93' - TZFIELD%CUNITS = 'kg s-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM93', & + CSTDNAME = '', & + CLONGNAME = 'UM93', & + CUNITS = 'kg s-1 m-1', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK23) ! - TZFIELD%CMNHNAME = 'VM93' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM93' - TZFIELD%CUNITS = 'kg s-1 m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM93', & + CSTDNAME = '', & + CLONGNAME = 'VM93', & + CUNITS = 'kg s-1 m-1', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK24) ! Convergence d'hydrométéores - TZFIELD%CMNHNAME = 'HMCONV_TT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HMCONV_TT' - TZFIELD%CUNITS = 'kg s-1 m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Horizontal CONVergence of hydrometeor flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HMCONV_TT', & + CSTDNAME = '', & + CLONGNAME = 'HMCONV_TT', & + CUNITS = 'kg s-1 m-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Horizontal CONVergence of hydrometeor flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK36) ! Convergence d'hydrométéores intégré sur 3000 mètres - TZFIELD%CMNHNAME = 'HMCONV3000_TT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HMCONV3000_TT' - TZFIELD%CUNITS = 'kg s-1 m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Horizontal CONVergence of hydrometeor flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HMCONV3000_TT', & + CSTDNAME = '', & + CLONGNAME = 'HMCONV3000_TT', & + CUNITS = 'kg s-1 m-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Horizontal CONVergence of hydrometeor flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK26) ENDIF ENDIF @@ -971,12 +987,14 @@ ENDIF IF (LVAR_MRW .OR. LLIMA_DIAG) THEN IF (NRR >=1) THEN ! Moist variables are written individually in file - TZFIELD%CSTDNAME = '' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for moist variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) IF (LUSERV) THEN TZFIELD%CMNHNAME = 'MRV' TZFIELD%CLONGNAME = 'MRV' @@ -1050,13 +1068,15 @@ END IF ! User scalar variables ! individually in the file IF (LVAR_MRSV) THEN - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'g kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for scalar variables', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = 'g kg-1', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! DO JSV = 1,NSV_USER WRITE(TZFIELD%CMNHNAME,'(A4,I3.3)')'MRSV',JSV @@ -1183,31 +1203,33 @@ IF (LLIMA_DIAG) THEN END DO ! IF (LUSERC) THEN - TZFIELD%CMNHNAME = 'LWC' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWC' - TZFIELD%CUNITS = 'g m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_LWC' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LWC', & + CSTDNAME = '', & + CLONGNAME = 'LWC', & + CUNITS = 'g m-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_LWC', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ZWORK31(:,:,:)=XRT(:,:,:,2)*1.E3*XRHODREF(:,:,:) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! IF (LUSERI) THEN - TZFIELD%CMNHNAME = 'IWC' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'IWC' - TZFIELD%CUNITS = 'g m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MRI' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'IWC', & + CSTDNAME = '', & + CLONGNAME = 'IWC', & + CUNITS = 'g m-3', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MRI', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ZWORK31(:,:,:)=XRT(:,:,:,4)*1.E3*XRHODREF(:,:,:) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF @@ -1324,16 +1346,17 @@ END IF ! Blowing snow variables ! IF(LBLOWSNOW) THEN - TZFIELD%CMNHNAME = 'SNWSUBL3D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg m-3 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_INstantaneous 3D Drifting snow sublimation flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SNWSUBL3D', & + CSTDNAME = '', & + CLONGNAME = 'SNWSUBL3D', & + CUNITS = 'kg m-3 s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_INstantaneous 3D Drifting snow sublimation flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) ! ZWORK21(:,:) = 0. @@ -1343,16 +1366,17 @@ IF(LBLOWSNOW) THEN END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! vapor water in mm unit ! - TZFIELD%CMNHNAME = 'COL_SNWSUBL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'mm day-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Column Sublimation Rate (mmSWE/day)' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'COL_SNWSUBL', & + CSTDNAME = '', & + CLONGNAME = 'COL_SNWSUBL', & + CUNITS = 'mm day-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Column Sublimation Rate (mmSWE/day)', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21(:,:)) ! IF(.NOT.ALLOCATED(ZBET_SNW)) & @@ -1365,52 +1389,56 @@ IF(LBLOWSNOW) THEN CALL PPP2SNOW(XSVT(:,:,:,NSV_SNWBEG:NSV_SNWEND),XRHODREF,& PBET3D=ZBET_SNW, PRG3D=ZRG_SNW, PM3D=ZMA_SNW) ! - TZFIELD%CMNHNAME = 'SNWRGA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'RG (mean) SNOW' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SNWRGA', & + CSTDNAME = '', & + CLONGNAME = 'SNWRGA', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'RG (mean) SNOW', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZRG_SNW(:,:,:)) ! - TZFIELD%CMNHNAME = 'SNWBETA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'BETA SNOW' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SNWBETA', & + CSTDNAME = '', & + CLONGNAME = 'SNWBETA', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'BETA SNOW', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZBET_SNW(:,:,:)) ! - TZFIELD%CMNHNAME = 'SNWNOA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'm-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'NUM CONC SNOW (#/m3)' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SNWNOA', & + CSTDNAME = '', & + CLONGNAME = 'SNWNOA', & + CUNITS = 'm-3', & + CDIR = 'XY', & + CCOMMENT = 'NUM CONC SNOW (#/m3)', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZMA_SNW(:,:,:,1)) ! - TZFIELD%CMNHNAME = 'SNWMASS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg m-3' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'MASS CONC SNOW' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SNWMASS', & + CSTDNAME = '', & + CLONGNAME = 'SNWMASS', & + CUNITS = 'kg m-3', & + CDIR = 'XY', & + CCOMMENT = 'MASS CONC SNOW', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZMA_SNW(:,:,:,2)) ! ZWORK21(:,:) = 0. @@ -1419,16 +1447,17 @@ IF(LBLOWSNOW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! vapor water in mm unit - TZFIELD%CMNHNAME = 'THDS' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of Drifting Snow (mm SWE)' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THDS', & + CSTDNAME = '', & + CLONGNAME = 'THDS', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of Drifting Snow (mm SWE)', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21(:,:)) END IF ! Lagrangian variables @@ -1478,6 +1507,7 @@ END IF ! linox scalar variables IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN DO JSV = NSV_LNOXBEG,NSV_LNOXEND +!PW:BUG?: same name for all variables TZFIELD%CMNHNAME = 'LINOXT' TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -2036,27 +2066,29 @@ IF (LVAR_LS) THEN CALL IO_Field_write(TPFILE,'LSVM', XLSVM) ! IF (LWIND_ZM) THEN - TZFIELD2(1)%CMNHNAME = 'LSUM_ZM' - TZFIELD2(1)%CSTDNAME = '' - TZFIELD2(1)%CLONGNAME = 'LSUM_ZM' - TZFIELD2(1)%CUNITS = 'm s-1' - TZFIELD2(1)%CDIR = 'XY' - TZFIELD2(1)%CCOMMENT = 'Large Scale Zonal component of horizontal wind' - TZFIELD2(1)%NGRID = 2 - TZFIELD2(1)%NTYPE = TYPEREAL - TZFIELD2(1)%NDIMS = 3 - TZFIELD2(1)%LTIMEDEP = .TRUE. + TZFIELD2(1) = TFIELDDATA( & + CMNHNAME = 'LSUM_ZM', & + CSTDNAME = '', & + CLONGNAME = 'LSUM_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Large Scale Zonal component of horizontal wind', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! - TZFIELD2(2)%CMNHNAME = 'LSVM_ZM' - TZFIELD2(2)%CSTDNAME = '' - TZFIELD2(2)%CLONGNAME = 'LSVM_ZM' - TZFIELD2(2)%CUNITS = 'm s-1' - TZFIELD2(2)%CDIR = 'XY' - TZFIELD2(2)%CCOMMENT = 'Large Scale Meridian component of horizontal wind' - TZFIELD2(2)%NGRID = 3 - TZFIELD2(2)%NTYPE = TYPEREAL - TZFIELD2(2)%NDIMS = 3 - TZFIELD2(2)%LTIMEDEP = .TRUE. + TZFIELD2(2) = TFIELDDATA( & + CMNHNAME = 'LSVM_ZM', & + CSTDNAME = '', & + CLONGNAME = 'LSVM_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Large Scale Meridian component of horizontal wind', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL UV_TO_ZONAL_AND_MERID(XLSUM,XLSVM,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ENDIF @@ -2079,124 +2111,134 @@ IF (LVAR_FRC .AND. LFORCING) THEN DO JT=1,NFRC WRITE (YFRC,'(I3.3)') 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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XUFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XVFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XWFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XRVFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTENDTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTENDRVFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XGXTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XGYTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XPGROUNDFRC(JT)) ! END DO @@ -2209,23 +2251,24 @@ END IF IF (LTPZH .OR. LCOREF) THEN ! !* Temperature in celsius - TZFIELD%CMNHNAME = 'TEMP' - TZFIELD%CSTDNAME = 'air_temperature' - TZFIELD%CLONGNAME = 'TEMP' - TZFIELD%CUNITS = 'celsius' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_TEMPerature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TEMP', & + CSTDNAME = 'air_temperature', & + CLONGNAME = 'TEMP', & + CUNITS = 'celsius', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_TEMPerature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ZWORK31(:,:,:)=ZTEMP(:,:,:) - XTT CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! !* Pressure in hPa CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP) TZFIELD = TFIELDLIST(IID) - TZFIELD%CMNHNAME = 'PRES' + TZFIELD%CMNHNAME = 'PRES' TZFIELD%CUNITS = 'hPa' CALL IO_Field_write(TPFILE,TZFIELD,XPABST(:,:,:)*1E-2) ! @@ -2248,28 +2291,30 @@ IF (LTPZH .OR. LCOREF) THEN END WHERE END IF ! - TZFIELD%CMNHNAME = 'REHU' - TZFIELD%CSTDNAME = 'relative_humidity' - TZFIELD%CLONGNAME = 'REHU' - TZFIELD%CUNITS = 'percent' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RElative HUmidity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'REHU', & + CSTDNAME = 'relative_humidity', & + CLONGNAME = 'REHU', & + CUNITS = 'percent', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RElative HUmidity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! - TZFIELD%CMNHNAME = 'VPRES' - TZFIELD%CSTDNAME = 'water_vapor_partial_pressure_in_air' - TZFIELD%CLONGNAME = 'VPRES' - TZFIELD%CUNITS = 'hPa' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Vapor PRESsure' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VPRES', & + CSTDNAME = 'water_vapor_partial_pressure_in_air', & + CLONGNAME = 'VPRES', & + CUNITS = 'hPa', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Vapor PRESsure', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ZWORK33(:,:,:)=ZWORK33(:,:,:)*ZWORK32(:,:,:)*1E-4 CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! @@ -2277,29 +2322,31 @@ IF (LTPZH .OR. LCOREF) THEN ZWORK33(:,:,:)=(77.6*( XPABST(:,:,:)*1E-2 & +ZWORK33(:,:,:)*4810/ZTEMP(:,:,:)) & -6*ZWORK33(:,:,:) )/ZTEMP(:,:,:) - TZFIELD%CMNHNAME = 'COREF' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'COREF' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_REFraction COindex (N-units)' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'COREF', & + CSTDNAME = '', & + CLONGNAME = 'COREF', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_REFraction COindex (N-units)', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(XZZ(:,:,:))*1E6/XRADIUS - TZFIELD%CMNHNAME = 'MCOREF' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MCOREF' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Modified REFraction COindex (M-units)' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MCOREF', & + CSTDNAME = '', & + CLONGNAME = 'MCOREF', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Modified REFraction COindex (M-units)', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF ELSE @@ -2331,16 +2378,17 @@ IF ( LMOIST_V .OR. LMSLP .OR. CBLTOP/='NONE' ) THEN ! IF (LMOIST_V .AND. NRR > 0) THEN ! Virtual potential temperature - TZFIELD%CMNHNAME = 'THETAV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THETAV' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Virtual potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THETAV', & + CSTDNAME = '', & + CLONGNAME = 'THETAV', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Virtual potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAV) END IF ! @@ -2364,16 +2412,17 @@ IF (LVISI) THEN ZVISIKUN(:,:,:) =0.027/(XRT(:,:,:,2)*XRHODREF(:,:,:))**0.88*1000. END WHERE ! Visibity Kunkel - TZFIELD%CMNHNAME = 'VISIKUN' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VISIKUN' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Visibility Kunkel' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VISIKUN', & + CSTDNAME = '', & + CLONGNAME = 'VISIKUN', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Visibility Kunkel', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZVISIKUN) ! IF ((CCLOUD == 'C2R2') .OR. (CCLOUD =='KHKO')) THEN @@ -2384,28 +2433,30 @@ IF (LVISI) THEN ZVISIZHA(:,:,:) =0.187/(XRT(:,:,:,2)*XRHODREF(:,:,:)*XSVT(:,:,:,NSV_C2R2BEG+1))**0.34*1000. END WHERE ! Visibity Gultepe - TZFIELD%CMNHNAME = 'VISIGUL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VISIGUL' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Visibility Gultepe' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VISIGUL', & + CSTDNAME = '', & + CLONGNAME = 'VISIGUL', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Visibility Gultepe', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZVISIGUL) ! Visibity Zhang - TZFIELD%CMNHNAME = 'VISIZHA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VISIZHA' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Visibility Zhang' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VISIZHA', & + CSTDNAME = '', & + CLONGNAME = 'VISIZHA', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Visibility Zhang', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZVISIZHA) ! DEALLOCATE(ZVISIGUL,ZVISIZHA) @@ -2431,16 +2482,17 @@ IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN *ZWORK31(:,:,:) *(1. +0.81 *ZWORK31(:,:,:)) ) ! IF (LMOIST_E) THEN - TZFIELD%CMNHNAME = 'THETAE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THETAE' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Equivalent potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THETAE', & + CSTDNAME = '', & + CLONGNAME = 'THETAE', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Equivalent potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAE) END IF END IF @@ -2457,16 +2509,17 @@ IF (LMOIST_ES .AND. (NRR>0)) THEN -4.805 ) ) + 55. ZTHETAES(:,:,:)= XTHT(:,:,:) * EXP( (3376. / ZTHETAE(:,:,:) - 2.54) & *ZWORK31(:,:,:) *(1. +0.81 *ZWORK31(:,:,:)) ) - TZFIELD%CMNHNAME = 'THETAES' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THETAES' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Equivalent Saturated potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THETAES', & + CSTDNAME = '', & + CLONGNAME = 'THETAES', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Equivalent Saturated potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAES) ENDIF ! @@ -2508,16 +2561,17 @@ IF ( LMOIST_L .OR. LMOIST_S1 .OR. LMOIST_S2 ) THEN ! IF (LMOIST_L .AND. NRR > 0) THEN ! Liquid-Water potential temperature - TZFIELD%CMNHNAME = 'THETAL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THETAL' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Liquid water potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THETAL', & + CSTDNAME = '', & + CLONGNAME = 'THETAL', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Liquid water potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAL) END IF ! @@ -2563,30 +2617,32 @@ IF ( LMOIST_S1 .OR. LMOIST_S2 ) THEN END IF IF (LMOIST_S1) THEN ! The Moist-air Entropy potential temperature (1st order) - TZFIELD%CMNHNAME = 'THETAS1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THETAS1' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Moist air Entropy (1st order) potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THETAS1', & + CSTDNAME = '', & + CLONGNAME = 'THETAS1', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Moist air Entropy (1st order) potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAS1) END IF IF (LMOIST_S2) THEN ! The Moist-air Entropy potential temperature (2nd order) - TZFIELD%CMNHNAME = 'THETAS2' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THETAS2' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Moist air Entropy (2nd order) potential temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THETAS2', & + CSTDNAME = '', & + CLONGNAME = 'THETAS2', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Moist air Entropy (2nd order) potential temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAS2) END IF ! @@ -2600,84 +2656,90 @@ END IF IF (LVORT) THEN ! Vorticity x ZWORK31(:,:,:)=MYF(MZF(MXM(ZVOX(:,:,:)))) - TZFIELD%CMNHNAME = 'UM1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM1' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_x component of vorticity' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM1', & + CSTDNAME = '', & + CLONGNAME = 'UM1', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_x component of vorticity', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! ! Vorticity y ZWORK32(:,:,:)=MZF(MXF(MYM(ZVOY(:,:,:)))) - TZFIELD%CMNHNAME = 'VM1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM1' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_y component of vorticity' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM1', & + CSTDNAME = '', & + CLONGNAME = 'VM1', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_y component of vorticity', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN - TZFIELD2(1)%CMNHNAME = 'UM1_ZM' - TZFIELD2(1)%CSTDNAME = '' - TZFIELD2(1)%CLONGNAME = 'UM1_ZM' - TZFIELD2(1)%CUNITS = 'm s-1' - TZFIELD2(1)%CDIR = 'XY' - TZFIELD2(1)%CCOMMENT = 'Zonal component of horizontal vorticity' - TZFIELD2(1)%NGRID = 2 - TZFIELD2(1)%NTYPE = TYPEREAL - TZFIELD2(1)%NDIMS = 3 - TZFIELD2(1)%LTIMEDEP = .TRUE. + TZFIELD2(1) = TFIELDDATA( & + CMNHNAME = 'UM1_ZM', & + CSTDNAME = '', & + CLONGNAME = 'UM1_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Zonal component of horizontal vorticity', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! - TZFIELD2(2)%CMNHNAME = 'VM1_ZM' - TZFIELD2(2)%CSTDNAME = '' - TZFIELD2(2)%CLONGNAME = 'VM1_ZM' - TZFIELD2(2)%CUNITS = 'm s-1' - TZFIELD2(2)%CDIR = 'XY' - TZFIELD2(2)%CCOMMENT = 'Meridian component of horizontal vorticity' - TZFIELD2(2)%NGRID = 3 - TZFIELD2(2)%NTYPE = TYPEREAL - TZFIELD2(2)%NDIMS = 3 - TZFIELD2(2)%LTIMEDEP = .TRUE. + TZFIELD2(2) = TFIELDDATA( & + CMNHNAME = 'VM1_ZM', & + CSTDNAME = '', & + CLONGNAME = 'VM1_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Meridian component of horizontal vorticity', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ENDIF ! ! Vorticity z ZWORK31(:,:,:)=MXF(MYF(MZM(ZVOZ(:,:,:)))) - TZFIELD%CMNHNAME = 'WM1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'WM1' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_relative vorticity' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'WM1', & + CSTDNAME = '', & + CLONGNAME = 'WM1', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_relative vorticity', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! ! Absolute Vorticity ZWORK31(:,:,:)=MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:) - TZFIELD%CMNHNAME = 'ABVOR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ABVOR' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_z ABsolute VORticity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ABVOR', & + CSTDNAME = '', & + CLONGNAME = 'ABVOR', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_z ABsolute VORticity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! END IF @@ -2700,16 +2762,17 @@ IF ( LMEAN_POVO ) THEN END WHERE END DO WHERE (IWORK1(:,:)>0) ZWORK21(:,:)=ZWORK21(:,:)/REAL( IWORK1(:,:) ) - TZFIELD%CMNHNAME = 'MEAN_POVO' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MEAN_POVO' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MEAN of POtential VOrticity' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MEAN_POVO', & + CSTDNAME = '', & + CLONGNAME = 'MEAN_POVO', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MEAN of POtential VOrticity', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -2722,16 +2785,17 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:))) & + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:)) ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:) - TZFIELD%CMNHNAME = 'POVOV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'POVOV' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Virtual POtential VOrticity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'POVOV', & + CSTDNAME = '', & + CLONGNAME = 'POVOV', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Virtual POtential VOrticity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! IF (LMEAN_POVO) THEN @@ -2744,16 +2808,17 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN END WHERE END DO WHERE(IWORK1(:,:)>0) ZWORK21(:,:)=ZWORK21(:,:)/REAL( IWORK1(:,:) ) - TZFIELD%CMNHNAME = 'MEAN_POVOV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MEAN_POVOV' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MEAN of Virtual POtential VOrticity' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MEAN_POVOV', & + CSTDNAME = '', & + CLONGNAME = 'MEAN_POVOV', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MEAN of Virtual POtential VOrticity', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF END IF @@ -2768,16 +2833,17 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:))) & + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:)) ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:) - TZFIELD%CMNHNAME = 'POVOE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'POVOE' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Equivalent POtential VOrticity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'POVOE', & + CSTDNAME = '', & + CLONGNAME = 'POVOE', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Equivalent POtential VOrticity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! IF (LMEAN_POVO) THEN @@ -2790,16 +2856,17 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN END WHERE END DO WHERE(IWORK1(:,:)>0) ZWORK21(:,:)=ZWORK21(:,:)/REAL( IWORK1(:,:) ) - TZFIELD%CMNHNAME = 'MEAN_POVOE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MEAN_POVOE' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_MEAN of Equivalent POtential VOrticity' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MEAN_POVOE', & + CSTDNAME = '', & + CLONGNAME = 'MEAN_POVOE', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_MEAN of Equivalent POtential VOrticity', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) DEALLOCATE(IWORK1) END IF @@ -2815,16 +2882,17 @@ IF (LMOIST_ES .AND. (NRR>0) ) THEN + ZWORK32(:,:,:)*MZF(MXF(ZVOY(:,:,:))) & + ZWORK33(:,:,:)*(MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:)) ZWORK34(:,:,:)=ZWORK34(:,:,:)*1E6/XRHODREF(:,:,:) - TZFIELD%CMNHNAME = 'POVOES' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'POVOES' - TZFIELD%CUNITS = 'PVU' ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Equivalent Saturated POtential VOrticity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'POVOES', & + CSTDNAME = '', & + CLONGNAME = 'POVOES', & + CUNITS = 'PVU', & ! 1 PVU = 1e-6 m^2 s^-1 K kg^-1 + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Equivalent Saturated POtential VOrticity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ENDIF ! @@ -2836,29 +2904,31 @@ ENDIF IF (LDIV) THEN ! ZWORK31=GX_U_M(XUT,XDXX,XDZZ,XDZX) + GY_V_M(XVT,XDYY,XDZZ,XDZY) - TZFIELD%CMNHNAME = 'HDIV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HDIV' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Horizontal DIVergence' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HDIV', & + CSTDNAME = '', & + CLONGNAME = 'HDIV', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Horizontal DIVergence', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! IF (LUSERV) THEN - TZFIELD%CMNHNAME = 'HMDIV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HMDIV' - TZFIELD%CUNITS = 'kg m-3 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Horizontal Moisture DIVergence HMDIV' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HMDIV', & + CSTDNAME = '', & + CLONGNAME = 'HMDIV', & + CUNITS = 'kg m-3 s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Horizontal Moisture DIVergence HMDIV', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ZWORK31=MXM(XRHODREF*XRT(:,:,:,1))*XUT ZWORK32=MYM(XRHODREF*XRT(:,:,:,1))*XVT ZWORK33=GX_U_M(ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(ZWORK32,XDYY,XDZZ,XDZY) @@ -2884,40 +2954,43 @@ IF (LCLSTR) THEN CALL CLUSTERING(GBOTUP,GCLOUD,XWT,ICLUSTERID,ICLUSTERLV,ZCLDSIZE) PRINT *,'GOT OUT OF CLUSTERING' ! - TZFIELD%CMNHNAME = 'CLUSTERID' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CLUSTERID' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CLUSTER (ID NUMBER)' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CLUSTERID', & + CSTDNAME = '', & + CLONGNAME = 'CLUSTERID', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CLUSTER (ID NUMBER)', & + NGRID = 1, & + NTYPE = TYPEINT, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ICLUSTERID) ! - TZFIELD%CMNHNAME = 'CLUSTERLV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CLUSTERLV' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CLUSTER (BASE OR TOP LEVEL)' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CLUSTERLV', & + CSTDNAME = '', & + CLONGNAME = 'CLUSTERLV', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CLUSTER (BASE OR TOP LEVEL)', & + NGRID = 1, & + NTYPE = TYPEINT, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ICLUSTERLV) ! - TZFIELD%CMNHNAME = 'CLDSIZE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CLDSIZE' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_CLDSIZE (HOR. SECTION)' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CLDSIZE', & + CSTDNAME = '', & + CLONGNAME = 'CLDSIZE', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_CLDSIZE (HOR. SECTION)', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZCLDSIZE) END IF ! @@ -2961,52 +3034,56 @@ IF (LGEO .OR. LAGEO) THEN DEALLOCATE(ZPHI) ! IF (LGEO) THEN - TZFIELD%CMNHNAME = 'UM88' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM88' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_U component of GEOstrophic wind' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM88', & + CSTDNAME = '', & + CLONGNAME = 'UM88', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_U component of GEOstrophic wind', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! - TZFIELD%CMNHNAME = 'VM88' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM88' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_V component of GEOstrophic wind' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM88', & + CSTDNAME = '', & + CLONGNAME = 'VM88', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_V component of GEOstrophic wind', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN - TZFIELD2(1)%CMNHNAME = 'UM88_ZM' - TZFIELD2(1)%CSTDNAME = '' - TZFIELD2(1)%CLONGNAME = 'UM88_ZM' - TZFIELD2(1)%CUNITS = 'm s-1' - TZFIELD2(1)%CDIR = 'XY' - TZFIELD2(1)%CCOMMENT = 'Zonal component of GEOstrophic wind' - TZFIELD2(1)%NGRID = 2 - TZFIELD2(1)%NTYPE = TYPEREAL - TZFIELD2(1)%NDIMS = 3 - TZFIELD2(1)%LTIMEDEP = .TRUE. + TZFIELD2(1) = TFIELDDATA( & + CMNHNAME = 'UM88_ZM', & + CSTDNAME = '', & + CLONGNAME = 'UM88_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Zonal component of GEOstrophic wind', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! - TZFIELD2(2)%CMNHNAME = 'VM88_ZM' - TZFIELD2(2)%CSTDNAME = '' - TZFIELD2(2)%CLONGNAME = 'VM88_ZM' - TZFIELD2(2)%CUNITS = 'm s-1' - TZFIELD2(2)%CDIR = 'XY' - TZFIELD2(2)%CCOMMENT = 'Meridian component of GEOstrophic wind' - TZFIELD2(2)%NGRID = 3 - TZFIELD2(2)%NTYPE = TYPEREAL - TZFIELD2(2)%NDIMS = 3 - TZFIELD2(2)%LTIMEDEP = .TRUE. + TZFIELD2(2) = TFIELDDATA( & + CMNHNAME = 'VM88_ZM', & + CSTDNAME = '', & + CLONGNAME = 'VM88_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Meridian component of GEOstrophic wind', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ENDIF @@ -3023,52 +3100,56 @@ IF (LGEO .OR. LAGEO) THEN ZWORK31(:,:,:)=XUT(:,:,:)-ZWORK31(:,:,:) ZWORK32(:,:,:)=XVT(:,:,:)-ZWORK32(:,:,:) ! - TZFIELD%CMNHNAME = 'UM89' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM89' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_U component of AGEOstrophic wind' - TZFIELD%NGRID = 2 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM89', & + CSTDNAME = '', & + CLONGNAME = 'UM89', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_U component of AGEOstrophic wind', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! - TZFIELD%CMNHNAME = 'VM89' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM89' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_V component of AGEOstrophic wind' - TZFIELD%NGRID = 3 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM89', & + CSTDNAME = '', & + CLONGNAME = 'VM89', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_V component of AGEOstrophic wind', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN - TZFIELD2(1)%CMNHNAME = 'UM89_ZM' - TZFIELD2(1)%CSTDNAME = '' - TZFIELD2(1)%CLONGNAME = 'UM89_ZM' - TZFIELD2(1)%CUNITS = 'm s-1' - TZFIELD2(1)%CDIR = 'XY' - TZFIELD2(1)%CCOMMENT = 'Zonal component of AGEOstrophic wind' - TZFIELD2(1)%NGRID = 2 - TZFIELD2(1)%NTYPE = TYPEREAL - TZFIELD2(1)%NDIMS = 3 - TZFIELD2(1)%LTIMEDEP = .TRUE. + TZFIELD2(1) = TFIELDDATA( & + CMNHNAME = 'UM89_ZM', & + CSTDNAME = '', & + CLONGNAME = 'UM89_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Zonal component of AGEOstrophic wind', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! - TZFIELD2(2)%CMNHNAME = 'VM89_ZM' - TZFIELD2(2)%CSTDNAME = '' - TZFIELD2(2)%CLONGNAME = 'VM89_ZM' - TZFIELD2(2)%CUNITS = 'm s-1' - TZFIELD2(2)%CDIR = 'XY' - TZFIELD2(2)%CCOMMENT = 'Meridian component of AGEOstrophic wind' - TZFIELD2(2)%NGRID = 3 - TZFIELD2(2)%NTYPE = TYPEREAL - TZFIELD2(2)%NDIMS = 3 - TZFIELD2(2)%LTIMEDEP = .TRUE. + TZFIELD2(2) = TFIELDDATA( & + CMNHNAME = 'VM89_ZM', & + CSTDNAME = '', & + CLONGNAME = 'VM89_ZM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Meridian component of AGEOstrophic wind', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! CALL UV_TO_ZONAL_AND_MERID(ZWORK31,ZWORK32,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ENDIF @@ -3092,16 +3173,17 @@ IF(LWIND_CONTRAV) THEN!$ CALL CONTRAV ((/"TEST","TEST"/),(/"TEST","TEST"/),XUT,XVT,XWT,XDXX,XDYY,XDZZ,XDZX,XDZY, & ZWORK31,ZWORK32,ZWORK33,2) ! - TZFIELD%CMNHNAME = 'WNORM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'WNORM' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_W surface normal wind' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'WNORM', & + CSTDNAME = '', & + CLONGNAME = 'WNORM', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_W surface normal wind', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF !------------------------------------------------------------------------------- @@ -3125,16 +3207,17 @@ IF (LMSLP) THEN ! sea level pressure (hPa) ZWORK22(:,:) = 1.E-2*ZWORK21(:,:)*EXP(XG*XZS(:,:)/(XRD*ZWORK22(:,:))) ! - TZFIELD%CMNHNAME = 'MSLP' - TZFIELD%CSTDNAME = 'air_pressure_at_sea_level' - TZFIELD%CLONGNAME = 'MSLP' - TZFIELD%CUNITS = 'hPa' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Mean Sea Level Pressure' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'MSLP', & + CSTDNAME = 'air_pressure_at_sea_level', & + CLONGNAME = 'MSLP', & + CUNITS = 'hPa', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Mean Sea Level Pressure', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF !------------------------------------------------------------------------------- @@ -3150,16 +3233,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! vapor water in mm unit - TZFIELD%CMNHNAME = 'THVW' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THVW' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of Vapor Water' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THVW', & + CSTDNAME = '', & + CLONGNAME = 'THVW', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of Vapor Water', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -3170,16 +3254,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! cloud water in mm unit - TZFIELD%CMNHNAME = 'THCW' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THCW' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of Cloud Water' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THCW', & + CSTDNAME = '', & + CLONGNAME = 'THCW', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of Cloud Water', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -3190,16 +3275,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! rain water in mm unit - TZFIELD%CMNHNAME = 'THRW' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THRW' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of Rain Water' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THRW', & + CSTDNAME = '', & + CLONGNAME = 'THRW', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of Rain Water', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -3210,16 +3296,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! ice thickness in mm unit - TZFIELD%CMNHNAME = 'THIC' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THIC' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of ICe' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THIC', & + CSTDNAME = '', & + CLONGNAME = 'THIC', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of ICe', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -3230,16 +3317,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! snow thickness in mm unit - TZFIELD%CMNHNAME = 'THSN' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THSN' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of SNow' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THSN', & + CSTDNAME = '', & + CLONGNAME = 'THSN', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of SNow', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -3250,16 +3338,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! graupel thickness in mm unit - TZFIELD%CMNHNAME = 'THGR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THGR' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of GRaupel' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THGR', & + CSTDNAME = '', & + CLONGNAME = 'THGR', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of GRaupel', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! @@ -3270,16 +3359,17 @@ IF (LTHW) THEN (XZZ(:,:,JK+1)-XZZ(:,:,JK))/XRHOLW END DO ZWORK21(:,:) = ZWORK21(:,:)*1000. ! hail thickness in mm unit - TZFIELD%CMNHNAME = 'THHA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'THHA' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_THickness of HAil' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'THHA', & + CSTDNAME = '', & + CLONGNAME = 'THHA', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_THickness of HAil', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF END IF @@ -3311,16 +3401,17 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN END IF IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. & CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN - TZFIELD%CMNHNAME = 'ACTOPR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ACTOPR' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_ACccumulated TOtal Precipitation Rate' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ACTOPR', & + CSTDNAME = '', & + CLONGNAME = 'ACTOPR', & + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_ACccumulated TOtal Precipitation Rate', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ELSE PRINT * ,'YOU WANT TO COMPUTE THE ACCUMULATED RAIN' @@ -3330,15 +3421,17 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN ! calculation of the mean accumulated precipitations in the mesh-grid of a !large-scale model IF (LMEAN_PR .AND. LUSERR) THEN - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'mm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Large Scale ACccumulated TOtal Precipitation Rate' - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CSTDNAME = 'generic LS_ACTOPR', & !Temporary name to ease identification + CUNITS = 'mm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Large Scale ACccumulated TOtal Precipitation Rate', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! - DO JK=1,SIZE(XMEAN_PR),2 + DO JK=1,SIZE(XMEAN_PR),2 IF (XMEAN_PR(JK) .NE. XUNDEF .AND. XMEAN_PR(JK+1) .NE. XUNDEF) THEN PRINT * ,'MEAN accumulated RAIN: GRID ', XMEAN_PR(JK), XMEAN_PR(JK+1) CALL COMPUTE_MEAN_PRECIP(ZWORK21,XMEAN_PR(JK:JK+1),ZWORK22,TZFIELD%NGRID) @@ -3376,16 +3469,17 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN END IF IF (LUSERR .OR. CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. & CCLOUD == 'LIMA' .OR. CDCONV /= 'NONE') THEN - TZFIELD%CMNHNAME = 'INTOPR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'INTOPR' - TZFIELD%CUNITS = 'mm hour-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_INstantaneous TOtal Precipitation Rate' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'INTOPR', & + CSTDNAME = '', & + CLONGNAME = 'INTOPR', & + CUNITS = 'mm hour-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_INstantaneous TOtal Precipitation Rate', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ELSE PRINT * ,'YOU WANT TO COMPUTE THE RAIN RATE' @@ -3397,15 +3491,17 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN IF (LMEAN_PR .AND. LUSERR) THEN CALL COMPUTE_MEAN_PRECIP(ZWORK21,XMEAN_PR,ZWORK22,TZFIELD%NGRID) ! - TZFIELD%CMNHNAME = 'LS_INTOPR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LS_INTOPR' - TZFIELD%CUNITS = 'mm hour-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Large Scale INstantaneous TOtal Precipitation Rate' - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LS_INTOPR', & + CSTDNAME = '', & + CLONGNAME = 'LS_INTOPR', & + CUNITS = 'mm hour-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Large Scale INstantaneous TOtal Precipitation Rate', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF ! @@ -3425,65 +3521,70 @@ IF (NCAPE >=0 .AND. LUSERV) THEN ZWORK32(:,:,IKB:IKE),ZWORK33(:,:,IKB:IKE), & ZWORK34(:,:,IKB:IKE),ZWORK21,ZWORK22 ) ! - TZFIELD%CMNHNAME = 'CAPEMAX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CAPEMAX' - TZFIELD%CUNITS = 'J kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_MAX of Convective Available Potential Energy' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CAPEMAX', & + CSTDNAME = '', & + CLONGNAME = 'CAPEMAX', & + CUNITS = 'J kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_MAX of Convective Available Potential Energy', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! - TZFIELD%CMNHNAME = 'CINMAX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'CINMAX' - TZFIELD%CUNITS = 'J kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_MAX of Convective INhibition energy' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CINMAX', & + CSTDNAME = '', & + CLONGNAME = 'CINMAX', & + CUNITS = 'J kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_MAX of Convective INhibition energy', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! IF (NCAPE >=1) THEN - TZFIELD%CMNHNAME = 'CAPE3D' - TZFIELD%CSTDNAME = 'atmosphere_convective_available_potential_energy' - TZFIELD%CLONGNAME = 'CAPE3D' - TZFIELD%CUNITS = 'J kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Convective Available Potential Energy' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CAPE3D', & + CSTDNAME = 'atmosphere_convective_available_potential_energy', & + CLONGNAME = 'CAPE3D', & + CUNITS = 'J kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Convective Available Potential Energy', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! - TZFIELD%CMNHNAME = 'CIN3D' - TZFIELD%CSTDNAME = 'atmosphere_convective_inhibition' - TZFIELD%CLONGNAME = 'CIN3D' - TZFIELD%CUNITS = 'J kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Convective INhibition energy' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CIN3D', & + CSTDNAME = 'atmosphere_convective_inhibition', & + CLONGNAME = 'CIN3D', & + CUNITS = 'J kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Convective INhibition energy', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! - TZFIELD%CMNHNAME = 'DCAPE3D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DCAPE3D' - TZFIELD%CUNITS = 'J kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DCAPE3D', & + CSTDNAME = '', & + CLONGNAME = 'DCAPE3D', & + CUNITS = 'J kg-1', & + CDIR = 'XY', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) END IF ! @@ -3492,16 +3593,17 @@ IF (NCAPE >=0 .AND. LUSERV) THEN ZWORK31(:,:,IKU) = 0. ZWORK31=0.5*ZWORK31**2 ! - TZFIELD%CMNHNAME = 'VKE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VKE' - TZFIELD%CUNITS = 'J kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Vertical Kinetic Energy' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VKE', & + CSTDNAME = '', & + CLONGNAME = 'VKE', & + CUNITS = 'J kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Vertical Kinetic Energy', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ENDIF @@ -3524,16 +3626,17 @@ IF (LBV_FR) THEN ENDDO ENDDO ! - TZFIELD%CMNHNAME = 'BV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'BV' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Brunt-Vaissala frequency' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'BV', & + CSTDNAME = '', & + CLONGNAME = 'BV', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Brunt-Vaissala frequency', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! IF (NRR > 0) THEN @@ -3550,16 +3653,17 @@ IF (LBV_FR) THEN ENDDO ENDDO ! - TZFIELD%CMNHNAME = 'BVE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'BVE' - TZFIELD%CUNITS = 's-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Equivalent Brunt-Vaissala frequency' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'BVE', & + CSTDNAME = '', & + CLONGNAME = 'BVE', & + CUNITS = 's-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Equivalent Brunt-Vaissala frequency', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF END IF @@ -3578,41 +3682,44 @@ IF ( NGPS>=0 ) THEN YFGRI=ADJUSTL(ADJUSTR(TPFILE%CNAME)//'GPS') CALL GPS_ZENITH (YFGRI,XRT(:,:,:,1),ZTEMP,XPABST,ZWORK21,ZWORK22,ZWORK23,ZWORK24) ! - TZFIELD%CMNHNAME = 'ZTD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZTD' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Zenithal Total Delay' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZTD', & + CSTDNAME = '', & + CLONGNAME = 'ZTD', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Zenithal Total Delay', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! IF (NGPS>=1) THEN - TZFIELD%CMNHNAME = 'ZHD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZHD' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Zenithal Hydrostatic Delay' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZHD', & + CSTDNAME = '', & + CLONGNAME = 'ZHD', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Zenithal Hydrostatic Delay', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK23) ! - TZFIELD%CMNHNAME = 'ZWD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZWD' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Zenithal Wet Delay' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZWD', & + CSTDNAME = '', & + CLONGNAME = 'ZWD', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Zenithal Wet Delay', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK24) ! END IF @@ -3648,52 +3755,56 @@ IF(LRADAR .AND. LUSERR) THEN ZWORK33, ZWORK34 ) ENDIF ! - TZFIELD%CMNHNAME = 'RARE' - TZFIELD%CSTDNAME = 'equivalent_reflectivity_factor' - TZFIELD%CLONGNAME = 'RARE' - TZFIELD%CUNITS = 'dBZ' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_RAdar REflectivity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RARE', & + CSTDNAME = 'equivalent_reflectivity_factor', & + CLONGNAME = 'RARE', & + CUNITS = 'dBZ', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_RAdar REflectivity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! - TZFIELD%CMNHNAME = 'VDOP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VDOP' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_radar DOPpler fall speed' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VDOP', & + CSTDNAME = '', & + CLONGNAME = 'VDOP', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_radar DOPpler fall speed', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! - TZFIELD%CMNHNAME = 'ZDR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZDR' - TZFIELD%CUNITS = 'dBZ' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Differential polar Reflectivity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZDR', & + CSTDNAME = '', & + CLONGNAME = 'ZDR', & + CUNITS = 'dBZ', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Differential polar Reflectivity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! - TZFIELD%CMNHNAME = 'KDP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'KDP' - TZFIELD%CUNITS = 'degree km-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Differential Phase Reflectivity' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'KDP', & + CSTDNAME = '', & + CLONGNAME = 'KDP', & + CUNITS = 'degree km-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Differential Phase Reflectivity', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! ELSE @@ -3992,28 +4103,30 @@ IF (LLIDAR) THEN IF( ALLOCATED(ZTMP3) ) DEALLOCATE(ZTMP3) IF( ALLOCATED(ZTMP4) ) DEALLOCATE(ZTMP4) ! - TZFIELD%CMNHNAME = 'LIDAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LIDAR' - TZFIELD%CUNITS = 'm-1 sr-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Normalized_Lidar_Profile' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LIDAR', & + CSTDNAME = '', & + CLONGNAME = 'LIDAR', & + CUNITS = 'm-1 sr-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Normalized_Lidar_Profile', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! - TZFIELD%CMNHNAME = 'LIPAR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LIPAR' - TZFIELD%CUNITS = 'm-1 sr-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Particle_Lidar_Profile' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LIPAR', & + CSTDNAME = '', & + CLONGNAME = 'LIPAR', & + CUNITS = 'm-1 sr-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Particle_Lidar_Profile', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! END IF @@ -4048,16 +4161,17 @@ IF (CBLTOP == 'THETA') THEN ZSHMIX(:,:)=ZSHMIX(:,:)-XZS(:,:) ZSHMIX(:,:)=MAX(ZSHMIX(:,:),50.0) ! - TZFIELD%CMNHNAME = 'HBLTOP' - TZFIELD%CSTDNAME = 'atmosphere_boundary_layer_thickness' - TZFIELD%CLONGNAME = 'HBLTOP' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Height of Boundary Layer TOP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HBLTOP', & + CSTDNAME = 'atmosphere_boundary_layer_thickness', & + CLONGNAME = 'HBLTOP', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'Height of Boundary Layer TOP', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZSHMIX) ! DEALLOCATE(ZSHMIX) @@ -4092,16 +4206,17 @@ ELSEIF (CBLTOP == 'RICHA') THEN END DO ZSHMIX(:,:)=ZSHMIX(:,:)-XZS(:,:) ! - TZFIELD%CMNHNAME = 'HBLTOP' - TZFIELD%CSTDNAME = 'atmosphere_boundary_layer_thickness' - TZFIELD%CLONGNAME = 'HBLTOP' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Height of Boundary Layer TOP' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HBLTOP', & + CSTDNAME = 'atmosphere_boundary_layer_thickness', & + CLONGNAME = 'HBLTOP', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'Height of Boundary Layer TOP', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZSHMIX) ! DEALLOCATE(ZRIB,ZSHMIX) diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90 index 94887adeb8a1dd7b414f868fa0fb7d8ce0cb66f5..456337d787dc9c02a2201bbe12750c8f5924601f 100644 --- a/src/MNH/write_lfifm1_for_diag_supp.f90 +++ b/src/MNH/write_lfifm1_for_diag_supp.f90 @@ -256,16 +256,17 @@ IF (NCONV_KF >= 0) THEN IF (NCLTOPCONV(JI,JJ)/=0) ZWORK21(JI,JJ)= XZZ(JI,JJ,NCLTOPCONV(JI,JJ))/1.E3 END DO END DO - TZFIELD%CMNHNAME = 'CLTOPCONV' - TZFIELD%CSTDNAME = 'convective_cloud_top_altitude' - TZFIELD%CLONGNAME = 'CLTOPCONV' - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Top of Convective Cloud' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CLTOPCONV', & + CSTDNAME = 'convective_cloud_top_altitude', & + CLONGNAME = 'CLTOPCONV', & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Top of Convective Cloud', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! ! base height (km) of convective clouds @@ -275,16 +276,17 @@ IF (NCONV_KF >= 0) THEN IF (NCLBASCONV(JI,JJ)/=0) ZWORK21(JI,JJ)= XZZ(JI,JJ,NCLBASCONV(JI,JJ))/1.E3 END DO END DO - TZFIELD%CMNHNAME = 'CLBASCONV' - TZFIELD%CSTDNAME = 'convective_cloud_base_altitude' - TZFIELD%CLONGNAME = 'CLBASCONV' - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Base of Convective Cloud' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'CLBASCONV', & + CSTDNAME = 'convective_cloud_base_altitude', & + CLONGNAME = 'CLBASCONV', & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Base of Convective Cloud', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! END IF @@ -456,16 +458,17 @@ IF (LCLD_COV .AND. LUSERC) THEN ! 0 if there is no cloud ZWORK21(:,:)=ZWORK21(:,:)/1.E3 ! height (km) of explicit clouds ! - TZFIELD%CMNHNAME = 'HECL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'HECL' - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Height of Explicit CLoud top' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HECL', & + CSTDNAME = '', & + CLONGNAME = 'HECL', & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Height of Explicit CLoud top', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! ! Higher top of the different species of clouds @@ -493,29 +496,31 @@ IF (LCLD_COV .AND. LUSERC) THEN ! 0 if there is no cloud ZWORK21(:,:)=ZWORK21(:,:)/1.E3 ! max. cloud height (km) ! - TZFIELD%CMNHNAME = 'HCL' - TZFIELD%CSTDNAME = 'cloud_top_altitude' - TZFIELD%CLONGNAME = 'HCL' - TZFIELD%CUNITS = 'km' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Height of CLoud top' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'HCL', & + CSTDNAME = 'cloud_top_altitude', & + CLONGNAME = 'HCL', & + CUNITS = 'km', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Height of CLoud top', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ENDIF ! - TZFIELD%CMNHNAME = 'TCL' - TZFIELD%CSTDNAME = 'air_temperature_at_cloud_top' - TZFIELD%CLONGNAME = 'TCL' - TZFIELD%CUNITS = 'celsius' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Height of CLoud top' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TCL', & + CSTDNAME = 'air_temperature_at_cloud_top', & + CLONGNAME = 'TCL', & + CUNITS = 'celsius', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Height of CLoud top', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! CALL IO_Field_write(TPFILE,'CLDFR',XCLDFR) @@ -527,16 +532,17 @@ IF (LCLD_COV .AND. LUSERC) THEN ZWORK31(:,:,:)=3.9E3/(144.7*(XRHODREF(:,:,:)*1.E3*XRT(:,:,:,2)/(1.+XRT(:,:,:,2)))**0.88) END WHERE ! - TZFIELD%CMNHNAME = 'VISI_HOR' - TZFIELD%CSTDNAME = 'visibility_in_air' - TZFIELD%CLONGNAME = 'VISI_HOR' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_VISI_HOR' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VISI_HOR', & + CSTDNAME = 'visibility_in_air', & + CLONGNAME = 'VISI_HOR', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_VISI_HOR', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! DEALLOCATE(IWORK1,IWORK2,ICL_HE_ST,GMASK2,ZWORK22) @@ -582,16 +588,17 @@ IF (NRAD_3D >= 1) THEN IKRAD = JK - JPVEXT ZWORK31(:,:,JK)= XAER(:,:,IKRAD,3) END DO - TZFIELD%CMNHNAME = 'DSTAOD3D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DSTAOD3D' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DuST Aerosol Optical Depth' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DSTAOD3D', & + CSTDNAME = '', & + CLONGNAME = 'DSTAOD3D', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_DuST Aerosol Optical Depth', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Dust optical depth ZWORK21(:,:)=0.0 @@ -603,32 +610,34 @@ IF (NRAD_3D >= 1) THEN ENDDO ENDDO ENDDO - TZFIELD%CMNHNAME = 'DSTAOD2D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DSTAOD2D' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_DuST Aerosol Optical Depth' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DSTAOD2D', & + CSTDNAME = '', & + CLONGNAME = 'DSTAOD2D', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_DuST Aerosol Optical Depth', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Dust extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT ZWORK31(:,:,JK)= XAER(:,:,IKRAD,3)/(XZZ(:,:,JK+1)-XZZ(:,:,JK))*1.D3 ENDDO - TZFIELD%CMNHNAME = 'DSTEXT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'DSTEXT' - TZFIELD%CUNITS = 'km-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_DuST EXTinction' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'DSTEXT', & + CSTDNAME = '', & + CLONGNAME = 'DSTEXT', & + CUNITS = 'km-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_DuST EXTinction', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF IF (LSALT) THEN @@ -638,16 +647,17 @@ IF (NRAD_3D >= 1) THEN IKRAD = JK - JPVEXT ZWORK31(:,:,JK)= XAER(:,:,IKRAD,2) END DO - TZFIELD%CMNHNAME = 'SLTAOD3D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SLTAOD3D' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Salt Aerosol Optical Depth' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SLTAOD3D', & + CSTDNAME = '', & + CLONGNAME = 'SLTAOD3D', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Salt Aerosol Optical Depth', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Salt optical depth ZWORK21(:,:)=0.0 @@ -659,32 +669,34 @@ IF (NRAD_3D >= 1) THEN ENDDO ENDDO ENDDO - TZFIELD%CMNHNAME = 'SLTAOD2D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SLTAOD2D' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Salt Aerosol Optical Depth' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SLTAOD2D', & + CSTDNAME = '', & + CLONGNAME = 'SLTAOD2D', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Salt Aerosol Optical Depth', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Salt extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT ZWORK31(:,:,JK)= XAER(:,:,IKRAD,2)/(XZZ(:,:,JK+1)-XZZ(:,:,JK))*1.D3 ENDDO - TZFIELD%CMNHNAME = 'SLTEXT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SLTEXT' - TZFIELD%CUNITS = 'km-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Salt EXTinction' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SLTEXT', & + CSTDNAME = '', & + CLONGNAME = 'SLTEXT', & + CUNITS = 'km-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Salt EXTinction', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF IF (LORILAM) THEN @@ -694,16 +706,17 @@ IF (NRAD_3D >= 1) THEN IKRAD = JK - JPVEXT ZWORK31(:,:,JK)= XAER(:,:,IKRAD,4) END DO - TZFIELD%CMNHNAME = 'AERAOD3D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'AERAOD3D' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Anthropogenic Aerosol Optical Depth' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'AERAOD3D', & + CSTDNAME = '', & + CLONGNAME = 'AERAOD3D', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Anthropogenic Aerosol Optical Depth', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Orilam anthropogenic optical depth ZWORK21(:,:)=0.0 @@ -715,32 +728,34 @@ IF (NRAD_3D >= 1) THEN ENDDO ENDDO ENDDO - TZFIELD%CMNHNAME = 'AERAOD2D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'AERAOD2D' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Anthropogenic Aerosol Optical Depth' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'AERAOD2D', & + CSTDNAME = '', & + CLONGNAME = 'AERAOD2D', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Anthropogenic Aerosol Optical Depth', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Orilam anthropogenic extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT ZWORK31(:,:,JK)= XAER(:,:,IKRAD,4)/(XZZ(:,:,JK+1)-XZZ(:,:,JK))*1.D3 ENDDO - TZFIELD%CMNHNAME = 'AEREXT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'AEREXT' - TZFIELD%CUNITS = 'km-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_Anthropogenic EXTinction' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'AEREXT', & + CSTDNAME = '', & + CLONGNAME = 'AEREXT', & + CUNITS = 'km-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_Anthropogenic EXTinction', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF END IF @@ -814,28 +829,30 @@ IF (LEN_TRIM(CRAD_SAT) /= 0 .AND. NRR /=0) THEN LSUBG_COND, LRAD_SUBG_COND, ZIRBT, ZWVBT, & INDGEO(JI), VSIGQSAT ) ! - TZFIELD%CMNHNAME = TRIM(YNAM_SAT(JI))//'_IRBT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(YNAM_SAT(JI))//' Infra-Red Brightness Temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YNAM_SAT(JI))//'_IRBT', & + CSTDNAME = '', & + CLONGNAME = TRIM(YNAM_SAT(JI))//'_IRBT', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = TRIM(YNAM_SAT(JI))//' Infra-Red Brightness Temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZIRBT) ! - TZFIELD%CMNHNAME = TRIM(YNAM_SAT(JI))//'_WVBT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = TRIM(YNAM_SAT(JI))//' Water-Vapor Brightness Temperature' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(YNAM_SAT(JI))//'_WVBT', & + CSTDNAME = '', & + CLONGNAME = TRIM(YNAM_SAT(JI))//'_WVBT', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = TRIM(YNAM_SAT(JI))//' Water-Vapor Brightness Temperature', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWVBT) END DO DEALLOCATE(ZIRBT,ZWVBT) @@ -901,138 +918,148 @@ IF (CSURF=='EXTE') THEN ! in this case (argument KGRID=0), input winds are ZONal and MERidian ! and, output ones are in MesoNH grid IF (.NOT. LCARTESIAN) THEN - TZFIELD2(1)%CMNHNAME = 'UM10' - TZFIELD2(1)%CSTDNAME = '' - TZFIELD2(1)%CLONGNAME = 'UM10' - TZFIELD2(1)%CUNITS = 'm s-1' - TZFIELD2(1)%CDIR = 'XY' - TZFIELD2(1)%CCOMMENT = 'Zonal wind at 10m' - TZFIELD2(1)%NGRID = 1 - TZFIELD2(1)%NTYPE = TYPEREAL - TZFIELD2(1)%NDIMS = 2 - TZFIELD2(1)%LTIMEDEP = .TRUE. + TZFIELD2(1) = TFIELDDATA( & + CMNHNAME = 'UM10', & + CSTDNAME = '', & + CLONGNAME = 'UM10', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Zonal wind at 10m', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! - TZFIELD2(2)%CMNHNAME = 'VM10' - TZFIELD2(2)%CSTDNAME = '' - TZFIELD2(2)%CLONGNAME = 'VM10' - TZFIELD2(2)%CUNITS = 'm s-1' - TZFIELD2(2)%CDIR = 'XY' - TZFIELD2(2)%CCOMMENT = 'Meridian wind at 10m' - TZFIELD2(2)%NGRID = 1 - TZFIELD2(2)%NTYPE = TYPEREAL - TZFIELD2(2)%NDIMS = 2 - TZFIELD2(2)%LTIMEDEP = .TRUE. + TZFIELD2(2) = TFIELDDATA( & + CMNHNAME = 'VM10', & + CSTDNAME = '', & + CLONGNAME = 'VM10', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Meridian wind at 10m', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! CALL UV_TO_ZONAL_AND_MERID(XCURRENT_ZON10M,XCURRENT_MER10M,KGRID=0,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ELSE - TZFIELD%CMNHNAME = 'UM10' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'UM10' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Zonal wind at 10m' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'UM10', & + CSTDNAME = '', & + CLONGNAME = 'UM10', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Zonal wind at 10m', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_ZON10M) ! - TZFIELD%CMNHNAME = 'VM10' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'VM10' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'Meridian wind at 10m' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VM10', & + CSTDNAME = '', & + CLONGNAME = 'VM10', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'Meridian wind at 10m', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_MER10M) ENDIF ! IF (SIZE(XTKET)>0) THEN ZWORK21(:,:) = SQRT(XCURRENT_ZON10M(:,:)**2+XCURRENT_MER10M(:,:)**2) ZWORK21(:,:) = ZWORK21(:,:) + 4. * SQRT(XTKET(:,:,IKB)) - TZFIELD%CMNHNAME = 'FF10MAX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'FF10MAX' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_FF10MAX' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'FF10MAX', & + CSTDNAME = '', & + CLONGNAME = 'FF10MAX', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_FF10MAX', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! IF(ANY(XCURRENT_SFCO2/=XUNDEF))THEN - TZFIELD%CMNHNAME = 'SFCO2' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SFCO2' - TZFIELD%CUNITS = 'mg m-2 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'CO2 Surface flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SFCO2', & + CSTDNAME = '', & + CLONGNAME = 'SFCO2', & + CUNITS = 'mg m-2 s-1', & + CDIR = 'XY', & + CCOMMENT = 'CO2 Surface flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SFCO2) END IF ! IF(ANY(XCURRENT_SWD/=XUNDEF))THEN - TZFIELD%CMNHNAME = 'SWD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWD' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'incoming ShortWave at the surface' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SWD', & + CSTDNAME = '', & + CLONGNAME = 'SWD', & + CUNITS = 'W m-2', & + CDIR = 'XY', & + CCOMMENT = 'incoming ShortWave at the surface', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SWD) END IF ! IF(ANY(XCURRENT_SWU/=XUNDEF))THEN - TZFIELD%CMNHNAME = 'SWU' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'SWU' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'outcoming ShortWave at the surface' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SWU', & + CSTDNAME = '', & + CLONGNAME = 'SWU', & + CUNITS = 'W m-2', & + CDIR = 'XY', & + CCOMMENT = 'outcoming ShortWave at the surface', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SWU) END IF ! IF(ANY(XCURRENT_LWD/=XUNDEF))THEN - TZFIELD%CMNHNAME = 'LWD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWD' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'incoming LongWave at the surface' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LWD', & + CSTDNAME = '', & + CLONGNAME = 'LWD', & + CUNITS = 'W m-2', & + CDIR = 'XY', & + CCOMMENT = 'incoming LongWave at the surface', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_LWD) END IF ! IF(ANY(XCURRENT_LWU/=XUNDEF))THEN - TZFIELD%CMNHNAME = 'LWU' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'LWU' - TZFIELD%CUNITS = 'W m-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'outcoming LongWave at the surface' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LWU', & + CSTDNAME = '', & + CLONGNAME = 'LWU', & + CUNITS = 'W m-2', & + CDIR = 'XY', & + CCOMMENT = 'outcoming LongWave at the surface', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_LWD) END IF END IF @@ -1072,12 +1099,14 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) END DO PRINT *,'PRESSURE LEVELS WHERE TO INTERPOLATE=',ZPRES(1,1,:) ! - TZFIELD%CSTDNAME = '' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'variables at pressure levels', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! ! !* Standard Variables @@ -1177,12 +1206,14 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) PRINT *,'POTENTIAL TEMPERATURE LEVELS WHERE TO INTERPOLATE=',ZTH(:) ! - TZFIELD%CSTDNAME = '' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'variables at pot. temp. levels', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! ! !* Standard Variables @@ -1279,16 +1310,17 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN ! ********************* ! Altitude ! ********************* - TZFIELD%CMNHNAME = 'ALT_ALT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_ALT' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Z_alt ALT' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_ALT', & + CSTDNAME = '', & + CLONGNAME = 'ALT_ALT', & + CUNITS = 'm', & + CDIR = '--', & + CCOMMENT = 'Z_alt ALT', & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZAL) ! !* Standard Variables @@ -1302,16 +1334,17 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN ZWORK31(:,:,:) = ZWORK31(:,:,:)*1.E3 CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_CLOUD' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_CLOUD' - TZFIELD%CUNITS = 'g kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_cloud ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_CLOUD', & + CSTDNAME = '', & + CLONGNAME = 'ALT_CLOUD', & + CUNITS = 'g kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_cloud ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Precipitation @@ -1324,48 +1357,51 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN ZWORK31(:,:,:) = ZWORK31(:,:,:)*1.E3 CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_PRECIP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_PRECIP' - TZFIELD%CUNITS = 'g kg-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_precipitation ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_PRECIP', & + CSTDNAME = '', & + CLONGNAME = 'ALT_PRECIP', & + CUNITS = 'g kg-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_precipitation ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Potential temperature ! ********************* CALL ZINTER(XTHT, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_THETA' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_THETA' - TZFIELD%CUNITS = 'K' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_potential temperature ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_THETA', & + CSTDNAME = '', & + CLONGNAME = 'ALT_THETA', & + CUNITS = 'K', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_potential temperature ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Pressure ! ********************* CALL ZINTER(XPABST, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_PRESSURE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_PRESSURE' - TZFIELD%CUNITS = 'Pa' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_pressure ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_PRESSURE', & + CSTDNAME = '', & + CLONGNAME = 'ALT_PRESSURE', & + CUNITS = 'Pa', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_pressure ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Potential Vorticity @@ -1389,16 +1425,17 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN ZPOVO(:,:,IKU)=-1.E+11 CALL ZINTER(ZPOVO, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_PV' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_PV' - TZFIELD%CUNITS = 'PVU' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Potential Vorticity ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_PV', & + CSTDNAME = '', & + CLONGNAME = 'ALT_PV', & + CUNITS = 'PVU', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Potential Vorticity ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Wind @@ -1406,31 +1443,33 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN ZWORK31(:,:,:) = MXF(XUT(:,:,:)) CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_U' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_U' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_U component of wind ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_U', & + CSTDNAME = '', & + CLONGNAME = 'ALT_U', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_U component of wind ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_V' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_V' - TZFIELD%CUNITS = 'm s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_V component of wind ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_V', & + CSTDNAME = '', & + CLONGNAME = 'ALT_V', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_V component of wind ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Dust extinction (optical depth per km) @@ -1442,16 +1481,17 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN ENDDO CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) WHERE(ZWAL.EQ.XUNDEF) ZWAL=ZFILLVAL - TZFIELD%CMNHNAME = 'ALT_DSTEXT' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ALT_DSTEXT' - TZFIELD%CUNITS = 'km-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_DuST EXTinction ALT' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ALT_DSTEXT', & + CSTDNAME = '', & + CLONGNAME = 'ALT_DSTEXT', & + CUNITS = 'km-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_DuST EXTinction ALT', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! @@ -1484,16 +1524,17 @@ IF (LCOARSE) THEN CALL BLOCKAVG(XTKET,IDX,IDX,ZWORK31) ZWORK31=0.5*( ZUU_AVG+ZVV_AVG+ZWW_AVG ) + ZWORK31 WRITE (YDX,FMT='(I3.3)') IDX - TZFIELD%CMNHNAME = 'TKEBAVG'//YDX - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'TKEBAVG'//YDX - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'TKE_BLOCKAVG'//YDX - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TKEBAVG'//YDX, & + CSTDNAME = '', & + CLONGNAME = 'TKEBAVG'//YDX, & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'TKE_BLOCKAVG'//YDX, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !--------------------------------- ! MOVING AVERAGE OF TKE OVER IDX+1 POINTS @@ -1514,16 +1555,17 @@ IF (LCOARSE) THEN CALL MOVINGAVG(XTKET,IDX,IDX,ZWORK31) ZWORK31=0.5*( ZUU_AVG+ZVV_AVG+ZWW_AVG ) + ZWORK31 WRITE (YDX,FMT='(I3.3)') 2*IDX+1 - TZFIELD%CMNHNAME = 'TKEMAVG'//YDX - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'TKEMAVG'//YDX - TZFIELD%CUNITS = 'm2 s-2' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'TKE_MOVINGAVG'//YDX - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'TKEMAVG'//YDX, & + CSTDNAME = '', & + CLONGNAME = 'TKEMAVG'//YDX, & + CUNITS = 'm2 s-2', & + CDIR = 'XY', & + CCOMMENT = 'TKE_MOVINGAVG'//YDX, & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index fdc5c4767b0c4715c0a3e380331f7c0d6652ca8a..4e80261f8e36b3fb6bc4d28841fbef411c1584ca 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -445,15 +445,17 @@ CALL IO_Field_write(TPFILE,'SURF', CSURF) CALL IO_Field_write(TPFILE,'CPL_AROME',LCPL_AROME) CALL IO_Field_write(TPFILE,'COUPLING', LCOUPLING) ! -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 = TFIELDDATA( & + CMNHNAME = 'RECYCLING', & + CLONGNAME = 'RECYCLING', & + CSTDNAME = '', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,LRECYCL) ! !* 1.4 Prognostic variables : @@ -491,16 +493,17 @@ END IF ! IF (LIBM .OR. LIBM_LSF) 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%CCOMMENT = 'Level Set Function at mass node' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'LSFP', & + CLONGNAME = 'LSFP', & + CSTDNAME = '', & + CUNITS = 'm', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'Level Set Function at mass node' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XIBM_LS(:,:,:,1)) ! @@ -508,189 +511,204 @@ ENDIF ! IF (LRECYCL) 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%CCOMMENT = 'Incremental counter for averaging purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'RCOUNT', & + CLONGNAME = 'RCOUNT', & + CSTDNAME = '', & + CUNITS = '', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'Incremental counter for averaging purpose' ) CALL IO_Field_write(TPFILE,TZFIELD,NR_COUNT) ! 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%CCOMMENT = 'UMEAN-WEST side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'URECYCLW', & + CLONGNAME = 'URECYCLW', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-WEST side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XUMEANW(:,:,:)) ! - 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%CCOMMENT = 'VMEAN-WEST side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VRECYCLW', & + CLONGNAME = 'VRECYCLW', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-WEST side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XVMEANW(:,:,:)) ! - 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%CCOMMENT = 'WMEAN-WEST side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'WRECYCLW', & + CLONGNAME = 'WRECYCLW', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-WEST side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XWMEANW(:,:,:)) ! 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%CCOMMENT = 'UMEAN-NORTH side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'URECYCLN', & + CLONGNAME = 'URECYCLN', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-NORTH side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XUMEANN(:,:,:)) ! - 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%CCOMMENT = 'VMEAN-NORTH side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VRECYCLN', & + CLONGNAME = 'VRECYCLN', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-NORTH side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XVMEANN(:,:,:)) ! - 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%CCOMMENT = 'WMEAN-NORTH side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'WRECYCLN', & + CLONGNAME = 'WRECYCLN', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-NORTH side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XWMEANN(:,:,:)) ! 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%CCOMMENT = 'UMEAN-EAST side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'URECYCLE', & + CLONGNAME = 'URECYCLE', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-EAST side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XUMEANE(:,:,:)) ! - 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%CCOMMENT = 'VMEAN-EAST side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VRECYCLE', & + CLONGNAME = 'VRECYCLE', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-EAST side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XVMEANE(:,:,:)) ! - 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%CCOMMENT = 'WMEAN-EAST side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'WRECYCLE', & + CLONGNAME = 'WRECYCLE', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-EAST side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XWMEANE(:,:,:)) ! 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%CCOMMENT = 'UMEAN-SOUTH side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'URECYCLS', & + CLONGNAME = 'URECYCLS', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 2, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'UMEAN-SOUTH side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XUMEANS(:,:,:)) ! - 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%CCOMMENT = 'VMEAN-SOUTH side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'VRECYCLS', & + CLONGNAME = 'VRECYCLS', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 3, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'VMEAN-SOUTH side plan for recycling purpose' ) ! CALL IO_Field_write(TPFILE,TZFIELD,XVMEANS(:,:,:)) ! - 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%CCOMMENT = 'WMEAN-SOUTH side plan for recycling purpose' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'WRECYCLS', & + CLONGNAME = 'WRECYCLS', & + CSTDNAME = '', & + CUNITS = 'm s-1', & + CDIR = 'XY', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE., & + CCOMMENT = 'WMEAN-SOUTH side plan for recycling purpose' ) ! ENDIF ENDIF ! IF (MEAN_COUNT /= 0) THEN ! - TZFIELD%CSTDNAME = '' - TZFIELD%CDIR = 'XY' - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for mean_count variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! TZFIELD%NGRID = 2 ! @@ -1026,16 +1044,17 @@ IF (NSV >=1) THEN ! ZWORK2D(:,:) = XRHOLW*XINPRR(:,:)*XSVT(:,:,2,NSV_LIMA_SCAVMASS)/ & max( 1.e-20,XRT(:,:,2,3) ) !~2=at ground level - TZFIELD%CMNHNAME = 'INPBP' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'INPBP' - TZFIELD%CUNITS = 'kg m-2 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_INstantaneous Precipitating Aerosol Rate' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'INPBP', & + CSTDNAME = '', & + CLONGNAME = 'INPBP', & + CUNITS = 'kg m-2 s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_INstantaneous Precipitating Aerosol Rate', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) ! CALL IO_Field_write(TPFILE,'ACPAP',XACPAP) @@ -1074,16 +1093,17 @@ IF (NSV >=1) THEN CALL IO_Field_write(TPFILE,'EFIELDV',XEFIELDV) CALL IO_Field_write(TPFILE,'EFIELDW',XEFIELDW) ! - TZFIELD%CMNHNAME = 'EMODULE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'V m-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'EMODULE', & + CSTDNAME = '', & + CLONGNAME = 'EMODULE', & + CUNITS = 'V m-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Z_EMODULE', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ZWORK3D(:,:,:) = (XEFIELDU**2 + XEFIELDV**2 + XEFIELDW**2)**0.5 CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! @@ -1487,29 +1507,31 @@ IF (NSV >=1) THEN DO JSV=1,ICH_NBR WRITE(ILUOUT,*)JSV,TRIM(YCHNAMES(JSV)) END DO - TZFIELD%CMNHNAME = 'NSV.DIM' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NSV.DIM' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Number of chemical variables' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NSV.DIM', & + CSTDNAME = '', & + CLONGNAME = 'NSV.DIM', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = 'Number of chemical variables', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ICH_NBR) ! IF (ICH_NBR/=0) THEN - TZFIELD%CMNHNAME = 'NSV.TITRE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NSV.TITRE' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = '' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NSV.TITRE', & + CSTDNAME = '', & + CLONGNAME = 'NSV.TITRE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) ILREC=LEN(YCHNAMES(1)) ILENG=ILREC*ICH_NBR ALLOCATE(ICH_NAMES(ILENG)) @@ -1610,29 +1632,31 @@ END IF ! IF (NSV >=1) THEN ! 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 = TFIELDDATA( & +! 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_write(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) ! END IF ! IF (JSV == NSV_C2R2END ) 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 = TFIELDDATA( & +! 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_write(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) ! END IF ! END DO @@ -1928,16 +1952,17 @@ END IF IF(LBLOWSNOW) THEN IF (ASSOCIATED(XSNWSUBL3D)) THEN IF (SIZE(XSNWSUBL3D) /= 0 ) THEN - TZFIELD%CMNHNAME = 'SNWSUBL3D' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'kg m-3 s-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_INstantaneous 3D Drifting snow sublimation flux' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'SNWSUBL3D', & + CSTDNAME = '', & + CLONGNAME = 'SNWSUBL3D', & + CUNITS = 'kg m-3 s-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_INstantaneous 3D Drifting snow sublimation flux', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) ZWORK2D(:,:) = 0. DO JK = IKB,IKE @@ -1946,16 +1971,17 @@ IF(LBLOWSNOW) THEN END DO ZWORK2D(:,:) = ZWORK2D(:,:)*1000. ! vapor water in mm unit ! - TZFIELD%CMNHNAME = 'COL_SNWSUBL' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'mm day-1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_Column Sublimation Rate (mmSWE/day)' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'COL_SNWSUBL', & + CSTDNAME = '', & + CLONGNAME = 'COL_SNWSUBL', & + CUNITS = 'mm day-1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_Column Sublimation Rate (mmSWE/day)', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D(:,:)) END IF END IF @@ -1967,52 +1993,56 @@ IF ((.NOT.LCOUPLES).AND.LOCEAN) THEN CALL IO_Field_write(TPFILE,'NFRCLT',NFRCLT) CALL IO_Field_write(TPFILE,'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. + TZFIELD = TFIELDDATA( & + 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. ) CALL IO_Field_write(TPFILE,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. + TZFIELD = TFIELDDATA( & + 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. ) CALL IO_Field_write(TPFILE,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. + TZFIELD = TFIELDDATA( & + 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. ) CALL IO_Field_write(TPFILE,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 to force ocean LES' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + 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. ) CALL IO_Field_write(TPFILE,TZFIELD,XSSOLA_T(:)) ! END IF ! ocean sfc forcing end @@ -2027,160 +2057,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,TDTFRC(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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XUFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XVFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XWFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XRVFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTENDTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTENDRVFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XGXTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XGYTHFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XPGROUNDFRC(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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTENDUFRC(:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XTENDVFRC(:,JT)) ! END DO @@ -2191,56 +2234,60 @@ END IF ! ------------------------------------------------------------------------- IF ( L2D_ADV_FRC ) THEN ! - TZFIELD%CMNHNAME = 'NADVFRC1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NADVFRC1' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Number of forcing profiles' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NADVFRC1', & + CSTDNAME = '', & + CLONGNAME = 'NADVFRC1', & + CUNITS = '1', & + CDIR = '--', & + CCOMMENT = 'Number of forcing profiles', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,NADVFRC) ! DO JT=1,NADVFRC ! 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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,TDTADVFRC(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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XDTHFRC(:,:,:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XDRVFRC(:,:,:,JT)) ! ENDDO @@ -2248,56 +2295,60 @@ ENDIF ! IF ( L2D_REL_FRC ) THEN ! - TZFIELD%CMNHNAME = 'NRELFRC1' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'NRELFRC1' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = 'Number of forcing profiles' - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 0 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'NRELFRC1', & + CSTDNAME = '', & + CLONGNAME = 'NRELFRC1', & + CUNITS = '1', & + CDIR = '--', & + CCOMMENT = 'Number of forcing profiles', & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,NRELFRC) ! DO JT=1,NRELFRC ! 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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,TDTRELFRC(JT)) ! - 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 = TFIELDDATA( & + CMNHNAME = 'TH_REL'//YFRC, & + CSTDNAME = '', & + CLONGNAME = 'TH_REL'//YFRC, & + CUNITS = 'K', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,XTHREL(:,:,:,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 = TFIELDDATA( & + 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_write(TPFILE,TZFIELD,XRVREL(:,:,:,JT)) ! ENDDO @@ -2366,13 +2417,15 @@ IF ( CPROGRAM=='REAL ' ) THEN !* 1.16 Dummy variables in PREP_REAL_CASE ! IF (ALLOCATED(CDUMMY_2D)) THEN - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for CDUMMY_2D variables', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) ! DO JSA=1,SIZE(XDUMMY_2D,3) TZFIELD%CMNHNAME = ADJUSTL(CDUMMY_2D(JSA)) @@ -2389,11 +2442,15 @@ END IF ! i) Main ! IF (LMAIN_EOL .AND. IMI == NMODEL_EOL) THEN - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - TZFIELD%CDIR = 'XY' - TZFIELD%CUNITS = 'N' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for wind turbine variables', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = 'N', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'FX_RG' TZFIELD%CLONGNAME = 'FX_RG' @@ -2432,11 +2489,15 @@ SELECT CASE(CMETH_EOL) ! CASE('ADNR') ! Actuator Disc Non-Rotating ! - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%CDIR = '--' - TZFIELD%CUNITS = '1' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for ADNR variables', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = '1', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'A_INDU' TZFIELD%CLONGNAME = 'INDUCTION_FACTOR' @@ -2468,9 +2529,13 @@ SELECT CASE(CMETH_EOL) ! CASE('ALM') ! Actuator Line Method ! - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%CDIR = '--' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for ALM variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEREAL, & + LTIMEDEP = .TRUE. ) ! TZFIELD%NDIMS = 1 ! @@ -2534,9 +2599,13 @@ SELECT CASE(CMETH_EOL) ! IF (MEAN_COUNT /= 0) THEN ! - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%CDIR = '--' + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for ALM mean variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEREAL, & + LTIMEDEP = .TRUE. ) ! TZFIELD%NDIMS = 1 ! diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90 index 58e08d8dc9a0d7189d1b0a6b53f3b0b5ae157b48..21ac274afdbbd60c631f68f70466281fd8b6c5d9 100644 --- a/src/MNH/write_surf_mnh.f90 +++ b/src/MNH/write_surf_mnh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1997-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1997-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -11,7 +11,7 @@ CONTAINS SUBROUTINE PREPARE_METADATA_WRITE_SURF(HREC,HDIR,HCOMMENT,KGRID,KTYPE,KDIMS,HSUBR,TPFIELD) ! -use modd_field, only: tfielddata, tfieldlist, TYPECHAR, TYPEDATE, TYPELOG +use modd_field, only: tfielddata, tfieldlist use mode_field, only: Find_field_id_from_mnhname USE MODE_MSG @@ -99,23 +99,23 @@ IF (IRESP==0) THEN END IF ELSE CALL PRINT_MSG(NVERB_DEBUG,'IO',TRIM(HSUBR),TRIM(HREC)//' not found in FIELDLIST. Generating default metadata') - TPFIELD%CMNHNAME = TRIM(HREC) - TPFIELD%CSTDNAME = '' - TPFIELD%CLONGNAME = TRIM(HREC) - TPFIELD%CUNITS = '' - TPFIELD%CDIR = HDIR - TPFIELD%CCOMMENT = TRIM(HCOMMENT) - TPFIELD%NGRID = KGRID - TPFIELD%NTYPE = KTYPE - TPFIELD%NDIMS = KDIMS + TPFIELD = TFIELDDATA( & + CMNHNAME = TRIM(HREC), & + CSTDNAME = '', & + CLONGNAME = TRIM(HREC), & + CUNITS = '', & + CDIR = HDIR, & + CCOMMENT = TRIM(HCOMMENT), & + NGRID = KGRID, & + NTYPE = KTYPE, & + NDIMS = KDIMS, & + LTIMEDEP = .FALSE. ) #if 0 IF (TPFIELD%NDIMS==0 .OR. TPFIELD%NTYPE==TYPECHAR .OR. TPFIELD%NTYPE==TYPEDATE .OR. TPFIELD%NTYPE==TYPELOG) THEN TPFIELD%LTIMEDEP = .FALSE. ELSE TPFIELD%LTIMEDEP = .TRUE. END IF -#else - TPFIELD%LTIMEDEP = .FALSE. #endif END IF ! @@ -641,16 +641,17 @@ END IF !GCOVER_PACKED = ( NB_PROCIO_W /= 1 ) GCOVER_PACKED = .FALSE. ! -TZFIELD%CMNHNAME = 'COVER_PACKED' -TZFIELD%CSTDNAME = '' -TZFIELD%CLONGNAME = 'COVER_PACKED' -TZFIELD%CUNITS = '' -TZFIELD%CDIR = '--' -TZFIELD%CCOMMENT = '' -TZFIELD%NGRID = 0 -TZFIELD%NTYPE = TYPELOG -TZFIELD%NDIMS = 0 -TZFIELD%LTIMEDEP = .FALSE. +TZFIELD = TFIELDDATA( & + CMNHNAME = 'COVER_PACKED', & + CSTDNAME = '', & + CLONGNAME = 'COVER_PACKED', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = '', & + NGRID = 0, & + NTYPE = TYPELOG, & + NDIMS = 0, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TFILE_SURFEX,TZFIELD,GCOVER_PACKED,KRESP) ! IF (KRESP /=0) THEN @@ -671,17 +672,19 @@ END DO ! IF (.NOT. GCOVER_PACKED) THEN ICOVER=0 - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = '' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'generic for COVER variables', & !Temporary name to ease identification + CSTDNAME = '', & + CUNITS = '', & + CDIR = YDIR, & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) DO JL2=1,SIZE(OFLAG) WRITE(YREC,'(A5,I3.3)') 'COVER',JL2 TZFIELD%CMNHNAME = TRIM(YREC) TZFIELD%CLONGNAME = TRIM(YREC) - TZFIELD%CDIR = YDIR TZFIELD%CCOMMENT = 'X_Y_'//TRIM(YREC) IF (OFLAG(JL2)) THEN ICOVER=ICOVER+1 @@ -1527,16 +1530,17 @@ ELSE ITDATE(2,:) = KMONTH (:) ITDATE(3,:) = KDAY (:) ! - TZFIELD%CMNHNAME = TRIM(HREC)//'%TDATE' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(HCOMMENT) - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEINT - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(HREC)//'%TDATE', & + CSTDNAME = '', & + CLONGNAME = TRIM(HREC)//'%TDATE', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(HCOMMENT), & + NGRID = 0, & + NTYPE = TYPEINT, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ITDATE(:,:),KRESP) ! @@ -1545,16 +1549,17 @@ ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_SURFT1_MNH','error when writing article '//TRIM(HREC)//' KRESP='//YMSG) END IF ! - TZFIELD%CMNHNAME = TRIM(HREC)//'%xtime' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = '' - TZFIELD%CDIR = '--' - TZFIELD%CCOMMENT = TRIM(HCOMMENT) - TZFIELD%NGRID = 0 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 1 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = TRIM(HREC)//'%xtime', & + CSTDNAME = '', & + CLONGNAME = TRIM(HREC)//'%xtime', & + CUNITS = '', & + CDIR = '--', & + CCOMMENT = TRIM(HCOMMENT), & + NGRID = 0, & + NTYPE = TYPEREAL, & + NDIMS = 1, & + LTIMEDEP = .FALSE. ) ! CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PTIME(:),KRESP) ! diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90 index b7c97c10a8e1faffcd9225f65eb62b282cc8273e..c6c85422fe121d1f6e29de82b05ef0d72c67b5ca 100644 --- a/src/MNH/zsmt_pgd.f90 +++ b/src/MNH/zsmt_pgd.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2005-2020 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2021 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -333,41 +333,44 @@ IF(OHSLOP) THEN END DO END DO ! - ! Writes filtred orography and slopes along i and j - TZFIELD%CMNHNAME = 'ZSLOPEX' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZSLOPEX' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'orography slope along x' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + ! Writes filtred orography and slopes along i and j + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZSLOPEX', & + CSTDNAME = '', & + CLONGNAME = 'ZSLOPEX', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'orography slope along x', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZSLOPEX) ! - TZFIELD%CMNHNAME = 'ZSLOPEY' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZSLOPEY' - TZFIELD%CUNITS = '' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'orography slope along y' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZSLOPEY', & + CSTDNAME = '', & + CLONGNAME = 'ZSLOPEY', & + CUNITS = '', & + CDIR = 'XY', & + CCOMMENT = 'orography slope along y', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZSLOPEY) ! - TZFIELD%CMNHNAME = 'ZS_FILTR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'ZS_FILTR' - TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'filtred orography' - TZFIELD%NGRID = 4 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .FALSE. + TZFIELD = TFIELDDATA( & + CMNHNAME = 'ZS_FILTR', & + CSTDNAME = '', & + CLONGNAME = 'ZS_FILTR', & + CUNITS = 'm', & + CDIR = 'XY', & + CCOMMENT = 'filtred orography', & + NGRID = 4, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .FALSE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZSMOOTH_ZSINI-ZFINE_ZS) END IF !-------------------------------------------------------------------------------