I am working through how Netlogo's Tabonuco-Yagrumo-Hybrid model (http://ccl.northwestern.edu/netlogo/models/TabonucoYagrumoHybrid) integrates system dynamics and agent-based modelling. As I understand it, the model replaces the traditional 'flows' in a system dynamics model with an agent-based procedure, which is pretty cool.
However, in the Tabonuco-Yagrumo-Hybrid model, I am confused at the use of the reporters agent-yagrumo-growth
and agent-tabonuco-growth
.
The agent-go
procedure sets the respective tree growth flows as:
to agent-go
set yagrumo-growth agent-yagrumo-growth yagrumo-stock
set tabonuco-growth agent-tabonuco-growth tabonuco-stock
...
end
As can be seen, the flows yagrumo-growth
and tabonuco-growth
are set using the reporters mentioned above, which take as input the current 'stock' values, i.e. the number of yagrumo and tabonuco trees, respectively. This makes sense.
Going to the definition of the reporter procedures, however, the current stock does not seem to be used at all in the calculations. To take the agent-yagrumo-growth
procedure as an example:
to-report agent-tabonuco-growth [ current ]
let total-grown 0
let growable tabonucos with [ not all? neighbors [ any? turtles-here ] ]
ask n-of ( count growable * tabonuco-growth-rate ) growable
[ let seedpatch one-of neighbors with [ not any? turtles-here ]
if ( seedpatch != nobody )
[ ask seedpatch
[ sprout-tabonucos 1 [ set color sky ]
set total-grown total-grown + 1
]
]
]
report total-grown
end
Why doesn't this reporter use the value given for current
, which represents the current stock value. Am I missing something or is this an error?
Thanks!