<?xml version="1.0" encoding="UTF-8"?><experimentalDesign version="3" author="" license="" date="Mon Jan 09 21:34:08 CET 2023" id="">
  <factors>
    <factor id="parameters.rule.1.parameter.derive" name="Param_regle_DeriveEfficacite_5ans_derive">
      <feature name="cardinality">6</feature>
      <feature name="target">parameters.rule.1.parameter.derive</feature>
      <domain distributionName="categorical" type="string">
        <level>-0.05</level>
        <level>0.0</level>
        <level>0.05</level>
        <level>0.1</level>
        <level>0.15</level>
        <level>0.2</level>
      </domain>
    </factor>
    <factor id="parameters.rule.0.parameter.propSurvie" name="Param_regle_TACpoids_propSurvie">
      <feature name="cardinality">9</feature>
      <feature name="target">parameters.rule.0.parameter.propSurvie</feature>
      <domain distributionName="categorical" type="string">
        <level>0.1</level>
        <level>0.2</level>
        <level>0.3</level>
        <level>0.4</level>
        <level>0.5</level>
        <level>0.6</level>
        <level>0.7</level>
        <level>0.8</level>
        <level>0.9</level>
      </domain>
    </factor>
    <factor id="fr.ifremer.isisfish.entities.Population#1223471368770#0.3058878391043739#mappingZoneReproZoneRecru" name="nephrops_mappingZoneReproZoneRecru">
      <feature name="cardinality">2</feature>
      <feature name="target">fr.ifremer.isisfish.entities.Population#1223471368770#0.3058878391043739#mappingZoneReproZoneRecru</feature>
      <domain distributionName="categorical" type="matrix">
        <level>
          <mx name="isisfish.population.mappingZoneReproZoneRecru">
            <dimension name="isisfish.population.reproduction" size="9">
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368550#0.42006027127038836:zone L21E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368465#0.6557199716060222:zone L21E8)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368595#0.09185321298279381:zone L22E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368596#0.4083298656810965:zone L22E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368601#0.8267416256822997:zone L23E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.8268258952507295:zone L23E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.4037593952245394:zone L23E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368604#0.690058199620033:zone L24E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368608#0.18576758948401628:zone L24E6)</label>
            </dimension>
            <dimension name="isisfish.population.recruitment" size="9">
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368550#0.42006027127038836:zone L21E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368465#0.6557199716060222:zone L21E8)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368595#0.09185321298279381:zone L22E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368596#0.4083298656810965:zone L22E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368601#0.8267416256822997:zone L23E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.8268258952507295:zone L23E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.4037593952245394:zone L23E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368604#0.690058199620033:zone L24E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368608#0.18576758948401628:zone L24E6)</label>
            </dimension>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>1.0</d>
          </mx>
        </level>
        <level>
          <mx name="isisfish.population.mappingZoneReproZoneRecru">
            <dimension name="isisfish.population.reproduction" size="9">
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368550#0.42006027127038836:zone L21E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368465#0.6557199716060222:zone L21E8)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368595#0.09185321298279381:zone L22E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368596#0.4083298656810965:zone L22E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368601#0.8267416256822997:zone L23E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.8268258952507295:zone L23E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.4037593952245394:zone L23E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368604#0.690058199620033:zone L24E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368608#0.18576758948401628:zone L24E6)</label>
            </dimension>
            <dimension name="isisfish.population.recruitment" size="9">
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368550#0.42006027127038836:zone L21E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368465#0.6557199716060222:zone L21E8)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368595#0.09185321298279381:zone L22E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368596#0.4083298656810965:zone L22E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368601#0.8267416256822997:zone L23E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.8268258952507295:zone L23E6)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368603#0.4037593952245394:zone L23E7)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368604#0.690058199620033:zone L24E5)</label>
              <label>org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Zone#1223471368608#0.18576758948401628:zone L24E6)</label>
            </dimension>
            <d>0.25</d>
            <d>0.333333333</d>
            <d>0.166666667</d>
            <d>0.166666667</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.25</d>
            <d>0.333333333</d>
            <d>0.0</d>
            <d>0.166666667</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.25</d>
            <d>0.0</d>
            <d>0.166666667</d>
            <d>0.166666667</d>
            <d>0.2</d>
            <d>0.142857143</d>
            <d>0.2</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.25</d>
            <d>0.333333333</d>
            <d>0.166666667</d>
            <d>0.166666667</d>
            <d>0.0</d>
            <d>0.142857143</d>
            <d>0.2</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.166666667</d>
            <d>0.0</d>
            <d>0.2</d>
            <d>0.142857143</d>
            <d>0.0</d>
            <d>0.25</d>
            <d>0.2</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.166666667</d>
            <d>0.166666667</d>
            <d>0.2</d>
            <d>0.142857143</d>
            <d>0.2</d>
            <d>0.25</d>
            <d>0.2</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.166666667</d>
            <d>0.166666667</d>
            <d>0.0</d>
            <d>0.142857143</d>
            <d>0.2</d>
            <d>0.0</d>
            <d>0.2</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.2</d>
            <d>0.142857143</d>
            <d>0.0</d>
            <d>0.25</d>
            <d>0.2</d>
            <d>0.0</d>
            <d>1.0</d>
            <d>0.0</d>
            <d>0.0</d>
            <d>0.2</d>
            <d>0.142857143</d>
            <d>0.2</d>
            <d>0.25</d>
            <d>0.2</d>
          </mx>
        </level>
      </domain>
    </factor>
    <factor id="fr.ifremer.isisfish.entities.Population#1223471368770#0.3058878391043739#reproductionEquation" name="nephrops_reproductionEquation">
      <feature name="cardinality">5</feature>
      <feature name="target">fr.ifremer.isisfish.entities.Population#1223471368770#0.3058878391043739#reproductionEquation</feature>
      <domain distributionName="categorical" type="equation">
        <level>double Ktemp = context.getValueAndCompute("nephrops.reproductionEquation.Ktemp", 1);

