Home >> Documentation >> Description of the input parameters (Osmose 3 Update 1)

Description of the input parameters (Osmose 3 Update 1)

This document describes all the input parameters from Osmose 3 Update 1.

Format and organization of the input files

An Osmose configuration file is a text based file. The name of the file does not matter, but we recommend that you avoid any special characters and space in the name of the file as it might generate IO errors when you'll be running Osmose from the command line or calibrating the model in a UNIX environment.  The extension of the file does not  matter either.

We call the main configuration file the file that is either listed in Osmose filePath.txt (see Getting started with Osmose 3: install and run if you wonder what the filePath.txt is) or given as a command line argument. The main configuration file can contain comments, blank lines and parameters. Here is how the Osmose configuration manager proceeds when it opens the main configuration file. It scans every line of the file looking for parameters. Some lines are automatically discarded:

  • empty lines (regardless of blank or tab characters).
  • lines that start with a punctuation character, one of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

For comments, it is recommended to start the line with # or //

A parameter is formed by the juxtaposition of three elements: key, separator and value.

The key can be any sequence of characters, without blank or any special characters (dot, hyphen and underscore are accepted). Example of keys:

simulation.ncpu
predation.ingestion.rate.max.sp6

Osmose makes no difference between upper and lower case: simulation.ncpu, simulation.Ncpu, Simulation.nCPU, SIMULATION.NCPU designate the same key.

Keys starting with osmose.configuration.* (the star * being any sequence of characters that follow the same rules than any other key) has a special meaning to the configuration manager. It means the value of this parameter is the path of an other Osmose configuration file and the parameters in this file are to be loaded in the current configuration. That way, instead of having one big configuration file with all the parameters, it is possible to split the parameters in as many files as the user wishes. This process works recursively: one file contains one or several parameters osmose.configuration.* that point to configuration files that may contains one or several parameters osmose.configuration.*, and so on. OSMOSE handles the sub-configuration file exactly the same way as it handles the main configuration file (same convention for comments, special caracters and naming of ). As mentionned previously, the main configuration file designates the file that is listed in filePath.txt or given to Osmose as an input argument.

The separator can be any of the following characters:

  • equals =
  • semicolon ;
  • coma ,
  • colon :
  • tab \t

Parameters in the same configuration file can have different separators (though it is advisable to be consistent and use the same one). The configuration manager finds out what is the separator for each parameter. The value can be any sequence of characters (even empty). The configuration manager does not try to interpret the value when it loads the configuration files, it merely stores it in a String object. A value can be served by the configuration manager as

  • a string
  • an integer
  • a float
  • a double
  • a boolean
  • an array of strings, String[]
  • an array of integers, int[]
  • an array of floats, float[]
  • an array of doubles, double[]
  • a resolved path

An array of values is a sequence of values with a separator in between: value1 separator value2 separator value3 separator value4. Accepted separators for an array of values are the same characters listed above. The separator for an array of values can either be the same or distinct from the separator between the key and the value. The following examples are valid entries

movement.map0.season;0;1;2;3;4;5
movement.map0.season=0;1;2;3;4;5
movement.map0.season = 0, 1, 2, 3, 4, 5
movement.map0.season : 0 ; 1 ; 2;3;4;5

and are equivalent for the configuration manager. It can be summarize as:

key separator1 value1 separator2 value2 separator2 value3 separator2 value4

with separator1 either equal or different from separator2.

Naming convention

Using consistent names throughout the configuration makes the reading and the understanding of the configuration files easy. A good name should instantly give information about the meaning and the function of a parameter. In Osmose we chosed to name the parameter following a descending hierarchical pattern. The name is divided in several tokens, separated by dots. The left token carries the broader meaning and the following tokens narrow down the definition of the parameter. Let's have a look at a few examples:

mortality.fishing.rate
mortality.fishing.recruitment.age
mortality.starvation.rate
mortality.starvation.larva.rate

All these parameters deal with the mortality in the model. Some with fishing mortality, some other with starvation mortality. Within the starvation mortality, we need to define the mortality rate for larvae and for the other schools, etc. That is the way most parameter names have been built in Osmose.

When a parameter needs to be defined at species level, it will always show like .sp0, .sp1, .sp#

mortality.fishing.rate.sp0
mortality.fishing.rate.sp1

In the following sections, such parameters will be referred as

mortality.fishing.rate.sp#

You must remember that, in this case, the # is meant for any integer ranging from zero to maximum number of species minus one.

A parameter name that ends up with .file will always designate a file name, and .path a path name, either absolute of relative.

predation.accessibility.file
output.dir.path

When the parameter is a file that need be defined for every species it will look like .file.sp#

mortality.fishing.season.distrib.file.sp0

Parameters referring to plankton will look like plankton.something.plk#

plankton.name.plk#

Parameters referring to distribution maps will always look like movement.map#.something.

Keyword .season always means that the corresponding parameter deals with seasonal cycles.

The .enabled token means that the parameter is a switch that activate or deactivate the process that it designates.

Main parameters

This section describes the main parameters of the Osmose configuration: number of species, multi-threading, time control, restart, etc.

simulation.nspecies = 10

Number of simulated species in the configuration


simulation.nplankton = 4

Number of plankton groups in the configuration


simulation.nsimulation = 10

Number of replicated simulations with identical set of parameters


simulation.ncpu = 4

By default OSMOSE will try to run the replicates in multi-thread environment. If you do not want OSMOSE to use all of them, assign here the number of CPUs that OSMOSE is allowed to use. If this parameter is not defined or the value is higher than the number of CPUs on your computer, OSMOSE will run on the maximum number of CPUs available on the computer. If simulation.ncpu is smaller than 1 or null, OSMOSE will only use one CPU.


simulation.nschool = 50

This parameter controls how many new schools will be added to the population for each species at each reproduction event. simulation.nschool=15 means that, for a given species at a given time step, the spawning stock biomass will be homogeneously split among 15 new schools. If simulation.nschool is not defined, then OSMOSE assumes that simulation.nschool=10


simulation.nschool.sp# = 50

Same meaning as the parameter simulation.nschool, but at species level. This parameter has priority over simulation.nschool. If missing for one species then OSMOSE will use the parameter simulation.nschool.


simulation.nyear = 40

Number of years of the simulation


simulation.ndtPerYear = 24

Number of time steps in one year of simulation. For instance simulation.time.ndtPerYear = 24 means the year is divided in 24 time steps of identical length, 15 days each.


