Skip to content
Snippets Groups Projects
Commit 4da13e98 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 11/02/2022: add meaning of ppv for AER, DUST and SALT variables depending on moment

parent e9ef9a94
No related branches found
No related tags found
No related merge requests found
...@@ -78,8 +78,9 @@ END MODULE MODI_INI_NSV ...@@ -78,8 +78,9 @@ END MODULE MODI_INI_NSV
! ------------ ! ------------
! !
USE MODD_BLOWSNOW, ONLY: CSNOWNAMES, LBLOWSNOW, NBLOWSNOW3D, YPSNOW_INI USE MODD_BLOWSNOW, ONLY: CSNOWNAMES, LBLOWSNOW, NBLOWSNOW3D, YPSNOW_INI
USE MODD_CH_AEROSOL, ONLY: CAERONAMES, CDEAERNAMES, JPMODE, LAERINIT, LDEPOS_AER, LORILAM, & USE MODD_CH_AEROSOL
LVARSIGI, LVARSIGJ, NCARB, NM6_AER, NSOA, NSP ! USE MODD_CH_AEROSOL, ONLY: CAERONAMES, CDEAERNAMES, JPMODE, LAERINIT, LDEPOS_AER, LORILAM, &
! LVARSIGI, LVARSIGJ, NCARB, NM6_AER, NSOA, NSP
USE MODD_CH_M9_n, ONLY: CICNAMES, CNAMES, NEQ, NEQAQ USE MODD_CH_M9_n, ONLY: CICNAMES, CNAMES, NEQ, NEQAQ
USE MODD_CH_MNHC_n, ONLY: LCH_PH, LUSECHEM, LUSECHAQ, LUSECHIC, CCH_SCHEME, LCH_CONV_LINOX USE MODD_CH_MNHC_n, ONLY: LCH_PH, LUSECHEM, LUSECHAQ, LUSECHIC, CCH_SCHEME, LCH_CONV_LINOX
USE MODD_CONDSAMP, ONLY: LCONDSAMP, NCONDSAMP USE MODD_CONDSAMP, ONLY: LCONDSAMP, NCONDSAMP
...@@ -108,7 +109,7 @@ USE MODD_LG, ONLY: CLGNAMES, XLG1MIN, XLG2MIN, XLG3MIN ...@@ -108,7 +109,7 @@ USE MODD_LG, ONLY: CLGNAMES, XLG1MIN, XLG2MIN, XLG3MIN
USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_LUNIT_n, ONLY: TLUOUT
USE MODD_NSV USE MODD_NSV
USE MODD_PARAM_C2R2, ONLY: LSUPSAT USE MODD_PARAM_C2R2, ONLY: LSUPSAT
USE MODD_PARAMETERS, ONLY: NCOMMENTLGTMAX, NUNITLGTMAX USE MODD_PARAMETERS, ONLY: NCOMMENTLGTMAX, NLONGNAMELGTMAX, NUNITLGTMAX
USE MODD_PARAM_LIMA, ONLY: NINDICE_CCN_IMM, NIMM, NMOD_CCN, LSCAV, LAERO_MASS, & USE MODD_PARAM_LIMA, ONLY: NINDICE_CCN_IMM, NIMM, NMOD_CCN, LSCAV, LAERO_MASS, &
NMOD_IFN, NMOD_IMM, LHHONI, & NMOD_IFN, NMOD_IMM, LHHONI, &
LWARM, LCOLD, LRAIN, LSPRO LWARM, LCOLD, LRAIN, LSPRO
...@@ -141,12 +142,17 @@ CHARACTER(LEN=2) :: YNUM2 ...@@ -141,12 +142,17 @@ CHARACTER(LEN=2) :: YNUM2
CHARACTER(LEN=3) :: YNUM3 CHARACTER(LEN=3) :: YNUM3
CHARACTER(LEN=NCOMMENTLGTMAX) :: YCOMMENT CHARACTER(LEN=NCOMMENTLGTMAX) :: YCOMMENT
CHARACTER(LEN=NUNITLGTMAX) :: YUNITS CHARACTER(LEN=NUNITLGTMAX) :: YUNITS
CHARACTER(LEN=NLONGNAMELGTMAX), DIMENSION(:), ALLOCATABLE :: YAEROLONGNAMES
CHARACTER(LEN=NLONGNAMELGTMAX), DIMENSION(:), ALLOCATABLE :: YDUSTLONGNAMES
CHARACTER(LEN=NLONGNAMELGTMAX), DIMENSION(:), ALLOCATABLE :: YSALTLONGNAMES
INTEGER :: ILUOUT INTEGER :: ILUOUT
INTEGER :: ICHIDX ! Index for position in CSV_CHEM_LIST_A array INTEGER :: ICHIDX ! Index for position in CSV_CHEM_LIST_A array
INTEGER :: ISV ! total number of scalar variables INTEGER :: ISV ! total number of scalar variables
INTEGER :: IMODEIDX, IMOMENTS INTEGER :: IMODEIDX
INTEGER :: JAER
INTEGER :: JI, JJ, JSV INTEGER :: JI, JJ, JSV
INTEGER :: JMODE, JMOM, JSV_NAME INTEGER :: JMODE, JMOM, JSV_NAME
INTEGER :: INMOMENTS_DST, INMOMENTS_SLT !Number of moments for dust or salt
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
! !
...@@ -483,12 +489,18 @@ IF (LDUST) THEN ...@@ -483,12 +489,18 @@ IF (LDUST) THEN
IF (ALLOCATED(XT_LS).AND. .NOT.(LDSTPRES)) LDSTINIT=.TRUE. IF (ALLOCATED(XT_LS).AND. .NOT.(LDSTPRES)) LDSTINIT=.TRUE.
IF (CPROGRAM == 'IDEAL ') LVARSIG = .TRUE. IF (CPROGRAM == 'IDEAL ') LVARSIG = .TRUE.
IF ((CPROGRAM == 'REAL ').AND.LDSTINIT) LVARSIG = .TRUE. IF ((CPROGRAM == 'REAL ').AND.LDSTINIT) LVARSIG = .TRUE.
NSV_DST_A(KMI) = NMODE_DST*2 !Determine number of moments
IF (LRGFIX_DST) THEN IF ( LRGFIX_DST ) THEN
NSV_DST_A(KMI) = NMODE_DST INMOMENTS_DST = 1
LVARSIG = .FALSE. IF ( LVARSIG ) CALL Print_msg( NVERB_WARNING, 'GEN', 'INI_NSV', 'LVARSIG forced to FALSE because LRGFIX_DST is TRUE' )
LVARSIG = .FALSE.
ELSE IF ( LVARSIG ) THEN
INMOMENTS_DST = 3
ELSE
INMOMENTS_DST = 2
END IF END IF
IF (LVARSIG) NSV_DST_A(KMI) = NSV_DST_A(KMI) + NMODE_DST !Number of entries = number of moments multiplied by number of modes
NSV_DST_A(KMI) = NMODE_DST * INMOMENTS_DST
NSV_DSTBEG_A(KMI)= ISV+1 NSV_DSTBEG_A(KMI)= ISV+1
NSV_DSTEND_A(KMI)= ISV+NSV_DST_A(KMI) NSV_DSTEND_A(KMI)= ISV+NSV_DST_A(KMI)
ISV = NSV_DSTEND_A(KMI) ISV = NSV_DSTEND_A(KMI)
...@@ -522,12 +534,18 @@ IF (LSALT) THEN ...@@ -522,12 +534,18 @@ IF (LSALT) THEN
IF (ALLOCATED(XT_LS).AND. .NOT.(LSLTPRES)) LSLTINIT=.TRUE. IF (ALLOCATED(XT_LS).AND. .NOT.(LSLTPRES)) LSLTINIT=.TRUE.
IF (CPROGRAM == 'IDEAL ') LVARSIG_SLT = .TRUE. IF (CPROGRAM == 'IDEAL ') LVARSIG_SLT = .TRUE.
IF ((CPROGRAM == 'REAL ').AND. LSLTINIT ) LVARSIG_SLT = .TRUE. IF ((CPROGRAM == 'REAL ').AND. LSLTINIT ) LVARSIG_SLT = .TRUE.
NSV_SLT_A(KMI) = NMODE_SLT*2 !Determine number of moments
IF (LRGFIX_SLT) THEN IF ( LRGFIX_SLT ) THEN
NSV_SLT_A(KMI) = NMODE_SLT INMOMENTS_SLT = 1
LVARSIG_SLT = .FALSE. IF ( LVARSIG_SLT ) CALL Print_msg( NVERB_WARNING, 'GEN', 'INI_NSV', 'LVARSIG_SLT forced to FALSE because LRGFIX_SLT is TRUE' )
LVARSIG_SLT = .FALSE.
ELSE IF ( LVARSIG_SLT ) THEN
INMOMENTS_SLT = 3
ELSE
INMOMENTS_SLT = 2
END IF END IF
IF (LVARSIG_SLT) NSV_SLT_A(KMI) = NSV_SLT_A(KMI) + NMODE_SLT !Number of entries = number of moments multiplied by number of modes
NSV_SLT_A(KMI) = NMODE_SLT * INMOMENTS_SLT
NSV_SLTBEG_A(KMI)= ISV+1 NSV_SLTBEG_A(KMI)= ISV+1
NSV_SLTEND_A(KMI)= ISV+NSV_SLT_A(KMI) NSV_SLTEND_A(KMI)= ISV+NSV_SLT_A(KMI)
ISV = NSV_SLTEND_A(KMI) ISV = NSV_SLTEND_A(KMI)
...@@ -703,26 +721,39 @@ IF ( LDUST ) THEN ...@@ -703,26 +721,39 @@ IF ( LDUST ) THEN
! Initialization of dust names ! Initialization of dust names
IF( .NOT. ALLOCATED( CDUSTNAMES ) ) THEN IF( .NOT. ALLOCATED( CDUSTNAMES ) ) THEN
IMOMENTS = ( NSV_DSTEND_A(KMI) - NSV_DSTBEG_A(KMI) + 1 ) / NMODE_DST ALLOCATE( CDUSTNAMES(NSV_DST_A(KMI)) )
ALLOCATE( CDUSTNAMES(IMOMENTS * NMODE_DST) ) ALLOCATE( YDUSTLONGNAMES(NSV_DST_A(KMI)) )
!Loop on all dust modes !Loop on all dust modes
IF ( IMOMENTS == 1 ) THEN IF ( INMOMENTS_DST == 1 ) THEN
DO JMODE = 1, NMODE_DST DO JMODE = 1, NMODE_DST
IMODEIDX = JPDUSTORDER(JMODE) IMODEIDX = JPDUSTORDER(JMODE)
JSV_NAME = ( IMODEIDX - 1 ) * 3 + 2 JSV_NAME = ( IMODEIDX - 1 ) * 3 + 2
CDUSTNAMES(JMODE) = YPDUST_INI(JSV_NAME) CDUSTNAMES(JMODE) = YPDUST_INI(JSV_NAME)
!Add meaning of the ppv unit (here for moment 3)
YDUSTLONGNAMES(JMODE) = TRIM( YPDUST_INI(JSV_NAME) ) // ' [molec_{aer}/molec_{air}]'
END DO END DO
ELSE ELSE
DO JMODE = 1,NMODE_DST DO JMODE = 1,NMODE_DST
!Find which mode we are dealing with !Find which mode we are dealing with
IMODEIDX = JPDUSTORDER(JMODE) IMODEIDX = JPDUSTORDER(JMODE)
DO JMOM = 1, IMOMENTS DO JMOM = 1, INMOMENTS_DST
!Find which number this is of the list of scalars !Find which number this is of the list of scalars
JSV = ( JMODE - 1 ) * IMOMENTS + JMOM JSV = ( JMODE - 1 ) * INMOMENTS_DST + JMOM
!Find what name this corresponds to, always 3 moments assumed in YPDUST_INI !Find what name this corresponds to, always 3 moments assumed in YPDUST_INI
JSV_NAME = ( IMODEIDX - 1) * 3 + JMOM JSV_NAME = ( IMODEIDX - 1) * 3 + JMOM
!Get the right CDUSTNAMES which should follow the list of scalars transported in XSVM/XSVT !Get the right CDUSTNAMES which should follow the list of scalars transported in XSVM/XSVT
CDUSTNAMES(JSV) = YPDUST_INI(JSV_NAME) CDUSTNAMES(JSV) = YPDUST_INI(JSV_NAME)
!Add meaning of the ppv unit
IF ( JMOM == 1 ) THEN !Corresponds to moment 0
YDUSTLONGNAMES(JSV) = TRIM( YPDUST_INI(JSV_NAME) ) // ' [nb_aerosols/molec_{air}]'
ELSE IF ( JMOM == 2 ) THEN !Corresponds to moment 3
YDUSTLONGNAMES(JSV) = TRIM( YPDUST_INI(JSV_NAME) ) // ' [molec_{aer}/molec_{air}]'
ELSE IF ( JMOM == 3 ) THEN !Corresponds to moment 6
YDUSTLONGNAMES(JSV) = TRIM( YPDUST_INI(JSV_NAME) ) // ' [um6/molec_{air}*(cm3/m3)]'
ELSE
CALL Print_msg( NVERB_WARNING, 'GEN', 'INI_NSV', 'unknown moment for DUST' )
YDUSTLONGNAMES(JMODE) = TRIM( YPDUST_INI(JSV_NAME) )
END IF
ENDDO ! Loop on moments ENDDO ! Loop on moments
ENDDO ! Loop on dust modes ENDDO ! Loop on dust modes
END IF END IF
...@@ -746,26 +777,39 @@ IF ( LSALT ) THEN ...@@ -746,26 +777,39 @@ IF ( LSALT ) THEN
IF ( NMODE_SLT < 1 .OR. NMODE_SLT > 5 ) CALL Print_msg( NVERB_FATAL, 'GEN', 'INI_NSV', 'NMODE_SLT must in the 1 to 5 interval' ) IF ( NMODE_SLT < 1 .OR. NMODE_SLT > 5 ) CALL Print_msg( NVERB_FATAL, 'GEN', 'INI_NSV', 'NMODE_SLT must in the 1 to 5 interval' )
IF( .NOT. ALLOCATED( CSALTNAMES ) ) THEN IF( .NOT. ALLOCATED( CSALTNAMES ) ) THEN
IMOMENTS = ( NSV_SLTEND_A(KMI) - NSV_SLTBEG_A(KMI) + 1 ) / NMODE_SLT ALLOCATE( CSALTNAMES(NSV_SLT_A(KMI)) )
ALLOCATE( CSALTNAMES(IMOMENTS * NMODE_SLT) ) ALLOCATE( YSALTLONGNAMES(NSV_DST_A(KMI)) )
!Loop on all dust modes !Loop on all dust modes
IF ( IMOMENTS == 1 ) THEN IF ( INMOMENTS_SLT == 1 ) THEN
DO JMODE = 1, NMODE_SLT DO JMODE = 1, NMODE_SLT
IMODEIDX = JPSALTORDER(JMODE) IMODEIDX = JPSALTORDER(JMODE)
JSV_NAME = ( IMODEIDX - 1 ) * 3 + 2 JSV_NAME = ( IMODEIDX - 1 ) * 3 + 2
CSALTNAMES(JMODE) = YPSALT_INI(JSV_NAME) CSALTNAMES(JMODE) = YPSALT_INI(JSV_NAME)
!Add meaning of the ppv unit (here for moment 3)
YSALTLONGNAMES(JMODE) = TRIM( YPSALT_INI(JSV_NAME) ) // ' [molec_{aer}/molec_{air}]'
END DO END DO
ELSE ELSE
DO JMODE = 1, NMODE_SLT DO JMODE = 1, NMODE_SLT
!Find which mode we are dealing with !Find which mode we are dealing with
IMODEIDX = JPSALTORDER(JMODE) IMODEIDX = JPSALTORDER(JMODE)
DO JMOM = 1, IMOMENTS DO JMOM = 1, INMOMENTS_SLT
!Find which number this is of the list of scalars !Find which number this is of the list of scalars
JSV = ( JMODE - 1 ) * IMOMENTS + JMOM JSV = ( JMODE - 1 ) * INMOMENTS_SLT + JMOM
!Find what name this corresponds to, always 3 moments assumed in YPSALT_INI !Find what name this corresponds to, always 3 moments assumed in YPSALT_INI
JSV_NAME = ( IMODEIDX - 1 ) * 3 + JMOM JSV_NAME = ( IMODEIDX - 1 ) * 3 + JMOM
!Get the right CSALTNAMES which should follow the list of scalars transported in XSVM/XSVT !Get the right CSALTNAMES which should follow the list of scalars transported in XSVM/XSVT
CSALTNAMES(JSV) = YPSALT_INI(JSV_NAME) CSALTNAMES(JSV) = YPSALT_INI(JSV_NAME)
!Add meaning of the ppv unit
IF ( JMOM == 1 ) THEN !Corresponds to moment 0
YSALTLONGNAMES(JSV) = TRIM( YPSALT_INI(JSV_NAME) ) // ' [nb_aerosols/molec_{air}]'
ELSE IF ( JMOM == 2 ) THEN !Corresponds to moment 3
YSALTLONGNAMES(JSV) = TRIM( YPSALT_INI(JSV_NAME) ) // ' [molec_{aer}/molec_{air}]'
ELSE IF ( JMOM == 3 ) THEN !Corresponds to moment 6
YSALTLONGNAMES(JSV) = TRIM( YPSALT_INI(JSV_NAME) ) // ' [um6/molec_{air}*(cm3/m3)]'
ELSE
CALL Print_msg( NVERB_WARNING, 'GEN', 'INI_NSV', 'unknown moment for SALT' )
YSALTLONGNAMES(JMODE) = TRIM( YPSALT_INI(JSV_NAME) )
END IF
ENDDO ! Loop on moments ENDDO ! Loop on moments
ENDDO ! Loop on dust modes ENDDO ! Loop on dust modes
END IF END IF
...@@ -786,11 +830,10 @@ END IF ...@@ -786,11 +830,10 @@ END IF
! Initialize scalar variable names for snow ! Initialize scalar variable names for snow
IF ( LBLOWSNOW ) THEN IF ( LBLOWSNOW ) THEN
IF( .NOT. ALLOCATED( CSNOWNAMES ) ) THEN IF( .NOT. ALLOCATED( CSNOWNAMES ) ) THEN
IMOMENTS = ( NSV_SNWEND_A(KMI) - NSV_SNWBEG_A(KMI) + 1 ) ALLOCATE( CSNOWNAMES(NSV_SNW_A(KMI)) )
ALLOCATE( CSNOWNAMES(IMOMENTS) ) DO JMOM = 1, NSV_SNW_A(KMI)
DO JMOM = 1, IMOMENTS
CSNOWNAMES(JMOM) = YPSNOW_INI(JMOM) CSNOWNAMES(JMOM) = YPSNOW_INI(JMOM)
ENDDO ! Loop on moments END DO
END IF END IF
END IF END IF
...@@ -1026,17 +1069,40 @@ DO JSV = NSV_AERBEG_A(KMI), NSV_AEREND_A(KMI) ...@@ -1026,17 +1069,40 @@ DO JSV = NSV_AERBEG_A(KMI), NSV_AEREND_A(KMI)
WRITE( YNUM3, '( I3.3 )' ) JSV WRITE( YNUM3, '( I3.3 )' ) JSV
TSVLIST_A(JSV, KMI) = TFIELDMETADATA( & ALLOCATE( YAEROLONGNAMES(NSV_AER_A(KMI)) )
CMNHNAME = TRIM( CAERONAMES(JSV-NSV_AERBEG_A(KMI)+1) ), &
CSTDNAME = '', & !Determine moment to add meaning of the ppv unit
CLONGNAME = TRIM( CAERONAMES(JSV-NSV_AERBEG_A(KMI)+1) ), & JAER = JSV - NSV_AERBEG_A(KMI) + 1
CUNITS = 'ppv', & IF ( ANY( JAER == [JP_CH_M0i, JP_CH_M0j] ) ) THEN
CDIR = 'XY', & !Moment 0
CCOMMENT = 'X_Y_Z_' // 'SVT' // YNUM3, & YAEROLONGNAMES = TRIM( CAERONAMES(JAER) ) // ' [nb_aerosols/molec_{air}]'
NGRID = 1, & ELSE IF ( ANY( JAER == [ JP_CH_SO4i, JP_CH_SO4j, JP_CH_NO3i, JP_CH_NO3j, JP_CH_H2Oi, JP_CH_H2Oj, JP_CH_NH3i, JP_CH_NH3j, &
NTYPE = TYPEREAL, & JP_CH_OCi, JP_CH_OCj, JP_CH_BCi, JP_CH_BCi, JP_CH_DSTi, JP_CH_DSTj ] ) &
NDIMS = 3, & .OR. ( NSOA == 10 .AND. &
LTIMEDEP = .TRUE. ) ANY( JAER == [ JP_CH_SOA1i, JP_CH_SOA1j, JP_CH_SOA2i, JP_CH_SOA2j, JP_CH_SOA3i, JP_CH_SOA3j, JP_CH_SOA4i, &
JP_CH_SOA4j, JP_CH_SOA5i, JP_CH_SOA5j, JP_CH_SOA6i, JP_CH_SOA6j, JP_CH_SOA7i, JP_CH_SOA7j, &
JP_CH_SOA8i, JP_CH_SOA8j, JP_CH_SOA9i, JP_CH_SOA9j, JP_CH_SOA10i, JP_CH_SOA10j ] ) ) ) THEN
!Moment 3
YAEROLONGNAMES = TRIM( CAERONAMES(JAER) ) // ' [molec_{aer}/molec_{air}]'
ELSE IF ( ( LVARSIGI .AND. JSV == JP_CH_M6i ) .OR. ( LVARSIGJ .AND. JSV == JP_CH_M6j ) ) THEN
!Moment 6
YAEROLONGNAMES = TRIM( CAERONAMES(JAER) ) // ' [um6/molec_{air}*(cm3/m3)]'
ELSE
CALL Print_msg( NVERB_WARNING, 'GEN', 'INI_NSV', 'unknown moment for AER' )
YAEROLONGNAMES = TRIM( CAERONAMES(JAER) )
END IF
TSVLIST_A(JSV, KMI) = TFIELDMETADATA( &
CMNHNAME = TRIM( CAERONAMES(JSV-NSV_AERBEG_A(KMI)+1) ), &
CSTDNAME = '', &
CLONGNAME = TRIM( YAEROLONGNAMES(JSV-NSV_AERBEG_A(KMI)+1) ), &
CUNITS = 'ppv', &
CDIR = 'XY', &
CCOMMENT = 'X_Y_Z_' // 'SVT' // YNUM3, &
NGRID = 1, &
NTYPE = TYPEREAL, &
NDIMS = 3, &
LTIMEDEP = .TRUE. )
END DO END DO
DO JSV = NSV_AERDEPBEG_A(KMI), NSV_AERDEPEND_A(KMI) DO JSV = NSV_AERDEPBEG_A(KMI), NSV_AERDEPEND_A(KMI)
...@@ -1064,17 +1130,17 @@ DO JSV = NSV_DSTBEG_A(KMI), NSV_DSTEND_A(KMI) ...@@ -1064,17 +1130,17 @@ DO JSV = NSV_DSTBEG_A(KMI), NSV_DSTEND_A(KMI)
WRITE( YNUM3, '( I3.3 )' ) JSV WRITE( YNUM3, '( I3.3 )' ) JSV
TSVLIST_A(JSV, KMI) = TFIELDMETADATA( & TSVLIST_A(JSV, KMI) = TFIELDMETADATA( &
CMNHNAME = TRIM( CDUSTNAMES(JSV-NSV_DSTBEG_A(KMI)+1) ), & CMNHNAME = TRIM( CDUSTNAMES(JSV-NSV_DSTBEG_A(KMI)+1) ), &
CSTDNAME = '', & CSTDNAME = '', &
CLONGNAME = TRIM( CDUSTNAMES(JSV-NSV_DSTBEG_A(KMI)+1) ), & CLONGNAME = TRIM( YDUSTLONGNAMES(JSV-NSV_DSTBEG_A(KMI)+1) ), &
CUNITS = 'ppv', & CUNITS = 'ppv', &
CDIR = 'XY', & CDIR = 'XY', &
CCOMMENT = 'X_Y_Z_' // 'SVT' // YNUM3, & CCOMMENT = 'X_Y_Z_' // 'SVT' // YNUM3, &
NGRID = 1, & NGRID = 1, &
NTYPE = TYPEREAL, & NTYPE = TYPEREAL, &
NDIMS = 3, & NDIMS = 3, &
LTIMEDEP = .TRUE. ) LTIMEDEP = .TRUE. )
END DO END DO
DO JSV = NSV_DSTDEPBEG_A(KMI), NSV_DSTDEPEND_A(KMI) DO JSV = NSV_DSTDEPBEG_A(KMI), NSV_DSTDEPEND_A(KMI)
...@@ -1102,17 +1168,17 @@ DO JSV = NSV_SLTBEG_A(KMI), NSV_SLTEND_A(KMI) ...@@ -1102,17 +1168,17 @@ DO JSV = NSV_SLTBEG_A(KMI), NSV_SLTEND_A(KMI)
WRITE( YNUM3, '( I3.3 )' ) JSV WRITE( YNUM3, '( I3.3 )' ) JSV
TSVLIST_A(JSV, KMI) = TFIELDMETADATA( & TSVLIST_A(JSV, KMI) = TFIELDMETADATA( &
CMNHNAME = TRIM( CSALTNAMES(JSV-NSV_SLTBEG_A(KMI)+1) ), & CMNHNAME = TRIM( CSALTNAMES(JSV-NSV_SLTBEG_A(KMI)+1) ), &
CSTDNAME = '', & CSTDNAME = '', &
CLONGNAME = TRIM( CSALTNAMES(JSV-NSV_SLTBEG_A(KMI)+1) ), & CLONGNAME = TRIM( YSALTLONGNAMES(JSV-NSV_SLTBEG_A(KMI)+1) ), &
CUNITS = 'ppv', & CUNITS = 'ppv', &
CDIR = 'XY', & CDIR = 'XY', &
CCOMMENT = 'X_Y_Z_' // 'SVT' // YNUM3, & CCOMMENT = 'X_Y_Z_' // 'SVT' // YNUM3, &
NGRID = 1, & NGRID = 1, &
NTYPE = TYPEREAL, & NTYPE = TYPEREAL, &
NDIMS = 3, & NDIMS = 3, &
LTIMEDEP = .TRUE. ) LTIMEDEP = .TRUE. )
END DO END DO
DO JSV = NSV_SLTDEPBEG_A(KMI), NSV_SLTDEPEND_A(KMI) DO JSV = NSV_SLTDEPBEG_A(KMI), NSV_SLTDEPEND_A(KMI)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment