node05195node05196node05197node05198node05199node05200node05201node05202node05203node05204node05205node05206node05207truewhitePhotothermal model Chew et altruestop executiontruefn1if Flower then stop(1) else time()1stop1FlowertimetrueMPTUtruefn25Gating*Phot*Thermal_time*Vern1GatingPhotThermal_timeVernnode05208node05209node05210node05211node05212node05213node05214node05215node05216truenonenonewhitenonePhotothermal model0node05217node05218node05219node05220node05221node05222truewhiteInput datatrue2412Sunsetfile21121true50-20Temperaturefile21.3121.3bdr10166true120Sunrisefile919bdr2812bdr5916node05223node05224node05225node05226node05227node05228node05229node05230truewhitePhotoperiodtrueDaylengthtruefn5Sunset-Sunrise1SunsetSunrisetruePhottruefn6if Daylength<=CSDL then Dsd elseif Daylength>=CLDL then Dld else Dsd+(Daylength-CSDL)*(Dld-Dsd)/(CLDL-CSDL)1DsdDaylengthCSDLDldDaylengthCLDLDsdDaylengthCSDLDldDsdCLDLCSDLnode05231node05232node05233node05234node05235node05236node05237node05238node05239node05240node05241node05242truewhiteParametertrueCSDLtruefn710110trueCLDLtruefn814114trueDsdtruefn90.601510.6015trueDldtruefn10111bdr1578bdr2697bdr3888bdr4941bdr1497bdr9430bdr839node05243node05244node05245node05246node05247node05248node05249node05250truewhiteGatingJAT -- fraction of daytime this hour
time pt 1 = 12am-1amtrueLight fractiontruefn11Hour = fmod(24*time()-1,24)+1,
if (Sunrise>=Hour or Sunset<=(Hour-1)) then 0
elseif (Sunrise<=(Hour-1) and Sunset>Hour) then 1
elseif (Sunrise>=(Hour-1)) then (Hour-Sunrise)
else (Sunset-Hour+1)1,Hourfmod24time12410SunriseHourSunsetHour11SunriseHour1SunsetHourHourSunriseSunriseHour1SunsetHour1node05251node05252node05253node05254node05255node05256truewhiteParametertrueDay truefn141int1trueNighttruefn150.178210.1782bdr26640bdr27886bdr4580bdr7633trueGatingtruefn311Light_fractionDay1Light_fractionNightbdr10937node05257node05258node05259node05260node05261truewhiteVernalising temperaturetrueVetruefn16if (Temperature>=Tvmin and Temperature<=Tvmax) then (exp(kappa)*(Temperature-Tvmin)^omega*(Tvmax-Temperature)^zeta) else 01kappaTemperatureTvminomegaTvmaxTemperaturezetaTemperatureTvminTemperatureTvmax0node05262node05263node05264node05265node05266node05267node05268node05269node05270node05271node05272node05273node05274node05275node05276truewhiteParametertrueTvmintruefn19-3.51-3.5trueTvmaxtruefn20616v in Matlabtruekappatruefn22-5.171-5.17m in Matlabtrueomegatruefn232.2312.23sigma in Matlabtruezetatruefn24111bdr15556bdr16574bdr17607bdr18752bdr19897bdr14557bdr3945node05277node05278node05279node05280node05281truewhiteNon-vernalising temperaturetrueThermal timetruefn331TemperatureT_baseTemperatureT_base0bdr29542bdr12915node05282node05283node05284truewhiteParametertrueT_basetruefn32313bdr14961bdr293bdr7916bdr9957bdr11994trueThresholdtruefn30321213212truecomp2truefn6010truecd3trueFlowertruefn8comp2>Thresholdbooleancomp2Thresholdnode05285node05286node05287node05288node05289node05290node05291node05292node05293node05294truewhiteVernalisationtruecd1truecomp1truefn5010trueVhtruefn35(comp1+flow1*dt())*Vsen1comp1flow1dtVsentrueVerntruefn36if (Vh<=Vsat) then (Fb+Vh*(1-Fb)/Vsat) else 11FbVh1FbVsatVhVsat1node05295node05296node05297node05298node05299node05300node05301node05302node05303truewhiteParametertrueVsentruefn371int1trueVsattruefn389601960trueFbtruefn390.474310.4743bdr4588bdr5811bdr6911bdr1546bdr13844truefn4Ve*241Ve24550truefn7MPTU*241MPTU24554i101truei202i25truei12truei15truei18truei21truei44truei3truei7truei113truei1i5truei2truei114i6truei206truei208truei203truei204truei210i7i8i9i10truei205truei207truei209truei211truei14truei5truei9i11truei6truei10i14i15truei83truei85i81truei82truei84truei86truei17truei52i16truei53truei54truei56truei58truei60truei62i19i20i22i23i24truei55truei57truei59truei61truei63truei4truei92i91truei93truei94truei20i90truei94truei3truei13truei16truei19i80i124node05304trueflow2truei227i226truei228truei230truei1node05305trueflow1i120truei121i101truei122truei123truei5i102truei7truei8truei10i103i104i105truei6truei9truei11truei22