simulation.restart.recordfrequency.ndt = null

Record frequency (expressed in number of time steps) for the restart file. If null then OSMOSE will write only one restart file, at the end of the simulation.


simulation.restart.file = restart/gol_snapshot_step959.nc

Restarts OSMOSE from (a) restart file(s). Either file gol_snapshot_step959.nc exists and all the replicates (if any) will restart on this file. If the file does not exist, OSMOSE assumes that there is instead as many NetCDF restart files as replicates with the following names: gol_snapshot_step959.nc.0, gol_snapshot_step959.nc.1, gol_snapshot_step959.nc.#, etc.

Species parameter

species.egg.size.sp# = 0.1

Size of eggs in centimeter


species.egg.weight.sp# = 0.0005386

Weight of eggs in gram


species.K.sp# = 1.68
species.lInf.sp# = 1.84
species.t0.sp# = -0.2

von bertalanffy growth parameters. The von Bertalanffy growth model only applies for schools older than a threshold age defined by the parameter species.vonbertalanffy.threshold.age.sp# length =lInf * (1 - exp(-K * (age - t0)))


species.vonbertalanffy.threshold.age.sp# = 1

Threshold age (year) for applying the von Bertalanffy growth model. Below that threshold,growth is assumed to be linear.


species.length2weight.allometric.power.sp# = 3.16
species.length2weight.condition.factor.sp# = 0.0074

Allometric parameters such as weight = c * length^b, where the c parameter is a 'condition.factor', and b the 'allometric.power'.


species.lifespan.sp# = 1

Lifespan of the species expressed in years. Lifespan =1 year means that the species will live one year. Lifespan = 5 years means that the species will live 5 years.

