Skip to content
Snippets Groups Projects
ini_nsv.f90 49.4 KiB
Newer Older
    WRITE( YCOMMENT, '( A6, A3, I3.3, A8 )' ) 'X_Y_Z_', 'SVT', JSV, ' (nb ions/kg)'
  END IF

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                        &
    CMNHNAME   = TRIM( CELECNAMES(JSV-NSV_ELECBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                           &
    CLONGNAME  = TRIM( CELECNAMES(JSV-NSV_ELECBEG_A(KMI)+1) ), &
    CUNITS     = TRIM( YUNITS ),                               &
    CDIR       = 'XY',                                         &
    CCOMMENT   = TRIM( YCOMMENT ),                             &
    NGRID      = 1,                                            &
    NTYPE      = TYPEREAL,                                     &
    NDIMS      = 3,                                            &
    LTIMEDEP   = .TRUE.                                        )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_LGBEG_A(KMI), NSV_LGEND_A(KMI)
  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                    &
    CMNHNAME   = TRIM( CLGNAMES(JSV-NSV_LGBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                       &
    CLONGNAME  = TRIM( CLGNAMES(JSV-NSV_LGBEG_A(KMI)+1) ), &
    CUNITS     = 'm',                                      &
    CDIR       = 'XY',                                     &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,               &
    NGRID      = 1,                                        &
    NTYPE      = TYPEREAL,                                 &
    NDIMS      = 3,                                        &
    LTIMEDEP   = .TRUE.                                    )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_PPBEG_A(KMI), NSV_PPEND_A(KMI)
  WRITE( YNUM3, '( I3.3 )' ) JSV-NSV_PPBEG_A(KMI)+1

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(      &
    CMNHNAME   = 'SVPP' // YNUM3,            &
    CSTDNAME   = '',                         &
    CLONGNAME  = 'SVPP' // YNUM3,            &
    CUNITS     = 'kg kg-1',                  &
    CDIR       = 'XY',                       &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3, &
    NGRID      = 1,                          &
    NTYPE      = TYPEREAL,                   &
    NDIMS      = 3,                          &
    LTIMEDEP   = .TRUE.                      )
VIE Benoit's avatar
VIE Benoit committed
END DO

#ifdef MNH_FOREFIRE
DO JSV = NSV_FFBEG_A(KMI), NSV_FFEND_A(KMI)
  WRITE( YNUM3, '( I3.3 )' ) JSV-NSV_FFBEG_A(KMI)+1

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(      &
    CMNHNAME   = 'SVFF' // YNUM3,            &
    CSTDNAME   = '',                         &
    CLONGNAME  = 'SVFF' // YNUM3,            &
    CUNITS     = 'kg kg-1',                  &
    CDIR       = 'XY',                       &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3, &
    NGRID      = 1,                          &
    NTYPE      = TYPEREAL,                   &
    NDIMS      = 3,                          &
    LTIMEDEP   = .TRUE.                      )
VIE Benoit's avatar
VIE Benoit committed
END DO
#endif

DO JSV = NSV_FIREBEG_A(KMI), NSV_FIREEND_A(KMI)
  WRITE( YNUM3, '( I3.3 )' ) JSV-NSV_FIREBEG_A(KMI)+1

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(      &
    CMNHNAME   = 'SVFIRE' // YNUM3,          &
    CSTDNAME   = '',                         &
    CLONGNAME  = 'SVFIRE' // YNUM3,          &
    CUNITS     = 'kg kg-1',                  &
    CDIR       = 'XY',                       &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3, &
    NGRID      = 1,                          &
    NTYPE      = TYPEREAL,                   &
    NDIMS      = 3,                          &
    LTIMEDEP   = .TRUE.                      )
END DO

VIE Benoit's avatar
VIE Benoit committed
DO JSV = NSV_CSBEG_A(KMI), NSV_CSEND_A(KMI)
  WRITE( YNUM3, '( I3.3 )' ) JSV-NSV_CSBEG_A(KMI)

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(      &
    CMNHNAME   = 'SVCS' // YNUM3,            &
    CSTDNAME   = '',                         &
    CLONGNAME  = 'SVCS' // YNUM3,            &
    CUNITS     = 'kg kg-1',                  &
    CDIR       = 'XY',                       &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3, &
    NGRID      = 1,                          &
    NTYPE      = TYPEREAL,                   &
    NDIMS      = 3,                          &
    LTIMEDEP   = .TRUE.                      )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_CHEMBEG_A(KMI), NSV_CHEMEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CNAMES(JSV-NSV_CHEMBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                    &
    CMNHNAME   = TRIM( CNAMES(JSV-NSV_CHEMBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                       &
    CLONGNAME  = TRIM( CNAMES(JSV-NSV_CHEMBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                    &
    CDIR       = 'XY',                                     &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,               &
    NGRID      = 1,                                        &
    NTYPE      = TYPEREAL,                                 &
    NDIMS      = 3,                                        &
    LTIMEDEP   = .TRUE.                                    )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_CHICBEG_A(KMI), NSV_CHICEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CICNAMES(JSV-NSV_CHICBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                      &
    CMNHNAME   = TRIM( CICNAMES(JSV-NSV_CHICBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                         &
    CLONGNAME  = TRIM( CICNAMES(JSV-NSV_CHICBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                      &
    CDIR       = 'XY',                                       &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                 &
    NGRID      = 1,                                          &
    NTYPE      = TYPEREAL,                                   &
    NDIMS      = 3,                                          &
    LTIMEDEP   = .TRUE.                                      )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_AERBEG_A(KMI), NSV_AEREND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CAERONAMES(JSV-NSV_AERBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  !Determine moment to add meaning of the ppv unit
  JAER = JSV - NSV_AERBEG_A(KMI) + 1
  IF ( ANY( JAER == [JP_CH_M0i, JP_CH_M0j] ) ) THEN
    !Moment 0
    YAEROLONGNAMES = TRIM( CAERONAMES(JAER) ) // ' [nb_aerosols/molec_{air}]'
  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,   &
                           JP_CH_OCi,  JP_CH_OCj,  JP_CH_BCi,  JP_CH_BCj,  JP_CH_DSTi, JP_CH_DSTj ] )                        &
            .OR. ( NSOA == 10 .AND.                                                                                          &
                   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. JAER == JP_CH_M6i ) .OR. ( LVARSIGJ .AND. JAER == 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.                                           )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_AERDEPBEG_A(KMI), NSV_AERDEPEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CDEAERNAMES(JSV-NSV_AERDEPBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                           &
    CMNHNAME   = TRIM( CDEAERNAMES(JSV-NSV_AERDEPBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                              &
    CLONGNAME  = TRIM( CDEAERNAMES(JSV-NSV_AERDEPBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                           &
    CDIR       = 'XY',                                            &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                      &
    NGRID      = 1,                                               &
    NTYPE      = TYPEREAL,                                        &
    NDIMS      = 3,                                               &
    LTIMEDEP   = .TRUE.                                           )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_DSTBEG_A(KMI), NSV_DSTEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CDUSTNAMES(JSV-NSV_DSTBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                           &
    CMNHNAME   = TRIM( CDUSTNAMES(JSV-NSV_DSTBEG_A(KMI)+1) ),     &
    CSTDNAME   = '',                                              &
    CLONGNAME  = TRIM( YDUSTLONGNAMES(JSV-NSV_DSTBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                           &
    CDIR       = 'XY',                                            &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                      &
    NGRID      = 1,                                               &
    NTYPE      = TYPEREAL,                                        &
    NDIMS      = 3,                                               &
    LTIMEDEP   = .TRUE.                                           )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_DSTDEPBEG_A(KMI), NSV_DSTDEPEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CDEDSTNAMES(JSV-NSV_DSTDEPBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                           &
    CMNHNAME   = TRIM( CDEDSTNAMES(JSV-NSV_DSTDEPBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                              &
    CLONGNAME  = TRIM( CDEDSTNAMES(JSV-NSV_DSTDEPBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                           &
    CDIR       = 'XY',                                            &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                      &
    NGRID      = 1,                                               &
    NTYPE      = TYPEREAL,                                        &
    NDIMS      = 3,                                               &
    LTIMEDEP   = .TRUE.                                           )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_SLTBEG_A(KMI), NSV_SLTEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CSALTNAMES(JSV-NSV_SLTBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                           &
    CMNHNAME   = TRIM( CSALTNAMES(JSV-NSV_SLTBEG_A(KMI)+1) ),     &
    CSTDNAME   = '',                                              &
    CLONGNAME  = TRIM( YSALTLONGNAMES(JSV-NSV_SLTBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                           &
    CDIR       = 'XY',                                            &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                      &
    NGRID      = 1,                                               &
    NTYPE      = TYPEREAL,                                        &
    NDIMS      = 3,                                               &
    LTIMEDEP   = .TRUE.                                           )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_SLTDEPBEG_A(KMI), NSV_SLTDEPEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = TRIM( CDESLTNAMES(JSV-NSV_SLTDEPBEG_A(KMI)+1) )

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                           &
    CMNHNAME   = TRIM( CDESLTNAMES(JSV-NSV_SLTDEPBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                              &
    CLONGNAME  = TRIM( CDESLTNAMES(JSV-NSV_SLTDEPBEG_A(KMI)+1) ), &
    CUNITS     = 'ppv',                                           &
    CDIR       = 'XY',                                            &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                      &
    NGRID      = 1,                                               &
    NTYPE      = TYPEREAL,                                        &
    NDIMS      = 3,                                               &
    LTIMEDEP   = .TRUE.                                           )
VIE Benoit's avatar
VIE Benoit committed
END DO

DO JSV = NSV_SNWBEG_A(KMI), NSV_SNWEND_A(KMI)
  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(                       &
    CMNHNAME   = TRIM( CSNOWNAMES(JSV-NSV_SNWBEG_A(KMI)+1) ), &
    CSTDNAME   = '',                                          &
    CLONGNAME  = TRIM( CSNOWNAMES(JSV-NSV_SNWBEG_A(KMI)+1) ), &
    CUNITS     = 'kg kg-1',                                   &
    CDIR       = 'XY',                                        &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3,                  &
    NGRID      = 1,                                           &
    NTYPE      = TYPEREAL,                                    &
    NDIMS      = 3,                                           &
    LTIMEDEP   = .TRUE.                                       )
VIE Benoit's avatar
VIE Benoit committed
END DO

!Check if there is at most 1 LINOX scalar variable
!if not, the name must be modified and different for all of them
IF ( NSV_LNOX_A(KMI) > 1 ) &
  CALL Print_msg( NVERB_ERROR, 'GEN', 'INI_NSV', 'NSV_LNOX_A>1: problem with the names of the corresponding scalar variables' )

VIE Benoit's avatar
VIE Benoit committed
DO JSV = NSV_LNOXBEG_A(KMI), NSV_LNOXEND_A(KMI)
  ICHIDX = ICHIDX + 1
  CSV_CHEM_LIST_A(ICHIDX, KMI) = 'LINOX'

  WRITE( YNUM3, '( I3.3 )' ) JSV

  TSVLIST_A(JSV, KMI) = TFIELDMETADATA(      &
    CMNHNAME   = 'LINOX',                    &
    CSTDNAME   = '',                         &
    CLONGNAME  = 'LINOX',                    &
    CUNITS     = 'ppv',                      &
    CDIR       = 'XY',                       &
    CCOMMENT   = 'X_Y_Z_' // 'SVT' // YNUM3, &
    NGRID      = 1,                          &
    NTYPE      = TYPEREAL,                   &
    NDIMS      = 3,                          &
    LTIMEDEP   = .TRUE.                      )
VIE Benoit's avatar
VIE Benoit committed
END DO

IF ( ICHIDX /= NSV_CHEM_LIST_A(KMI) ) &
  CALL Print_msg( NVERB_ERROR, 'GEN', 'INI_NSV', 'ICHIDX /= NSV_CHEM_LIST_A(KMI)' )

VIE Benoit's avatar
VIE Benoit committed
END SUBROUTINE INI_NSV