-
Notifications
You must be signed in to change notification settings - Fork 0
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
Rosie colddec #6
Changes from all commits
7ce7da8
ca00801
9a1d9c0
6bb362f
2e18394
6efbee4
5f27116
43f14aa
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -661,10 +661,31 @@ subroutine phenology( currentSite, bc_in ) | |
endif | ||
! | ||
! accumulate the GDD using daily mean temperatures | ||
if (bc_in%t_veg24_si .gt. tfrz) then | ||
! Don't accumulate GDD during the growing season (that wouldn't make sense) | ||
if (bc_in%t_veg24_si .gt. tfrz.and. currentSite%cstatus == phen_cstat_iscold) then | ||
currentSite%grow_deg_days = currentSite%grow_deg_days + bc_in%t_veg24_si - tfrz | ||
endif | ||
|
||
!this logic is to prevent GDD accumulating after the leaves have fallen and before the | ||
! beginnning of the accumulation period, to prevend erroneous autumn leaf flushing. | ||
if(model_day_int>365)then !only do this after the first year to prevent odd behaviour | ||
|
||
if(currentSite%lat .gt. 0.0_r8)then !Northern Hemisphere | ||
! In the north, don't accumulate when we are past the leaf fall date. | ||
! Accumulation starts on day 1 of year in NH. | ||
! The 180 is to prevent going into an 'always off' state after initialization | ||
if( model_day_int .gt. currentSite%cleafoffdate.and.hlm_day_of_year.gt.180)then ! | ||
currentSite%grow_deg_days = 0._r8 | ||
endif | ||
else !Southern Hemisphere | ||
! In the South, don't accumulate after the leaf off date, and before the start of | ||
! the accumulation phase (day 181). | ||
if(model_day_int .gt. currentSite%cleafoffdate.and.hlm_day_of_year.lt.gddstart) then! | ||
currentSite%grow_deg_days = 0._r8 | ||
endif | ||
endif | ||
endif !year1 | ||
|
||
! Calculate the number of days since the leaves last came on | ||
! and off. If this is the beginning of the simulation, that day might | ||
! not had occured yet, so set it to last year to get things rolling | ||
|
@@ -694,9 +715,12 @@ subroutine phenology( currentSite, bc_in ) | |
if ( (currentSite%cstatus == phen_cstat_iscold .or. & | ||
currentSite%cstatus == phen_cstat_nevercold) .and. & | ||
(currentSite%grow_deg_days > gdd_threshold) .and. & | ||
(dayssincecleafoff > ED_val_phen_mindayson) .and. & | ||
(currentSite%nchilldays >= 1)) then | ||
currentSite%cstatus = phen_cstat_notcold ! Set to not-cold status (leaves can come on) | ||
currentSite%cleafondate = model_day_int | ||
dayssincecleafon = 0 | ||
currentSite%grow_deg_days = 0._r8 ! zero GDD for the rest of the year until counting season begins. | ||
if ( debug ) write(fates_log(),*) 'leaves on' | ||
endif !GDD | ||
|
||
|
@@ -907,7 +931,7 @@ subroutine phenology_leafonoff(currentSite) | |
real(r8) :: store_c_transfer_frac ! Fraction of storage carbon used to flush leaves | ||
integer :: ipft | ||
real(r8), parameter :: leaf_drop_fraction = 1.0_r8 | ||
|
||
real(r8), parameter :: carbon_store_buffer = 0.10_r8 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @rosiealice , would it be most desirable to add this to the parameter file? We could flag this to be added whenever we have a critical mass of changes to implement. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe, but
|
||
!------------------------------------------------------------------------ | ||
|
||
currentPatch => CurrentSite%oldest_patch | ||
|
@@ -936,8 +960,11 @@ subroutine phenology_leafonoff(currentSite) | |
! stop flow of carbon out of bstore. | ||
|
||
if(store_c>nearzero) then | ||
store_c_transfer_frac = & | ||
min(EDPftvarcon_inst%phenflush_fraction(ipft)*currentCohort%laimemory, store_c)/store_c | ||
! flush either the amount required from the laimemory, or -most- of the storage pool | ||
! RF: added a criterium to stop the entire store pool emptying and triggering termination mortality | ||
! n.b. this might not be necessary if we adopted a more gradual approach to leaf flushing... | ||
store_c_transfer_frac = min((EDPftvarcon_inst%phenflush_fraction(ipft)* & | ||
currentCohort%laimemory)/store_c,(1.0_r8-carbon_store_buffer)) | ||
else | ||
store_c_transfer_frac = 0.0_r8 | ||
end if | ||
|
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.
@rosiealice , I think it would be nice to give 180 an explicit constant name as well.
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.
Yes, although the 'start of counting date' might be more tractable and we could key the 180 off that?
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.
sounds good