int Kint = (int) Ktemp;
System.out.println("Kint = "+ Kint);
        TimeStep step = context.getSimulationControl().getStep();
        int y = step.getYear();

        MatrixND Biom = context.getResultManager().getMatrix(step,pop,"MatrixBiomass");

        for (MatrixIterator i=Biom.iterator(); i.hasNext();) {
        i.next();
        Object [] sems = i.getSemanticsCoordinates();
        PopulationGroup group = (PopulationGroup)sems[0];
        i.setValue(i.getValue()* group.getMaturityOgive());
        }
        MatrixND prop = Biom.sumOverDim(0).reduceDims(0);
        double ssb = Biom.sumAll();
  System.out.println("ssb"+ ssb);
        prop = prop.divs(ssb);

        double Rtot =0.0;

switch(Kint){

 case 1 :
     /* Beverton et Holt */
        double abv = 7.3603897E7;
        double bbv = 6.7667631E5;
        Rtot = abv*ssb/(bbv+ssb);
        break;
 case 2 :
     /* a*ssb*exp(-b*ssb) - Ricker */
     double ar=85.6475902;
        double br=6.1263526E-7;
        Rtot = ar*ssb*Math.exp(-br*ssb);
        break;
 case 3 :
     /* Hockey Stick */
        double ahs=65.0187031;
        double ssbt = 6.9579752E5 ;
        if (ssb &lt; ssbt)  {Rtot = ahs*ssb;} else {Rtot = ahs*ssbt;}
        break;
 case 4 :
     /* repro fecondite*/
        double compt=0;
        for (Zone zone : zoneRepro){
            compt=0;
            for (PopulationGroup group : groups){
              double cf = group.getReproductionRate();
              compt += N.getValue(group, zone) * cf;
            }
            result.setValue(zone, compt*prepro);
        }
        break;
   case 5:
  case 6:
  case 7:
  case 8:
  case 9:
  case 10:
  case 11:
  case 12 :
  case 13:
  case 14 :
      /* aleatoire unif[min-max] */
       double [][] matrixR = {{0.11178995, 0.95123978, 0.05388496, 0.30427033, 0.88097277},
        {0.61318827, 0.86325772, 0.59521774, 0.97951352, 0.39522985},
        {0.84762444, 0.81945931, 0.17035498, 0.98107093, 0.30626818},
        {0.73545519, 0.52408773, 0.56679328, 0.90386484, 0.94130219},
        {0.84378708, 0.14061830, 0.23156422, 0.71417364, 0.54878101},
        {0.64332233, 0.01433846, 0.22262234, 0.65167476, 0.22910183},
        {0.06130198, 0.40996938, 0.97397125, 0.69185333, 0.29951089},
        {0.67789114, 0.43629884, 0.52475169, 0.14057724, 0.98577644},
        {0.90164408, 0.68106970, 0.85784589, 0.20025039, 0.97989699},
        {0.54700931, 0.07277969, 0.04077778, 0.37232379, 0.95016336}
        };
        double ssbtmin = 0.1E6;
        double ssbtmax = 3.20E7;
        Rtot = matrixR[Kint][y]*(ssbtmax-ssbtmin)+ssbtmin;
        break;

 } 
 if (Kint!=4) {
            for(Zone zone:zoneRepro){
                double propZone=prop.getValue(zone);
                result.setValue(zone,propZone*Rtot);
            }
        }
