MODULE module_emissions_anthropogenics
!WRF:MODEL_LAYER:CHEMICS
!
CONTAINS
!
! currently this only adds in the emissions...
! this may be done differently for different chemical mechanisms
! in the future. aerosols are already added somewhere else....
!
   subroutine add_anthropogenics(id,dtstep,dz8w,config_flags,rho_phy,alt,  &
               chem, emis_ant, emis_aircraft,                              &
               ids,ide, jds,jde, kds,kde,                                  &
               ims,ime, jms,jme, kms,kme,                                  &
               its,ite, jts,jte, kts,kte                                   )
!----------------------------------------------------------------------
  USE module_configure
  USE module_state_description
  USE module_data_radm2
  USE module_data_sorgam, only : mw_so4_aer
  USE module_model_constants, only : mwdry
   IMPLICIT NONE

! .. Parameters ..
   TYPE(grid_config_rec_type),  INTENT(IN   )    :: config_flags

   INTEGER,      INTENT(IN   ) :: id,                                      &
                                  ids,ide, jds,jde, kds,kde,               &
                                  ims,ime, jms,jme, kms,kme,               &
                                  its,ite, jts,jte, kts,kte
      REAL,      INTENT(IN   ) ::                                          &
                             dtstep
!
   REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_chem ),                 &
         INTENT(INOUT ) ::                                   chem
!
! emissions arrays
!
!   REAL, DIMENSION( ims:ime, kms:kme, jms:jme ),                           &
   REAL, DIMENSION( ims:ime, kms:config_flags%kemit, jms:jme,num_emis_ant ),            &
         INTENT(IN ) ::                                                    &
               emis_ant        
   REAL, DIMENSION( ims:ime, kms:kme, jms:jme ),                           &
         INTENT(IN ) ::        rho_phy,                                    &
                               alt

!
! 
!


   REAL,  DIMENSION( ims:ime , kms:kme , jms:jme )         ,               &
          INTENT(IN   ) ::                                                 &
                                                      dz8w

! stuff for aircraft emissions

   REAL, DIMENSION( ims:ime, kms:config_flags%kemit_aircraft, jms:jme, num_emis_aircraft),      &
         OPTIONAL,INTENT(IN ) ::  emis_aircraft

    integer i,j,k
    real :: conv_rho, conv_rho_aer
!--- deposition and emissions stuff


! ..
! ..
! .. Intrinsic Functions ..

         call wrf_debug(15,'add_anthropogenics')
!       
! add emissions
!
      do 100 j=jts,jte  
      do 100 i=its,ite  

      DO k=kts,min(config_flags%kemit,kte)
        conv_rho=4.828e-4/rho_phy(i,k,j)*dtstep/(dz8w(i,k,j)*60.)

#if (defined(CHEM_DBG_I) && defined(CHEM_DBG_J) && defined(CHEM_DBG_K))
       if( (i <= CHEM_DBG_I .and. i >= CHEM_DBG_I) .and. &
           (j <= CHEM_DBG_J .and. j >= CHEM_DBG_J) .and. &
           (k <= CHEM_DBG_K .and. k >= CHEM_DBG_K)  ) then
          print*
          print*,"Converted emissions for RADM2:"
          print*,"e_csl=",emis_ant(i,k,j,p_e_csl)*conv_rho
          print*,"e_iso=",emis_ant(i,k,j,p_e_iso)*conv_rho
          print*,"e_so2=",emis_ant(i,k,j,p_e_so2)*conv_rho
          print*,"e_no=",emis_ant(i,k,j,p_e_no)*conv_rho
          print*,"e_ald=",emis_ant(i,k,j,p_e_ald)*conv_rho
          print*,"e_hcho=",emis_ant(i,k,j,p_e_hcho)*conv_rho
          print*,"e_ora2=",emis_ant(i,k,j,p_e_ora2)*conv_rho
          print*,"e_nh3=",emis_ant(i,k,j,p_e_nh3)*conv_rho
          print*,"e_hc3=",emis_ant(i,k,j,p_e_hc3)*conv_rho
          print*,"e_hc5=",emis_ant(i,k,j,p_e_hc5)*conv_rho
          print*,"e_hc8=",emis_ant(i,k,j,p_e_hc8)*conv_rho
          print*,"e_eth=",emis_ant(i,k,j,p_e_eth)*conv_rho
          print*,"e_co=",emis_ant(i,k,j,p_e_co)*conv_rho
          print*,"e_ol2=",emis_ant(i,k,j,p_e_ol2)*conv_rho
          print*,"e_olt=",emis_ant(i,k,j,p_e_olt)*conv_rho
          print*,"e_oli=",emis_ant(i,k,j,p_e_oli)*conv_rho
          print*,"e_tol=",emis_ant(i,k,j,p_e_tol)*conv_rho
          print*,"e_xyl=",emis_ant(i,k,j,p_e_xyl)*conv_rho
          print*,"e_ket=",emis_ant(i,k,j,p_e_ket)*conv_rho
       end if
