Forest Dynamic Model III - Rosindell et al. 2010

No preview image

1 collaborator

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.3.0 • Viewed 118 times • Downloaded 5 times • Run 0 times
Download the 'Forest Dynamic Model III - Rosindell et al. 2010' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Info tab cannot be displayed because of an encoding error

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

extensions [table csv]
globals [V K W-vec index rspec speciation specia spec Wvec speciesi meta-speciesi JM meta-sp meta-time meta-a0  meta-j2 meta-a meta-set2 extinct-species number-of-meta-trees a initial-meta-richness dlocx dlocy random-number2 number time num j x-cor y-cor N richness a0 n-speciation local-set local-di-set local-off-set set-species-who-di set-species-who-off sp hist-frq rel-hist-frq s local-set0 remove-set richness-counts species-who-di di-locx di-locy species-who-off set1-species-who-off meta-set effective-meta-cmmunity-size number-of-local-trees item-x meta-set-new meta-sp-count sp-count j1 i1 k1 j2 i2 k2 meta-richness-counts meta-richness local-richness-counts local-richness hist-frq-meta rel-hist-frq-meta hist-frq-local rel-hist-frq-local t]
breed [meta-trees meta-tree]
breed [trees tree]
meta-trees-own [species meta-species n-speciation-no]
trees-own [species h]
circles-own []
breed [circles a-circle]
patches-own[elevation]

to setup3
  clear-all
  set local-richness-counts map count table:values table:group-agents trees [species]
  set local-richness length local-richness-counts
  set sp 0
  set meta-sp 0
  set speciation 0
  set specia []
  set spec []
  set Wvec []
  set J (w1 + 1) * (w1 + 1)
  resize-world 0 w1 0 w1
  set JM 0
  set K J
  set t 0
  species-gen1
  set hist-frq-local sort-by > map count table:values table:group-agents trees [ species ]
  set rel-hist-frq-local map [ i -> i / count trees ] hist-frq-local
  set richness-counts map count table:values table:group-agents turtles [ species ]
  set richness length richness-counts
  set hist-frq-meta sort-by > map [ i -> i] Wvec
  update-plots
  reset-ticks
end 

to species-gen1
  set k1 -1
  while [k1 < w1 ] [
    set k1 k1 + 1
    set i1 -1
    while [i1 < w1 ] [
      set i1 i1 + 1
      create-trees 1 [
        setxy k1 i1
        set shape "circle"
        set size 1
        set num random-float 1
        set j1 j1 + 1
        set species (sp + 1)
        set sp sp + 1
        set color random-float -50
        set spec fput sp spec
      ]
    ]
  ]
  set local-richness sp
end 

to go3
  while [K > 0] [
    let r1 random-float 1
    if (length spec = 0 )[stop]
    set rspec one-of spec
    if-else (r1 <= (m * (J - 1) / (m * (J - 1) + (1 - m) * (K - 1))))[
      set speciation speciation + 1
      set specia fput rspec specia
      set spec remove rspec spec
      let Wvec1 count trees with [species = rspec]
      set Wvec fput Wvec1 Wvec
      set sp sp + 1
      let color0 60 + random-float -50
      ask trees with [species = rspec] [
        set species sp
        set color color0
        ;set shape "arrow"
      ]
    ]
    [
      if (length spec = 0 )[stop]
      set spec remove rspec spec
      let color01 [color] of one-of trees with [species = rspec]
      ask trees with [species = rspec] [
        if (length spec = 0 )[stop]
        set rspec one-of spec
        set species rspec
        set color color01
      ]
    ]
    set K K - 1
    set richness-counts map count table:values table:group-agents turtles [ species ]
    set richness length richness-counts
    set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
    set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
    set hist-frq-meta sort-by > map [ i -> i ] Wvec
    update-plots
    tick
  ]
  If (K = 0) [go]
end 

to go
  set K J
  while [K > 0] [
    let r1 random-float 1
    if (length spec = 0 )[stop]
    set rspec one-of spec
    if-else (K > 1) [set t t - (ln (r1) / (K * (K - 1 )))]
    [set t 100000]
    if-else (tau >  t) [
      set spec remove rspec spec
      ask trees with [species = rspec] [
        set rspec one-of spec
        set species rspec
        set color [color] of one-of trees with [species = rspec]
      ]
      set K K - 1
      set t 0
      set richness-counts map count table:values table:group-agents turtles [ species ]
      set richness length richness-counts
      set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
      set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
      set hist-frq-meta sort-by > map [ i -> i ] Wvec
      update-plots
      tick
    ]
    [
      if (length spec = 0 )[stop]
      if-else (r1 <= theta / (theta + K - 1)) [
        set speciation speciation + 1
        set specia fput rspec specia
        set spec remove rspec spec
        let Wvec1 count trees with [species = rspec]
        set Wvec fput Wvec1 Wvec
        set sp sp + 1
        let color0 60 + random-float -50
        ask trees with [species = rspec] [
          set species sp
          set color color0
          ;set shape "arrow"
        ]
        set K K - 1
        set richness-counts map count table:values table:group-agents turtles [ species ]
        set richness length richness-counts
        set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
        set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
        set hist-frq-meta sort-by > map [ i -> i ] Wvec
        update-plots
        tick
      ]
      [
        if (length spec = 0 )[stop]
        set spec remove rspec spec
        let color01 [color] of one-of trees with [species = rspec]
        ask trees with [species = rspec] [
          set rspec one-of spec
          set species rspec
          set color color01
        ]
        set K K - 1
        set richness-counts map count table:values table:group-agents turtles [ species ]
        set richness length richness-counts
        set hist-frq-local sort-by > map count table:values table:group-agents turtles [ species ]
        set rel-hist-frq-local map [ i -> i / count turtles ] hist-frq-local
        set hist-frq-meta sort-by > map [ i -> i ] Wvec
        update-plots
        tick
      ]
    ]
  ]
end 


; Copyright 2023i Ruwan Punchi-Manage.
; See Info tab for full copyright and license.

There is only one version of this model, created 7 months ago by Ruwan Punchi-Manage.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.