-
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
Extending Stratospheric Adjustment to GCClassic #2525
base: main
Are you sure you want to change the base?
Conversation
Thanks @cbarker211. I've marked this item as delivered on our Model Development Priorities page. |
Thanks, just to add this is the update "Strat-adjusted RF in GCC and GCHP", rather than "Fixes to stratospheric aerosol settling". |
Now fixed on the wiki. Thanks for the clarification! |
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.
Thanks @cbarker211 for this update. I had a few comments, see attached. We'd also need a changelog update.
Also tagging @lizziel
! Select the proper time slice | ||
!====================================================================== | ||
|
||
! Name of this routine (for error printout) |
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.
@cbarker211 can we remove these commented-out lines if they aren't needed?
Allocate(HR_3D(0,0,0),Stat=RC) | ||
IF ( RC /= 0 ) Call Error_Stop( 'Error allocating HR_3D', ThisLoc ) | ||
ENDIF | ||
|
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.
@cbarker211 Could this be placed into a subroutine after the CONTAINS
statement in main.F90
and just called from here? That would reduce clutter in an already-long main.F90
program.
ENDIF | ||
|
||
RC = 0 | ||
IF (Allocated(DT_3D)) Deallocate(DT_3D, STAT=RC) |
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.
It would be more efficient to allocate all necessary arrays once in initialization and then to deallocate them at finalaization rather than on every timestep.
Name and Institution
Name: Connor Barker, @eamarais
Institution: University College London (UCL)
Describe the update
This update extends the stratospheric adjustment code added by @sdeastham in GCHP (#2010) to GCClassic. The commit here simply modifies the main level script for GCClassic, and allows the dynamical heating rates to be read in via the HEMCO meteorology file. No changes are made to the underlying RRTMG source code beyond what Seb already has added to include stratospheric adjustment. For further details see the original pull request.
To include stratospheric adjustments of temperature relative to the baseline simulation in the radiative fluxes, follow these steps:
HISTORY.txt
As described in #2010, occasionally there will be a warning of "RRTMG FDH routine failed to converge for x of y columns on CPU 0". We find this happens sporadically for our simulations for 1/3312 columns. Failing to converge for >10 columns usually indicates an error somewhere.
The seasonally-evolving fixed dynamical heating approximation has also been extended to GCClassic, but is not yet tested (as stated by Seb in #2010). The fdh_to_toa flag can be added in geoschem_config.yml to extend the stratospheric adjustment calculations to the top of the model.
Expected changes
This code can be tested by simulating a single day with and without an increase of 100 ppmv CO2 (see #2010).
References
See #2010