#endif

        chem(i,k,j,p_so2)  = chem(i,k,j,p_so2)                         &
                         +emis_ant(i,k,j,p_e_so2)*conv_rho
        chem(i,k,j,p_co)  = chem(i,k,j,p_co)                           &
                         +emis_ant(i,k,j,p_e_co)*conv_rho
        chem(i,k,j,p_no)   = chem(i,k,j,p_no)                          &
                         +emis_ant(i,k,j,p_e_no)*conv_rho
        chem(i,k,j,p_no2)   = chem(i,k,j,p_no2)                          &
                         +emis_ant(i,k,j,p_e_no2)*conv_rho
        chem(i,k,j,p_nh3)  = chem(i,k,j,p_nh3)                         &
                         +emis_ant(i,k,j,p_e_nh3)*conv_rho
        if( config_flags%chem_opt == MOZART_KPP .or. &
            config_flags%chem_opt == MOZCART_KPP .or. &
            config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP .or. &
            config_flags%chem_opt == MOZART_MOSAIC_4BIN_AQ_KPP ) then
           conv_rho_aer = alt(i,k,j)*dtstep/dz8w(i,k,j)
           chem(i,k,j,p_bigalk) = chem(i,k,j,p_bigalk) + emis_ant(i,k,j,p_e_bigalk)*conv_rho
           chem(i,k,j,p_bigene) = chem(i,k,j,p_bigene) + emis_ant(i,k,j,p_e_bigene)*conv_rho
           chem(i,k,j,p_c2h4)   = chem(i,k,j,p_c2h4)  + emis_ant(i,k,j,p_e_c2h4)*conv_rho
           chem(i,k,j,p_c2h5oh) = chem(i,k,j,p_c2h5oh) + emis_ant(i,k,j,p_e_c2h5oh)*conv_rho
           chem(i,k,j,p_c2h6)   = chem(i,k,j,p_c2h6) + emis_ant(i,k,j,p_e_c2h6)*conv_rho
           chem(i,k,j,p_c3h6)   = chem(i,k,j,p_c3h6) + emis_ant(i,k,j,p_e_c3h6)*conv_rho
           chem(i,k,j,p_c3h8)   = chem(i,k,j,p_c3h8) + emis_ant(i,k,j,p_e_c3h8)*conv_rho
           chem(i,k,j,p_hcho)   = chem(i,k,j,p_hcho) + emis_ant(i,k,j,p_e_ch2o)*conv_rho
           chem(i,k,j,p_ald)    = chem(i,k,j,p_ald) + emis_ant(i,k,j,p_e_ch3cho)*conv_rho
           chem(i,k,j,p_acet)   = chem(i,k,j,p_acet) + emis_ant(i,k,j,p_e_ch3coch3)*conv_rho
           chem(i,k,j,p_ch3oh)  = chem(i,k,j,p_ch3oh) + emis_ant(i,k,j,p_e_ch3oh)*conv_rho
           chem(i,k,j,p_gly)    = chem(i,k,j,p_gly) + emis_ant(i,k,j,p_e_gly)*conv_rho
           chem(i,k,j,p_macr)    = chem(i,k,j,p_macr) + emis_ant(i,k,j,p_e_macr)*conv_rho
           chem(i,k,j,p_mgly)    = chem(i,k,j,p_mgly) + emis_ant(i,k,j,p_e_mgly)*conv_rho
           chem(i,k,j,p_mvk)    = chem(i,k,j,p_mvk) + emis_ant(i,k,j,p_e_mvk)*conv_rho
           chem(i,k,j,p_c2h2)   = chem(i,k,j,p_c2h2)  + emis_ant(i,k,j,p_e_c2h2)*conv_rho
           chem(i,k,j,p_hcooh)    = chem(i,k,j,p_hcooh) + emis_ant(i,k,j,p_e_hcooh)*conv_rho
           chem(i,k,j,p_mek)    = chem(i,k,j,p_mek) + emis_ant(i,k,j,p_e_mek)*conv_rho
           chem(i,k,j,p_tol)    = chem(i,k,j,p_tol) + emis_ant(i,k,j,p_e_toluene)*conv_rho
           chem(i,k,j,p_benzene) = chem(i,k,j,p_benzene) + emis_ant(i,k,j,p_e_benzene)*conv_rho
           chem(i,k,j,p_xyl) = chem(i,k,j,p_xyl) + emis_ant(i,k,j,p_e_xylene)*conv_rho
           chem(i,k,j,p_cres) = chem(i,k,j,p_cres) + emis_ant(i,k,j,p_e_cres)*conv_rho
           chem(i,k,j,p_bald) = chem(i,k,j,p_bald) + emis_ant(i,k,j,p_e_bald)*conv_rho
           chem(i,k,j,p_hono)  = chem(i,k,j,p_hono) +emis_ant(i,k,j,p_e_hono)*conv_rho
           chem(i,k,j,p_isopr)  = chem(i,k,j,p_isopr) + emis_ant(i,k,j,p_e_isop)*conv_rho
           chem(i,k,j,p_c10h16) = chem(i,k,j,p_c10h16) + emis_ant(i,k,j,p_e_c10h16)*conv_rho
           chem(i,k,j,p_sulf)   = chem(i,k,j,p_sulf) + conv_rho_aer*emis_ant(i,k,j,p_e_sulf)*mwdry/mw_so4_aer*1.e-3
           if( config_flags%chem_opt == MOZCART_KPP ) then
             chem(i,k,j,p_p10) = chem(i,k,j,p_p10) + conv_rho_aer*emis_ant(i,k,j,p_e_pm_10)
             chem(i,k,j,p_p25) = chem(i,k,j,p_p25) + conv_rho_aer*emis_ant(i,k,j,p_e_pm_25)
             chem(i,k,j,p_oc1) = chem(i,k,j,p_oc1) + conv_rho_aer*emis_ant(i,k,j,p_e_oc)
             chem(i,k,j,p_bc1) = chem(i,k,j,p_bc1) + conv_rho_aer*emis_ant(i,k,j,p_e_bc)
           elseif( config_flags%chem_opt == MOZART_MOSAIC_4BIN_KPP ) then
