https://github.com/StefanKruse/LAVESI
Tip revision: 422dc634a9d47e36c2e5c3a78906901ab6f2cdc3 authored by Stefan Kruse on 30 March 2022, 09:03:58 UTC
Create LICENSE
Create LICENSE
Tip revision: 422dc63
parameters.txt
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 0. General functionality: Display, output and submodule switches
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 0.1 Display
// 0.2 Output
// 0.3 Submodules
// 0.4 Computation environment
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 0.1 -----> Display in console
parameterinputvis=0; // (int 0,1) show read-in of parameters
yearlyvis=0; // (int 0,1) yearly steps => year,basal area,seed information,HeightClassesDistr
qualiyearlyvis=0; // (int 0,1) year characteristics => Weather info: AAT,Growth,...
seedwinddispersalvis=0; // (int 0,1) seed dispersal
mortvis=0; // (int 0,1) mortality of trees >200 cm
computationtimevis=1; // (int 0,1) include visualisation and output of computation time a function of the plot size and number of trees
// 0.2 -----> Output
dataoutput=1; // (int 0,1) write data to files
outputmode=1; // (int) choice of data output files
// 0=="full"
// 1=="normal"
// 2=="OMP only => currencies + computation time"
outputall=1; // (int 0,1) sampling area determination
// 0==only central 20x20 m area
// 1==output of all tree data on the plot
// 0.3 -----> Submodules
thawing_depth=1; // (int 0,1) Active layer calculation
vegetation=0; // (int 0,1) Representation of an organic layer
// 0.4 Computation environment
omp_num_threads=1; // (int 1,system specific maximum) Number of cores used for computation, set internally on runtime by "omp_set_num_threads(omp_num_threads)"
// ... the dynamic teams are disabled for multi-core processing by "omp_set_dynamic(0)" in the source files
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 1. Simulation set up //
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 1.1 Weather data //
// 1.1.1 Temperature and precipitation //
// 1.1.1 Wind //
// 1.2 Simulation run characteristics //
// 1.3 Plot number //
// 1.4 Dispersal //
// 1.4.1 Seed dispersal type and handling + seed introduction //
// 1.4.2 Pollen dispersal //
// 1.5 Growth function parameters and influences //
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 1.1 -----> Weather data
// 1.1.1 -----> Temperature and precipitation
weatherchoice=24; // (int) Type of weather forcing series
// 22==TY02
// 22==CH17
// 23==CH02
// 24==CH06
// ... the site IDs refer to field locations visited at the southern Taymyr-Peninsula
precweather=1; // (int 0,1,2) Influence of precipitation on maximum tree diameter growth
// 0==not at all
// 1==linearly if smaller than threshold
// 2==parabola function with a global maximum at the optimum
evapod=1.5; // (double) Evapotranspiration based on Dolmann, 2004)
weathercalcgradient=0; // (int 0,1) Approximation of temperature and precipitation values on a gradient depending on their latidudinal position
// 0==without a gradient
// 1==calculation of a linear gradient
nposmax=72.267; // ... (double) (IF weathercalcgradient==1) the northernmost plot's position, if more than one plot is to be simulated along a transect (site ch17 is e.g. 72.2625° N)
nposmin=72.2625; // ... (double) (IF weathercalcgradient==1) the southernmost plot's position
// 111 km == 1 decimal degree
lineartransect=0; // (int 0,1) approximation of temperature and precipitation values on a south-north gradient on each simulated plot
// 0==synchronous forcing per plot
// 1==linearly changing from south to north
// 1.1.1 -----> Wind
windsource=1; // (int) source of wind data
// 0==random dispersal direction and not depending on wind speed
// 1==EraInterim
// 4==North Wind
// 5==South Wind
// 1.2 -----> Simulation run characteristics
simduration=80; // (int) duration of the simulation period depending on the available weather data series
runs=1; // (int) number of repeated simulations
ivortmax=1000; // (int) spin up phase before the simulation period and maximum simulation years when stabilperiod==1 (s. below)
// 0==without spin up phase
// >10==with spin up phase
stabilperiod=0; // (int 0,1) simulate a stabilization phase that ends when the simulated population falls below a certain threshold (stabilpercentchangethreshold)
stabilmovingwindow=10; // ... (int) time window length for which the state of the population is evaluated for the stabilization phase
stabilpercentchangethreshold=0.005; // ... (double 0-1) threshold for evaluation of a population's state given for four variables as sum, the value 0.02 is one aims for less than 0.5% variation
resetyear=0; // (int) year to save all container for a later resume from this time point
specpres=1; // (int) which larch species should be present in the model
// 0==both Larix gmelinii and L. sibirica
// 1==only Larix gmelinii
// 2==only Larix sibirica
// 1.3 -----> Plot number
mapxlength=1; // (int) number of parallel executed plots for each climate
mapylength=1; // (int) number of plots along a south-north transect
sizemagnif=5; // (int) resolution of the density grid; a value of 5 determines a 20 cm sub grid
// 1.4 -----> Dispersal
// 1.4.1 -----> Seed dispersal type and handling + seed introduction
seedintro=1; // (int 0,1) seed input to simulated plot(s)
yearswithseedintro=10; // ... (int) years of seed introduction at the beginning of each simulation
seedintronumber=1000; // ... (int) number of seeds introduced per year (FOR EACH yearswithseedintro) and plot
seedintropermanent=0; // (int 0,1) should seeds permanently introduced
seedintronumberpermanent=10000; // ... (int) if seedintropermanent==1 number of seeds introduced per year and plot
realseedconnect=0; // (int 0,1) (IF mapylength>1) plot position for the initial seed introduction
// 0==into all plots along a transect
// 1==only southernmost plot
seedwinddispersalmode=1; // (int 1,2) positions for introduced seeds
// 1==neg. exp. from south border
// 2==randomly into the plot
seedtravelbetween=0; // (int 0,1) (IF mapylength>1) seed travel between plots along a transect
boundaryconditions=3; // (int 0,1,2) periodic boundary conditions for seeds crossing plot boundaries
// 0==seeds passing the borders are removed
// 1==the western/eastern and northern/southern border turned in both directions
// 2==dispersal connection only on the western to eastern border
// 3==only seeds leaving east-or-westwards get newly introduced
starttrees=0; // (int) type of initial tree set up
// 0==without initial trees
// 12==CH17
// and SSAAAATTT: first 2 positions (S:SITE) define the site, next 4 positions (A:AREA)for area width (currently implemented: 0100 100x100, 0500 500x500 1000 1000x1000) and additionally final 3 positions (T:TRANSECT) for transects beginning in the south in kilometers (currently implemented: 100x500000 meters)
// ... don't give the last numbers TTT when quadratic area set up is needed (e.g. 120100)
// 1.4.2 -----> Pollen dispersal
pollination=1; // (int 0,1,2) allow pollen dispersal
// 0==without pollination
// 1==pollination is computed during the simulation period (simduration)
// ... (IF pollination==1 && omp_num_threads==1 && ivortmax==1000 && simduration==80) pollination variables are printed to one file "windgen_pollination_total....txt" for the years after 1978
// 9==each year computation of pollination
// ... it is strongly recommended to use at least 4 multiple core, or more as this functionality is computational intensive
pollendirectionvariance=10; // (double) variance of the von Mises distribution in degrees. Used in the pollen distribution function
pollenfall=0.126; // (double) pollen fall velocity
pollengregoryc=0.6; // (double) pollen dispersal parameter
pollengregorym=1.25; // (double) pollen dispersal parameter
// 1.5 -----> Growth function parameters and influences
basalinfluenceoldyoung=0.0; // (double) basal diameter influence for year's basal diameter growth
relgrowthinfluence=1; // (int 0,1) influence of current growth (reduced by density depending processes) on seed production and mortality estimation
incfac=10; // (int) factor for calculating area influenced by individual trees
calcinfarea=1; // (int) calculation mode for area size determination
// 1==linearly increasing (8 m at basal diameter of 80 cm)
// 2==logistically increasing with maximum value of 8 m (reaching at c. 35 cm basal diameter)
densityvaluemanipulatorexp=1; // (double) exponent to scale the influence of a tree to the density tile
// 1== normal
// 2== parabolically i.e. smaller values reached faster
densitysmallweighing=0; // (double) exponent to scale the influence of individuals on the denstity tiles which are only influencing one tile
// 1==density is affected linearly with increasing basal diameter
// 0==without weighing
densitytreetile=0.5; // (double) exponent to change the density value input from each tree into the density grid
// 1==value equals basal diameter decreasing with distance from centre
// 0==value ranges from 1 to 0 with increasing distance
densitymode=2; // (int 1,2,3) mode of density calculation
// 1==without (densitywert of trees=0)
// 2==ZOI-kind of density calculation
// 3==random determination of surrounding fields
densitytilecalc=1; // (int 1) mode for density value integrating of all trees for each tile as the sum within each tile
densitytiletree=2; // (int 1,2) mode for calculating the influence of density values within tiles for each tree
// 1==sum of all values weighed by distance
// 2==multiplied by the current values of the trees influence on each tile (as in densitytreetile=0)
desitymaxreduction=0.9; // (double 0-1) maximum value the density value can reach
densityvaluedbasalinfluence=0; // (double) exponent to scale the influence of the tree's diameter to its influencing density value
dichtheightrel=12; // (int) interaction modification mode of tree height and density influence strength
// 1==three different constant values for the three height classes
// 2==linearly decreasing from centre of the tree and influenced by the tree's age and additionally a minimum of value 0.1 is set
// 3==....
precthreshold=371.717745; // (double) precipitation optimum
janthresholdtempgmel=-45; // (double) number for January isotherm restriction
weathervariablegmela=0.076; // (double) determines curvature of the July index for L.gmelinii
weathervariablegmelb=14.568; // (double) determines curvature of the July index for L.gmelinii
weathervariablegmelc=0.101; // (double) determines curvature of the July index for L.gmelinii
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 2. Larix gmelinii (Rupr.) Rupr. and Larix sibirica Ledeb. specific parameter
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 2.1 Reproduction
// 2.2 Diameter growth
// 2.3 Height estimation
// 2.4 Mortality estimation
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- //
// 2.1 -----> Reproduction
coneage=15; // (int) minimum age trees begin to bear cones
seedflightrate=0.63931; // (double 0-1) chance a seed is released from the producing tree
dispersalmode=5; // (int 0,1,2,3,4) dispersal mode for seeds (95% of seeds distributed within 100 m)
// 0==random
// 1==negative exponential
// 2==fat tailed
// 3==gaussian
// 4==gaussian and fat tailed combined
// 5==gaussian and fat tailed combined plus maximum after Matlack
seedtravelbreezeg=60.1; // (double) maximal flight distance for L. gmelinii seeds at 10 km/h (estimation: Matlack 1987)
seedtravelbreezes=45.0; // (double) maximal flight distance for L. sibirica seeds at 10 km/h (estimation: Matlack 1987)
seeddescentg=0.86; // (double) descent speed for L. gmelinii seeds (estimation: Matlack 1987)
seeddescents=0.93; // (double) descent speed for L. sibirica seeds (estimation: Matlack 1987)
distanceratio=0.16; // (double) dispersal distance factor
seedprodfactor=8; // (double) seed production factor
germinationrate=0.01; // (double 0-1) germination rate
germinatioweatherinfluence=0.447975;// (double) influence of the climate to germination
gmelseedmaxage=2.0; // (int) years of seed fertility for Larix gmelinii
// 2.2 -----> Diameter growth
gdbasalfacqgmel=-0.003; // (double) factor for basal diameter growth rate of L. gmelinii trees
gdbasalfacgmel=0.030; // (double) factor for basal diameter growth rate of L. gmelinii trees
gdbasalconstgmel=-1.98; // (double) basal diameter growth rate of L. gmelinii trees
gdbreastfacqgmel=-0.003 // (double) factor for diameter growth rate at breast height of L. gmelinii trees
gdbreastfacgmel=0.030; // (double) factor for diameter growth rate at breast height of L. gmelinii trees
gdbreastconstgmel=-1.98; // (double) diameter growth rate at breast height of L. gmelinii trees
gdbasalfacqsib=-0.0009; // (double) factor for basal diameter growth rate of L. sibirica trees
gdbasalfacsib=0.0056; // (double) factor for basal diameter growth rate of L. sibirica trees
gdbasalconstsib=-1.01; // (double) basal diameter growth rate of L. sibirica trees
gdbreastfacqsib=-0.0009; // (double) factor for diameter growth rate at breast height of L. sibirica trees
gdbreastfacsib=0.0056; // (double) factor for diameter growth rate at breast height of L. sibirica trees
gdbreastconstsib=-1.01; // (double) diameter growth rate at breast height of L. sibirica trees
// 2.3 -----> Height estimation
allometryfunctiontype=2; // (int 1,2) allometric function mode
// 1==linear
// 2==non linear
dbasalheightalloslope=42.88; // (double) (IF allometryfunctiontype == 1) slope for height estimation from basal diameter
dbasalheightalloexp=1.0; // (double) (IF allometryfunctiontype == 1) exponent for height estimation from basal diameter
dbreastheightalloslope=42.88; // (double) (IF allometryfunctiontype == 1) slope for height estimation from breast height diameter
dbreastheightalloexp=1.0; // (double) (IF allometryfunctiontype == 1) exponent for height estimation from breast height diameter
dbasalheightslopenonlin=44.43163; // (double) (IF allometryfunctiontype == 2) slope for height estimation from basal diameter
dbreastheightslopenonlin=7.02; // (double) (IF allometryfunctiontype == 2) slope for height estimation from breast height diameter
// 2.4 -----> Mortality estimation
mortbg=0.0001; // (double 0-1) background mortality
maximumage=609; // (int) maximum tree age
mortage=8.18785; // (double) mortality factor if a tree exceeds the maximum age
mortyouth=0.762855; // (double) mortality factor for young individuals
mortyouthinfluenceexp=0.79295; // (double) exponent determining duration time of youth mortality
// <1==longer
// >1==shorter
mgrowth=0.0; // (double) factor for adjusting the influence of current tree growth on mortality
relgrowthmortinfluenceexp=1.0; // (double) influence exponent of current tree growth on mortality
// 0==no influence of relative growth on mortality
// 1==linear influence of the relative growth on mortality
// >1==stronger
// <1==weaker
mdensity=0.5; // (double) mortality factor for density
densityvaluemaximumatheight=0.0; // (double) (IF mdensity>0) the density influence is modified depending on the tree's height by using a circle-function
mweather=0.1; // mortalitaetsfaktor_weather (0-+oo) (standard=0.5!)
heightweathermorteinflussexp=0.2; // (double) exponent for determining an influence of the tree height on the climate mortality
mdrought=0.237805; // (double) mortalitaetsfaktor_Trockenheit (0-+oo)
seedconemort=0.44724; // (double 0-1) mortality rate of seeds in cones on the trees
seedfloormort=0.55803; // (double 0-1) mortality rate of seeds at the ground