return 0;
</level>
        <level>double Ktemp = context.getValueAndCompute("nephrops.reproductionEquation.Ktemp", 2);

int Kint = (int) Ktemp;
System.out.println("Kint = "+ Kint);
        TimeStep step = context.getSimulationControl().getStep();
        int y = step.getYear();

        MatrixND Biom = context.getResultManager().getMatrix(step,pop,"MatrixBiomass");

        for (MatrixIterator i=Biom.iterator(); i.hasNext();) {
        i.next();
        Object [] sems = i.getSemanticsCoordinates();
        PopulationGroup group = (PopulationGroup)sems[0];
        i.setValue(i.getValue()* group.getMaturityOgive());
        }
        MatrixND prop = Biom.sumOverDim(0).reduceDims(0);
        double ssb = Biom.sumAll();
  System.out.println("ssb"+ ssb);
        prop = prop.divs(ssb);

        double Rtot =0.0;

switch(Kint){

 case 1 :
     /* Beverton et Holt */
        double abv = 7.3603897E7;
        double bbv = 6.7667631E5;
        Rtot = abv*ssb/(bbv+ssb);
        break;
 case 2 :
     /* a*ssb*exp(-b*ssb) - Ricker */
     double ar=85.6475902;
        double br=6.1263526E-7;
        Rtot = ar*ssb*Math.exp(-br*ssb);
        break;
 case 3 :
     /* Hockey Stick */
        double ahs=65.0187031;
        double ssbt = 6.9579752E5 ;
        if (ssb &lt; ssbt)  {Rtot = ahs*ssb;} else {Rtot = ahs*ssbt;}
        break;
 case 4 :
     /* repro fecondite*/
        double compt=0;
        for (Zone zone : zoneRepro){
            compt=0;
            for (PopulationGroup group : groups){
              double cf = group.getReproductionRate();
              compt += N.getValue(group, zone) * cf;
            }
            result.setValue(zone, compt*prepro);
        }
        break;
   case 5:
  case 6:
  case 7:
  case 8:
  case 9:
  case 10:
  case 11:
  case 12 :
  case 13:
  case 14 :
      /* aleatoire unif[min-max] */
       double [][] matrixR = {{0.11178995, 0.95123978, 0.05388496, 0.30427033, 0.88097277},
        {0.61318827, 0.86325772, 0.59521774, 0.97951352, 0.39522985},
        {0.84762444, 0.81945931, 0.17035498, 0.98107093, 0.30626818},
        {0.73545519, 0.52408773, 0.56679328, 0.90386484, 0.94130219},
        {0.84378708, 0.14061830, 0.23156422, 0.71417364, 0.54878101},
        {0.64332233, 0.01433846, 0.22262234, 0.65167476, 0.22910183},
        {0.06130198, 0.40996938, 0.97397125, 0.69185333, 0.29951089},
        {0.67789114, 0.43629884, 0.52475169, 0.14057724, 0.98577644},
        {0.90164408, 0.68106970, 0.85784589, 0.20025039, 0.97989699},
        {0.54700931, 0.07277969, 0.04077778, 0.37232379, 0.95016336}
        };
        double ssbtmin = 0.1E6;
        double ssbtmax = 3.20E7;
        Rtot = matrixR[Kint][y]*(ssbtmax-ssbtmin)+ssbtmin;
        break;

 } 
 if (Kint!=4) {
            for(Zone zone:zoneRepro){
                double propZone=prop.getValue(zone);
                result.setValue(zone,propZone*Rtot);
            }
        }
return 0;
</level>
        <level>double Ktemp = context.getValueAndCompute("nephrops.reproductionEquation.Ktemp", 3);

int Kint = (int) Ktemp;
System.out.println("Kint = "+ Kint);
        TimeStep step = context.getSimulationControl().getStep();
        int y = step.getYear();

        MatrixND Biom = context.getResultManager().getMatrix(step,pop,"MatrixBiomass");

        for (MatrixIterator i=Biom.iterator(); i.hasNext();) {
        i.next();
        Object [] sems = i.getSemanticsCoordinates();
        PopulationGroup group = (PopulationGroup)sems[0];
        i.setValue(i.getValue()* group.getMaturityOgive());
        }
        MatrixND prop = Biom.sumOverDim(0).reduceDims(0);
        double ssb = Biom.sumAll();
  System.out.println("ssb"+ ssb);
        prop = prop.divs(ssb);

        double Rtot =0.0;

switch(Kint){

 case 1 :
     /* Beverton et Holt */
        double abv = 7.3603897E7;
        double bbv = 6.7667631E5;
        Rtot = abv*ssb/(bbv+ssb);
        break;
 case 2 :
     /* a*ssb*exp(-b*ssb) - Ricker */
     double ar=85.6475902;
        double br=6.1263526E-7;
        Rtot = ar*ssb*Math.exp(-br*ssb);
        break;
 case 3 :
     /* Hockey Stick */
        double ahs=65.0187031;
        double ssbt = 6.9579752E5 ;
        if (ssb &lt; ssbt)  {Rtot = ahs*ssb;} else {Rtot = ahs*ssbt;}
        break;
 case 4 :
     /* repro fecondite*/
        double compt=0;
        for (Zone zone : zoneRepro){
            compt=0;
            for (PopulationGroup group : groups){
              double cf = group.getReproductionRate();
              compt += N.getValue(group, zone) * cf;
            }
            result.setValue(zone, compt*prepro);
        }
        break;
   case 5:
  case 6:
  case 7:
  case 8:
  case 9:
  case 10:
  case 11:
  case 12 :
  case 13:
  case 14 :
      /* aleatoire unif[min-max] */
       double [][] matrixR = {{0.11178995, 0.95123978, 0.05388496, 0.30427033, 0.88097277},
        {0.61318827, 0.86325772, 0.59521774, 0.97951352, 0.39522985},
        {0.84762444, 0.81945931, 0.17035498, 0.98107093, 0.30626818},
        {0.73545519, 0.52408773, 0.56679328, 0.90386484, 0.94130219},
        {0.84378708, 0.14061830, 0.23156422, 0.71417364, 0.54878101},
        {0.64332233, 0.01433846, 0.22262234, 0.65167476, 0.22910183},
        {0.06130198, 0.40996938, 0.97397125, 0.69185333, 0.29951089},
        {0.67789114, 0.43629884, 0.52475169, 0.14057724, 0.98577644},
        {0.90164408, 0.68106970, 0.85784589, 0.20025039, 0.97989699},
        {0.54700931, 0.07277969, 0.04077778, 0.37232379, 0.95016336}
        };
        double ssbtmin = 0.1E6;
        double ssbtmax = 3.20E7;
        Rtot = matrixR[Kint][y]*(ssbtmax-ssbtmin)+ssbtmin;
        break;

 } 
 if (Kint!=4) {
            for(Zone zone:zoneRepro){
                double propZone=prop.getValue(zone);
                result.setValue(zone,propZone*Rtot);
            }
        }