! emissions should be CO_A and CO_BB with yields instead of VOC_A and VOC_BB
!             chem(i,k,j,p_voca)  = chem(i,k,j,p_voca) + conv_rho*emis_ant(i,k,j,p_e_voca)
!             chem(i,k,j,p_vocbb) = chem(i,k,j,p_vocbb) + conv_rho*emis_ant(i,k,j,p_e_vocbb)
!             chem(i,k,j,p_voca)  = chem(i,k,j,p_voca) + conv_rho_aer*emis_ant(i,k,j,p_e_co_a)*0.04*28./250.
!             chem(i,k,j,p_vocbb) = chem(i,k,j,p_vocbb) + conv_rho_aer*emis_ant(i,k,j,p_e_co_bb)*0.04*28./250.
             chem(i,k,j,p_voca)  = chem(i,k,j,p_voca) + conv_rho*emis_ant(i,k,j,p_e_co_a)*0.04*28./250.
             chem(i,k,j,p_vocbb) = chem(i,k,j,p_vocbb) + conv_rho*emis_ant(i,k,j,p_e_co_bb)*0.04*28./250.
           endif
        else if( config_flags%chem_opt == CRIMECH_KPP &
          .or. config_flags%chem_opt == CRI_MOSAIC_8BIN_AQ_KPP &
          .or. config_flags%chem_opt == CRI_MOSAIC_4BIN_AQ_KPP) then
           chem(i,k,j,p_no2) = chem(i,k,j,p_no2) + emis_ant(i,k,j,p_e_no2)*conv_rho
           chem(i,k,j,p_c2h6) = chem(i,k,j,p_c2h6) + emis_ant(i,k,j,p_e_c2h6)*conv_rho
           chem(i,k,j,p_c2h4) = chem(i,k,j,p_c2h4) + emis_ant(i,k,j,p_e_c2h4)*conv_rho
           chem(i,k,j,p_c5h8) = chem(i,k,j,p_c5h8) + emis_ant(i,k,j,p_e_c5h8)*conv_rho
           chem(i,k,j,p_tm123b) = chem(i,k,j,p_tm123b) + emis_ant(i,k,j,p_e_tm123b)*conv_rho
           chem(i,k,j,p_tm124b) = chem(i,k,j,p_tm124b) + emis_ant(i,k,j,p_e_tm124b)*conv_rho
           chem(i,k,j,p_tm135b) = chem(i,k,j,p_tm135b) + emis_ant(i,k,j,p_e_tm135b)*conv_rho
           chem(i,k,j,p_oethtol) = chem(i,k,j,p_oethtol) + emis_ant(i,k,j,p_e_oethtol)*conv_rho
           chem(i,k,j,p_methtol) = chem(i,k,j,p_methtol) + emis_ant(i,k,j,p_e_methtol)*conv_rho
           chem(i,k,j,p_pethtol) = chem(i,k,j,p_pethtol) + emis_ant(i,k,j,p_e_pethtol)*conv_rho
           chem(i,k,j,p_dime35eb) = chem(i,k,j,p_dime35eb) + emis_ant(i,k,j,p_e_dime35eb)*conv_rho
           chem(i,k,j,p_hcho) = chem(i,k,j,p_hcho) + emis_ant(i,k,j,p_e_hcho)*conv_rho
           chem(i,k,j,p_ch3cho) = chem(i,k,j,p_ch3cho) + emis_ant(i,k,j,p_e_ch3cho)*conv_rho
           chem(i,k,j,p_c2h5cho) = chem(i,k,j,p_c2h5cho) + emis_ant(i,k,j,p_e_c2h5cho)*conv_rho
           chem(i,k,j,p_ket) = chem(i,k,j,p_ket) + emis_ant(i,k,j,p_e_ket)*conv_rho
           chem(i,k,j,p_mek) = chem(i,k,j,p_mek) + emis_ant(i,k,j,p_e_mek)*conv_rho
           chem(i,k,j,p_ch3oh) = chem(i,k,j,p_ch3oh) + emis_ant(i,k,j,p_e_ch3oh)*conv_rho
           chem(i,k,j,p_c2h5oh) = chem(i,k,j,p_c2h5oh) + emis_ant(i,k,j,p_e_c2h5oh)*conv_rho
           chem(i,k,j,p_c3h6) = chem(i,k,j,p_c3h6) + emis_ant(i,k,j,p_e_c3h6)*conv_rho
           chem(i,k,j,p_c2h2) = chem(i,k,j,p_c2h2) + emis_ant(i,k,j,p_e_c2h2)*conv_rho
           chem(i,k,j,p_benzene) = chem(i,k,j,p_benzene) + emis_ant(i,k,j,p_e_benzene)*conv_rho
           chem(i,k,j,p_nc4h10) = chem(i,k,j,p_nc4h10) + emis_ant(i,k,j,p_e_nc4h10)*conv_rho
           chem(i,k,j,p_toluene) = chem(i,k,j,p_toluene) + emis_ant(i,k,j,p_e_toluene)*conv_rho
           chem(i,k,j,p_oxyl) = chem(i,k,j,p_oxyl) + emis_ant(i,k,j,p_e_oxyl)*conv_rho
           chem(i,k,j,p_c3h8) = chem(i,k,j,p_c3h8) + emis_ant(i,k,j,p_e_c3h8)*conv_rho
           chem(i,k,j,p_tbut2ene) = chem(i,k,j,p_tbut2ene) + emis_ant(i,k,j,p_e_tbut2ene)*conv_rho
           chem(i,k,j,p_ch3co2h) = chem(i,k,j,p_ch3co2h) + emis_ant(i,k,j,p_e_ch3co2h)*conv_rho
        else
        chem(i,k,j,p_csl)  =  chem(i,k,j,p_csl)                        &
                         +emis_ant(i,k,j,p_e_csl)*conv_rho
        chem(i,k,j,p_iso)  = chem(i,k,j,p_iso)                         &
                         +emis_ant(i,k,j,p_e_iso)*conv_rho
        chem(i,k,j,p_ald)  = chem(i,k,j,p_ald)                         &
                         +emis_ant(i,k,j,p_e_ald)*conv_rho
        chem(i,k,j,p_hcho) = chem(i,k,j,p_hcho)                        &
                         +emis_ant(i,k,j,p_e_hcho)*conv_rho
        chem(i,k,j,p_ora2)  = chem(i,k,j,p_ora2)                       &
                         +emis_ant(i,k,j,p_e_ora2)*conv_rho
        chem(i,k,j,p_hc3)  = chem(i,k,j,p_hc3)                         &
                         +emis_ant(i,k,j,p_e_hc3)*conv_rho
        chem(i,k,j,p_hc5)  = chem(i,k,j,p_hc5)                         &
                         +emis_ant(i,k,j,p_e_hc5)*conv_rho
        chem(i,k,j,p_hc8)  = chem(i,k,j,p_hc8)                         &
                         +emis_ant(i,k,j,p_e_hc8)*conv_rho
        chem(i,k,j,p_eth)  = chem(i,k,j,p_eth)                         &
                         +emis_ant(i,k,j,p_e_eth)*conv_rho
        if(p_ch4.gt.1)chem(i,k,j,p_ch4)  = chem(i,k,j,p_ch4)           &
                         +emis_ant(i,k,j,p_e_ch4)*conv_rho
        if(p_ol2.gt.1)chem(i,k,j,p_ol2)  = chem(i,k,j,p_ol2)           &
                         +emis_ant(i,k,j,p_e_ol2)*conv_rho
        if(p_ete.gt.1)chem(i,k,j,p_ete)  = chem(i,k,j,p_ete)           &
                         +emis_ant(i,k,j,p_e_ol2)*conv_rho
        chem(i,k,j,p_olt)  = chem(i,k,j,p_olt)                         &
                         +emis_ant(i,k,j,p_e_olt)*conv_rho
        chem(i,k,j,p_oli)  = chem(i,k,j,p_oli)                         &
                         +emis_ant(i,k,j,p_e_oli)*conv_rho
        chem(i,k,j,p_tol)  = chem(i,k,j,p_tol)                         &
                         +emis_ant(i,k,j,p_e_tol)*conv_rho
        chem(i,k,j,p_xyl)  = chem(i,k,j,p_xyl)                         &      
                         +emis_ant(i,k,j,p_e_xyl)*conv_rho
        chem(i,k,j,p_ket)  =  chem(i,k,j,p_ket)                        &     
                         +emis_ant(i,k,j,p_e_ket)*conv_rho
        if( config_flags%chem_opt == GOCARTRACM_KPP       &
          .or. config_flags%chem_opt == GOCARTRADM2 ) then
          conv_rho_aer = alt(i,k,j)*dtstep/dz8w(i,k,j)
          chem(i,k,j,p_p10) = chem(i,k,j,p_p10) + conv_rho_aer*emis_ant(i,k,j,p_e_pm_10)
          chem(i,k,j,p_p25) = chem(i,k,j,p_p25) + conv_rho_aer*emis_ant(i,k,j,p_e_pm_25)
          chem(i,k,j,p_oc1) = chem(i,k,j,p_oc1) + conv_rho_aer*emis_ant(i,k,j,p_e_oc)
          chem(i,k,j,p_bc1) = chem(i,k,j,p_bc1) + conv_rho_aer*emis_ant(i,k,j,p_e_bc)
        endif
       endif
      END DO                                                          
 100  continue

! add aircraft emissions
   if (config_flags%aircraft_emiss_opt == 1 ) then
      do j=jts,jte  
      do k=kts,min(config_flags%kemit_aircraft,kte)
      do i=its,ite  
         conv_rho=4.828e-4/rho_phy(i,k,j)*dtstep/(dz8w(i,k,j)*60.)
         chem(i,k,j,p_no)  = chem(i,k,j,p_no)  + emis_aircraft(i,k,j,p_eac_no) *conv_rho
         chem(i,k,j,p_co)  = chem(i,k,j,p_co)  + emis_aircraft(i,k,j,p_eac_co) *conv_rho
         chem(i,k,j,p_so2) = chem(i,k,j,p_so2) + emis_aircraft(i,k,j,p_eac_so2)*conv_rho
         chem(i,k,j,p_ch4) = chem(i,k,j,p_ch4) + emis_aircraft(i,k,j,p_eac_ch4)*conv_rho
      enddo
      enddo
      enddo
   endif 

    END subroutine add_anthropogenics
!
!
    subroutine add_biogenics(id,dtstep,dz8w,config_flags,rho_phy,chem, &
         e_bio,ne_area,                                                &
         ebio_iso,ebio_oli,ebio_api,ebio_lim,ebio_xyl,                 &
         ebio_hc3,ebio_ete,ebio_olt,ebio_ket,ebio_ald,                 &
         ebio_hcho,ebio_eth,ebio_ora2,ebio_co,ebio_nr,ebio_no,         &
         ebio_sesq,ebio_mbo,                                           & 
         ids,ide, jds,jde, kds,kde,                                    &
         ims,ime, jms,jme, kms,kme,                                    &
         its,ite, jts,jte, kts,kte                                     )
  USE module_configure
  USE module_state_description                                  
  USE module_data_radm2                               
  USE module_aerosols_sorgam 
   IMPLICIT NONE             
   INTEGER,      INTENT(IN   ) :: id,ne_area,                              &
                                  ids,ide, jds,jde, kds,kde,               &
                                  ims,ime, jms,jme, kms,kme,               &
                                  its,ite, jts,jte, kts,kte
   REAL,         INTENT(IN   ) ::                                          &
                             dtstep
   REAL, DIMENSION( ims:ime, kms:kme, jms:jme, num_chem ),                 &
         INTENT(INOUT ) ::                                   chem
   REAL, DIMENSION( ims:ime, jms:jme,ne_area ),                            &
         INTENT(IN ) ::                                                    &
                 e_bio
   REAL, DIMENSION( ims:ime, jms:jme ),                                    &
         INTENT(IN ) ::                                                    &
         ebio_iso,ebio_oli,ebio_api,ebio_lim,ebio_xyl,                     &
         ebio_hc3,ebio_ete,ebio_olt,ebio_ket,ebio_ald,                     &
         ebio_hcho,ebio_eth,ebio_ora2,ebio_co,ebio_nr,ebio_no,             &
         ebio_sesq,ebio_mbo 