The age of the schools is such that 0 <= age < lifespan. For example, if lifespan = 1 year, age will vary from zero included to 1 excluded ([0, 1[). If lifespan = 5 years, age will vary from zero included to 5 excluded ([0, 5[)


species.maturity.size.sp# = 1.05

Size at maturity, in centimeter


species.name.sp# = euphausiids

Name of the species. Do not use space or any special character.


species.relativefecundity.sp# = 42254

Number of eggs per gram of mature female


species.sexratio.sp# = 0.5

Ration of female in the population, ranging from zero to one.

Population initialisation

population.initialization.method = biomass/netcdf

The initialisation of the population can be done by setting an initial biomass for every species or by providing a NetCDF file that details the caracteristic of every school at the beginning of the simulation.

Initialisation by biomass

population.initialization.biomass.sp# = 200000

Initial biomass of the species in the system, in tonne. Osmose will distribute this biomass over the age classes following an exponential decay.

Initialisation from NetCDF file

population.initialization.file = initial_population.nc

The path of the NetCDF initialisation file. It contains the details of every school (from every species) that must be created at the beginning of the simulation. Here is an example of the NetCDF format:

dimensions:
    nschool = ##### ;
variables:
    int species(nschool) ;
        species:units = "scalar" ;
        species:description = "index of the species" ;
    float x(nschool) ;
        x:units = "scalar" ;
        x:description = "y-grid index of the school" ;
    float y(nschool) ;
    double abundance(nschool) ;
        abundance:units = "scalar" ;
        abundance:description = "number of fish in the school" ;
    float age(nschool) ;
        age:units = "year" ;
        age:description = "age of the school in year" ;
    float length(nschool) ;
        length:units = "cm" ;
        length:description = "length of the fish in the school in centimeter" ;
    float weight(nschool) ;
        weight:units = "g" ;
        weight:description = "weight of the fish in the school in gram" ;
    float trophiclevel(nschool) ;
        trophiclevel:units = "scalar" ;
        trophiclevel:description = "trophiclevel of the fish in the school" ;

// global attributes:
        :species = "0=smallpelagic1 1=macrozooplankton 2=demersal1 3=demersal2 4=demersal3 5=mesopelagic 6=smallpelagic2 7=smallpelagic3 8=largepelagic1 9=largepelagic2 " ;
}

The file has the same format than the NetCDF restart file that is generated by Osmose at the end of a run.

Movement parameters

movement.distribution.method.sp# = maps

Type of spatial distribution. Either 'random' or 'maps'.

If 'random' OSMOSE will look for the parameter 'movement.distribution.ncell.sp#'

If 'maps' OSMOSE will use the maps parameters. See below how to define a map.


movement.distribution.ncell.sp# = 200

Number of adjacent cells where the species is allowed to move around. OSMOSE will select randomly n adjacent cells on the grid at the beginning of the simulation and it will assume it is the area of distribution of this species for the rest of the simulation. Within this randomly created area, the school will move around following a random walk. See the parameter 'movement.randomwalk.range.sp#' for explanation about the random walk process.


movement.randomwalk.range.sp# = 1

Range of the random walk expressed in number of cells. If range = zero, the school remains in the current cell. If range = 1, the school can either stay in the current cell or move in any of the 8 immediately adjacent cells (as long as the destination cell is not land). If range=2, the school can either stay in the current cell or move in any of the 24 immediately adjacent cells (as long as the destination cell is not land). Etc.

Map definition

Here are all the parameters required to define a map of distribution in Osmose:

movement.map#.file = maps/mymap.csv
movement.map#.species = euphausiids
movement.map#.age.min = 0
movement.map#.age.max = 1
movement.map#.year.min = 0
movement.map#.year.max = 40
movement.map#.season = 0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23

One map is associated to a unique species for given age span, year span and season. The full spatial distribution of a species can be represented using as many maps as necessary to cover different age spans and/or year spans and/or seasons. Let's now have a look at each parameter in detail.


movement.map#.file = maps/mymap.csv

File path to the CSV file that defines the geographical extent of the map. The CSV file has the same number of lines and columns as the OSMOSE grid. Land is always indicated with -99. The distribution area can be defined using either a presence/absence map (1 for presence, 0 for absence) or a map of probability of presence (containing values ranging from 0 to 1, the sum of the probabilities should never exceed 1).

The same CSV file can be used to define different maps.

If the file path is set to null it means that the schools concerned by this map are out of the simulated domain (e.g., migrating species). See the parameter mortality.out.rate.sp for mortality rate of species momentarily out of the simulated area. When a school comes back to the simulated area, it will be randomly located on a new map (the one corresponding to the species and age class of the school at the current time step of the simulation).


movement.map#.species = euphausiids

Name of the species associated to the map. The name must be similar to the parameter species.name.sp#


movement.map#.age.min = 0
movement.map#.age.max = 1

Age span of the schools associated to the map such as age.min <= age < age.max


movement.map#.year.min = 0
movement.map#.year.max = 40

Year span of the schools associated to the map such as year.min <= current year of the simulation < year.max

If these two parameters are not provided, OSMOSE assumes year.min = 0 and year.max = simulation.nyear


movement.map#.season = 0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23

Vectors of the time step over one year associated to the map. For example, here, [0, 23] means that this map is used all year long.

Several maps of distribution for one species

In the above example there is one single map defined for euphausiids as the map applies for euphausiids from age 0 up to age 1 from year 0 to 40 and at every time step over a year. It means that the spatial distribution of this species does not vary with age, year or season. Nonetheless several maps can be defined for representing the spatial distribution of a species. For example:

#Map 0
movement.map0.species = euphausiids
movement.map0.file = maps/mymap_euphau1.csv
movement.map0.age.min = 0
movement.map0.age.max = 0.2
movement.map0.year.min = 0
movement.map0.year.max = 40
movement.map0.season = 0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23

#Map 1
movement.map1.species = euphausiids
movement.map1.file = maps/mymap_euphau2.csv
movement.map1.age.min = 0.2
movement.map1.age.max = 1
movement.map1.year.min = 0
movement.map1.year.max = 40
movement.map1.season = 0;1;2;3;4;5;6;7;8;9

#Map 2
movement.map2.species = euphausiids
movement.map2.file = maps/mymap_euphau3.csv
movement.map2.age.min = 0.2
movement.map2.age.max = 1
movement.map2.year.min = 0
movement.map2.year.max = 40
movement.map2.season = 10;11;12;13;14;15;16;17;18;19;20;21;22;23

By increasing the number of maps, the description of the spatial distribution can be as detailed and refined as you want, as long as you have such information. It will allow for instance to create some maps for eggs (an egg in Osmose is a new school of age zero that is created during the reproduction process), some maps for the juveniles and some maps for the adults, as many as necessary to describe ontogenetic migrations.

From one time step to an other, the movement manager checks whether a given school remains in the same map or should "jump" to an other map (e.g. eggs map to juvenile map or adults in summer to adults in winter). In the latter case - change of map, the schools are relocated randomly in the new map. In the former case - same map, the movement manager mimics foraging movement with a random-walk that moves schools to immediately adjacent cells within their distribution area. See the parameter movement.randomwalk.range.sp# for details.

Mortality algorithm

mortality.algorithm = stochastic
mortality.subdt = 10

Main features of the stochastic algorithm:

  • Every cause of mortality (predation, natural, fishing, starvation) competes with each other. The subdt in the mortality process ensures that the random order of the mortality sources within a cell does not bias the mortality outcome.
  • Stochasticity and competition within the predation process, meaning that the loop over the schools as preys or predators is random and what has been preyed upon by a predator is not available anymore to the other predators that come later in the loop.
  • Asynchronous updating of school biomass (it means biomass are updated on the fly).
mortality.algorithm = iterative

Main features of the iterative algorithm:

  • It is assumed that every cause is independant and concomitant
  • No stochasticity neither competition within predation process: every predator sees preys as they are at the begining of the time-step.
  • Synchromous updating of school biomass (it means biomass are updated at the end of the mortality process)

By default Osmose will use the stochastic algorithm and this parameter should not be changed unless one knows exactly what he/she is doing. Detailed information on the mortality algorithm is available here.

Predation

predation.accessibility.file = predation-accessibility.csv

Definition of the accessibility matrix, in a CSV file, for every species and stages (if stages are defined, see the parameters 'predation.accessibility.stage.threshold.sp' and 'predation.accessibility.stage.structure'). This matrix must not be used to define diet preferences but rather to take into account for a difference of positions in the water column (meaning some schools might evolve around the same geographical area but never meet because they do not occur at the same depth).

Example of a CSV predation accessibility file:

Prey / Predator;euphausiids;cephalopods < 0.22 year;cephalopods > 0.22 year
euphausiids;0.8;0.8;0.8
cephalopods < 0.22 year;0.0;0.0;0.0
cephalopods > 0.22 year;0.0;0.0;0.8

Spreadsheet view:

Each line of the matrix corresponds to a prey (including plankton groups), and each column to a predator. The file must be understood as follow: euphausiids (line 1) are accessible to all the predators (columns) by 80%; cephalopods < 0.22 (line 2) are not accessible to any predator; and cephalopods > 0.22 (line 3) are not accessible to euphausiids and cephalopods <= 0.22 but are accessible by 80% to cephalopods > 0.22

The order of the rows and columns must follow the indexing of the species and stages (e.g., species0; species1; species2 stage0; species2 stage1; species3).


predation.accessibility.stage.structure = age

Metrics to define the predation/prey size ratio stages, either age or size.


predation.accessibility.stage.threshold.sp# = 2.3

Thresholds between accessibility stages, expressed either in years if 'predation.accessibility.stage.structure=age' or in centimeters if 'predation.accessibility.stage.structure;size'. One threshold value, here 2.3 year, means that two accessibility stages are defined for this species: younger than 2.3 years and older than 2.3 years. Two threshold values mean that three stages are defined. If value is set to null, then stages are not defined.


predation.predPrey.stage.threshold.sp# = 3;11.6

Definition of stages for predation/prey size ratios. It controls how many predator/prey size ratios will be defined for each species. If the value of this parameter is set to null, then no stage is defined for predator/prey size ratios.


predation.predPrey.stage.structure;size

Metrics to define the predation/prey size ratio stages, either age or size.


predation.predPrey.sizeRatio.max.sp# = 5;5;5

Maximum predator prey size ratio for the different stages of each species. In the example above, this species has 3 predPrey stages (2 size thresholds defined for corresponding parameter predation.predPrey.stage.threshold.sp#). Therefore, OSMOSE expects to be given 3 predator/prey size ratios. Maximum predator/prey size ratio = 5 means that the largest prey for a fish of this species will be 5 times smaller the fish.


predation.predPrey.sizeRatio.min.sp# = 500;5000;3000

Minimum predator/prey size ratio for the different stages of each species. Minimum predator/prey size ratio = 500;5000;3000 means that the smallest prey for a fish of this species at stage 0 will be 500 times smaller than the fish ; the smallest prey for a fish of this species at stage 1 will be 5000 times smaller than the fish ; and the smallest prey for a fish of this species at stage 2 will be 3000 times smaller than the fish.


predation.ingestion.rate.max.sp# = 10.07

Maximum ingestion rate for each species, expressed in grams of food per gram of fish and per year. It means that, at a given time step, a school will be able to predate at maximum (biomass of the school * max ingestion rate / number of time step in one year).


predation.efficiency.critical.sp# = 0.57

Critical predation efficiency. Predation success for a school is defined as the ratio of is the biomass preyed over the maximum biomass that can potentially be preyed (and the maximum biomass that can be preyed is defined as biomass of the school * max ingestion rate / number of time step in one year). This critical predation efficiency parameter defines the threshold of the predation success. If predation success is smaller than the critical predation efficiency, the starvation process will be applied to the school and the fish will not grow. Conversely if the predation success is bigger than the critical predation efficiency, the starvation process will not occur for the school and the fish will grow.

Fishing

mortality.fishing.type = catches (or rate)

Fishing mortality inputted as fishing rates or catches. Catches in the following sections must always be provided as tonnes. This parameter implies that Osmose does not accept fishing mortality rates for some species and catches for other species. For a given configuration it one or the other.


mortality.fishing.recruitment.age.sp# = 1
mortality.fishing.recruitment.size.sp# = null

Age (in year) or size (in centimetre) of recruitment into the fisheries. OSMOSE will first look for a recruitment age parameter. If this parameter is not found or the value of this parameter is set to 'null', OSMOSE will look for a recruitment size. If neither a recruitment age nor a recruitment size is found, a recruitment age of zero year is assumed and the user will be notified by a warning message. These parameters are ignored in the case of 'Fishing mortality by dt and by age/size class' (see below).


Osmose offers several degrees of refinement for inputting the fishing mortality: constant, seasonal, interannual and interannual with age or size class. Depending on the available information for each species of the configuration, one must choose the best way to input it. Each species can be parametrised indenpendantly from an other. For instance fishing mortality for species zero is a constant annual rate and fishing mortality for species three is provided as a time series per size class.

Constant annual rate/catches by species

Constant annual rate by species

mortality.fishing.rate.sp#

F, the annual mortality rate due to fishing. Ndead_fishing(t) = N(t) * (1 - exp(-F/n_steps_year))

mortality.fishing.catches.sp#

Annual catches in tonnes.

Annual rates/catches with seasonality file per species

Same parameters as 'Constant annual rate/catches'

mortality.fishing.rate.sp#
or
mortality.fishing.catches.sp#

And a seasonality file:

mortality.fishing.season.distrib.file.sp# = fishing/fishing-seasonality-anchovy.csv

File path of the fishing seasonality file. This controls how the fishing mortality is applied over the year.

Here is an example of the CSV file:

Time;Season
0.0;0.04759049
0.041666668;0.04759049
0.083333336;0.038992207
0.125;0.038992207
0.16666667;0.042391527
0.20833333;0.042391527
0.25;0.041991603
0.29166666;0.041991603
0.33333334;0.050389927
0.375;0.050389927
0.41666666;0.048890226
0.45833334;0.048890226
0.5;0.038392324
0.5416667;0.038392324
0.5833333;0.038692262
0.625;0.038692262
0.6666667;0.04589083
0.7083333;0.04589083
0.75;0.04139173
0.7916667;0.04139173
0.8333333;0.039592084
0.875;0.039592084
0.9166667;0.025794841
0.9583333;0.025794841

One line per time step. The first column defines time, expressed in year. The second column defines the fraction of the F mortality rate to apply at a given time step. The sum of the season factors over a year should sum to one. The number of time steps in the CSV file must be a multiple of the number of time steps per year (at least one year). If the time series in the CSV file is shorter than the simulation duration, Osmose will loop over it until it reaches the end of the simulation. If it is longer that the simulation duration, the exceeding years will be ignored.

Annual rates with seasonality file per species

The user provides time series of annual rates/catches and a seasonality file.

mortality.fishing.rate.byYear.file.sp#
or mortality.fishing.catches.byYear.file.sp#

Here is an example of the CSV file, for catches:

Year;Catches
0;300
1;320
2;320
3;300
4;250
5;280
6;300
...

If the number of years is smaller than the number of simulated years, Osmose will loop over the series. If the number of years exceed the duration of the simulation, Osmose will ignore the exceeding years.

The seasonality file must be provided the same way 'Annual rates/catches with seasonality file per species'

mortality.fishing.season.distrib.file.sp#

Fishing mortality by dt and by age/size class

The finest way of inputting fishing mortality. The user provides time series of fishing mortality rates or catches per age/size class.

  • Fishing mortality by dt, by age class
mortality.fishing.rate.byDt.byAge.file.sp#
or mortality.fishing.catches.byDt.byAge.file.sp#

Here is an example of the CSV file, for catches by age class:

Time step / Age;0;1;2;3;4
0;0;0;5;8;8
1;0;0;5;8;7
2;0;0;4;7;6
3;0;0;4;7;7
...

The age classes (year) are automatically scanned by Osmose. In this case there are 5 classes: [0 1[, [1 2[, [2 3[, [3 4[ and [4 lifespan[. The value of the time step does not matter, Osmose assumes there is one line per time step. The number of time steps in the CSV file must be a multiple of the number of time steps per year. If the time series is shorter than the duration of the simulation, Osmose will loop over it. If the time series is longer than the duration of the simulation, Osmose will ignore the exceeding steps.

  • Fishing mortality by dt, by size class
mortality.fishing.rate.byDt.bySize.file.sp#
or mortality.fishing.catches.byDt.bySize.file.sp#

Same as fishing mortality by age class. In the first line of the CSV file, one must define the size classes (centimetre):

Time step / Length;0;5;10;20;40
0;0;0;5;8;8
1;0;0;5;8;7
2;0;0;4;7;6
3;0;0;4;7;7
...

The five classes for this species are [0cm 5cm[, [5cm 10cm[, [10cm 20cm[, [20cm 40cm[ and [40cm Length_at_infinity[

Marine Protected Area

The user can defined as many MPA as he wishes. Here is how an MPA is defined in the configuration file:

mpa.file.mpa0 = maps/mpa0.csv
mpa.start.year.mpa0 = 10
mpa.end.year.mpa0 = 15

The map is a CSV file similar to the movement maps. The CSV file has the same number of lines and columns as the OSMOSE grid. Land is always indicated with -99, no MPA with 0 and MPA with 1. Start year and end year parameters define the time span when the MPA is enabled.

The MPA are handled within the Fishing process. Every time there is a new MPA to be activated or deactivated, Osmose updates the correction factor that will be applied to the fishing mortality rates in order to take into account the uniform redistribution of the fishing effort outside the MPAs.

Natural mortality

In a similar way to fishing, the parametrization of the natural mortality takes into account different levels of time variability.

Larval mortality

The larval mortality rate is expressed in [dt^-1]. This term represents sources of mortality for age class 0 (age class zero in OSMOSE lasts for one time step) such as the non-fecundation of eggs, a starvation more pronounced than at older ages (rel to CC), or predation by species that are not explicitly considered in OSMOSE. Ndead0(t) = N(t) * (1 – exp(-M))

  • Constant mortality
mortality.natural.larva.rate.sp# = 0.2
  • Larval mortality by dt
mortality.natural.larva.rate.byDt.file.sp#

The path of a CSV file that contains a time series of larval mortality rates. Example:

Time step; Larval mortality rate
0;0.03
1;0.03
2;0.025
3;0.025
4;0.03
...

The time value does not matter. Osmose does not read it and assume that there is one line per time step. The number of time steps in the CSV file must be a multiple of the number of time steps per year. If the time series is shorter than the duration of the simulation, Osmose will loop over it. If the time series is longer than the duration of the simulation, Osmose will ignore the exceeding steps.

Natural mortality

The natural mortality rate includes all type of mortalities that are not explicitly represented in OSMOSE, such as mortality due to other predators (seals, seabirds).

  • Annual natural mortality rate
mortality.natural.rate.sp# = 0.2

Annual natural mortality rate D (expressed in year^-1) such as Ndead_natural(t) = N(t) * (1 – exp(-D / n_dt_year))

  • Natural mortality rate by dt
mortality.natural.rate.byDt.file.sp#

The path of a CSV file that contains a time series of natural mortality rates (expressed in dt^-1). Same as larval mortality rate by dt.

  • Natural mortality rate by dt and by age/size class
mortality.natural.rate.byDt.byAge.file.sp
mortality.natural.rate.byDt.bySize.file.sp

The path of the CSV file that contains time series of natural mortality rate (expressed in dt^-1) per age/size class. The CSV file has the format than the fishing mortality rates/catches per dt and per size/age class. Example:

Time step / Age;0;2;3.5;5;7
0;0;0;0.05;0.08;0.08
1;0;0;0.05;0.08;0.07
2;0;0;0.04;0.07;0.06
3;0;0;0.04;0.07;0.07
...

Osmose scans the first line of the CSV file to define the age classes (expressed in year). In this example 5 classes have been defined [0 2years[, [2years 3.5years[, [3.5years 5years[, [5years 7years[ and [7years to lifespan[. For size classes the first line would look like:

Time step / Length;0;5;10;20;40

The five classes for this species are [0cm 5cm[, [5cm 10cm[, [10cm 20cm[, [20cm 40cm[ and [40cm Length_at_infinity[. The value of the time step does not matter, Osmose assumes there is one line per time step. The number of time steps in the CSV file must be a multiple of the number of time steps per year. If the time series is shorter than the duration of the simulation, Osmose will loop over it. If the time series is longer than the duration of the simulation, Osmose will ignore the exceeding steps.

Migration mortality

mortality.out.rate.sp# = 0.8

Annual mortality rate for species that move out of the simulated area, Mout. When a school moves out, none of the usual processes apply (predation, growth, fishing, natural mortality, growth, starvation). The Mout mortality rate comprises all sources of mortality outside the simulated area. It applies as long as the school is located out of the simulated area (see the parameter 'movement.map0.file' for detailled explanations on how to set up migration periods for a given school). The Mout parameters is such that, at a given time step, Ndead_out(t) = N(t) * (1 - exp(-Mout/n_dt_per_year))

Reproduction

At the end of each time step, the numbers of eggs spawned by a species is calculated as follow:

nEgg = sexRatio * alpha * season * (SSB * 1e6)

with sexRatio defined by the parameter 'species.sexratio.sp#' alpha defined by the parameter 'species.relativefecundity.sp#', season defined by the parameter 'reproduction.season.file' and SSB the Spawning Stock Biomass. SSB is calculated as the sum of the biomass of the schools that reached sexual maturity (defined by the parameter 'species.maturity.size.sp#'). As SSB is expressed in tons and alpha in grams of mature female, SSB is multiplied by 1e6.

reproduction.season.file = reproduction-seasonality.csv

Seasonality of the annual influx of biomass for every species. It controls how the annual flux of biomass is inputted in the system over the year.

Here is an example of the csv file:

Time (year);euphausiids;cephalopods;sardine;anchovy;sprat;horsemackerel;mackerel;bluewhiting;hake;tuna
0;0;0.025;0.125;0;0.15;0;0.1;0.15;0.025;0
0.041666668;0;0.025;0.125;0;0.15;0;0.1;0.15;0.025;0
0.083333336;0;0.025;0.1;0;0.05;0;0.1;0.15;0.025;0
0.125;0;0.025;0.1;0;0.05;0;0.1;0.15;0.025;0
0.16666667;0;0.025;0.025;0;0.05;0;0.1;0.15;0.05;0
0.20833333;0;0.025;0.025;0;0.05;0;0.1;0.15;0.05;0
0.25;0;0.075;0.025;0.05;0;0;0.1;0.025;0.075;0
0.29166666;0;0.075;0.025;0.05;0;0;0.1;0.025;0.075;0
0.33333334;0.125;0.075;0.025;0.05;0;0;0.1;0;0.025;0
0.375;0.125;0.075;0.025;0.05;0;0;0.1;0;0.025;0
0.41666666;0.125;0.075;0.025;0.125;0;0.125;0;0;0.025;0
0.45833334;0.125;0.075;0.025;0.125;0;0.125;0;0;0.025;0
0.5;0.125;0.075;0;0.125;0;0.125;0;0;0.025;0
0.5416667;0.125;0.075;0;0.125;0;0.125;0;0;0.025;0
0.5833333;0.125;0.025;0;0.05;0;0.125;0;0;0.025;0
0.625;0.125;0.025;0;0.05;0;0.125;0;0;0.025;0
0.6666667;0;0.025;0.025;0.05;0;0.125;0;0;0.05;0
0.7083333;0;0.025;0.025;0.05;0;0.125;0;0;0.05;0
0.75;0;0.025;0.025;0.05;0.05;0;0;0;0.1;0
0.7916667;0;0.025;0.025;0.05;0.05;0;0;0;0.1;0
0.8333333;0;0.025;0.025;0;0.05;0;0;0;0.05;0
0.875;0;0.025;0.025;0;0.05;0;0;0;0.05;0
0.9166667;0;0.025;0.1;0;0.15;0;0;0.025;0.025;0
0.9583333;0;0.025;0.1;0;0.15;0;0;0.025;0.025;0

One line per time step. The first column defines time, expressed in year. The subsequent columns define the seasonality of reproduction for each species. For example, the second column is the fraction of eggs to be spawned by species 1 at each time step. OSMOSE will also be able to read an interannual CSV file with as many season factors as the number of time steps of the simulation. The sum of the season factors over a year should sum to one (even though OSMOSE will not check, which somehow allows you to mimic interannual variability when CSV file is interannual).


reproduction.season.file.sp# = reproduction-seasonality-sp#.csv

Seasonality of the annual influx of biomass for a given species.  Osmose will first check for 'reproduction.season.file' parameter. If the parameter is not set or does not exist, then it will look for species specific seasonality files. If Osmose does not find any seasonality file, then  season=0 and nEgg=0.

Input flux of biomass

Some species might no do the full life cycle within the simulated domain (reproduce outside the domain for example). For such species, one way to take them into account is to include of flux of schools with user-defined age and length at specific time of the year.

flux.incoming.season.file = incoming-flux-seasonality.csv

Seasonality of the annual influx of biomass for every species. It controls how the annual flux of biomass is inputted in the system over the year.

Here is an example of the csv file:

Time (year);euphausiids;cephalopods;sardine;anchovy;sprat;horsemackerel;mackerel;bluewhiting;hake;tuna
0;0;0;0;0;0;0;0;0;0;0
0.041666668;0;0;0;0;0;0;0;0;0;0
0.083333336;0;0;0;0;0;0;0;0;0;0
0.125;0;0;0;0;0;0;0;0;0;0
0.16666667;0;0;0;0;0;0;0;0;0;0
0.20833333;0;0;0;0;0;0;0;0;0;0
0.25;0;0;0;0;0;0;0;0;0;0
0.29166666;0;0;0;0;0;0;0;0;0;0
0.33333334;0;0;0;0;0;0;0;0;0;0.05
0.375;0;0;0;0;0;0;0;0;0;0.05
0.41666666;0;0;0;0;0;0;0;0;0;0.1
0.45833334;0;0;0;0;0;0;0;0;0;0.1
0.5;0;0;0;0;0;0;0;0;0;0.15
0.5416667;0;0;0;0;0;0;0;0;0;0.15
0.5833333;0;0;0;0;0;0;0;0;0;0.15
0.625;0;0;0;0;0;0;0;0;0;0.15
0.6666667;0;0;0;0;0;0;0;0;0;0.05
0.7083333;0;0;0;0;0;0;0;0;0;0.05
0.75;0;0;0;0;0;0;0;0;0;0
0.7916667;0;0;0;0;0;0;0;0;0;0
0.8333333;0;0;0;0;0;0;0;0;0;0
0.875;0;0;0;0;0;0;0;0;0;0
0.9166667;0;0;0;0;0;0;0;0;0;0
0.9583333;0;0;0;0;0;0;0;0;0;0

One line per time step. The first column defines time ,expressed in year. The subsequent columns define the seasonality of the annual influx of biomass for each species. In the example above, there is an influx of biomass defined for species 9 only. The sum of the season factors over a year should sum to one.

OSMOSE will also be able to read an interannual CSV file with as many season factors as the number of time steps of the simulation.


flux.incoming.season.file.sp# = incoming-flux-seasonality-sp#.csv

Seasonality of the annual influx of biomass for a given species. Osmose will first check for 'flux.incoming.season.file' parameter. If the parameter is not set or does not exist, then it will look for species specific seasonality files. If Osmose does not find any seasonality file, then  season=0 and there is no flux.


flux.incoming.annual.biomass.sp# = 4000

Annual influx of biomass for this species expressed in ton. The influx of biomass at a each time step will be calculated as: annual.biomass * season factor (as defined above in the parameter 'flux.incoming.season.file' ). If this parameter is not defined for a species, OSMOSE will assume that the incoming flux is zero.


flux.incoming.age.sp# = 3

Age of the incoming fish, in years


flux.incoming.size.sp# = 80

Size of the incoming fish, in centimetre

Grid

The grid defines the geographical extent of the simulated domain and the spatial discretization. The grid is defined by a NetCDF file that provides for every cell a the grid: the latitude, the longitude and whether it is land or ocean (the mask). OSMOSE does not set any convention regarding the latitude and the longitude. Just make sure it is consistent with the convention of the LTL dataset. The grid does not have to be regular.

grid.netcdf.file = grid.nc

The path of the NetCDF grid file


grid.var.lat = lat
grid.var.lon = lon
grid.var.mask = mask

The name of the variables latitude, longitude and mask in the NetCDF grid file.


grid.java.classname = fr.ird.osmose.grid.NcGrid

The Java class that should be used to build the OSMOSE grid. Do not change this parameter unless you know exactly what you are doing.


Historically OSMOSE allows to define a regular grid, given a few parameters. Even though it is preferable to use the NetCDF grid definition, here is how a regular grid can be defined:

grid.ncolumn = 56
grid.nline = 62
grid.lowright.lat = -37.5
grid.lowright.lon = 24.4
grid.upleft.lat = -28.2
grid.upleft.lon = 16
grid.mask.file = grid-mask.csv
grid.java.classname = fr.ird.osmose.grid.OriginalGrid

The mask file is a CSV with ncolumn and nline. Land takes the value -99,  and ocean cell are defined by a 0. Here is an example of a CSV mask file for a 4x4 grid:

0;0;0;0
0;0;0;-99
0;0;-99;-99
0;0;-99;-99

OSMOSE also allows to define grid based on ECO3M or BFM grid. These are specific cases though for handling the LTL dataset more easily and will not be detailled here. Please refer to section "LTL dataset directly from biogeochemical model".

Low trophic level

Low trophic level (LTL hereafter) organisms such as phytoplankton and zooplancton are not explicitly modelled in Osmose but are essential to take into account are they constitute the base of the trophic chain. They are considered as an input of the model, spatially explicit and varying with time.

First one must define the LTL groups that are included in the configuration. In a second time, Osmose needs to know how the LTL data will be delivered.

Plankton groups

plankton.accessibility2fish.plk# = 0.0855

The fraction of the plankton biomass that are accessible to the fish, ranging from zero to one. This parameter accounts for many biological processes that are not explicitly represented in Osmose and basically says that only a small fraction of the plankton in the water column is effectively available to the fish for preying upon. Plankton accessibility is generally completely unknown and, just like larval mortality, it should be estimated in the calibration process.


plankton.conversion2tons.plk# = 0.72

Factor for converting biomass from plankton unit (as provided in the LTL input file) to wet weight in tonne/km2. (e.g. mmolN/m2 to tonne/km2)


plankton.name.plk# = Dinoflagellates

Name of the plankton group


plankton.size.max.plk# = 0.002
plankton.size.min.plk# = 0.0002

The minimum and maximum size of the organisms in the plankton group, in centimetre


plankton.TL.plk# = 1

The trophic level of the plankton group


plankton.TL.plk# = 1

Added a parameter 'plankton.multiplier.plk#' for multiplying plankton biomass, in order to run different scenarios of plankton forcing in relation to a reference state (plankton.multiplier.plk0 = 1 by default for the reference state). For instance plankton.multiplier.plk0 = 2 means that Osmose will multiply by two the biomass of the plankton group zero of the LTL dataset.

LTL dataset

OSMOSE expects the LTL dataset to be spatially explicit and varying with time. The plankton biomass must be provided as time series (with same time step than OSMOSE configuration) on the OSMOSE grid, in a NetCDF file.

ltl.java.classname = fr.ird.osmose.ltl.LTLFastForcing

The parameter indicates which Java class in Osmose should handle the reading of the LTL dataset. LTLFastForcing is the default plugin. Do not change it, unless you know exactly what you are doing.


ltl.netcdf.file = osm_ltlbiomass_integrated.nc

Path of the NetCDF file that stores the plankton biomass for every LTL group. Here is an example of the NetCDF header for the OSMOSE default configuration:

netcdf osm_ltlbiomass_integrated {
dimensions:
    ltl = 4 ;
    nx = 56 ;
    ny = 62 ;
    time = UNLIMITED ; // (24 currently)
variables:
    float time(time) ;
        time:units = "days since 1-1-1 0:0:0" ;
        time:calendar = "360_day" ;
        time:description = "time ellapsed, in days, since the beginning of the simulation" ;
    float ltl_biomass(time, ltl, ny, nx) ;
        ltl_biomass:units = "tons per cell" ;
        ltl_biomass:description = "plankton biomass in osmose cell, in tons integrated on water column, per group and per cell" ;
        ltl_biomass:_FillValue = -99.f ;
    float ltl_biomass_pred(time, ltl, ny, nx) ;
        ltl_biomass_pred:units = "tons per cell" ;
        ltl_biomass_pred:description = "plankton biomass after predation process in osmose cell, in tons integrated on water column, per group and per cell" ;
        ltl_biomass_pred:_FillValue = -99.f ;
    float latitude(ny, nx) ;
        latitude:units = "degree" ;
        latitude:description = "latitude of the center of the cell" ;
    float longitude(ny, nx) ;
        longitude:units = "degree" ;
        longitude:description = "longitude of the center of the cell" ;

// global attributes:
        :dimension_ltl = "0=Dinoflagellates 1=Diatoms 2=Ciliates 3=Copepods " ;
}

How to generate such a NetCDF file is beyond the scope of this document. Specific documentations about generating/inputting LTL data to OSMOSE will be provided soon.


ltl.nstep = 24

Number of time steps in the LTL dataset file. The parameter must be a multiple of the number of time step per year. OSMOSE will loop over the LTL data through time.

LTL dataset directly from biogeochemical model

LTL dataset usually comes from the output of biogeochemical models, such as NPZD, PISCES, ECO3M, BFM, etc. OSMOSE provides a few plugins to read directly the LTL data from the output of biogeochemical models. These plugins have been added on the go and might reveal some flaws under scrutiny. It is recommended to provide the LTL data in the pre-defined OSMOSE format instead (as explained above). They do exist though and we mention them briefly.

  • ROMS-PISCES
ltl.java.classname = fr.ird.osmose.ltl.LTLFastForcingRomsPisces
ltl.netcdf.file.t# =ltl/roms_avg_5.nc
ltl.netcdf.var.plankton.plk# = SPHYTO
ltl.netcdf.grid.file = grid.nc
ltl.netcdf.var.bathy = h
ltl.netcdf.var.csr = Cs_r
ltl.netcdf.var.hc = hc
ltl.netcdf.var.lat = lat_rho
ltl.netcdf.var.lon = lon_rho
ltl.integration.depth = -100

This plugin expects as many NetCDF files as time step per year. The integration depth, metre, is the depth of the water column to be taken into account for integrating the plankton biomass. ROMS grid and OSMOSE grid can be different, though all of OSMOSE grid must be included within the ROMS grid.

  • ECO3M
ltl.java.classname = fr.ird.osmose.ltl.LTLFastForcingECO3M
ltl.netcdf.file.t# = ltl/200305_150.nc
ltl.netcdf.var.plankton.plk# = NANON
ltl.netcdf.var.zlevel = levels_ZHL
ltl.integration.depth = -100

This plugin expects as many NetCDF files as time step per year. Same definition of the integration depth as for ROMS-PISCES plugin. For this plugin, it is assumed that the OSMOSE grid does match the ECO3M grid or is at least in line with it (for example one OSMOSE cell is the aggregation of 3x3 ECO3M cells). It implies a case-specific definition of the OSMOSE grid.

ECO3M grid definition:

grid.java.classname = fr.ird.osmose.grid.ECO3MGrid
grid.netcdf.file = eco3m-grid.nc
grid.stride = 4
grid.var.lat = Latitude
grid.var.lon = Longitude
grid.var.mask = Mask

The parameter grid.strid controls the level of aggregation of ECO3M cells for generating one OSMOSE cell. In this case an OSMOSE cell will be a cluster of 4x4 ECO3M cells.

  • BFM

@ToDo

Output

File format and naming convention

Modifications of the Osmose outputs aim to provide data in a systematic way, always abiding to the same format, so that it can be easily interpreted and analysed by post-processing tools (such as Osmose2R for instance). The name of the Osmose parameters for enabling the outputs tend to follow the pattern:

output.variable(.byAge/bySize/byTL)(.perSpecies).enabled

The byAge/bySize/byTL means that the outut data will be split by age, size or trophic level classes. The perSpecies means that the information is divided into one file per species.

Osmose outputs are provided in CSV files and can have the following formats:

  • Time serie for all species. For instance:
output.biomass.enabled
output.yield.abundance.enabled
output.size.enabled
  • Time series by age, size or trophic level classes, for all species. For instance:
output.yield.bySize.enabled
output.meanSize.byAge.enabled
output.biomass.byTL.enabled
  • Time series of trophic interaction by age or size class, per species (one file per species). For instance:
output.diet.composition.byAge.enabled
output.diet.pressure.bySize.enabled
  • Time series of trophic interaction, for all species. For instance
output.diet.pressure.enabled
output.diet.composition.enabled
  • Mortality files. For instance:
output.mortality.enabled
output.mortality.perSpecies.byAge.enabled

Trophic interactions and mortality rates cannot be satisfactorily written in a CSV file as they are time series of 2D arrays (or more if we include age or size classes). A NetCDF file would suit better the purpose but would make the use of post-processing routines compulsory, which can be a hindrance for the end-user. We have not reached yet a satisfactory answer to the problem and output formats will keep evolving in future releases.


CSV separator

output.csv.separator = COMA (or SEMICOLON, EQUALS, TAB, COLON)

It controls the CSV separator in the CSV output files. Coma by default.

Output options

output.start.year = 20

Year at which outputs start to be written.


output.recordfrequency.ndt = 24

Record frequency is expressed in number of time steps. In the example above, the indicators will be either averaged or cumulated (depending on the nature of the indicator) over 24 time steps before being written. A record frequency of 1 means that indicators will be written in output files at every time step of the simulation.


output.dir.path = output

Path of the output directory, either relative or absolute.


output.file.prefix = gol

Prefix of the output files


output.cutoff.enabled = false

Enable/disable the cutoff. Cutoff indicates to OSMOSE whether or not it should consider the schools younger than the cutoff age (see parameter 'output.cutoff.age.sp#') when calculating indicators.


output.cutoff.age.sp# = 0.5

Cutoff age, expressed in year. If the parameter 'output.cutoff.enabled' is enabled, then OSMOSE will ignore all schools younger that 0.5 year old when calculating the indicators.

Restart

output.restart.enabled = true

Deactivate the writing of the NetCDF restart file. True by default.


output.restart.spinup = 0

Sets the number of years before starting to write the restart file (assuming that the record frequency of the restart file is one year for instance). Zero by default.


output.restart.recordFrequency.ndt = 24

Only use this parameter if you would like Osmose to save more restart files rather than just one at the end of the simulation.

Size-based or age-based distributed parameters

Some of the Osmose outputs can be recorded by age or size class.

output.biomass.bySize.enabled
output.biomass.byAge.enabled
output.abundance.bySize.enabled
output.abundance.byAge.enabled
output.diet.composition.byAge.enabled
output.diet.composition.bySize.enabled
output.diet.pressure.byAge.enabled
output.diet.pressure.bySize.enabled
output.mortality.perSpecies.byAge.enabled
output.mortality.perSpecies.bySize.enabled
output.yieldN.bySize.enabled
output.yield.bySize.enabled
output.yieldN.byAge.enabled
output.yield.byAge.enabled
output.meanSize.byAge.enabled
output.meanTL.bySize.enabled
output.meanTL.byAge.enabled

The age and size classes are defined by the following parameters

output.distrib.byAge.min
output.distrib.byAge.max
output.distrib.byAge.incr

Age min, max and the increment in between two age classes. Age is expressed in year.

output.distrib.bySize.min
output.distrib.bySize.max
output.distrib.bySize.incr

Size min, max and the increment between two size classes. Size is expressed in length.

If Osmose does not find these parameters, it will use the following default parameters:

  • Age classes from 0 to 25 years, increment 1year
  • Size classes from 0cm to 200cm, increment 10cm

List of Osmose outputs

Follows a list of all the OSMOSE outputs. A complete description of OSMOSE output files is provided here (coming soon).

  • Biomass and abundance outputs
output.abundance.enabled = true/false
output.biomass.enabled = true/false
output.biomass.bySize.enabled = true/false
output.biomass.byAge.enabled = true/false
output.abundance.bySize.enabled = true/false
output.abundance.byAge.enabled = true/false
  • Diet outputs
output.diet.composition.enabled = true/false
output.diet.pressure.enabled = true/false
output.diet.stage.structure = size
output.diet.stage.threshold.sp# = null

Parameter output.diet.stage.structure accepts values size or age and allows to detail the diet matrix for several stages. output.diet.stage.threshold.sp# takes either threshold lengths (centimetre) or ages (year).  A null value means that no threshold should be considered and the output will show only one column or row for the species. The user can define as many threshold values as needed (e.g. output.diet.stage.threshold.sp# = 1; 2; 3; 4; 5) be remember that it will increase the size of the CSV output file just as much.

output.diet.composition.byAge.enabled = true/false
output.diet.composition.bySize.enabled = true/false
output.diet.pressure.byAge.enabled = true/false
output.diet.pressure.bySize.enabled = true/false
  • Mortality outputs
output.mortality.enabled = true/false
output.mortality.perSpecies.byAge.enabled = true/false
output.mortality.perSpecies.bySize.enabled = true/false
  • Size outputs
output.size.catch.enabled = true/false
output.size.enabled = true/false
output.meaSize.byAge.enabled = true/false
  • Spatial outputs
output.spatial.enabled = true/false
output.spatial.ltl.enabled = true/false
  • Trophic level outputs
output.TL.catch.enabled = true/false
output.TL.enabled = true/false
output.meanTL.byAge.enabled = true/false
output.meanTL.bySize.enabled = true/false
output.biomass.byTL.enabled = true/false

Default Trophic Level classes ranges from 0 to 6 with 0.1 increment. These parameters can be changed:

output.distrib.byTL.min
output.distrib.byTL.max
output.distrib.byTL.incr
  • Fishing outputs
output.yield.abundance.enabled = true/false
output.yield.biomass.enabled = true/false
output.yieldN.bySize.enabled = true/false
output.yield.bySize.enabled = true/false
output.yieldN.byAge.enabled = true/false
output.yield.byAge.enabled = true/false
Category: