current version 1.0 - 31st October 2018
version | date | comment |
---|---|---|
1.0 | 31/Oct/2018 | Original code |
license: GNU GPL http://www.gnu.org/licenses/
Module to model vegetation dynamic
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(grid_real), | public | :: | carbonleaf |
carbon mass of leaf (t) |
|||
type(grid_real), | public | :: | carbonroot |
carbon mass of root (t) |
|||
type(grid_real), | public | :: | carbonstem |
carbon mass of stem (t) |
|||
type(grid_real), | public | :: | dbh |
diameter at brest height (cm) |
|||
type(grid_real), | public | :: | density |
Trees/hectare |
|||
integer(kind=short), | public | :: | dtPlants | ||||
type(grid_real), | public | :: | fvcover |
fraction of cell covered by vegetation |
|||
logical, | public | :: | fvcoverLoaded | = | .FALSE. | ||
type(grid_real), | public | :: | gpp |
carbon gross primary production (t) |
|||
type(grid_real), | public | :: | lai |
leaf area index (m2/m2) |
|||
logical, | public | :: | laiLoaded | = | .FALSE. | ||
type(grid_real), | public | :: | npp |
carbon net primary production (t) |
|||
type(grid_real), | public | :: | plantsHeight |
tree height (m) |
|||
logical, | public | :: | plantsHeightLoaded | = | .FALSE. | ||
type(grid_real), | public | :: | rsMin |
minimum stomatal resistance |
|||
logical, | public | :: | rsMinLoaded | = | .FALSE. | ||
type(grid_real), | public | :: | stemyield |
stem yield (t) |
|||
logical, | public | :: | updatePlantsParameters | = | .FALSE. | ||
real(kind=float), | private, | parameter | :: | C_molar_mass | = | 0.0120107 | |
integer(kind=short), | private | :: | count_stands | ||||
type(PlantsStand), | private, | ALLOCATABLE | :: | forest(:) | |||
logical, | private | :: | mortality | ||||
type(grid_integer), | private | :: | plants_mask |
define cells active for plants dynamic simulation |
|||
logical, | private | :: | simulatePlants | ||||
type(PlantsSpecies), | private, | ALLOCATABLE | :: | species(:) | |||
logical, | private | :: | useCO2modifier | ||||
integer(kind=short), | private | :: | year_new | ||||
integer(kind=short), | private | :: | year_prev |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | age |
age [years] |
|||
real(kind=float), | public | :: | apar |
absorbed photosynthetically active radiation (molPAR m-2) |
|||
real(kind=float), | public | :: | canopy_cover |
percentage of surface stand covered by canopy [0-1] |
|||
real(kind=float), | public | :: | crown_diameter |
diameter of crown [m] |
|||
real(kind=float), | public | :: | dbh |
diameter at brest heigth [cm] |
|||
real(kind=float), | public | :: | density |
number of plants per hectar |
|||
real(kind=float), | public | :: | gpp |
gross primary production (t/ha) |
|||
real(kind=float), | public | :: | height |
plants heigth [m] |
|||
real(kind=float), | public | :: | lai |
leaf area index [m2/m2] |
|||
real(kind=float), | public | :: | mass_leaf |
mass of leaf (t/ha) |
|||
real(kind=float), | public | :: | mass_root |
mass of root (t/ha) |
|||
real(kind=float), | public | :: | mass_stem |
mass of stem (t/ha) |
|||
real(kind=float), | public | :: | mass_stem_year_previous |
mass of stem of the previous year (t/ha) |
|||
real(kind=float), | public | :: | mass_total |
total biomass root + stem + foliage (t/ha) |
|||
type(PlantsCohort), | public, | POINTER | :: | next | => | null() | |
real(kind=float), | public | :: | npp |
net primary production (t/ha) |
|||
type(PlantsSpecies), | public | :: | species | ||||
real(kind=float), | public | :: | stem_yield |
stem mass produced by plants cut (t/ha) |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=float), | public | :: | GPPtoNPP |
GPP/NPP ratio |
|||
real(kind=float), | public | :: | agemax |
maximum age |
|||
real(kind=float), | public | :: | albedo |
plant albedo (0-1) |
|||
real(kind=float), | public | :: | alpha |
canopy quantum efficiency (molC/molPAR) |
|||
real(kind=float), | public | :: | as |
scaling coefficient in stem mass v diameter relationship |
|||
real(kind=float), | public | :: | canopymax |
maximum canopy storage capacity (m) |
|||
real(kind=float), | public | :: | cra |
Chapman-Richards asymptotic maximum height |
|||
real(kind=float), | public | :: | crb |
Chapman-Richards exponential decay parameter |
|||
real(kind=float), | public | :: | crc |
Chapman-Richards shape parameter |
|||
real(kind=float), | public | :: | dbhdcmax |
maximum ratio between stem and crown diameters (m/cm) |
|||
real(kind=float), | public | :: | dbhdcmin |
minimum ratio between stem and crown diameters (m/cm) |
|||
real(kind=float), | public | :: | denmax |
minimum tree density (trees/ha) |
|||
real(kind=float), | public | :: | denmin |
minimum tree density (trees/ha) |
|||
real(kind=float), | public | :: | fpra |
parameter 1 to compute allocation factors |
|||
real(kind=float), | public | :: | fprn |
parameter 2 to compute allocation factors |
|||
real(kind=float), | public | :: | hdmax |
H/D ratio in carbon partitioning for high density |
|||
real(kind=float), | public | :: | hdmin |
H/D ratio in carbon partitioning for low density |
|||
real(kind=float), | public | :: | k |
extinction coefficient for absorption of PAR by canopy |
|||
real(kind=float), | public | :: | laimax |
maximum leaf area index used for precipitation interception (m2/m2) |
|||
real(kind=float), | public | :: | ltr |
leaf turnover rate [s-1] |
|||
real(kind=float), | public | :: | mf |
Fractions of mean leaf biomass pools per tree on each dying tree |
|||
real(kind=float), | public | :: | mr |
Fractions of mean root biomass pools per tree on each dying tree |
|||
real(kind=float), | public | :: | ms |
Fractions of mean stem biomass pools per tree on each dying tree |
|||
character(len=50), | public | :: | name |
species name, Fagus, Abies, ... |
|||
real(kind=float), | public | :: | ns |
scaling exponent in stem mass v diameter relationship |
|||
character(len=1), | public | :: | phenology |
evergreen (E), deciduous (D) |
|||
real(kind=float), | public | :: | rtr |
root turnover rate [s-1] |
|||
real(kind=float), | public | :: | sla |
specific leaf area [m2/Kg] |
|||
real(kind=float), | public | :: | spra |
parameter 3 to compute allocation factors |
|||
real(kind=float), | public | :: | sprn |
parameter 4 to compute allocation factors |
|||
real(kind=float), | public | :: | tcold_leaf |
temperature threshold that accelerates leaf turnover (°C) |
|||
real(kind=float), | public | :: | theta_fswc |
parameter to compute soil water content modifier |
|||
real(kind=float), | public | :: | theta_fvpd |
parameter to compute vapor pressure deficit modifier |
|||
real(kind=float), | public | :: | tmax |
maximum temperature for vegetation growing (°C) |
|||
real(kind=float), | public | :: | tmin |
minimum temperature for vegetation growing (°C) |
|||
real(kind=float), | public | :: | topt |
optimum temperature for vegetation growing (°C) |
|||
real(kind=float), | public | :: | wSx1000 |
Fractions of mean leaf biomass pools per tree on each dying tree |
|||
real(kind=float), | public | :: | wood_density |
wood density (kg/m3) |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(Practice), | public | :: | thinning | ||||
type(PlantsCohort), | private, | POINTER | :: | first | => | null() | |
integer(kind=short), | private | :: | i | ||||
integer(kind=short), | private | :: | j | ||||
integer(kind=short), | private | :: | lenght | = | 0 |
Computes the absorbed photosynthetically active radiation. The amount of light available for the plant that is going to define its growth rate. The light that the plant could absorb is determined according to the canopy cover. The amount of absorbed photosynthetically active radiation is usually computed following Lambert-Beer law .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | rad |
shortwave direct radiation (w/m2) |
||
real(kind=float), | intent(in) | :: | lai |
leaf area index (m2/m2) |
||
real(kind=float), | intent(in) | :: | k |
extinction coefficient for absorption of PAR by canopy |
||
real(kind=float), | intent(in) | :: | alb |
plant albedo (0-1) |
||
integer(kind=short), | intent(in) | :: | dt |
time step (s) |
update DBH and height tree according to ech2o model by Maneta
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | cc |
canopy cover |
||
real(kind=float), | intent(in) | :: | hdmin |
H/D ratio in carbon partitioning for low density |
||
real(kind=float), | intent(in) | :: | hdmax |
H/D ratio in carbon partitioning for high density |
||
real(kind=float), | intent(in) | :: | ws |
stem biomass (t/ha) |
||
real(kind=float), | intent(in) | :: | dws |
stem biomass increment (t/ha) |
||
real(kind=float), | intent(inout) | :: | DBH | |||
real(kind=float), | intent(inout) | :: | height | |||
real(kind=float), | intent(in) | :: | tree_density |
tree density (trees/ha) |
||
real(kind=float), | intent(in) | :: | wood_density |
wood density (kg/m3) |
||
real(kind=float), | intent(in) | :: | age |
tree age (year) |
||
real(kind=float), | intent(in) | :: | maxage |
tree max age (year) |
Initialize Plants module
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=300), | intent(in) | :: | iniFile |
configuration file |
||
type(grid_integer), | intent(in) | :: | mask |
mask of simulation domain |
||
type(DateTime), | intent(in) | :: | begin |
simulation starting date |
||
type(DateTime), | intent(in) | :: | end |
simulation ending date |
Update plants state variables
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
current time |
||
type(grid_real), | intent(in) | :: | radiation |
shortwave radiation [w/m2] |
||
type(grid_real), | intent(in) | :: | temperature |
air temperature [°C] |
||
type(grid_real), | intent(in) | :: | swc |
soil water content [m3/m3] |
||
type(grid_real), | intent(in) | :: | sfc |
soil field capacity [m3/m3] |
||
type(grid_real), | intent(in) | :: | swp |
soil wilting point [m3/m3] |
||
type(grid_real), | intent(in) | :: | rh |
air relative humidity [0-1] |
||
real(kind=float), | intent(in), | optional | :: | co2 |
CO2 [ppm] |
update parameter map that change in time
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | intent(in) | :: | time |
fill in a grid with state variable values in forest stands
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(grid_real), | intent(inout) | :: | grid | |||
character(len=*), | intent(in) | :: | statevar |
update DBH and height tree every new year
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | cc |
canopy cover |
||
real(kind=float), | intent(in) | :: | hdmin |
H/D ratio in carbon partitioning for low density |
||
real(kind=float), | intent(in) | :: | hdmax |
H/D ratio in carbon partitioning for high density |
||
real(kind=float), | intent(in) | :: | ws |
stem biomass (t/ha) |
||
real(kind=float), | intent(in) | :: | dws |
stem biomass increment (t/ha) |
||
real(kind=float), | intent(inout) | :: | DBH | |||
real(kind=float), | intent(inout) | :: | height |
update leaf biomass and leaf area index
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=float), | intent(in) | :: | npp |
net primary production [t/ha] |
||
real(kind=float), | intent(in) | :: | af |
allocation factor [0-1] |
||
real(kind=float), | intent(in) | :: | Ta |
air temperature [°C] |
||
real(kind=float), | intent(in) | :: | Tcold |
temperature threshold that accelerates leaf turnover (°C) |
||
real(kind=float), | intent(in) | :: | swc |
soil water content [m3/m3] |
||
real(kind=float), | intent(in) | :: | swp |
soil wilting point [m3/m3] |
||
real(kind=float), | intent(in) | :: | sfc |
soil field capacity [m3/m3] |
||
real(kind=float), | intent(in) | :: | tr |
leaf turnover rate [s-1] |
||
real(kind=float), | intent(in) | :: | sla |
specific leaf area [m2/Kg] |
||
real(kind=float), | intent(inout) | :: | mleaf |
mass of leaf [t/ha] |
||
real(kind=float), | intent(inout) | :: | lai |
leaf area index [m2/m2] |
read species parameters
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | inifile |
set initial condition
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | inifile |