!
   REAL,  DIMENSION( ims:ime , kms:kme , jms:jme )         ,               &
          INTENT(IN   ) ::                                                 &
                                          rho_phy,dz8w
    integer i,j,k,n
    real :: conv_rho
    real :: con2ppm(its:ite,jts:jte)
!--- deposition and emissions stuff
! .. Parameters ..       
   TYPE(grid_config_rec_type),  INTENT(IN   )    :: config_flags     
!  return
   bioem_select: SELECT CASE(config_flags%bio_emiss_opt)
     CASE (GUNTHER1)
     CALL wrf_debug(15,'adding biogenic emissions: Gunther1')
!     DO n = 1, numgas-2
      do 100 j=jts,jte  
      do 100 i=its,ite  
        conv_rho=dtstep/(dz8w(i,kts,j)*60.)
        chem(i,kts,j,p_iso)=chem(i,kts,j,p_iso)+ &
                  e_bio(i,j,p_iso-1)*conv_rho
        chem(i,kts,j,p_oli)=chem(i,kts,j,p_oli)+ &
                  e_bio(i,j,p_oli-1)*conv_rho
        chem(i,kts,j,p_xyl)=chem(i,kts,j,p_xyl)+ &
                  e_bio(i,j,p_xyl-1)*conv_rho
        chem(i,kts,j,p_olt)=chem(i,kts,j,p_olt)+ &
                  e_bio(i,j,p_olt-1)*conv_rho
        chem(i,kts,j,p_ket)=chem(i,kts,j,p_ket)+ &
                  e_bio(i,j,p_ket-1)*conv_rho
        chem(i,kts,j,p_ald)=chem(i,kts,j,p_ald)+ &
                  e_bio(i,j,p_ald-1)*conv_rho
        chem(i,kts,j,p_hcho)=chem(i,kts,j,p_hcho)+ &
                  e_bio(i,j,p_hcho-1)*conv_rho
        chem(i,kts,j,p_eth)=chem(i,kts,j,p_eth)+ &
                  e_bio(i,j,p_eth-1)*conv_rho
        chem(i,kts,j,p_ora2)=chem(i,kts,j,p_ora2)+ &
                  e_bio(i,j,p_ora2-1)*conv_rho
        chem(i,kts,j,p_co)=chem(i,kts,j,p_co)+ &
                  e_bio(i,j,p_co-1)*conv_rho
        chem(i,kts,j,p_no)=chem(i,kts,j,p_no)+ &
                  e_bio(i,j,p_no-1)*conv_rho
