ERROR|19:13:35,442|InProcessSimulatorLauncher.java|484|localSimulateSameThread|Error during simulation
java.lang.NullPointerException
at fr.ifremer.isisfish.simulator.PopulationMonitor.getRecruitment(PopulationMonitor.java:236)
at simulators.DefaultSimulator.computeMonth(DefaultSimulator.java:436)
at simulators.DefaultSimulator.simulate(DefaultSimulator.java:218)
at simulators.SimulatorEffortByCell.simulate(SimulatorEffortByCell.java:51)
at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher.localSimulateSameThread(InProcessSimulatorLauncher.java:441)
at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher$SimThread.run(InProcessSimulatorLauncher.java:271)
INFO|19:13:35,458|InProcessSimulatorLauncher.java|513|localSimulateSameThread|Simulation time: 5.263
INFO|19:13:35,458|IsisCacheBackendOnGuava.java|239|adjustedCache|Cache size ajusted to 1,586Ko (equivalent to 2 step need)
INFO|19:13:35,474|InProcessSimulatorLauncher.java|202|message|Simulation terminée
INFO|19:13:35,474|SimulationControl.java|206|setText|Simulation terminée
et voici l equation qui compile:
// forced recruitment each year
int y = context.getSimulationControl().getStep().getYear();
double[] poly08 = {0,0.072,0.038,0.068,0.03,0.034,0.083,0.016,0,0.008,0.01,0,0.015,0,0.046,0,0.035,0,0,0,0.034,0.053,0.031,0.03,0.036,0,0.024,0,0.063,0,0,0.03,0.132,0.076,0,0.039,0,0,0};
double[] poly09 = {0,0.105,0.062,0.061,0.014,0.035,0.063,0.017,0,0,0,0,0.01,0,0.041,0,0.013,0,0,0,0.024,0.061,0.054,0.02,0.033,0.014,0.016,0,0.038,0,0,0.114,0.085,0.045,0,0.035,0.018,0,0.021};
double[] coeffs = {0,0.104,0.03725,0.06975,0.01925,0.0345,0.069,0.01625,0,0.006,0.005,0,0.0115,0,0.041,0,0.03525,0,0,0,0.033,0.07775,0.0535,0.02225,0.03925,0.01075,0.0175,0,0.042,0,0,0.07675,0.08325,0.05025,0,0.026,0.01075,0,0.00975};
// recruitment TS 2008-2010
double [] TSRec ={19488138,60032669}; // from nb at age WGNSSK 2012
// matrix result / zone
double val = 38808489; // average 2003-2009
for(Zone zr : zoneRepro){
if(prepro == 1){
if(y<2){
val = TSRec[y];
if(y == 0){ coeffs = poly08;
}else { coeffs = poly09;}
}
String zoneName = zr.getName();
String indice = zoneName.replaceAll("Poly([0-9]+)", "$1");
int i = Integer.parseInt(indice);
double valzone = coeffs[i] * val;
result.setValue(zr,valzone);
} else {result.setValue(zr,0.0);}
}
return 0;
--
Sigrid LEHUTA
~ ><> ~
Ecologie et Modèles pour l'Halieutique
IFREMER Nantes
Rue de l'Ile d'Yeu - BP 21105, 44311 Nantes Cedex 03, France
Tél : 02 40 37 40 09 (N° interne : 8009)
Membre de l'Association Française d'Halieutique
http://sirs.agrocampus-ouest.fr/AFH/index.php/en
"Like all creative activities, modelling gives joy to its maker." A. Saltelli.
_______________________________________________
Isis-fish-users mailing list
Isis-fish-users@list.isis-fish.org
http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users