-
Notifications
You must be signed in to change notification settings - Fork 169
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
Impose boundary conditions at every timestep in GC-Classic nested-grid simulations #1895
Impose boundary conditions at every timestep in GC-Classic nested-grid simulations #1895
Conversation
…d simulations. This will prevent transport in the buffer region to accumulate and allow for a consistent flow of boundary conditions between the 3-hourly boundary condition updates. A new module set_boundary_conditions_mod.F90 has been introduced to separate non-HEMCO logic from hco_utilities_gc_mod.F90 and allow for it to be called more frequently than the emissions/3-hourly BC timesteps. Reported-by: Nick Balasus <[email protected]> Signed-off-by: Haipeng Lin <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to merge. I can try to make the loop in set_boundary_conditions more efficient by collapsing over N and J.
RETURN | ||
ENDIF | ||
|
||
! Loop over advected species |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can probably collapse the N and L loops for better efficiency. I can add this.
After merging atop PR #1896, all GCHP integration tests passed (except for TOMAS, which is a known issue). ==============================================================================
GEOS-Chem Classic: Execution Test Results
GCClassic #7df24e0 GEOS-Chem submod update: Merge PR #1896 (Use singleton time dims)
GEOS-Chem #f990a769d Merge PR #1895 (Impose nested-grid BCs at every timestep)
HEMCO #477c7e8 Merge PR #229 (Fix incorrect longitude definitions for HEMCO standalone)
Using 24 OpenMP threads
Number of execution tests: 26
Submitted as SLURM job: 64900205
==============================================================================
Execution tests:
------------------------------------------------------------------------------
gc_05x0625_NA_47L_merra2_CH4........................Execute Simulation....PASS
gc_05x0625_NA_47L_merra2_fullchem...................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem..........................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem_TOMAS15..................Execute Simulation....FAIL
gc_4x5_47L_merra2_fullchem_TOMAS40..................Execute Simulation....FAIL
gc_4x5_merra2_aerosol...............................Execute Simulation....PASS
gc_4x5_merra2_carbon................................Execute Simulation....PASS
gc_4x5_merra2_CH4...................................Execute Simulation....PASS
gc_4x5_merra2_CO2...................................Execute Simulation....PASS
gc_4x5_merra2_fullchem..............................Execute Simulation....PASS
gc_4x5_merra2_fullchem_aciduptake...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_APM..........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_benchmark....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA_SVPOA.............Execute Simulation....PASS
gc_4x5_merra2_fullchem_LuoWd........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_marinePOA....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_RRTMG........................Execute Simulation....PASS
gc_4x5_merra2_Hg....................................Execute Simulation....PASS
gc_4x5_merra2_metals................................Execute Simulation....PASS
gc_4x5_merra2_POPs_BaP..............................Execute Simulation....PASS
gc_4x5_merra2_tagCH4................................Execute Simulation....PASS
gc_4x5_merra2_tagCO.................................Execute Simulation....PASS
gc_4x5_merra2_tagO3.................................Execute Simulation....PASS
gc_4x5_merra2_TransportTracers......................Execute Simulation....PASS
gc_4x5_merra2_TransportTracers_LuoWd................Execute Simulation....PASS
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 24
Execution tests failed: 2
Execution tests not yet completed: 0 Furthermore, all integration tests were identical to. PR #1896, except:
==============================================================================
GEOS-Chem Classic: Execution Test Results
GCClassic #7df24e0 GEOS-Chem submod update: Merge PR #1896 (Use singleton time dims)
GEOS-Chem #f990a769d Merge PR #1895 (Impose nested-grid BCs at every timestep)
HEMCO #477c7e8 Merge PR #229 (Fix incorrect longitude definitions for HEMCO standalone)
Using 24 OpenMP threads
Number of execution tests: 26
Submitted as SLURM job: 64900205
==============================================================================
Execution tests:
------------------------------------------------------------------------------
gc_05x0625_NA_47L_merra2_CH4........................Execute Simulation....PASS
gc_05x0625_NA_47L_merra2_fullchem...................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem..........................Execute Simulation....PASS
gc_4x5_47L_merra2_fullchem_TOMAS15..................Execute Simulation....FAIL
gc_4x5_47L_merra2_fullchem_TOMAS40..................Execute Simulation....FAIL
gc_4x5_merra2_aerosol...............................Execute Simulation....PASS
gc_4x5_merra2_carbon................................Execute Simulation....PASS
gc_4x5_merra2_CH4...................................Execute Simulation....PASS
gc_4x5_merra2_CO2...................................Execute Simulation....PASS
gc_4x5_merra2_fullchem..............................Execute Simulation....PASS
gc_4x5_merra2_fullchem_aciduptake...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_APM..........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_benchmark....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA...................Execute Simulation....PASS
gc_4x5_merra2_fullchem_complexSOA_SVPOA.............Execute Simulation....PASS
gc_4x5_merra2_fullchem_LuoWd........................Execute Simulation....PASS
gc_4x5_merra2_fullchem_marinePOA....................Execute Simulation....PASS
gc_4x5_merra2_fullchem_RRTMG........................Execute Simulation....PASS
gc_4x5_merra2_Hg....................................Execute Simulation....PASS
gc_4x5_merra2_metals................................Execute Simulation....PASS
gc_4x5_merra2_POPs_BaP..............................Execute Simulation....PASS
gc_4x5_merra2_tagCH4................................Execute Simulation....PASS
gc_4x5_merra2_tagCO.................................Execute Simulation....PASS
gc_4x5_merra2_tagO3.................................Execute Simulation....PASS
gc_4x5_merra2_TransportTracers......................Execute Simulation....PASS
gc_4x5_merra2_TransportTracers_LuoWd................Execute Simulation....PASS
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 24
Execution tests failed: 2
Execution tests not yet completed: 0 |
After merging atop PR #1896, all GCHP integration tests passed: ==============================================================================
GCHP: Execution Test Results
GCClassic #9d7baa6 GEOS-Chem submod update: Merge PR #1896 (Use singleton time dims)
GEOS-Chem #f990a769d Merge PR #1895 (Impose nested-grid BCs at every timestep)
HEMCO #477c7e8 Merge PR #229 (Fix incorrect longitude definitions for HEMCO standalone)
Number of execution tests: 5
Submitted as SLURM job: 64900250
==============================================================================
Execution tests:
------------------------------------------------------------------------------
gchp_merra2_fullchem................................Execute Simulation....PASS
gchp_merra2_fullchem_benchmark......................Execute Simulation....PASS
gchp_merra2_fullchem_RRTMG..........................Execute Simulation....PASS
gchp_merra2_tagO3...................................Execute Simulation....PASS
gchp_merra2_TransportTracers........................Execute Simulation....PASS
Summary of test results:
------------------------------------------------------------------------------
Execution tests passed: 5
Execution tests failed: 0
Execution tests not yet completed: 0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% All execution tests passed! %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Furthermore, all integration tests were zero-diff w/r/t PR #1896: Checking gchp_merra2_fullchem
-> No differences in OutputDir
-> No differences in Restarts
Checking gchp_merra2_fullchem_benchmark
-> No differences in OutputDir
-> No differences in Restarts
Checking gchp_merra2_fullchem_RRTMG
-> No differences in OutputDir
-> No differences in Restarts
Checking gchp_merra2_tagO3
-> No differences in OutputDir
-> No differences in Restarts
Checking gchp_merra2_TransportTracers
-> No differences in OutputDir
-> No differences in Restarts |
This merge brings PR #1895 (Impose boundary conditions at every timestep in GC-Classic nested-grid simulations, by @jimmielin) into the GEOS-Chem 14.2.1 development stream. This fixes an issue where transport is done within the nested-grid buffer zone grid boxes. To prevent this we now apply the transport boundary conditions at each timestep. WE have also abstracted the relevant code out of the HEMCO-to-GEOS-Chem interface. Signed-off-by: Bob Yantosca <[email protected]>
Name and Institution (Required)
Name: Haipeng Lin
Institution: Harvard Univ.
Confirm you have reviewed the following documentation
Describe the update
Previously, @nicholasbalasus reported artifacting in the buffer region due to the transport code still running within the buffer zone. Thus, a change to impose boundary conditions at every time step in the buffer zone, as opposed to only at every 3-hours, will resolve this artifact and prevent transport effects from taking place.
This will allow for a consistent flow of boundary conditions between the 3-hourly boundary condition updates.
A new module set_boundary_conditions_mod.F90 has been introduced to separate non-HEMCO logic from hco_utilities_gc_mod.F90 and allow for it to be called more frequently than the emissions/3-hourly BC timesteps.
Expected changes
Mainly, species concentrations in the buffer zone will be affected. They will no longer reflect transport artifacts and instead more closely reflect the underlying boundary conditions provided to the nested-grid model.
@nicholasbalasus has as always provided a useful figure to illustrate the effects:
Notice the removal of transport artifacts (top-left panel - old version) in the new version (top-middle panel)
Reference(s)
N/A
Related Github Issue(s)
No prior issue reported
Steps to reproduce: run any GC-Classic nested-grid simulation and observe buffer zone which includes transport artifacts. Because the boundary conditions in the buffer zone should be provided from a coarse simulation, this region should not have any 'extraneous' detail introduced by finer-scale processes in the nested-grid simulation.