return 0;
</level>
        <level>double Ktemp = context.getValueAndCompute("nephrops.reproductionEquation.Ktemp", 4);

int Kint = (int) Ktemp;
System.out.println("Kint = "+ Kint);
        TimeStep step = context.getSimulationControl().getStep();
        int y = step.getYear();

        MatrixND Biom = context.getResultManager().getMatrix(step,pop,"MatrixBiomass");

        for (MatrixIterator i=Biom.iterator(); i.hasNext();) {
        i.next();
        Object [] sems = i.getSemanticsCoordinates();
        PopulationGroup group = (PopulationGroup)sems[0];
        i.setValue(i.getValue()* group.getMaturityOgive());
        }
        MatrixND prop = Biom.sumOverDim(0).reduceDims(0);
        double ssb = Biom.sumAll();
  System.out.println("ssb"+ ssb);
        prop = prop.divs(ssb);

        double Rtot =0.0;

switch(Kint){

 case 1 :
     /* Beverton et Holt */
        double abv = 7.3603897E7;
        double bbv = 6.7667631E5;
        Rtot = abv*ssb/(bbv+ssb);
        break;
 case 2 :
     /* a*ssb*exp(-b*ssb) - Ricker */
     double ar=85.6475902;
        double br=6.1263526E-7;
        Rtot = ar*ssb*Math.exp(-br*ssb);
        break;
 case 3 :
     /* Hockey Stick */
        double ahs=65.0187031;
        double ssbt = 6.9579752E5 ;
        if (ssb &lt; ssbt)  {Rtot = ahs*ssb;} else {Rtot = ahs*ssbt;}
        break;
 case 4 :
     /* repro fecondite*/
        double compt=0;
        for (Zone zone : zoneRepro){
            compt=0;
            for (PopulationGroup group : groups){
              double cf = group.getReproductionRate();
              compt += N.getValue(group, zone) * cf;
            }
            result.setValue(zone, compt*prepro);
        }
        break;
   case 5:
  case 6:
  case 7:
  case 8:
  case 9:
  case 10:
  case 11:
  case 12 :
  case 13:
  case 14 :
      /* aleatoire unif[min-max] */
       double [][] matrixR = {{0.11178995, 0.95123978, 0.05388496, 0.30427033, 0.88097277},
        {0.61318827, 0.86325772, 0.59521774, 0.97951352, 0.39522985},
        {0.84762444, 0.81945931, 0.17035498, 0.98107093, 0.30626818},
        {0.73545519, 0.52408773, 0.56679328, 0.90386484, 0.94130219},
        {0.84378708, 0.14061830, 0.23156422, 0.71417364, 0.54878101},
        {0.64332233, 0.01433846, 0.22262234, 0.65167476, 0.22910183},
        {0.06130198, 0.40996938, 0.97397125, 0.69185333, 0.29951089},
        {0.67789114, 0.43629884, 0.52475169, 0.14057724, 0.98577644},
        {0.90164408, 0.68106970, 0.85784589, 0.20025039, 0.97989699},
        {0.54700931, 0.07277969, 0.04077778, 0.37232379, 0.95016336}
        };
        double ssbtmin = 0.1E6;
        double ssbtmax = 3.20E7;
        Rtot = matrixR[Kint][y]*(ssbtmax-ssbtmin)+ssbtmin;
        break;

 } 
 if (Kint!=4) {
            for(Zone zone:zoneRepro){
                double propZone=prop.getValue(zone);
                result.setValue(zone,propZone*Rtot);
            }
        }
