64SUBROUTINE regen(nspc, stock, doDispersal, thiscell)
78 INTEGER,
INTENT(in) :: nspc
79 REAL,
INTENT(in) :: stock
80 Logical,
INTENT(in) :: doDispersal
89 lih, allgerms, alldeps, ndeps, &
91 maxseedlnr, estabFrac, seedlcrownarea
103 byspecies:
do i = 1, nspc
110 lidep =
ltcum(ilstart + 1)
114 if (dodispersal)
then
120 threshold =
spec(i)%klighs
122 lidep = lidep + ld*
ltfrq(ltcl)
127 thiscell%sp(i)%sb = thiscell%sp(i)%seedBank
129 newborn = thiscell%sp(i)%seedBank*lidep*
spec(i)%enveta*
spec(i)%seedGerm
133 thiscell%sp(i)%seedBank = (thiscell%sp(i)%seedBank - newborn)*
spec(i)%seedSurv*(1.0 -
spec(i)%seedLoss)
135 thiscell%sp(i)%seedBank = 0.0
141 allgerms = allgerms + newborn
142 alldeps = alldeps + lidep*
spec(i)%enveta
156 thiscell%sp(i)%numin(1) = thiscell%sp(i)%numin(1) + newborn
157 thiscell%sp(i)%ingrowth = newborn
163 if (dodispersal)
then
164 if (allgerms > 0.0)
then
165 maxseedlnr =
pltsiz*estabfrac/seedlcrownarea
167 if (thiscell%sp(i)%numin(0) < 0)
then
168 call logwarning(
"Negative seedlings in SUBROUTINE Regen!")
171 thiscell%sp(i)%numin(0) = thiscell%sp(i)%numin(0) + &
172 allgerms*maxseedlnr/(allgerms + maxseedlnr)*(relnewb(i)/allgerms)
subroutine regen(nspc, stock, dodispersal, thiscell)
Regen: calculates regeneration.