!
! RADM only
!
        if(p_hc3.gt.1) chem(i,kts,j,p_hc3)=chem(i,kts,j,p_hc3)+ &
                  e_bio(i,j,p_hc3-1)*conv_rho
        if(p_ol2.gt.1)chem(i,kts,j,p_ol2)=chem(i,kts,j,p_ol2)+ &
                  e_bio(i,j,p_ol2-1)*conv_rho
! CRIMECH only
        if(p_c5h8.gt.1)chem(i,kts,j,p_c5h8)=chem(i,kts,j,p_c5h8)+ &
                  e_bio(i,j,liso)*conv_rho
        if(p_oxyl.gt.1)chem(i,kts,j,p_oxyl)=chem(i,kts,j,p_oxyl)+ &
                  e_bio(i,j,lxyl)*conv_rho
        if(p_c3h8.gt.1)chem(i,kts,j,p_c3h8)=chem(i,kts,j,p_c3h8)+ &
                  e_bio(i,j,lhc3)*conv_rho
        if(p_ket.gt.1)chem(i,kts,j,p_ket)=chem(i,kts,j,p_ket)+ &
                  e_bio(i,j,lket)*conv_rho
        if(p_ch3cho.gt.1)chem(i,kts,j,p_ch3cho)=chem(i,kts,j,p_ch3cho)+ &
                  e_bio(i,j,lald)*conv_rho
        if(p_apinene.gt.1)chem(i,kts,j,p_apinene)=chem(i,kts,j,p_apinene)+ &
                  0.667*e_bio(i,j,loli)*conv_rho
