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

Mass conservation upon restart #2536

Open
yuanjianz opened this issue Oct 25, 2024 · 0 comments
Open

Mass conservation upon restart #2536

yuanjianz opened this issue Oct 25, 2024 · 0 comments
Labels
category: Bug Something isn't working topic: Restart Files Related to GEOS-Chem restart files

Comments

@yuanjianz
Copy link
Contributor

yuanjianz commented Oct 25, 2024

Your name

Yuanjian Zhang

Your affiliation

WashU

What happened? What did you expect to happen?

Both GC-Classics and GCHP are not able to conserve mass upon restart.

@lizziel:

Initial global mass change upon startup and then stabilizes. Mass conservation is better after a short spin-up period. Issues with unit conversion during restart handling? In theory, passive tracer mass in restart should be conserved upon startup and across a run.

Also, see #2014 and @lizziel's work for bit-of-bit reproducibility in #2521

This could be the result of not properly scaling mixing ratios based on DELP_DRY_RESTART and DELP_DRY_MET.

Mixing ratios should be scaled based on scaled_MR = MR_restart * DELP_DRY_RESTART / DELP_DRY_MET when everything is first read into the model. Then all processes including transport, convection, and chemistry, etc can be executed.

GC-Classics

! Call AIRQNT to compute initial air mass quantities
! Do not update initial tracer concentrations since not read
! from restart file yet (ewl, 10/28/15)
CALL AirQnt( Input_Opt, State_Chm, State_Grid, State_Met, &
RC, update_mixing_ratio=.FALSE. )

Currently, the above snippet in Get_Met_Fields is not updating mixing ratios since Get_Met_Fields is right before Get_GC_Restart:
!=======================================================================
! Get met fields from HEMCO (GEOS-Chem "Classic" only)
!=======================================================================
IF ( ( Phase == 0 .or. PHASE == 1 ) .and. notDryRun ) THEN
CALL Get_Met_Fields( Input_Opt, State_Chm, State_Grid, State_Met, &
Phase, RC )
IF ( RC /= HCO_SUCCESS ) THEN
ErrMsg = 'Error encountered in "Get_Met_Fields"!'
CALL GC_Error( ErrMsg, RC, ThisLoc )
RETURN
ENDIF
ENDIF
!=======================================================================
! Get fields from GEOS-Chem restart file (GEOS-Chem "Classic" only)
!=======================================================================
IF ( Phase == 0 .and. notDryRun ) THEN
CALL Get_GC_Restart( Input_Opt, State_Chm, State_Grid, State_Met, RC )
IF ( RC /= HCO_SUCCESS ) THEN
ErrMsg = 'Error encountered in "Get_GC_Restart"!'
CALL GC_Error( ErrMsg, RC, ThisLoc )
RETURN
ENDIF
ENDIF

It is recommended to either move Get_Met_Fields after Get_GC_Restart or move the reading of DELP_DRY_RESTART into Get_GC_Restart and complete the AirQnt-update_mixing_ratio there.

GCHP

GCHP advection is executed before geos-chem module, so it would be necessary to read DELP_DRY_RESTART in ChemComp Initialization state and do the scaling before AdvComp Run state.

@yuanjianz yuanjianz added the category: Bug Something isn't working label Oct 25, 2024
@yantosca yantosca added the topic: Restart Files Related to GEOS-Chem restart files label Oct 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: Bug Something isn't working topic: Restart Files Related to GEOS-Chem restart files
Projects
None yet
Development

No branches or pull requests

2 participants