90 INTEGER,
INTENT(in) :: nspc, year
92 Logical,
INTENT(in) :: doDispersal
102 numin0(0:maxhc, 1:maxspc), &
110 if (stock <= 1.
e-20)
return
119 if (dodispersal)
then
122 thiscell%sp(i)%ingrowth = 0.0
127 thiscell%sp(i)%numin(0) = 0.0
131 disturbancemort = 0.0
133 call random_number(randomvalue)
135 call random_number(randomvalue2)
140 disturbancemort = min(1., disturbancemort + thiscell%disturb)
142 do htcl = maxhc, minhc, -1
149 if (
htcl <=
spec(i)%maxhtc + 1)
then
150 numin0(
htcl, i) = thiscell%sp(i)%numin(
htcl)
152 numin0(
htcl, i) = 0.0
158 byhcls:
do htcl = maxhc, minhc, -1
160 call lfcalc(nspc,
htcl, lasum, lasqsum, numin0)
162 byspecies:
do i = 1, nspc
163 thiscell%sp(i)%seeds(
htcl) = 0.0
164 ntinh = numin0(
htcl, i)
166 ifhcls:
if (ntinh > 0.0)
then
177 call mort(i,
htcl,
ltcl, srvinhl, ntinhl, disturbancemort, thiscell)
193 call regen(nspc, stock, dodispersal, thiscell)
subroutine grow(ispec, heightcl, lightcl, srvinhl, minhc, thiscell)
Grow.
subroutine lfcalc(nspc, heightcl, laisum, laisqsum, numin0)
Lfcalc: light distributions.
subroutine localforestdynamics(nspc, year, dodispersal, thiscell)
LocalForestDynamics.
subroutine mort(isp, heightcl, lightcl, srvinhl, numb, disturbancemort, thiscell)
Mort.
subroutine regen(nspc, stock, dodispersal, thiscell)
Regen: calculates regeneration.
subroutine sumspecsseedprodsoverheights(nspc, thiscell)
SumSpecsSeedprodsOverHeights.
subroutine seedprod(ispec, htcl, ntinh, year, thiscell)
Seedprod.
subroutine selfregulation(nspc, dodispersal, thiscell)
SelfRegulation
subroutine specimmigration(nspc, year, dodispersal, thiscell)
SpecImmigration
real, dimension(:, :), allocatable stockability
type(specproperties), dimension(maxspc) spec
character(len=:), allocatable e
real, dimension(maxlc) ltfrq
integer, parameter maxspc