Files
GEOS-Chem-adjoint-v35-note/code/emissions_mod.f
2018-08-28 00:43:47 -04:00

654 lines
22 KiB
Fortran

! $Id: emissions_mod.f,v 1.3 2012/03/01 22:00:26 daven Exp $
!------------------------------------------------------------------------------
! Harvard University Atmospheric Chemistry Modeling Group !
!------------------------------------------------------------------------------
!BOP
!
! !MODULE: EMISSIONS_MOD
!
! !DESCRIPTION: Module EMISSIONS\_MOD is used to call the proper emissions
! subroutines for the various GEOS-CHEM simulations. (bmy, 2/11/03, 2/14/08)
!\\
!\\
! !INTERFACE:
!
MODULE EMISSIONS_MOD
!
! !USES:
!
IMPLICIT NONE
PRIVATE
!
! !PUBLIC MEMBER FUNCTIONS:
!
PUBLIC :: DO_EMISSIONS
!FP_ISOP (6/2009)
PUBLIC :: ISOP_SCALING,NOx_SCALING
!
! !REVISION HISTORY:
! (1 ) Now references DEBUG_MSG from "error_mod.f"
! (2 ) Now references "Kr85_mod.f" (jsw, bmy, 8/20/03)
! (3 ) Now references "carbon_mod.f" and "dust_mod.f" (rjp, tdf, bmy, 4/2/04)
! (4 ) Now references "seasalt_mod.f" (rjp, bmy, bec, 4/20/04)
! (5 ) Now references "logical_mod" & "tracer_mod.f" (bmy, 7/20/04)
! (6 ) Now references "epa_nei_mod.f" and "time_mod.f" (bmy, 11/5/04)
! (7 ) Now references "emissions_mod.f" (bmy, 12/7/04)
! (8 ) Now calls EMISSSULFATE if LCRYST=T. Also read EPA/NEI emissions for
! the offline aerosol simulation. (bmy, 1/11/05)
! (9 ) Remove code for the obsolete CO-OH param simulation (bmy, 6/24/05)
! (10) Now references "co2_mod.f" (pns, bmy, 7/25/05)
! (11) Now references "emep_mod.f" (bdf, bmy, 10/1/05)
! (12) Now references "gfed2_biomass_mod.f" (bmy, 3/30/06)
! (13) Now references "bravo_mod.f" (rjp, kfb, bmy, 6/26/06)
! (14) Now references "edgar_mod.f" (avd, bmy, 7/6/06)
! (15) Now references "streets_anthro_mod.f" (yxw, bmy, 8/18/06)
! (16) Now references "h2_hd_mod.f" (lyj, phs, 9/18/07)
! (17) Now calls EMISSDR for tagged CO simulation (jaf, mak, bmy, 2/14/08)
! (18) Now references "cac_anthro_mod.f" (amv, phs, 03/11/08)
! (19) Now references "vistas_anthro_mod.f" (amv, 12/02/08)
! (20) Bug fixe : add specific calls for Streets for the grid 0.5x0.666.
! (dan, ccc, 3/11/09)
!EOP
!------------------------------------------------------------------------------
!FP_ISOP. For scaling Isoprene and NOx emissions.
REAL*8 :: ISOP_SCALING,NOx_SCALING = 1d0
CONTAINS
!------------------------------------------------------------------------------
! Harvard University Atmospheric Chemistry Modeling Group !
!------------------------------------------------------------------------------
!BOP
!
! !IROUTINE: DO_EMISSIONS
!
! !DESCRIPTION: Subroutine DO\_EMISSIONS is the driver routine which calls
! the appropriate emissions subroutine for the various GEOS-CHEM simulations.
! (bmy, 2/11/03, 2/14/08)
!\\
!\\
! !INTERFACE:
!
SUBROUTINE DO_EMISSIONS
!
! !USES:
!
USE BIOMASS_MOD, ONLY : NBIOMAX
USE BIOMASS_MOD, ONLY : COMPUTE_BIOMASS_EMISSIONS
USE ARCTAS_SHIP_EMISS_MOD, ONLY : EMISS_ARCTAS_SHIP
USE BRAVO_MOD, ONLY : EMISS_BRAVO
USE C2H6_MOD, ONLY : EMISSC2H6
USE CAC_ANTHRO_MOD, ONLY : EMISS_CAC_ANTHRO
USE CAC_ANTHRO_MOD, ONLY : EMISS_CAC_ANTHRO_05x0666
USE CARBON_MOD, ONLY : EMISSCARBON
USE CH3I_MOD, ONLY : EMISSCH3I
USE CO2_MOD, ONLY : EMISSCO2
USE DUST_MOD, ONLY : EMISSDUST
USE EDGAR_MOD, ONLY : EMISS_EDGAR
USE EMEP_MOD, ONLY : EMISS_EMEP
USE EMEP_MOD, ONLY : EMISS_EMEP_05x0666
USE EPA_NEI_MOD, ONLY : EMISS_EPA_NEI
USE ERROR_MOD, ONLY : DEBUG_MSG
USE GLOBAL_CH4_MOD, ONLY : EMISSCH4
USE H2_HD_MOD, ONLY : EMISS_H2_HD
USE HCN_CH3CN_MOD, ONLY : EMISS_HCN_CH3CN
USE Kr85_MOD, ONLY : EMISSKr85
USE LOGICAL_MOD
USE MERCURY_MOD, ONLY : EMISSMERCURY
USE NEI2005_ANTHRO_MOD, ONLY : EMISS_NEI2005_ANTHRO
USE NEI2005_ANTHRO_MOD, ONLY : EMISS_NEI2005_ANTHRO_05x0666
USE RETRO_MOD, ONLY : EMISS_RETRO
USE NEI2008_ANTHRO_MOD, ONLY : EMISS_NEI2008_ANTHRO !(krt, 5/13/13)
USE NEI2008_ANTHRO_MOD, ONLY : EMISS_NEI2008_ANTHRO_NATIVE !krt
USE RnPbBe_MOD, ONLY : EMISSRnPbBe
USE SEASALT_MOD, ONLY : EMISSSEASALT
USE STREETS_ANTHRO_MOD, ONLY : EMISS_STREETS_ANTHRO
USE STREETS_ANTHRO_MOD, ONLY : EMISS_STREETS_ANTHRO_05x0666
USE STREETS_ANTHRO_MOD, ONLY : EMISS_STREETS_ANTHRO_025x03125 !(lzh,02/01/2015)
USE SULFATE_MOD, ONLY : EMISSSULFATE
USE TIME_MOD, ONLY : GET_MONTH, GET_YEAR
USE TIME_MOD, ONLY : ITS_A_NEW_MONTH, ITS_A_NEW_YEAR
USE TIME_MOD, ONLY : ITS_A_NEW_DAY, ITS_A_NEW_HOUR
USE TRACER_MOD
USE TAGGED_CO_MOD, ONLY : EMISS_TAGGED_CO
USE VISTAS_ANTHRO_MOD, ONLY : EMISS_VISTAS_ANTHRO
USE ICOADS_SHIP_MOD, ONLY : EMISS_ICOADS_SHIP !(cklee,7/09/09)
USE RCP_MOD, ONLY : LOAD_RCP_EMISSIONS !cdh
USE PARANOX_MOD, ONLY : READ_PARANOX_LUT
USE HTAP_MOD, ONLY : EMISS_HTAP
# include "CMN_SIZE" ! Size parameters
# include "CMN_O3" ! FSCLYR
!
! !REVISION HISTORY:
! (1 ) Now references DEBUG_MSG from "error_mod.f" (bmy, 8/7/03)
! (2 ) Now calls Kr85 emissions if NSRCX == 12 (jsw, bmy, 8/20/03)
! (3 ) Now calls EMISSCARBON and EMISSDUST for carbon aerosol and dust
! aerosol chemistry (rjp, tdf, bmy, 4/2/04)
! (4 ) Now calls EMISSSEASALT for seasalt emissions (rjp, bec, bmy, 4/20/04)
! (5 ) Now use inquiry functions from "tracer_mod.f". Now references
! "logical_mod.f" (bmy, 7/20/04)
! (6 ) Now references ITS_A_NEW_MONTH from "time_mod.f". Now references
! EMISS_EPA_NEI from "epa_nei_mod.f" (bmy, 11/5/04)
! (7 ) Now calls EMISSMERCURY from "mercury_mod.f" (eck, bmy, 12/7/04)
! (8 ) Now calls EMISSSULFATE if LCRYST=T. Also read EPA/NEI emissions for
! the offline sulfate simulation. Also call EMISS_EPA_NEI for the
! tagged CO simulation. (cas, bmy, stu, 1/10/05).
! (9 ) Now call EMISSSEASALT before EMISSSULFATE (bec, bmy, 4/13/05)
! (10) Now call EMISS_HCN_CH3CN from "hcn_ch3cn_mod.f". Also remove all
! references to the obsolete CO-OH param simulation. (xyp, bmy, 6/23/05)
! (11) Now call EMISSCO2 from "co2_mod.f" (pns, bmy, 7/25/05)
! (12) Now references EMISS_EMEP from "emep_mod.f" (bdf, bmy, 11/1/05)
! (13) Now call GFED2_COMPUTE_BIOMASS to read 1x1 biomass emissions and
! regrid to the model resolution once per month. (bmy, 3/30/06)
! (14) Now references EMISS_BRAVO from "bravo_mod.f" (rjp, kfb, bmy, 6/26/06)
! (15) Now references EMISS_EDGAR from "edgar_mod.f" (avd, bmy, 7/6/06)
! (16) Now references EMISS_STREETS_ANTHRO from "streets_anthro_mod.f"
! (yxw, bmy, 8/17/06)
! (17) Now calls EMISSDR for tagged CO simulation (jaf, mak, bmy, 2/18/08)
! (18) Now references EMISS_CAC_ANTHRO from "cac_anthro_mod.f"
! (amv, phs, 3/11/08)
! (19) Now references EMISS_ARCTAS_SHIP from "arctas_ship_emiss_mod.f"
! (phs, 5/12/08)
! (20) Now references EMISS_VISTAS_ANTHR from "vistas_anthro_mod.f". Call
! EMEP, and Streets every month (amv, 12/2/08)
! (21) Now references EMISS_NEI2005_ANTHRO from "nei2005_anthro_mod.f"
! (amv, 10/19/09)
! 07 Feb 2011 - R. Yantosca - Use NEI99 biofuels when useing NEI05 anthro
!EOP
!------------------------------------------------------------------------------
!BOC
!
! !LOCAL VARIABLES:
!
INTEGER :: MONTH, YEAR
REAL*8 :: BIOMASS(IIPAR,JJPAR,NBIOMAX)
!=================================================================
! DO_EMISSIONS begins here!
!=================================================================
! Get year and month
MONTH = GET_MONTH()
! check if emissions year differs from met field year
IF ( FSCALYR < 0 ) THEN
YEAR = GET_YEAR()
ELSE
YEAR = FSCALYR
ENDIF
! Get biomass burning emissions for use below
IF ( LBIOMASS ) THEN
CALL COMPUTE_BIOMASS_EMISSIONS( GET_YEAR(), MONTH )
ENDIF
! Test by simulation type
IF ( ITS_A_FULLCHEM_SIM() ) THEN
!--------------------
! NOx-Ox-HC-aerosol
!--------------------
! Read David Streets' emisisons over China / SE ASia
IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_STREETS_ANTHRO_05x0666 !(dan)
#elif defined( GRID025x03125 )
CALL EMISS_STREETS_ANTHRO_025x03125 ! (lzh, 02/01/2015)
#else
CALL EMISS_STREETS_ANTHRO
#endif
ENDIF
! Read EDGAR emissions once per month to get, at least
! the NOx diurnal scale factors, and the EDGAR emissions
! if necessary (amv, phs, 3/11/08)
!----------------
! prior to 3/11/08
! IF ( LEDGAR .and. ITS_A_NEW_MONTH() ) THEN
!----------------
IF ( ITS_A_NEW_MONTH() ) THEN
CALL EMISS_EDGAR( YEAR, MONTH )
ENDIF
! Read RETRO emissions once per month (wfr, 3/8/11)
IF ( LRETRO .and. ITS_A_NEW_MONTH() ) CALL EMISS_RETRO
! Read RCP emissions once per month (cdh, 10/14/11)
! We read all emissions (for land, ship, air) even if only
! one is needed
IF ( (LRCP .OR. LRCPSHIP .OR. LRCPAIR) .and.
& ITS_A_NEW_MONTH() ) CALL LOAD_RCP_EMISSIONS
! Read EPA/NEI99 (USA) emissions once per month
IF ( LNEI99 .and. ITS_A_NEW_MONTH() ) CALL EMISS_EPA_NEI
! Read VISTAS (USA) emissions once per month
IF ( LVISTAS .and. ITS_A_NEW_MONTH() )
& CALL EMISS_VISTAS_ANTHRO
! Read BRAVO (Mexico) emissions once per year
IF ( LBRAVO .and. ITS_A_NEW_YEAR() ) CALL EMISS_BRAVO
! Read EMEP (Europe) emissions once per year (adj32_015)
IF ( LEMEP .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_EMEP_05x0666
#else
CALL EMISS_EMEP
#endif
ENDIF
! Read CAC emissions (adj32_015)
IF ( LCAC .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_CAC_ANTHRO_05x0666
#else
CALL EMISS_CAC_ANTHRO
#endif
ENDIF
! Read NEI2005 (USA) emissions (adj32_015)
IF ( LNEI05 .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO_05x0666 ! Use NEI05 anthro, global
#else
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO ! Use NEI05 anthro, global
#endif
ENDIF
! Calculate NEI2008 (USA) emissions every day
IF ( LNEI08 .AND. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_EPA_NEI
CALL EMISS_NEI2008_ANTHRO_NATIVE ! Use NEI08 anthro, nested
#else
CALL EMISS_EPA_NEI
CALL EMISS_NEI2008_ANTHRO ! Use NEI08 anthro, global
#endif
ENDIF
IF (LHTAP .and. ITS_A_NEW_MONTH() ) CALL EMISS_HTAP
! Read SO2 ARCTAS emissions
IF ( LARCSHIP .AND. ITS_A_NEW_YEAR() )
$ CALL EMISS_ARCTAS_SHIP( YEAR )
! Read NEI2008 (USA) emissions every month
IF ( LNEI08 .AND. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_NEI2008_ANTHRO_NATIVE
#else
CALL EMISS_NEI2008_ANTHRO
#endif
ENDIF
! Read ICOADS ship emissions once per month (cklee, 7/09/09)
IF ( LICOADSSHIP .and. ITS_A_NEW_MONTH() )
& CALL EMISS_ICOADS_SHIP
! Read look up tables for PARANOX ship plume model (mpayer, 2/7/12)
IF ( ( LICOADSSHIP .or. LEDGARSHIP .or. LEMEPSHIP )
& .and. ITS_A_NEW_MONTH() ) THEN
CALL READ_PARANOX_LUT
ENDIF
! C2H6 emissions using RETRO are too low, use Yaping Xiao's
! offline C2H6 emissions instead (mpayer, 3/22/12)
CALL EMISSC2H6
! NOx-Ox-HC (w/ or w/o aerosols)
CALL EMISSDR
! Emissions for various aerosol types
IF ( LSSALT ) CALL EMISSSEASALT
IF ( LSULF .or. LCRYST ) CALL EMISSSULFATE
IF ( LCARB ) CALL EMISSCARBON
IF ( LDUST ) CALL EMISSDUST
ELSE IF ( ITS_AN_AEROSOL_SIM() ) THEN
!--------------------
! Offline aerosol
!--------------------
! Read David Streets' emisisons over China / SE ASia
!----------------
! prior to 12/9/08
! IF ( LSTREETS .and. ITS_A_NEW_YEAR() ) THEN
IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_STREETS_ANTHRO_05x0666 !(dan)
#elif defined( GRID025x03125 )
CALL EMISS_STREETS_ANTHRO_025x03125 ! (lzh,02/01/2015)
#else
CALL EMISS_STREETS_ANTHRO
#endif
ENDIF
! Read CAC emissions (adj32_015)
IF ( LCAC .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_CAC_ANTHRO_05x0666
#else
CALL EMISS_CAC_ANTHRO
#endif
ENDIF
! Read EDGAR emissions once per month
!----------------
! prior to 3/11/08
! IF ( LEDGAR .and. ITS_A_NEW_MONTH() ) THEN
!----------------
IF ( ITS_A_NEW_MONTH() ) THEN
CALL EMISS_EDGAR( YEAR, MONTH )
ENDIF
! Read EPA/NEI99 emissions once per month
IF ( LNEI99 .and. ITS_A_NEW_MONTH() ) CALL EMISS_EPA_NEI
! Read NEI2005 emissions once per month (adj32_015)
IF ( LNEI05 .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO_05x0666 ! Use NEI05 anthro, global
#else
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO ! Use NEI05 anthro, global
#endif
ENDIF
! Calculate NEI2008 emissions once per day
IF ( LNEI08 .AND. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 ) .or. defined( GRID025x03125 )
CALL EMISS_NEI2008_ANTHRO_NATIVE
#else
CALL EMISS_NEI2008_ANTHRO
#endif
ENDIF
IF (LHTAP .and. ITS_A_NEW_MONTH() ) CALL EMISS_HTAP
! Read BRAVO (Mexico) emissions once per year
IF ( LBRAVO .and. ITS_A_NEW_YEAR() ) CALL EMISS_BRAVO
! Read EMEP (Europe) emissions once per year (adj32_015)
IF ( LEMEP .and. ITS_A_NEW_YEAR() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_EMEP_05x0666
#else
CALL EMISS_EMEP
#endif
ENDIF
! Read SO2 ARCTAS emissions
IF ( LARCSHIP .AND. ITS_A_NEW_YEAR() )
$ CALL EMISS_ARCTAS_SHIP( YEAR )
! Read ICOADS ship emissions once per month !(cklee, 7/09/09)
IF ( LICOADSSHIP .and. ITS_A_NEW_MONTH() ) THEN
CALL EMISS_ICOADS_SHIP
ENDIF
! Emissions for various aerosol types
IF ( LSSALT ) CALL EMISSSEASALT
IF ( LSULF .or. LCRYST ) CALL EMISSSULFATE
IF ( LCARB ) CALL EMISSCARBON
IF ( LDUST ) CALL EMISSDUST
ELSE IF ( ITS_A_RnPbBe_SIM() ) THEN
!--------------------
! Rn-Pb-Be
!--------------------
CALL EMISSRnPbBe
ELSE IF ( ITS_A_CH3I_SIM() ) THEN
!--------------------
! CH3I
!--------------------
! Emit CH3I
CALL EMISSCH3I
ELSE IF ( ITS_A_HCN_SIM() ) THEN
!--------------------
! HCN - CH3CN
!--------------------
CALL EMISS_HCN_CH3CN( N_TRACERS, STT )
ELSE IF ( ITS_A_TAGCO_SIM() ) THEN
!--------------------
! Tagged CO
!--------------------
! Read David Streets' emisisons over China / SE ASia
! Bug fix: call every month now (pdk, phs, 3/17/09)
IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_STREETS_ANTHRO_05x0666 !(dan)
#elif defined( GRID025x03125 )
CALL EMISS_STREETS_ANTHRO_025x03125 ! (lzh,02/01/2015)
#else
CALL EMISS_STREETS_ANTHRO
#endif
ENDIF
! Read CAC emissions (adj32_015)
IF ( LCAC .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_CAC_ANTHRO_05x0666
#else
CALL EMISS_CAC_ANTHRO
#endif
ENDIF
! Read EDGAR emissions once per month
!----------------
! prior to 3/11/08
! IF ( LEDGAR .and. ITS_A_NEW_MONTH() ) THEN
!----------------
IF ( ITS_A_NEW_MONTH() ) THEN
CALL EMISS_EDGAR( YEAR, MONTH )
ENDIF
! Read EPA (USA) emissions once per month
IF ( LNEI99 .and. ITS_A_NEW_MONTH() ) CALL EMISS_EPA_NEI
! Read NEI2005 (USA) emissions once per year (adj32_015)
IF ( LNEI05 .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO_05x0666 ! Use NEI05 anthro, global
#else
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO ! Use NEI05 anthro, global
#endif
ENDIF
! Read NEI2008 (USA) emissions once per month
IF ( LNEI08 .AND. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 ) .or. defined ( GRID025x03125 )
CALL EMISS_NEI2008_ANTHRO_NATIVE ! Use NEI08 anthro, nested
#else
CALL EMISS_NEI2008_ANTHRO ! Use NEI08 anthro, global
#endif
ENDIF
IF (LHTAP .and. ITS_A_NEW_MONTH() ) CALL EMISS_HTAP
! Read BRAVO (Mexico) emissions once per year
IF ( LBRAVO .and. ITS_A_NEW_YEAR() ) CALL EMISS_BRAVO
! Read EPA (Europe) emissions once per year (adj32_015)
IF ( LEMEP .and. ITS_A_NEW_YEAR() ) THEN
#if defined(GRID05x0666)
CALL EMISS_EMEP_05x0666
#else
CALL EMISS_EMEP
#endif
ENDIF
! Read ICOADS ship emissions once per month (cklee, 7/09/09)
IF ( LICOADSSHIP .and. ITS_A_NEW_MONTH() ) THEN
CALL EMISS_ICOADS_SHIP
ENDIF
! Now call EMISSDR for Tagged CO fossil fuel emissions,
! so that we get the same emissions for Tagged CO as
! we do for the full-chemistry (jaf, mak, bmy, 2/14/08)
CALL EMISSDR
! Emit tagged CO
CALL EMISS_TAGGED_CO
ELSE IF ( ITS_A_C2H6_SIM() ) THEN
!--------------------
! C2H6
!--------------------
! Emit C2H6
CALL EMISSC2H6
ELSE IF ( ITS_A_CH4_SIM() ) THEN
!--------------------
! CH4
!--------------------
! Read David Streets' emisisons over China / SE ASia
! Bug fix: call every month now (phs, 3/17/09)
IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_STREETS_ANTHRO_05x0666 !(dan)
#else
CALL EMISS_STREETS_ANTHRO
#endif
ENDIF
! Emit CH4
CALL EMISSCH4
ELSE IF ( ITS_A_MERCURY_SIM() ) THEN
!--------------------
! Mercury
!--------------------
CALL EMISSMERCURY
ELSE IF ( ITS_A_CO2_SIM() ) THEN
!--------------------
! CO2
!--------------------
! Read David Streets' emisisons over China / SE ASia
! Bug fix: call every month now (phs, 3/17/09)
IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_STREETS_ANTHRO_05x0666 !(dan)
#else
CALL EMISS_STREETS_ANTHRO
#endif
ENDIF
! Read CO2 ARCTAS SHIP emissions
IF ( LARCSHIP .and. ITS_A_NEW_YEAR() )
$ CALL EMISS_ARCTAS_SHIP( YEAR )
! Emit CO2
CALL EMISSCO2
ELSE IF ( ITS_A_H2HD_SIM() ) THEN
!--------------------
! Offline H2/HD
!--------------------
! Read David Streets' emisisons over China / SE ASia
! Bug fix: call every month now (phs, 3/17/09)
IF ( LSTREETS .and. ITS_A_NEW_MONTH() ) THEN
#if defined(GRID05x0666)
CALL EMISS_STREETS_ANTHRO_05x0666 !(dan)
#else
CALL EMISS_STREETS_ANTHRO
#endif
ENDIF
! Read EDGAR emissions once per month
!----------------
! prior to 3/11/08
! IF ( LEDGAR .and. ITS_A_NEW_MONTH() ) THEN
!----------------
IF ( ITS_A_NEW_MONTH() ) THEN
CALL EMISS_EDGAR( YEAR, MONTH )
ENDIF
! Read CAC emissions (adj32_015)
IF ( LCAC .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_CAC_ANTHRO_05x0666
#else
CALL EMISS_CAC_ANTHRO
#endif
ENDIF
! Read EPA (USA) emissions once per month
IF ( LNEI99 .and. ITS_A_NEW_MONTH() ) CALL EMISS_EPA_NEI
! Read NEI2005 (USA) emissions (adj32_015)
IF ( LNEI05 .and. ITS_A_NEW_MONTH() ) THEN
#if defined( GRID05x0666 )
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO_05x0666 ! Use NEI05 anthro, global
#else
CALL EMISS_EPA_NEI ! Use NEI99 biofuel, nested
CALL EMISS_NEI2005_ANTHRO ! Use NEI05 anthro, global
#endif
ENDIF
! Read BRAVO (Mexico) emissions once per year
IF ( LBRAVO .and. ITS_A_NEW_YEAR() ) CALL EMISS_BRAVO
! Read EPA (Europe) emissions once per year (adj32_015)
IF ( LEMEP .and. ITS_A_NEW_YEAR() ) THEN
#if defined(GRID05x0666)
CALL EMISS_EMEP_05x0666
#else
CALL EMISS_EMEP
#endif
ENDIF
! Read ICOADS ship emissions once per month !(cklee, 7/09/09)
IF ( LICOADSSHIP .and. ITS_A_NEW_MONTH() ) THEN
CALL EMISS_ICOADS_SHIP
ENDIF
! Emit H2/HD
CALL EMISS_H2_HD
ENDIF
!### Debug
IF ( LPRT ) CALL DEBUG_MSG ( '### DO_EMISSIONS: a EMISSIONS' )
! Return to calling program
END SUBROUTINE DO_EMISSIONS
!------------------------------------------------------------------------------
! End of module
END MODULE EMISSIONS_MOD
!EOC