-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
- init_data_modules(): use this as a reference to make sure all options and tolerances are consistent
- AllocateMemory(): use this as a reference to make sure all necessary information for urban plume is carried
Implementation
main:
- IntegrateChemistry(): calls GasChemistry, AerChemistry, CldChemistry
aerosol:
- AerChemistry()
- MOSAIC_BOX()
- load_mosaic_parameters(): sets control options, ASTEM parameters, MESA parameters, gas, electrolyte, cation, anion, and aerosol indices, phase state names, aerosol, gas, and electrolyte species names, molecular weights of electrolytes, generic aerosol species, compounds, and ions, ion charges, electrolyte, generic aerosol species, and compound densities, partial molar volumes of condensing species, and refractive indices --> much of this is already handled in the existing MESA code; check to make sure everything needed is present
- aerosol indices
- electrolyte indices
- ion indices
- molecular weights of electrolytes
- molecular weights of ions
- magnitude of charges on ions
- densities of electrolytes
- densities of compounds
- molecular weights of generic aerosol species
- polynomial coefficients for binary molality (a_zsr and b_zsr)
- parameters for MTEM mixing rules (b_mtem)
- coefficients for MDRH calculations (d_mdrh)
- initialize_mosaic_variables(): sets default values for relevant arrays allocated in AllocateMemory
- update_thermodynamic_constants(): updates all temperature-dependent thermodynamic parameters
- MTEM_compute_log_gamZ(): computes MTEM ternary parameters once per transport time step for a given water activity (aH20 = RH)
- fn_Keq()
- fn_Po()
- drh_mutual()
- molality_0()
- map_mosaic_species_BOX(): maps rsub(k, l, m) to and from MOSAIC arrays: gas and aer --> everything related to aerosols is commented out, so we probably don't need this but just confirming
- overall_massbal_in()
- MOSAIC_dynamic_solver(): interface to dynamic gas-particle exchange solver
- check_aerosol_mass(): check to see if aerosol mass is small enough to be neglected and determine aerosol phase state
- conform_electrolytes(): conforms aerosol species to a valid electrolyte composition
- Testing note: 2 cases dependent on sulfate ratio
- calculate_XT(): computes sulfate ratio
- form_caso4()
- form_camsa2()
- form_na2so4()
- form_namsa()
- form_cano3()
- form_nano3()
- form_nacl()
- form_cacl2()
- form_caco3()
- form_nh4so4()
- form_nh4msa()
- form_nh4no3()
- form_nh4cl()
- form_msa()
- degas_hno3()
- degas_hcl()
- degas_nh3()
- form_nh4so4_lvcite()
- form_lvcite_nh4hso4()
- form_na2so4_nahso4()
- form_nahso4()
- form_h2so4()
- ASTEM(): Adaptive Step Time-Split Euler Method
- aerosol_phase_state(): determines the phase state of an aerosol bin; includes Kelvin effect
- calc_dry_n_wet_aerosol_props(): calculates densities, can neglect the portions that calculate refractive indices
- aerosol_mtc(): computes mass transfer coefficients for condensing species; needs some adjusting probably because there are conditionals based on the aerosol model structure (i.e., modal vs. sectional); lots of
GOTO
- mean_molecular_speed()
- calc_dry_n_wet_aerosol_props()
- gas_diffusivity()
- fuchs_sutugin()
- beware
GOTO
- MESA: computes equilibrium solid and liquid phases by integrating pseudo-transient dissolution and precipitation rates; 3 steps: 1). check if water activity is below critical RH 2). check for supersaturation/metastable state 3). diagnose mutual deliquescence RH 4). catch all; sub-saturated or mixed-phase
- calculate_XT()
- adjust_solid_aerosol(): adjusts completely solid aerosol bin
- do_full_deliquescence(): partitions soluble electrolytes and insoluble electrolytes into the liquid and solid phases, respectively; calculates generic aerosol species concentrations in the solid and liquid phases
- adjust_liquid_aerosol(): adjusts completely liquid aerosol bin
- compute_activities()
- Testing note: 2 regimes: sulfate-rich vs. sulfate-poor
- beware
GOTO- calculate_XT()
- MESA_PTC()
- MESA_flux_salt(): calculates solid-liquid fluxes of soluble salts
- ions_to_electrolytes()
- compute_activities()
- MESA_estimate_eleliquid()
- MESA_dissolve_small_salt()
- MESA_convergence_criterion()
- adjust_solid_aerosol()
- electrolytes_to_ions()
- calculate_kelvin(): calculates Kelvin effect term
- calc_dry_n_wet_aerosol_props()
- ASTEM_non_volatiles(): condenses H2SO4, MSA, and NH3 analytically over chemistry time step
- conform_electrolytes()
- aerosol_phase_state()
- ASTEM_semi_volatiles(): integrates semi-volatile inorganic gases
- beware
GOTO- ASTEM_flux_dry(): computes gas-aerosol fluxes over dry aerosols
- Testing note: 4 cases
- calculate_XT()
- ASTEM_flux_dry_case1(): CaCO3 > 0; absorb all acids (and indirectly degas CO2)
- ASTEM_flux_dry_case2(): Sulfate-rich domain
- ASTEM_flux_dry_case3a(): HNO3 and HCl exchange; NH4Cl may form/evaporate
- ASTEM_flux_dry_case3b(): HNO3 and HCl exchange; NH4Cl may form/evaporate
- ASTEM_flux_dry_case4(): NH4NO3 or NH4Cl or both may be active
- ASTEM_flux_wet(): computes gas-aerosol fluxes over liquid aerosols
- Testing note: 4 cases
- Beware
GOTO- ions_to_electrolytes(): combinatorial method for computing electrolytes from ions
- Testing note: 2 cases dependent on sulfate ratio (near neutral vs. acidic)
- form_caso4()
- calculate_XT()
- compute_activities()
- ASTEM_flux_wet_case1(): CaCO3 > 0; absorb all acids (and indirectly degas CO2)
- ASTEM_flux_wet_case2(): Sulfate-rich domain
- absorb_tiny_nh4no3()
- absorb_tiny_nh4cl()
- ASTEM_flux_wet_case3(): NH4NO3 and/or NH4Cl may be active
- absorb_tiny_hno3():
- absorb_tiny_hcl():
- ASTEM_flux_wet_case4(): ammonia = 0; HNO3 and HCl exchange may happen
- ASTEM_flux_mix(): compute gas-aerosol fluxes over mixed-phase particles
- Testing note: 6 cases
- ASTEM_flux_wet_case1(): CaCO3 > 0; absorb all acids (indirectly degas CO2)
- ASTEM_flux_wet_case2(): Sulfate-rich domain
- ASTEM_flux_dry_case3a(): HNO3 and HCl exchange may happen here and NH4Cl may form/evaporate
- ASTEM_flux_dry_case3b(): HNO3 and HCl exchange may happen here and NH4Cl may form/evaporate
- ASTEM_flux_dry_case4(): NH4NO3 or NH4Cl or both may be active
- degas_tiny_nh4cl()
- ASTEM_flux_mix_case4a(): NH4NO3 (s) + NH4Cl (aq)
- degas_tiny_nh4no3()
- ASTEM_flux_mix_case4b(): NH4Cl (s) + NH4NO3 (aq)
- ASTEM_calculate_dtmax()
- beware
GOTO
- form_electrolytes(): forms electrolytes from ions
- Testing note: 2 cases based on sulfate ratio (near neutral vs. acidic)
- calculate_XT()
- form_caso4()
- form_camsa2()
- form_na2so4()
- form_namsa()
- form_cano3()
- form_nano3()
- form_nacl()
- form_cacl2()
- form_caco3()
- form_nh4so4()
- form_nh4msa()
- form_nh4no3()
- form_nh4cl()
- form_msa()
- degas_hno3()
- degas_hcl()
- degas_nh3()
- form_hno3()
- form_hcl()
- form_nh4so4_lvcite()
- form_lvcite_nh4hso4()
- form_na2so4_nahso4()
- form_nahso4()
- form_nh4hso4()
- form_h2so4()
- electrolytes_to_ions(): computes ions from electrolytes
- ASTEM_update_phase_eqblm(): updates solid-liquid partitioning after each gas-aerosol mass transfer step
- Testing note: 2 cases dependent on sulfate ratio (sulfate-rich vs. sulfate-poor)
- beware
GOTO- calculate_XT()
- adjust_solid_aerosol()
- do_full_deliquescence()
- MESA_PTC()
- MESA_flux_salt()
- ions_to_electrolytes()
- compute_activities()
- MESA_estimate_eleliquid()
- MESA_dissolve_small_salt()
- MESA_convergence_criterion()
- do_full_deliquescence()
- ASTEM_secondary_organics(): condenses secondary organic species over TSI time interval; mechanism adapted from SORGAM
- beware
GOTO- ASTEM_flux_SOA(): computes fluxes of SOA species
- ASTEM_dtmax_soa()
- calc_dry_n_wet_aerosol_props()
- overall_massball_out()
Metadata
Metadata
Assignees
Labels
No labels