return 0;
</level>
        <level>double Ktemp = context.getValueAndCompute("nephrops.reproductionEquation.Ktemp", 5);

int Kint = (int) Ktemp;
System.out.println("Kint = "+ Kint);
        TimeStep step = context.getSimulationControl().getStep();
        int y = step.getYear();

        MatrixND Biom = context.getResultManager().getMatrix(step,pop,"MatrixBiomass");

        for (MatrixIterator i=Biom.iterator(); i.hasNext();) {
        i.next();
        Object [] sems = i.getSemanticsCoordinates();
        PopulationGroup group = (PopulationGroup)sems[0];
        i.setValue(i.getValue()* group.getMaturityOgive());
        }
        MatrixND prop = Biom.sumOverDim(0).reduceDims(0);
        double ssb = Biom.sumAll();
  System.out.println("ssb"+ ssb);
        prop = prop.divs(ssb);

        double Rtot =0.0;

switch(Kint){

 case 1 :
     /* Beverton et Holt */
        double abv = 7.3603897E7;
        double bbv = 6.7667631E5;
        Rtot = abv*ssb/(bbv+ssb);
        break;
 case 2 :
     /* a*ssb*exp(-b*ssb) - Ricker */
     double ar=85.6475902;
        double br=6.1263526E-7;
        Rtot = ar*ssb*Math.exp(-br*ssb);
        break;
 case 3 :
     /* Hockey Stick */
        double ahs=65.0187031;
        double ssbt = 6.9579752E5 ;
        if (ssb &lt; ssbt)  {Rtot = ahs*ssb;} else {Rtot = ahs*ssbt;}
        break;
 case 4 :
     /* repro fecondite*/
        double compt=0;
        for (Zone zone : zoneRepro){
            compt=0;
            for (PopulationGroup group : groups){
              double cf = group.getReproductionRate();
              compt += N.getValue(group, zone) * cf;
            }
            result.setValue(zone, compt*prepro);
        }
        break;
   case 5:
  case 6:
  case 7:
  case 8:
  case 9:
  case 10:
  case 11:
  case 12 :
  case 13:
  case 14 :
      /* aleatoire unif[min-max] */
       double [][] matrixR = {{0.11178995, 0.95123978, 0.05388496, 0.30427033, 0.88097277},
        {0.61318827, 0.86325772, 0.59521774, 0.97951352, 0.39522985},
        {0.84762444, 0.81945931, 0.17035498, 0.98107093, 0.30626818},
        {0.73545519, 0.52408773, 0.56679328, 0.90386484, 0.94130219},
        {0.84378708, 0.14061830, 0.23156422, 0.71417364, 0.54878101},
        {0.64332233, 0.01433846, 0.22262234, 0.65167476, 0.22910183},
        {0.06130198, 0.40996938, 0.97397125, 0.69185333, 0.29951089},
        {0.67789114, 0.43629884, 0.52475169, 0.14057724, 0.98577644},
        {0.90164408, 0.68106970, 0.85784589, 0.20025039, 0.97989699},
        {0.54700931, 0.07277969, 0.04077778, 0.37232379, 0.95016336}
        };
        double ssbtmin = 0.1E6;
        double ssbtmax = 3.20E7;
        Rtot = matrixR[Kint][y]*(ssbtmax-ssbtmin)+ssbtmin;
        break;

 } 
 if (Kint!=4) {
            for(Zone zone:zoneRepro){
                double propZone=prop.getValue(zone);
                result.setValue(zone,propZone*Rtot);
            }
        }
return 0;
</level>
      </domain>
    </factor>
  </factors>
</experimentalDesign>
