-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add optional radiative flux diagnostics with perturbed CO2 #51
Add optional radiative flux diagnostics with perturbed CO2 #51
Conversation
The modifications here are aimed to remove reference to "double calls" since this PR enables up to 8 additional calls. They are also aimed to make it clear that these radiation calls do not affect the evolution of the simulation, and that the diagnostics pertain to what we get when we scale CO2 (as opposed to some other constituent of the atmosphere).
OK I have completed the naming / organization updates I wanted to and re-tested the code to ensure things are behaving properly. I also added some usage details to the description, which should hopefully give a sense for how these work. It should be ready for review. |
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.
I think this is fine. Everything is self-contained including the allocate calls, so it should not affect anything else. This may be useful for @linjiongzhou and others' work on radiative forcing, and is a good illustration on how to make custom radiation calls and how to handle the numerous diagnostic outputs. Thank you.
Thanks @lharris4! I appreciate you taking a look and merging this. |
This is indeed very useful for quantifying the impact of CO2 radiative forcing. Thanks for building this function, Spencer! |
Description
This PR adds the ability to output dual radiative flux diagnostics representing what the fluxes would be with up to eight different user-specified scalings of carbon dioxide. These diagnostics are made optional, since for each provided scale factor an additional call to the radiative transfer code must be made. The motivation for these diagnostics is to make it possible to quantify the impact of modifying the CO2 concentration for a given atmospheric state. This flavor of diagnostic is often used to quantify the direct forcing of other constituents like aerosols.
Usage
Enabling these diagnostics requires modifying two namelist parameters:
gfs_physics_nml.do_diagnostic_radiation_with_scaled_co2
must be set to.true.
.gfs_physics_nml.diagnostic_radiation_co2_scale_factors
must be provided a sequence of float scale factors. This sequence can be up to 8 values long, and controls the scale factors for CO2 in the additional diagnostic radiation calls.For example something like the following would result in two additional radiation calls with 0x and 4x the prescribed CO2:
These namelist parameters expose new surface and top of atmosphere radiative flux diagnostics, which can be added in the diagnostics table.
With 0x CO2
DSWRFtoa_with_scaled_co2_1
USWRFtoa_with_scaled_co2_1
ULWRFtoa_with_scaled_co2_1
DSWRF_with_scaled_co2_1
USWRF_with_scaled_co2_1
DLWRF_with_scaled_co2_1
ULWRF_with_scaled_co2_1
DSWRFI_with_scaled_co2_1
USWRFI_with_scaled_co2_1
DLWRFI_with_scaled_co2_1
ULWRFI_with_scaled_co2_1
global_mean_co2_1
With 4xCO2
DSWRFtoa_with_scaled_co2_2
USWRFtoa_with_scaled_co2_2
ULWRFtoa_with_scaled_co2_2
DSWRF_with_scaled_co2_2
USWRF_with_scaled_co2_2
DLWRF_with_scaled_co2_2
ULWRF_with_scaled_co2_2
DSWRFI_with_scaled_co2_2
USWRFI_with_scaled_co2_2
DLWRFI_with_scaled_co2_2
ULWRFI_with_scaled_co2_2
global_mean_co2_2
Here the integer index trailing each internal name corresponds to the position in the sequence of provided scale factors. The
long_name
of each diagnostic will include the actual CO2 scaling used in its generation.cc: @lharris4
How Has This Been Tested?
This has been tested by ensuring that:
This notebook comprehensively illustrates the first two bullet points of these tests.
Difference between 4xCO2 and 1xCO2
Difference between 0xCO2 and 1xCO2
Checklist:
Please check all whether they apply or not