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

CO2 forcing #410

Open
gargentini opened this issue Nov 8, 2023 · 7 comments
Open

CO2 forcing #410

gargentini opened this issue Nov 8, 2023 · 7 comments
Labels
forcing 🏋️ Forcing of the momentum equations user interface 🎹 How users use our user interface

Comments

@gargentini
Copy link

gargentini commented Nov 8, 2023

Dear Prof Kloewer and All,
I would use some global mean CO2 value as forcing in some models of SpeedyWeather.
I ask you how it could be possible to declare in models.
Many thanks.
Gianluca Argentini

@milankl milankl added user interface 🎹 How users use our user interface forcing 🏋️ Forcing of the momentum equations labels Nov 8, 2023
@milankl
Copy link
Member

milankl commented Nov 8, 2023

At the moment this is not possible. Bit of background: While we do have some functionality already written that include shortwave and longwave radiation, both are currently not active in the current version of SpeedyWeather. The longwave radiation (as from Fortran SPEEDY) has 4 bands of which one is for CO2, so sooner or later it will be possible to force SpeedyWeather with CO2 as well.

If radiation is your area of expertise feel free to look at the code we currently have. I'll tackle this soon-ish but currently cannot make promises when this will be. However you can also help us form a user perspective: What interface would you like to have to force SpeedyWeather with various levels of CO2? What experiments are you considering? All of this helps us too to build something that is actually easily usable!

@gargentini
Copy link
Author

Dear Prof. Kloewer,
it could be interesting if in the SW Models (Barotropic, ShallowWater, Primitives) it was possible to declare (as a new Struct Forcing Type?) a CO2 radiative forcing function proportional to Ln((C0 + dC)/C0) (as in Myhre, Highwood, Shine, Stordal "New estimates of radiative forcing due to well mixed greenhouse gases", 1998), with C0 = CO2 reference level and dC the CO2 variation.
Thanks.

Gianluca Argentini

@gargentini
Copy link
Author

This is the paper cited in my previous post (pg. 4, Trace gas Table, CO2 DeltaF)

Geophysical Research Letters - 1998 - Myhre - New estimates of radiative forcing due to well mixed greenhouse gases.pdf

@milankl
Copy link
Member

milankl commented Nov 10, 2023

I believe we could introduce a CO2Concentraion type that for example contains a time series so that a user can predefine CO2 levels on an annual (or higher/lower frequency) basis. But ultimately the plan was that this goes into the longwave radiation code. I see that you are suggesting to force temperature directly, and yeah, we could implement a RadiativeForcing that lets you add this, bypassing the radiation code. Maybe I missed this in the paper, only flew over it, but how would you distribute such a forcing vertically?

Also don't call me professor please, given I am not a professor ;)

@milankl
Copy link
Member

milankl commented Nov 10, 2023

The radiation code we plan to implement soon is based on Fortran SPEEDY, check that documentatio. For completeness this is what Myhre et al. 1998 do

Fortran SPEEDY Myrhe et al. 1998
image image

@gargentini
Copy link
Author

At first approximation the Forcing Radiation could be vertically constant or linearly decreasing.
A RadiativeForcing procedure could be very useful.
Thanks.
Gianluca

@milankl
Copy link
Member

milankl commented Nov 14, 2023

Okay neat, that sounds easy and straight forward. I'm tempted to implement the following in execution order

  1. Parameterization tendencies (as before)
  2. Forcing (new)
  3. Dynamics tendencies

Meaning we'd add step 2 with a general forcing, and I'll post here how you could add a CO2Concentration <: AbstractForcing once it's done. It'll be the same interface as in #394 and you can also familiarise yourself with the logic following this section in the documentation

https://speedyweather.github.io/SpeedyWeather.jl/dev/extending/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
forcing 🏋️ Forcing of the momentum equations user interface 🎹 How users use our user interface
Projects
None yet
Development

No branches or pull requests

2 participants