!       if(p_bpinene.gt.1)chem(i,kts,j,p_bpinene)=chem(i,kts,j,p_bpinene)+ &
!                 0.333*e_bio(i,j,loli)*conv_rho
        if(p_bpinene.gt.1)chem(i,kts,j,p_bpinene)=chem(i,kts,j,p_bpinene)+ &
                  0.333*e_bio(i,j,loli)*conv_rho + e_bio(i,j,lolt)*conv_rho
        if(p_hcooh.gt.1)chem(i,kts,j,p_hcooh)=chem(i,kts,j,p_hcooh)+ &
                  e_bio(i,j,lora1)*conv_rho
        if(p_ch3co2h.gt.1)chem(i,kts,j,p_ch3co2h)=chem(i,kts,j,p_ch3co2h)+ &
                  e_bio(i,j,lora2)*conv_rho

!BSINGH -  Added for CBMZ
!
!CBMZ Only
!
        if(p_par .gt. 1) chem(i,kts,j,p_par) = chem(i,kts,j,p_par)  &
                + (e_bio(i,j,p_ald-1)*0.4        &
                + e_bio(i,j,p_ket-1)*0.9         &     
                + e_bio(i,j,p_olt-1)*1.8         &
                + e_bio(i,j,p_ora2-1)*1.0 )*conv_rho
        if(p_hc3 .gt. 1) chem(i,kts,j,p_par) = chem(i,kts,j,p_par)  &
                + e_bio(i,j,p_hc3-1)*4.8*conv_rho
 100  continue
!     enddo
     CASE (BEIS314)
     CALL wrf_debug(100,'adding biogenic emissions: beis3.1.4')
      do j=jts,jte  
      do i=its,ite  
        conv_rho=4.828e-4/rho_phy(i,kts,j)*dtstep/(dz8w(i,kts,j)*60.)
        chem(i,kts,j,p_iso)=chem(i,kts,j,p_iso)+ &
                  ebio_iso(i,j)*conv_rho
        chem(i,kts,j,p_oli)=chem(i,kts,j,p_oli)+ &
                  ebio_oli(i,j)*conv_rho
        chem(i,kts,j,p_xyl)=chem(i,kts,j,p_xyl)+ &
                  ebio_xyl(i,j)*conv_rho
        chem(i,kts,j,p_hc3)=chem(i,kts,j,p_hc3)+ &
                  ebio_hc3(i,j)*conv_rho
        chem(i,kts,j,p_olt)=chem(i,kts,j,p_olt)+ &
                  ebio_olt(i,j)*conv_rho
        chem(i,kts,j,p_ket)=chem(i,kts,j,p_ket)+ &
                  ebio_ket(i,j)*conv_rho
        chem(i,kts,j,p_ald)=chem(i,kts,j,p_ald)+ &
                  ebio_ald(i,j)*conv_rho
        chem(i,kts,j,p_hcho)=chem(i,kts,j,p_hcho)+ &
                  ebio_hcho(i,j)*conv_rho
        chem(i,kts,j,p_eth)=chem(i,kts,j,p_eth)+ &
                  ebio_eth(i,j)*conv_rho
        chem(i,kts,j,p_ora2)=chem(i,kts,j,p_ora2)+ &
                  ebio_ora2(i,j)*conv_rho
        chem(i,kts,j,p_co)=chem(i,kts,j,p_co)+ &
                  ebio_co(i,j)*conv_rho
        chem(i,kts,j,p_no)=chem(i,kts,j,p_no)+ &
                  ebio_no(i,j)*conv_rho
