Ignore:
Timestamp:
Feb 12, 2020 1:08:46 PM (5 years ago)
Author:
banzhafs
Message:

chemistry model: implemented on-demand emission read mode for LOD 2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/time_integration.f90

    r4360 r4403  
    2525! -----------------
    2626! $Id$
     27! Allowing both existing and on-demand emission read modes
     28!
     29! 4360 2020-01-07 11:25:50Z suehring
    2730! Bugfix, hour_call_emis uninitialized at first call of time_integration
    2831!
     
    208211
    209212    USE chem_emissions_mod,                                                                        &
    210         ONLY:  chem_emissions_setup
     213        ONLY:  chem_emissions_setup, chem_emissions_update_on_demand
    211214
    212215    USE chem_gasphase_mod,                                                                         &
     
    214217
    215218    USE chem_modules,                                                                              &
    216         ONLY:  bc_cs_t_val, chem_species, cs_name, emissions_anthropogenic, n_matched_vars
     219        ONLY:  bc_cs_t_val, chem_species, cs_name,                                                 &
     220               emissions_anthropogenic, emiss_read_legacy_mode,                                    &
     221               n_matched_vars
    217222
    218223    USE chemistry_model_mod,                                                                       &
     
    11621167       ENDIF
    11631168
    1164 !
    1165 !--    If required, consider chemical emissions
    1166        IF ( air_chemistry  .AND.  emissions_anthropogenic )  THEN
    1167 !
    1168 !--       Call emission routine only once an hour
    1169           !> @todo Move check of hour_call_emis into chem_emissions_setup
    1170           CALL get_date_time( time_since_reference_point, hour=hour )
    1171           IF ( hour_call_emis /= hour )  THEN
    1172           !> @question Which of these two if-statements is correct?
    1173           ! IF ( hour_of_year  >  hour_call_emis )  THEN
    1174              CALL chem_emissions_setup( chem_emis_att, chem_emis, n_matched_vars )
    1175              hour_call_emis = hour
    1176           ENDIF
    1177        ENDIF
     1169       
     1170!
     1171!-- 20200203 (ECC)
     1172!-- allows for emission update mode in legacy mode as well as on-demand mode
     1173!-- note that under on-demand mode emission update is no longer restricted to
     1174!-- an hourly frequency, but whenever the simulation time corresponds to an
     1175!-- inrement in emission timestamp value
     1176
     1177!
     1178!-- If required, consider chemical emissions
     1179
     1180       IF  ( air_chemistry .AND. emissions_anthropogenic )  THEN
     1181
     1182          IF  ( emiss_read_legacy_mode )  THEN
     1183!
     1184!-- get hourly index and updates emission data when the hour is passed
     1185
     1186             CALL get_date_time( time_since_reference_point, hour=hour )
     1187
     1188             IF  ( hour_call_emis /= hour )   THEN
     1189
     1190                CALL chem_emissions_setup( chem_emis_att, chem_emis, n_matched_vars )
     1191                hour_call_emis = hour
     1192
     1193             ENDIF
     1194
     1195          ELSE
     1196
     1197             CALL chem_emissions_update_on_demand
     1198
     1199          ENDIF
     1200
     1201       ENDIF
     1202
     1203
    11781204!
    11791205!--    If required, consider aerosol emissions for the salsa model
Note: See TracChangeset for help on using the changeset viewer.