geco-bern / rsofun

Implements the Simulating Optimal FUNctioning framework for site-scale simulations of ecosystem processes, including model calibration. It contains Fortran 90 modules for the P-model, SPLASH, and BiomeE models.
https://geco-bern.github.io/rsofun/
GNU General Public License v3.0
25 stars 29 forks source link

get_steering clean-up #240

Closed marcadella closed 1 month ago

marcadella commented 1 month ago

Changes in get_steering in params_siml_biomee by @lauramarques are bypassing get_cycleyear. It is unclear if it is the right behavior or if it was a mistake or just a quick hack for testing something. Confirmation of the intended behavior is needed as well as code clean-up in this case.

stineb commented 1 month ago

Yes, I don't know what that is about in BiomeE. Ideally, the way it's done for P-model runs is adopted also for BiomeE runs.

The three parameters recycle, spinupyears, and firstyeartrend determine what simulation year to start the spinup with. The clue is to recycle a certain sequence, say recycle = 5. Then, the first 5 years of the forcing are taken and recycled during the spinup such that in the last spinup year, the last year of that sequence is used. Makes sense?

marcadella commented 1 month ago

Is it intended that the user can set firstyeartrend to a different year than the first one found in the forcings? For instance the data in the forcings could be 2009 -> 2012, and the user chooses to set firstyeartrend=2010 to skip year 2009?

marcadella commented 1 month ago

In addition, why would p-model use forcing with different years for CO2 and climate?? (forcingyear vs climateyear)

EDIT: the difference between the two is that forcingyear_idx=1 during the spinup, while climateyear_forcing follows the cycling. Its seems fishy that all th forcings follow different indexes...

stineb commented 1 month ago

firstyeartrend is set at the level of R. Can also be avoided at R level, but added at Fortran level. But that's not worth the effort IMO.

forcingyear and climateyear distinguished is intentional. you can just adopt as it's done for P-model runs.

marcadella commented 1 month ago

Just so we are at the same page: as it is implemented in p-model, a recycle of 3 years looks like this:

stineb commented 1 month ago

correct. The purpose recycling a sequence of >1 year of climate data is to have inter-annual variability in the climate and to have this interannual variability to be perfectly stationary. The variability matters for the dynamics and steady-state of the system. therefore it's very different from spining up to a single year repeated N times. CO2 has no interannual variability, just a long-term trend. The spinup assumes that CO2 is constant.