You are on page 1of 4



Read parameters * Hydrology parameters are not

call rd_param currently used in LBA MIP

Reads land mask, topography,

Read boundary conditions
soil map, etc…
call readit( …) * Many not used in 0D version
(io.f) (LBA MIP)

Read Forcing variables clim_input
call readforc (…)

Calculate forcings
td, gdd5, gdd0, tc, tw, tcmin

* coldstart (in io.f): initialize

Initialize the model variables for first run
call initial hsno = 0; tsno = 273; tsoi = 278;
(initial.f) wsoi = 0.5; wisoi = 0
* restart: initialize from previous
Initialize all variables (initial.f)
Subroutines inisurf ; inisnow ;
inisoil ; iniveg ; inisum (time

* LBA MIP test in K83: nrun = 4

years. As Hewlley was using data
Start of time loops from only one normal year, she
Yearly loop: iyear = iy1, iy1+nrun commented the calendar
calculations for leap years
Monthly loop: imonth = monthstart, 12
hsno = 0; tsno = 273; tsoi = 278;
wsoi = 0.5; wisoi = 0
Daily loop: iday = daystart, nday(imonth)
* restart: initialize from previous
Yearly loop

Monthly loop
Daily loop
* Subroutine daily generates ‘daily’ data
from monthly values (using random
Get forcing variables (daily means)
number generator)
call dailyF
Not used in LBA MIP data. As we have
the forcing data for LBA MIP, subroutine
Update canopy phenology (LAI, canopy height, etc) dailyF is used (which reads and averages
call pheno directly from the half hourly)

Call soil biogeochemistry Soil bgc spinning loop

Spin x times for each day to accelerate C & N pools
call soilbgc * see spin up procedure in
(biogeochem.f) main.f

Half hourly loop

Get hourly forcing variables •Same as for daily, diurnal generates

call diurnalF ‘hourly’ data from daily values (using
(weather.f) random number generator).
•diurnalF: reads input from LBA-MIP

Land Surface Model

call lsxmain

Accumulate hourly / daily /monthly / yearly

call sumnow / sumday / summonth / sumyear

LBA-MIP outputs (.csv files)

(hourly; balancenergy, balancewater)
Calculate LBA-MIP variables
Write LBA-MIP output files

Write daily output (netcdf files) * Commented in LBA-MIP

call wdaily (io.f) (Hewlley)

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)
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

Calc albedo and solar fluxes absorbed (and

IR irradianced emitted) by upper and lower
stories, soil and snow

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

call cascad2 (canopy.f)

Steps snow model

call snow (snow.f)

Soil model
Subroutine soilctl (soil.f) - immediately transfer any excess puddle liq to runoff
- apportion (share out) rain between puddle liq and
sets soil infiltration rate (fwtop) runoff
(to be used in sub soilh2o) - apportion evap. or condensation between 4 h2o stores
and sets upper heat flux (fhtop) (wpud, wipud, wsoi, wisoi)
(to be used in sub soilheat) - transfer some puddle liquid to infiltration (fwtop)
-compute upper soil heat flux (fhtop)
Soil moisture calc – call soilh2o
Soil heat flux – call soilheat

return to main
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: Other fluxes are recorded in

com1d arrays
fsena = sensible heat flux (H)
fsen [ u, s, l, g, i ]
fvapa = water vapour flux (E) fvap [ u, s, l, g, i ]

Initialize aerodynamic quantities * za (i) is set here (LBA-MIP)

(initialize density of vegetation, diffusion ( line 143 in canopy.f )
call canini (canopy.f)

* Calculates a ‘stress factor’,

Estimate soil moisture stress parameters which is multiplied by vmax parameters in
call drystress (physiology.f) photosynthesis calculations

Calc wind speed and transfer coefficients

call turcof (physiology.f)

Calc conductance and photosynthesis Vegetation parameters
niter are in file params.can
times call stomata (physiology.f)

Calc sensible heat and water vapor fluxes * Solves implicit system of equations on
call turvap (physiology.f) 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

return to lsxmain