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
21 stars 28 forks source link

GPP issues lm3ppa pmodel #42

Closed khufkens closed 2 years ago

khufkens commented 2 years ago

When plotting this line using a p-model run.

https://github.com/computationales/rsofun/blob/e6ec7c59774d412a2ad2c0b38dd2635cb3b4ca69/src/gpp_lm3ppa.mod.f90#L319

I get values of this magnitude: 237404.172

If run with gs_leuning and plotting this line (equivalent?): https://github.com/computationales/rsofun/blob/e6ec7c59774d412a2ad2c0b38dd2635cb3b4ca69/src/gpp_lm3ppa.mod.f90#L168

Values are of this magnitude: 6.87971863E-05

This suggests that something is off an order of magnitudes, with the most likely candidate PPFD.

The p-model requires (mol m-2 s-1) where gs_leuning uses ?

It remains uncertain how these large values lead to less vegetation and smaller cohorts (which are ultimately killed). Large GPP values should lead to crazy allocation and growth I would assume.

khufkens commented 2 years ago

Things to check:

wengensheng commented 2 years ago

Hi, Koen, "gs_leuning" assumes the radiation input is "short-wave radiation" (w/m2). Then, it converts it to PAR by a factor 0.0000046. see the conversion codes below: ! Convert Solar influx from W/(m^2s) to mol_of_quanta/(m^2s) PAR, ! empirical relationship from McCree is light=rn0.0000046 light_top = rad_toprad_phot par_net = rad_net*rad_phot I think you either comment out these two lines (421, 422), or convert PAR to radiation before calling gs_leuning if you want to keep it intact.

Best, Ensheng

On Thu, Nov 11, 2021 at 3:34 AM Koen Hufkens @.***> wrote:

Things to check:

  • Input drivers (daily values)
  • fast / slow steps of the model
  • cohort triggers - killing trees
  • ...

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/computationales/rsofun/issues/42#issuecomment-966092143, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWR5WRZY7EISJIVA3KQWPLULN5YNANCNFSM5GXNDY7Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

khufkens commented 2 years ago

Dark respiration factor forgotten in the p-model and should read:

params_gpp%rd_to_vcmax = 0.01400000

myrd  = fapar_tree * out_pmodel%vcmax25 * params_gpp%rd_to_vcmax * rd_ calc_ftemp_inst_rd( forcing%Tair - kTkelvin ) 

wrong units due to inclusion of step_seconds in the gpp calculation

https://github.com/computationales/rsofun/blob/76b9f593d7627d58939fc956856ffaf6f1f4ca1b/src/gpp_lm3ppa.mod.f90#L319

mygpp = fapar_tree * out_pmodel%lue * myppfd

step seconds needs to be removed


@stineb not sure yet if this is all valid will do sanity checks

khufkens commented 2 years ago

Hi @wengensheng

Beni figured it out, as suspected it seems to be a unit issue - wrong interpretation due to the change from hourly to daily time step which was missed in the p-model formulation. The rest of the units seem ok.

Respiration also missed a scaling factor, this meant that respiration was mostly larger than assimilation and stuff died. This is now fixed and things look more ok-ish. @stineb will cross check still. But this seems to be almost resolved.

Thanks for all the input!

Hi, Koen, "gs_leuning" assumes the radiation input is "short-wave radiation" (w/m2). Then, it converts it to PAR by a factor 0.0000046. see the conversion codes below: ! Convert Solar influx from W/(m^2s) to mol_of_quanta/(m^2s) PAR, ! empirical relationship from McCree is light=rn0.0000046 light_top = rad_toprad_phot par_net = rad_net*rad_phot I think you either comment out these two lines (421, 422), or convert PAR to radiation before calling gs_leuning if you want to keep it intact. Best, Ensheng On Thu, Nov 11, 2021 at 3:34 AM Koen Hufkens @.***> wrote: Things to check: - Input drivers (daily values) - fast / slow steps of the model - cohort triggers - killing trees - ... — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#42 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWR5WRZY7EISJIVA3KQWPLULN5YNANCNFSM5GXNDY7Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

stineb commented 2 years ago

Closed as per issue 49.