!
! RADM only
!
        if(p_ol2.gt.1)chem(i,kts,j,p_ol2)=chem(i,kts,j,p_ol2)+ &
                  ebio_ete(i,j)*conv_rho
!
! CRIMECH only --- DL 05/08/2013: not used at the moment
!
!        if(p_c5h8.gt.1)chem(i,kts,j,p_c5h8)=chem(i,kts,j,p_c5h8)+ &
!                  e_bio(i,j,p_iso-1)*conv_rho
!        if(p_oxyl.gt.1)chem(i,kts,j,p_oxyl)=chem(i,kts,j,p_oxyl)+ &
!                  e_bio(i,j,p_xyl-1)*conv_rho
!        if(p_c3h8.gt.1)chem(i,kts,j,p_c3h8)=chem(i,kts,j,p_c3h8)+ &
!                  e_bio(i,j,p_hc3-1)*conv_rho
!        if(p_ket.gt.1)chem(i,kts,j,p_ket)=chem(i,kts,j,p_ket)+ &
!                  e_bio(i,j,p_ket-1)*conv_rho
!        if(p_ch3cho.gt.1)chem(i,kts,j,p_ch3cho)=chem(i,kts,j,p_ch3cho)+ &
!                  e_bio(i,j,p_ald-1)*conv_rho
!        if(p_c2h6.gt.1)chem(i,kts,j,p_c2h6)=chem(i,kts,j,p_c2h6)+ &
!                  e_bio(i,j,p_eth-1)*conv_rho
!        if(p_apinene.gt.1)chem(i,kts,j,p_apinene)=chem(i,kts,j,p_apinene)+ &
!                  e_bio(i,j,p_api-1)*conv_rho
!        if(p_bpinene.gt.1)chem(i,kts,j,p_bpinene)=chem(i,kts,j,p_bpinene)+ &
!                  e_bio(i,j,p_api-1)*conv_rho

!
! RACM only
!
        if(p_api.gt.1)chem(i,kts,j,p_api)=chem(i,kts,j,p_api)+ &
                  ebio_api(i,j)*conv_rho
        if(p_lim.gt.1)chem(i,kts,j,p_lim)=chem(i,kts,j,p_lim)+ &
                  ebio_lim(i,j)*conv_rho
        if(p_ete.gt.1)chem(i,kts,j,p_ete)=chem(i,kts,j,p_ete)+ &
                  ebio_ete(i,j)*conv_rho

! SESQ and MBO are added, it works for RACM_SOA_VBS_KPP option
        if(p_sesq.gt.1)chem(i,kts,j,p_sesq)=chem(i,kts,j,p_sesq)+ &
                  ebio_sesq(i,j)*conv_rho
        if(p_mbo.gt.1)chem(i,kts,j,p_mbo)=chem(i,kts,j,p_mbo)+ &
                  ebio_mbo(i,j)*conv_rho

      enddo
      enddo
     CASE (MEGAN2)
      do j = jts,jte
        con2ppm(its:ite,j) = dtstep/(dz8w(its:ite,kts,j)*60.)
      end do
      do n = 1,ne_area
        if( any( e_bio(its:ite,jts:jte,n) /= 0. ) ) then
          do j = jts,jte  
            chem(its:ite,kts,j,n+1) = chem(its:ite,kts,j,n+1) &
                                    + con2ppm(its:ite,j)*e_bio(its:ite,j,n)
          end do
        endif
      end do

     CASE DEFAULT

   END SELECT bioem_select
    END subroutine add_biogenics


END MODULE module_emissions_anthropogenics
