Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

removing dxy from GOCART dust emission schemes. Code clean-up. #1431

Merged
merged 1 commit into from
Mar 24, 2021
Merged

removing dxy from GOCART dust emission schemes. Code clean-up. #1431

merged 1 commit into from
Mar 24, 2021

Conversation

saneku
Copy link
Contributor

@saneku saneku commented Mar 11, 2021

TYPE: enhancement

KEYWORDS: GOCART, dust emission, dust_opt, WRF-Chem

SOURCE: Alexander Ukhov (KAUST)

DESCRIPTION OF CHANGES:
This PR affects dust emission schemes (dust_opt=1,3,4) coupled with GOCART
aerosol module.

  1. Current implementation of dust_opt=1,3 calculates air mass in the grid box using
    cell area and height, and air density, however a more elegant solution is now implemented
    (by analogy with dust_opt=4). This solution only requires height of the lowest model layer.
  2. Another issue have been also resolved when using dust_opt=1. Due to incorrect
    indexing in the tile loop dust emissions diagnostics (variables EDUST1…5) were zero
    near the boundaries of the domain.
  3. Each emission scheme (dust_opt=1,3,4) reported instantaneous dust emissions diagnostics
    (variables EDUST1…5) in different units: dust_opt=1 [kg/cell/dt], dust_opt=3 [gram/m^2/s],
    dust_opt=4 [ug/m^2/s]. For user convenience this discrepancy also has been fixed.
    now EDUST1..5 variables store accumulated dust emissions [kg/m^2] for dust_opt=1,3,4.
    For example, this can be useful when is necessary to estimate dust mass balance. In this
    case accumulated dust emission needs to be multiplied by cell area (m^2), see Appendix of [1].
  4. Code clean-up has been also done in dust_opt=1,3.

LIST OF MODIFIED FILES:
M Registry/registry.chem
M chem/emissions_driver.F
M chem/module_gocart_dust.F
M chem/module_gocart_dust_afwa.F
M chem/module_qf03.F
M chem/module_uoc_dust.F

TESTS CONDUCTED:

  1. To demonstrate correctness of the implemented changes a numerical simulations of the dust
    over the Middle East (chem_opt=301 with dust_opt=1,3,4, 100km resolution) with and without changes has been run.

concentrations_test

loadings_test

emissions_test

Produced results (total dust surface concentration, total dust column loadings, and
accumulated total dust emissions at the end of 3 day simulation) before and after changes
are Identical, which is expected. Except for the case, where total dust emissions are
compared for dust_opt=1 (see pt. 2 above).

[1] Ukhov, A., Ahmadov, R., Grell, G., and Stenchikov, G.:
Improving dust simulations in WRF-Chem v4.1.3 coupled with the GOCART
aerosol module, Geosci. Model Dev., 14, 473–493,
https://doi.org/10.5194/gmd-14-473-2021, 2021.

RELEASE NOTE: Dependency on cell area (dxy=dx*dx) is removed from calculation of dust emissions (dust_opt=1,3,4. GOCART aerosol module). Output diagnostics of dust emission were unified across dust_opt=1,3,4. Code clean-up is dust_opt=1,2.

  1. Jenkins testing is all PASS.

@saneku saneku requested a review from a team as a code owner March 11, 2021 14:30
@davegill davegill changed the base branch from master to develop March 11, 2021 15:02
@davegill
Copy link
Contributor

jenkins is OK

Please find result of the WRF regression test cases in the attachment. This build is for Commit ID: 8fd180e2cdb9958481e27a04949f2edf5d363f6b, requested by: saneku for PR: https://github.com/wrf-model/WRF/pull/1431. For any query please send e-mail to David Gill.

    Test Type              | Expected  | Received |  Failed
    = = = = = = = = = = = = = = = = = = = = = = = =  = = = =
    Number of Tests        : 19           18
    Number of Builds       : 48           46
    Number of Simulations  : 163           161        0
    Number of Comparisons  : 103           102        0

    Failed Simulations are: 
    None
    Which comparisons are not bit-for-bit: 
    None

Copy link
Contributor

@jordanschnell jordanschnell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved

