ibis.infile
main.f
Read parameters call rd_param (readpars.f)
* Hydrology parameters are not currently used in LBA MIP
Read boundary conditions call readit( …) (io.f) Read Forcing variables call readforc (…) (io.f)
Reads land mask, topography, soil map, etc… * Many not used in 0D version (LBA MIP) ibis.veg.soil; clim_input
Calculate forcings td, gdd5, gdd0, tc, tw, tcmin
Initialize the model call initial (initial.f)
* coldstart (in io.f): initialize variables for first run hsno = 0; tsno = 273; tsoi = 278; wsoi = 0.5; wisoi = 0 * restart: initialize from previous run
Initialize all variables (initial.f) Subroutines inisurf ; inisnow ; inisoil ; iniveg ; inisum (time averaging)
Start of time loops Yearly loop: iyear = iy1, iy1+nrun Monthly loop: imonth = monthstart, 12 Daily loop: iday = daystart, nday(imonth)
* LBA MIP test in K83: nrun = 4 years. As Hewlley was using data from only one normal year, she commented the calendar calculations for leap years hsno = 0; tsno = 273; tsoi = 278; wsoi = 0.5; wisoi = 0 * restart: initialize from previous run
Yearly loop Monthly loop Daily loop Get forcing variables (daily means) call dailyF (weather.f) Update canopy phenology (LAI, canopy height, etc) call pheno (vegetation.f) Call soil biogeochemistry Spin x times for each day to accelerate C & N pools call soilbgc (biogeochem.f)
* Subroutine daily generates ‘daily’ data from monthly values (using random number generator) Not used in LBA MIP data. As we have the forcing data for LBA MIP, subroutine dailyF is used (which reads and averages directly from the half hourly)
Soil bgc spinning loop * see spin up procedure in main.f
Half hourly loop Get hourly forcing variables call diurnalF (weather.f)
•Same as for daily, diurnal generates ‘hourly’ data from daily values (using random number generator). •diurnalF: reads input from LBA-MIP
Land Surface Model call lsxmain (main.f) Accumulate hourly / daily /monthly / yearly variables call sumnow / sumday / summonth / sumyear (stats.f) LBA-MIP outputs (.csv files) (hourly; balancenergy, balancewater) Calculate LBA-MIP variables Write LBA-MIP output files
Write daily output (netcdf files) call wdaily (io.f) Write monthly output (netcdf files) call wmonthly (io.f)
Perform Vegetation Dynamics call dynaveg (vegetation.f) Calculate annual diagnostics call gdiag / vdiag (stats.f) Write yearly output (netcdf files) call wyearly (io.f)
* Commented in LBA-MIP (Hewlley)
Land Surface Model (subroutine lsxmain in main.f) Initialize: set soil physical properties (thermal conductivity, fraction of soil evap) call setsoi (soil.f) Calc area fraction wetted by intercepted rain call fwetcal (canopy.f) Calc albedo and solar fluxes absorbed (and IR irradianced emitted) by upper and lower stories, soil and snow (radiation.f) Cascade – steps intercepted H2O due to drip, precipitation and min/max limits of interception (adjust throughfall within canopy) call cascade (canopy.f) Subroutine canopy Calculates sensible heat and moisture fluxes and steps canopy temperatures (implicitly) through one time step (canopy.f) Adjust intercepted h2o due to evaporation call cascad2 (canopy.f) Steps snow model call snow (snow.f) Soil model Subroutine soilctl (soil.f) sets soil infiltration rate (fwtop) (to be used in sub soilh2o) and sets upper heat flux (fhtop) (to be used in sub soilheat) Soil moisture calc – call soilh2o Soil heat flux – call soilheat
return to main
- immediately transfer any excess puddle liq to runoff - apportion (share out) rain between puddle liq and runoff - apportion evap. or condensation between 4 h2o stores (wpud, wipud, wsoi, wisoi) - transfer some puddle liquid to infiltration (fwtop) -compute upper soil heat flux (fhtop)
Subroutine canopy => Calculates H and LE coefficients and steps canopy temperatures (implicitly) through one time step Atmospheric forcings are given in level za (above canopy) Fluxes calculated in za are: fsena = sensible heat flux (H) fvapa = water vapour flux (E)
Initialize aerodynamic quantities (initialize density of vegetation, diffusion coefficients) call canini (canopy.f)
Estimate soil moisture stress parameters call drystress (physiology.f)
Other fluxes are recorded in com1d arrays fsen [ u, s, l, g, i ] fvap [ u, s, l, g, i ]
* za (i) is set here (LBA-MIP) ( line 143 in canopy.f )
* Calculates a ‘stress factor’, which is multiplied by vmax parameters in photosynthesis calculations
Calc wind speed and transfer coefficients call turcof (physiology.f)
Iterates niter times
Calc conductance and photosynthesis call stomata (physiology.f) Calc sensible heat and water vapor fluxes call turvap (physiology.f)
return to lsxmain
Vegetation parameters are in file params.can
* Solves implicit system of equations on air / soil / vegetation temperatures and moisture, driven by the radiation balance of vegetation and ground, and the diffusive and turbulent fluxes of sensible heat and water vapor