Ticket #891 (closed assessed: fixed)

Opened 13 years ago

Last modified 13 years ago

Loading Ecosim may affect groups with imported detritus diets in Ecopath

Reported by: jeroens Owned by: joeb
Priority: urgent Milestone: Ecopath 6: release 6.2
Component: Ecopath Version:
Severity: major Keywords:
Cc:

Description (last modified by jeroens) (diff)

Under rare circumstances Ecopath cannot balance after loading an Ecosim scenario. To reproduce:

  • Load Ecopath
  • Load Ecosim (this runs Ecopath)
  • Make a change in Basic Input and revert this change
  • Go to Basic Estimates

This is found on a few BiomassRegression models: okey 2, 3, 7; olson 1; vega-candejas; venier

Change History

comment:1 Changed 13 years ago by jeroens

  • Description modified (diff)

comment:2 Changed 13 years ago by jeroens

This error seems to exist in EwE5 as well!

comment:3 Changed 13 years ago by jeroens

A lead: on load Ecosim populates DetritusImport? data in Ecopath, which may cause Ecoapth not to run a second time around. This may only happen for groups with imported detritus diets

Version 0, edited 13 years ago by jeroens (next)

comment:4 Changed 13 years ago by jeroens

  • Summary changed from Loading Ecosim seems to affect the Ecopath ability to estimate parameters to Loading Ecosim may affect groups with imported detritus diets in Ecopath

comment:5 Changed 13 years ago by joeb

When an Ecosim scenario loads Ecopath.Immig() is populated with imported detritus Ecopath.DtImp?() in SetupSimVariables?() Immig() is then used by Ecosim to compute DetritusOut?() in SimDetritusMT(). Immig() for detritus is also being used in DerivT.. So this can be fixed???

Last edited 13 years ago by joeb (previous) (diff)

comment:6 Changed 13 years ago by joeb

  • Status changed from new to closed
  • Resolution set to fixed

The Ecopath.Immig() array is set to imported detritus in SetupSimVariable? as described above. In Ecopath.GIM() there is a nested i,j loop to populate the Q(ngroups) array that uses Ecopath.Immig() with the j index inside the i loop

for i = 1 to n

Q(i) = catch(i) * BA(i) + Emigration(j) - Immig(j)

for j = 1 to n

.....

This can not be correct Emigration(j) - Immig(j) should use the i index 

Note: See TracTickets for help on using tickets.