@jordanschnell jordanschnell merged commit 6273be2 into wrf-model:develop Mar 24, 2021
@saneku saneku deleted the remove_dxy_from_GOCART_dust_emission_schemes branch February 26, 2022 19:51
jordanschnell pushed a commit that referenced this pull request Apr 5, 2022
Code clean-up in dust emissions, when MOSAIC aerosol scheme is used.

TYPE: No impact, enhancement

KEYWORDS: dust emissions, GOCART, MOSAIC, WRF-Chem

SOURCE: Alexander Ukhov (KAUST)

DESCRIPTION OF CHANGES:
Problem:

Code duplication in dust_opt=13 (GOCART dust emissions, when MOSAIC aerosol scheme is used), i.e. removed duplicate mosaic_source_du(). Instead, source_du() is called from module_gocart_dust.F
Accumulated fluxes (kg/m2) of grav. settled and dry deposited dust are now being stored. Before instantaneous fluxes (ug m^-2 s^-1) were stored. See also PR removing dxy from GOCART dust emission schemes. Code clean-up. #1431, for details.
Dust emissions ( EDUST1..5 variables, when dust_opt=13) are also stored as accumulated flux.
Removed unused variable ‘p8w’
Removed unused variable ‘dx’
Instead of new variable 'dust_flux' standard variable 'emis_dust' is used.
ISSUE:
Fixes #711

LIST OF MODIFIED FILES:
M Registry/registry.chem
M chem/chem_driver.F
M chem/emissions_driver.F
M chem/module_gocart_drydep.F
M chem/module_gocart_dust_afwa.F
M chem/module_gocart_settling.F
M chem/module_mosaic_addemiss.F

TESTS CONDUCTED:

Two runs have been conducted: 1. chem_opt=10, dust_opt=13, and 2. chem_opt=301, dust_opt=1. Same domain as in PR1431.
1.1 Dust emissions (sum of EDUST1...5 variables) have been compared.
image

Dust emissions (pattern and values) are the same, which is expected.
cdo expr,'emissions=EDUST1+EDUST2+EDUST3+EDUST4+EDUST5' ./wrfout_d01_2016-06-24_00:00:00_gocart ./wrfout_d01_2016-06-24_00:00:00_gocart_emissions
cdo expr,'emissions=EDUST1+EDUST2+EDUST3+EDUST4+EDUST5' ./wrfout_d01_2016-06-24_00:00:00_mosaic ./wrfout_d01_2016-06-24_00:00:00_mosaic_emissions

1.2. Next plot shows comparison of dust column loadings.
image
Due to difference in size bins dust loadings on the right (GOCART aerosol scheme) are higher. But spatial patterns are the same, which is expected.

cdo expr,'LOAD=DUST_1+DUST_2+DUST_3+DUST_4*0.74' ./wrfout_d01_2016-06-24_00:00:00_gocart ./wrfout_d01_2016-06-24_00:00:00_gocart_load
cdo expr,'LOAD=oin_a01+oin_a02+oin_a03+oin_a04+oin_a05+oin_a06+oin_a07+oin_a08' ./wrfout_d01_2016-06-24_00:00:00_mosaic ./wrfout_d01_2016-06-24_00:00:00_mosaic_load

Are the Jenkins tests all passing?
RELEASE NOTE: Code refactoring in GOCART emissions, when MOSAIC aerosol scheme is used.

* drydep and grav. settling fluxes are now in kg/m2

* code clean-up and refactoring of GOCART dust emissions, when MOSAIC aerosols

* removed unused dx variable from AFWA dust emission scheme
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
TYPE: enhancement

KEYWORDS: GOCART, dust emission, dust_opt, WRF-Chem

SOURCE: Alexander Ukhov (KAUST)

DESCRIPTION OF CHANGES:
This PR affects dust emission schemes (dust_opt=1,3,4) coupled with GOCART
aerosol module.

