-
Notifications
You must be signed in to change notification settings - Fork 170
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
Capture all tropopause and PBL height changes in budget diagnostics #2103
base: dev/no-diff-to-benchmark
Are you sure you want to change the base?
Capture all tropopause and PBL height changes in budget diagnostics #2103
Conversation
@cdholmes, please review my updates and read through my description above. |
This update will impact GCPy operations budget tables which use the current Trop budget to compute budget in the stratosphere. |
I verified that the budget diagnostics work in this branch. I suggest some improvements in PR #2215. |
6dca8fd
to
59cce65
Compare
@cdholmes, please see the updated changes. I also updated the description at the start of the PR. Please read through to make sure it is comprehensive and what you have in mind. |
@lizziel, The PR description is fine with me and I see no issues with the latest code changes. Thanks! |
0965512
to
f52a65a
Compare
I pushed updates to print out location of computing budget either before ("(1)") or after ("(2)"). These messages, along with the budget check messages, are only printed if verbose is turned on in
The budgets computed are only for ozone. |
All integration tests for GC-Classic and GCHP pass. However, we need to figure out why there are warning messages when the budget check is on before bringing in this PR. |
@cdholmes, we are wrapping up 14.4.0 now. I can take a look at this after the version release. Have you had a chance to look? |
@cdholmes I will rebase this PR on 14.4.1 this week to remove the conflicts. |
5336750
to
b03f08e
Compare
This PR is now rebased on 14.4.1. It should only be used with super-project repo version 14.4.1. I will run integration tests and check if I still get the same result as before. |
I am testing this PR again. In a benchmark simulation I see the following warnings in the first timestep. Between Do_Transport and Compute_PBL_Height
Between Compute_PBL_Height and DO_PBL_MIX_2
Between DO_PBL_MIX_2 and DO_TEND
Between DO_TEND and Do_Convection
Between AIRQNT and Do_Chemistry
|
I found a bug resulting from the recent addition of the fixed levels budget diagnostic. I pushed the fix. There is one remaining issue with warning message here:
|
I believe the remaining difference is due to the presence of the H2O species. I will update the mass check to exclude H2O and CLOCK and remove the message that the warning is expected if those species are present. If the warning then goes away I will make this PR ready for review. |
I still get the warning after adding code to exclude H2O and CLOCK masses (if any). |
7b82f20
to
1faf61d
Compare
I rebased this onto dev/14.5.0 and will resume testing once 14.5.0 is released. |
This merge brings updates from GEOS-Chem 14.5.1 into the dev/14.6.0 branch. This will be tagged as 14.5.0-alpha.1. Signed-off-by: Bob Yantosca <[email protected]>
run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem - When 14.5.1 was merged into 14.6.0-alpha.1, the updates to HEMCO_Config.rc (i.e. Fix CEDS TMB emissions) were clobbered. This commit restores them. The GFED4 climatology entries (which are off by default) in the GCClassic HEMCO_Config.rc.fullchem have also been restored to the GCHP HEMCO_Config.rc.fullchem file. Signed-off-by: Bob Yantosca <[email protected]>
run/GCClassic/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem run/GCHP/HEMCO_Config.rc.templates/HEMCO_Config.rc.fullchem - When 14.5.1 was merged into 14.6.0-alpha.1, the updates to HEMCO_Config.rc (i.e. Fix CEDS TMB emissions) were clobbered. This commit restores them. The GFED4 climatology entries (which are off by default) in the GCClassic HEMCO_Config.rc.fullchem have also been restored to the GCHP HEMCO_Config.rc.fullchem file. Signed-off-by: Bob Yantosca <[email protected]>
This merge brings PR #2683 (Restore updates for TMB emissions that were clobbered whem 14.5.1 was merged into dev/14.6.0, by @yantosca) into the GEOS-Chem 14.6.0 development stream. This PR restores the updates to the HEMCO_Config.rc files from 14.6.0-alpha.0 that were seemingly clobbered when 14.5.1 was merged into dev/14.6.0. Signed-off-by: Bob Yantosca <[email protected]>
…nges BudgetTransportTropHeight and BudgetMixingPBLHeight are only allocated if BudgetTransportTrop and BudgetMixingPBL are in HISTORY.rc. They are not registered and do not have use a separate mapping from the transport trop and mixing PBL budget diagnostics. This commit creates the arrays but does not populate or use them. Signed-off-by: Lizzie Lundgren <[email protected]>
Accumulation is off by default, meaning the budget diagnostic arrays are zeroed out prior to setting them within compute_budget_diagnostics. The accumulation option will prevent setting them to zero, effectively allowing the array to accumulation every time compute_budget_diagnostics are called. All budget diagnostics that use this option should be added to Zero_Diagnostics_StartofTimestep (assuming dynamic timestep diag) so that accumulation is over one timestep only. Signed-off-by: Lizzie Lundgren <[email protected]>
This update includes passing state_diag to compute_pbl_height and adding the budget mixing PBL height array to budget mixing PBL diagnostics in diagnostics_mod. Signed-off-by: Lizzie Lundgren <[email protected]>
Updates in this commit include: - Pass State_Diag to AirQnt and all subroutines that call it - Add optional input logical Update_Budget_TropHt to AirQnt - Update budget trop ht diagnostic array when AirQnt is called within Set_H2o_Trac and within GC-Classic main.F - Accumulate the budget transport trop ht array since it is updated in multiple locations across one timestep - Add Budget transport trop ht array to budget transport trop diagnostic at the end of each timestep - Reset the state_diag budget transport trop ht array to zero at the start of each timestep (since accumulated) NOTE: Do not compute the budget transport trop ht array when AirQnt is called within mixing, GC-Classic advection, GC-Classic met-field initial read, or GCHP main (gchp_chunk_mod). Species mass changes due to changes in tropopause level during mixing and GC-Classic advection are already captured within other budget diagnostics. GCHP transport budget diagnostics are not used. And initial GC-Classic met-field read would have zero mass for initial since species concentrations not yet read (tropopause ht would also be zero initially). Signed-off-by: Lizzie Lundgren <[email protected]>
Budget diagnostics all accumulate so these variables are no longer needed.
Raise an error message when the tracer mass changes in code sections not expected by budget diagnostics. The budget diagnostics currently do not track all changes in H2O or CLOCK, so messages will be raised when these species are simulated.
…tart There is now the option to zero out diagnostics only at the start of chemistry timesteps. Signed-off-by: Lizzie Lundgren <[email protected]>
…steps Signed-off-by: Lizzie Lundgren <[email protected]>
The budget check computation and warning prints will only occur on the root thread when running GCHP or other MPI models.
This update removes diagnostics_mod dependency on aerosol_mod because of circular dependency preventing successful build. Signed-off-by: Lizzie Lundgren <[email protected]>
This feature is not currently used. Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
budgetCheck was previously set to verbose. Using verbose directly is more clear. Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
These logicals are used in both aerosol_mod and in diagnostics_mod. This update also includes removing earlier update to add two of the logicals to state_diag. This update enables preserving the previous update to take away aerosol_mod as a dependency in diagnostics_mod. Signed-off-by: Lizzie Lundgren <[email protected]>
Signed-off-by: Lizzie Lundgren <[email protected]>
This avoids an error in budget diagnostic code which requires units of kg/kg. Signed-off-by: Lizzie Lundgren <[email protected]>
dfaadda
to
e98cb2a
Compare
Name and Institution (Required)
Names: Lizzie Lundgren (Harvard University) and Chris Holmes (FSU)
Describe the update
This PR is based on updates for version 12.9.3 provided by Chris Holmes (@cdholmes) in #2079, and additional updates submitted in #2215. Budget diagnostics now include mass tendency due to changes in:
All budget diagnostic arrays are now accumulated across the timestep after initializing to zero at the start of the timestep. Chemistry, emissions, and dry deposition budget diagnostic arrays are only set to zero at the start of the chemistry timestep.
Species mass change in the troposphere due to changes in the tropopause heights are now accumulated over the timestep in GC-Classic when
AirQnt
is called outside of an existing budget diagnostic block. This specifically includes one call inmain.F90
(when meteorology is updated due to new timestep) and all calls fromSet_H2O_Trac
(when meteorology is updated due to a change in moisture). By default callingAirQnt
will not result in updating the transport trop budget array; it must be explicitly specified in the arguments list that this should be done.Turning on GEOS-Chem verbose will enable a budget check when computing budget diagnostics. Column mass per species from the end of the last budget calculation is compared to the column mass at the start of a new budget calculation. If values differ then warning messages are printed to log. This is done for each of the 3 primary vertical regions (fixed level budget is ignored). The check is only done on the root thread if running with MPI.
To avoid dependency issues during build this PR also introduces State_Diag object logicals isPOA and isOPOA. These are used in
diagnostics_mod
to replace dependency onaerosol_mod
.Expected changes
The PBL mixing budget diagnostic values will change for both GC-Classic and GCHP. The transport trop budget diagnostic values will change for GC-Classic only (we do not use transport budget diagnostics in GCHP since tpcore is not used). No changes are needed to
HISTORY.rc
for this update.Species mass changes in the PBL and troposphere due to mixing and transport respectively will now include fluctuations in species mass at the top due to changing definition of the vertical region top level. For example, if the PBL top level changes from 26 to 25 in timestep A in the call to
Compute_PBL_Height
which happens before mixing, then the mixing budget for timestep A will be the change in species mass due to mixing for levels 1 to 25 minus the species grid cell mass in level 26. This is because level 26 is no longer included in the PBL, representing a mass loss for the mixing diagnostic. If PBL top level increases rather than decreases then the species mass in the top grid cell is added.Note that the fluctuation due to changing vertical region is total species mass in the grid cell at the top. The base values of the budget, in contrast, are the change in species mass across a single component, in this example mixing. PBL mixing and trop transport budget mass changes may therefore be dominated by changes in the top-level and this should be taken into account when interpreting these diagnostics.
Users who do not want to include the changes in the total grid cell mass at the top boundary will be able to use a new diagnostic for fixed levels that will be included in GEOS-Chem 14.3.1. See #2127. This diagnostic can be used to examine mass change due to mixing or transport within a fixed vertical region (defined by level index not pressure).
Reference(s)
See also #2002 for initial discussion.
Related Github Issue(s)
None