Module holding routines used in phenology model for coupled carbon nitrogen code.
USES:
use clmtype use shr_kind_mod, only: r8 => shr_kind_r8 use clm_varcon , only: tfrz use clm_varctl , only: iulog use clm_varpar , only: numpft use shr_sys_mod , only: shr_sys_flush use abortutils , only: endrun implicit none save privatePUBLIC MEMBER FUNCTIONS:
public :: CNPhenologyInit ! Initialization public :: CNPhenology ! UpdateREVISION HISTORY:
8/1/03: Created by Peter Thornton 10/23/03, Peter Thornton: migrated all routines to vector data structures 2/4/08, slevis: adding crop phenology from AgroIBIS !PRIVATE DATA MEMBERS: real(r8) :: dt ! radiation time step delta t (seconds) real(r8) :: fracday ! dtime as a fraction of day real(r8) :: crit_dayl ! critical daylength for offset (seconds) real(r8) :: ndays_on ! number of days to complete onset real(r8) :: ndays_off ! number of days to complete offset real(r8) :: fstor2tran ! fraction of storage to move to transfer on each onset real(r8) :: crit_onset_fdd ! critical number of freezing days real(r8) :: crit_onset_swi ! water stress days for offset trigger real(r8) :: soilpsi_on ! water potential for onset trigger (MPa) real(r8) :: crit_offset_fdd ! critical number of freezing degree days ! to trigger offset real(r8) :: crit_offset_swi ! water stress days for offset trigger real(r8) :: soilpsi_off ! water potential for offset trigger (MPa) real(r8) :: lwtop ! live wood turnover proportion (annual fraction) ! CropPhenology variables and constants real(r8) :: p1d, p1v ! photoperiod factor constants for crop vernalization real(r8) :: hti ! cold hardening index threshold for vernalization real(r8) :: tbase ! base temperature for vernalization integer, parameter :: NOT_Planted = 999 ! If not planted yet in year integer, parameter :: NOT_Harvested = 999 ! If not harvested yet in year integer, parameter :: inNH = 1 ! Northern Hemisphere integer, parameter :: inSH = 2 ! Southern Hemisphere integer, pointer :: inhemi(:) ! Hemisphere that pft is in integer :: minplantjday(0:numpft,inSH) ! minimum planting julian day integer :: maxplantjday(0:numpft,inSH) ! maximum planting julian day integer :: jdayyrstart(inSH) ! julian day of start of year