Current implementation of dust_opt=1,3 calculates air mass in the grid box using
cell area and height, and air density, however a more elegant solution is now implemented
(by analogy with dust_opt=4). This solution only requires height of the lowest model layer.
Another issue have been also resolved when using dust_opt=1. Due to incorrect
indexing in the tile loop dust emissions diagnostics (variables EDUST1…5) were zero
near the boundaries of the domain.
Each emission scheme (dust_opt=1,3,4) reported instantaneous dust emissions diagnostics
(variables EDUST1…5) in different units: dust_opt=1 [kg/cell/dt], dust_opt=3 [gram/m^2/s],
dust_opt=4 [ug/m^2/s]. For user convenience this discrepancy also has been fixed.
now EDUST1..5 variables store accumulated dust emissions [kg/m^2] for dust_opt=1,3,4.
For example, this can be useful when is necessary to estimate dust mass balance. In this
case accumulated dust emission needs to be multiplied by cell area (m^2), see Appendix of [1].
Code clean-up has been also done in dust_opt=1,3.
LIST OF MODIFIED FILES:
M Registry/registry.chem
M chem/emissions_driver.F
M chem/module_gocart_dust.F
M chem/module_gocart_dust_afwa.F
M chem/module_qf03.F
M chem/module_uoc_dust.F

TESTS CONDUCTED:

To demonstrate correctness of the implemented changes a numerical simulations of the dust
over the Middle East (chem_opt=301 with dust_opt=1,3,4, 100km resolution) with and without changes has been run.
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
Code clean-up in dust emissions, when MOSAIC aerosol scheme is used.

TYPE: No impact, enhancement

KEYWORDS: dust emissions, GOCART, MOSAIC, WRF-Chem

SOURCE: Alexander Ukhov (KAUST)

DESCRIPTION OF CHANGES:
Problem:

Code duplication in dust_opt=13 (GOCART dust emissions, when MOSAIC aerosol scheme is used), i.e. removed duplicate mosaic_source_du(). Instead, source_du() is called from module_gocart_dust.F
Accumulated fluxes (kg/m2) of grav. settled and dry deposited dust are now being stored. Before instantaneous fluxes (ug m^-2 s^-1) were stored. See also PR removing dxy from GOCART dust emission schemes. Code clean-up. wrf-model#1431, for details.
Dust emissions ( EDUST1..5 variables, when dust_opt=13) are also stored as accumulated flux.
Removed unused variable ‘p8w’
Removed unused variable ‘dx’
Instead of new variable 'dust_flux' standard variable 'emis_dust' is used.
ISSUE:
Fixes wrf-model#711

LIST OF MODIFIED FILES:
M Registry/registry.chem
M chem/chem_driver.F
M chem/emissions_driver.F
M chem/module_gocart_drydep.F
M chem/module_gocart_dust_afwa.F
M chem/module_gocart_settling.F
M chem/module_mosaic_addemiss.F

TESTS CONDUCTED:

Two runs have been conducted: 1. chem_opt=10, dust_opt=13, and 2. chem_opt=301, dust_opt=1. Same domain as in PR1431.
1.1 Dust emissions (sum of EDUST1...5 variables) have been compared.
image

Dust emissions (pattern and values) are the same, which is expected.
cdo expr,'emissions=EDUST1+EDUST2+EDUST3+EDUST4+EDUST5' ./wrfout_d01_2016-06-24_00:00:00_gocart ./wrfout_d01_2016-06-24_00:00:00_gocart_emissions
cdo expr,'emissions=EDUST1+EDUST2+EDUST3+EDUST4+EDUST5' ./wrfout_d01_2016-06-24_00:00:00_mosaic ./wrfout_d01_2016-06-24_00:00:00_mosaic_emissions

1.2. Next plot shows comparison of dust column loadings.
image
Due to difference in size bins dust loadings on the right (GOCART aerosol scheme) are higher. But spatial patterns are the same, which is expected.

cdo expr,'LOAD=DUST_1+DUST_2+DUST_3+DUST_4*0.74' ./wrfout_d01_2016-06-24_00:00:00_gocart ./wrfout_d01_2016-06-24_00:00:00_gocart_load
cdo expr,'LOAD=oin_a01+oin_a02+oin_a03+oin_a04+oin_a05+oin_a06+oin_a07+oin_a08' ./wrfout_d01_2016-06-24_00:00:00_mosaic ./wrfout_d01_2016-06-24_00:00:00_mosaic_load

Are the Jenkins tests all passing?
RELEASE NOTE: Code refactoring in GOCART emissions, when MOSAIC aerosol scheme is used.

* drydep and grav. settling fluxes are now in kg/m2

* code clean-up and refactoring of GOCART dust emissions, when MOSAIC aerosols

* removed unused dx variable from AFWA dust emission scheme
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants