FishMet: Fish feeding and appetite model, OPEN EDITION  0.1
FishMet: Fish feeding and appetite model, OPEN EDITION
m_fish.f90 File Reference

(16601)

The FishMet Model: Definition of fish model. More...

Go to the source code of this file.

Data Types

type  the_fish::history_array_fish
 This type defines history arrays that are saved for the FISH class. More...
 
type  the_fish::fish_skel
 This defines the root type for the FISH class. More...
 
interface  the_fish::smr
 Calculate SMR, with generic interface to non-object oriented procedure. More...
 
interface  the_fish::stress_factor
 Calculate stress pattern based on cubic spline interpolation over the grid defined by commondata::global_stress_factor_hour and commondata::global_stress_fact_suppress. More...
 
type  the_fish::food_item_eaten
 
type  the_fish::food_item_eaten_mg
 
type  the_fish::stomach
 Defines the stomach of the fish. More...
 
type  the_fish::midgut
 Defines the midgut of the fish. More...
 
type  the_fish::fish
 Defines an umbrella class for the complete fish organism An outline of the ::fish class inheritance is presented below. More...
 

Modules

module  the_fish
 This module defines the fish and its components. The model is discrete, time is based on time steps, in s.
 

Functions/Subroutines

elemental real(srp) function the_fish::stomach_vol (mass)
 Calculate the stomach volume (ml) based on the fish body mass (g) using Salgado, A., Salgado, I., & Valdebenito, I. (2018). A direct and straightforward method for measurement real maximum fish stomach volume to improve aquaculture feeding research. Latin American Journal of Aquatic Research, 46(5), 880–889. https://doi.org/10.3856/vol46-issue5-fulltext-3. More...
 
elemental subroutine the_fish::fish_init_new_zero (this, id_num)
 Initialise an empty ::fish object to an empty zero state. More...
 
pure real(srp) function the_fish::fish_smr_temp_bodymass_evan1990_scalar (this, temperature, is_per_hour, time_step)
 SMR calculation from Evans 1992 data, scalar version. More...
 
pure real(srp) function the_fish::fish_smr_temp_bodymass_evan1990_value (body_mass, temperature, is_per_hour, time_step)
 SMR calculation from Evans 1992 data, non-object scalar version. More...
 
elemental real(srp) function the_fish::amr_swim_basic (fish_mass, swimming_speed, time_unit)
 Calculate the active metabolic rate of fish in units of oxygen consumption per hour. More...
 
elemental real(srp) function the_fish::fish_amr_locomotion_energy_cost (this, temperature, is_exclude_smr, is_per_hour)
 Calculate the active metabolic rate. This can be based on amr_swim_basic() or def_salmon::salmon_oxygen_consumption(). More...
 
elemental real(srp) function the_fish::fish_whole_body_energy_trout (this)
 Calculate the whole body energy content. More...
 
elemental real(srp) function the_fish::energy2mass (body_energy)
 Calculate the body mass from whole body energy. More...
 
elemental subroutine the_fish::food_item_eaten_set_zero_init_state (this, mass, start_mass, delay)
 Initialise an empty food item as ingested by the fish. Cleanup and set zero state. More...
 
elemental subroutine the_fish::food_item_eaten_mg_set_zero_init_state (this, mass, start_mass, delay)
 Initialise an empty food item as ingested by the fish. Cleanup and set zero state. More...
 
elemental subroutine the_fish::food_item_eaten_eat_init_at_ingest (this, food_item_in, ingest_delay)
 Initialise a single food item as it is ingested by the fish. Note that the ingested food item is copied from the external food item environ::food_item that comes as the input argument. More...
 
elemental subroutine the_fish::food_item_eaten_update_age_in_stomach (this, t_increment)
 This procedure updates the time the food item spent in the stomach of the fish. More...
 
elemental subroutine the_fish::food_item_eaten_check_destruct (this, is_destructed, tolerance, max_time)
 Check if the food item mass shrunk to near-zero and destruct it. More...
 
elemental subroutine the_fish::food_item_eaten_mg_check_destruct (this, is_destructed, tolerance, max_time)
 Check if the food item has been processed for more than commondata::global_maximum_duration_midgut s time in the midgut. More...
 
elemental logical function the_fish::food_item_eaten_mg_exceed_max_is_to_destruct (this, max_time)
 Check if the food item in the midgut has spent for more than the maximum time in the midgut after full absorption and should be destructed and evacuated (TRUE). More...
 
elemental logical function the_fish::food_item_eaten_is_absorbed_full (this, max_absorb)
 Check if the food item has been absorbed to the maximum possible mass. More...
 
elemental real(srp) function the_fish::st_food_item_mass (time_in_process, dry_mass, ingestion_delay, water_uptake, rescale)
 This function defines the mass of a single food item as it passes through the fish stomach. More...
 
elemental subroutine the_fish::fish_stomach_init (this, mass)
 Initialise an empty fish stomach object. More...
 
impure subroutine the_fish::fish_stomach_update_step (this)
 Update one time step of the fish stomach life cycle. More...
 
elemental subroutine the_fish::fish_ingest_food_item (this, food_item_ingested)
 This procedure shows what happens when the fish eats a single food item. More...
 
elemental real(srp) function the_fish::fish_stomach_total_mass_food (this, tolerance)
 Calculate the total mass of food in the fish stomach. More...
 
elemental real(srp) function the_fish::fish_appetite_factor_stomach (this, fcapacity)
 Calculate the fish appetite factor based on the relative stomach fullness. Appetite factor is equivalent to the probability of consuming any food item. More...
 
elemental subroutine the_fish::fish_midgut_init (this, mass)
 Initialise an empty fish midgut object. More...
 
impure subroutine the_fish::fish_midgut_update_from_stomach (this, dry_mass, t_increment)
 This procedure processes the food item in the midgut of the fish. More...
 
elemental subroutine the_fish::fish_energy_balance_update (this, temperature, start_value)
 Calculate and update the current energy balance of the fish. Note that the energy balance is kept in the history array the_fish::fish_skel::history::energy_balance_curr. More...
 
elemental real(srp) function the_fish::fish_energy_branchial_step (this, temperature, is_oxygen)
 Calculate urinal (UE) and branchial energy (ZE) as a proportion of the SMR. More...
 
elemental real(srp) function the_fish::nitrogen_mass (mol, is_ammonia)
 Calculate the mass of ammonia, mol to g. More...
 
elemental real(srp) function the_fish::branchial_nitrogen_to_energy (excreted_nitrogen, is_kg)
 Calculate the branchal and urinary energy loss from branchial and urinary nitrogen loss. See Bureau, D.P., Kaushik, S.J., Cho, C.Y. (2002) Bioenergetics. In Hardy, R.W., Halver, J.E., eds. Fish Nutrition, 3 ed Academic Press, San Diego, CA, USA (pp 1–59): More...
 
elemental real(srp) function the_fish::fish_energy_consumption_step (this, temperature, sda_off)
 Calculate total energy, kJ consumption of the fish depending on the temperature E = SMR + AMR + (UE+ZE) + SDA Public interface: the_fish::uptake_energy(). More...
 
elemental real(srp) function the_fish::fish_oxygen_consumption_step (this, temperature, is_mass, sda_off)
 Calculate total oxygen consumption (l) of the fish depending on the temperature O2 = O2_SMR + O2_AMR + O2_{UE+ZE} O2_SDA. More...
 
elemental real(srp) function the_fish::fish_energy_sda_factor (this, max_ap, max_sda, is_limit)
 Calculate the relative SDA (specific dynamic action) factor for SMR unit of energy uptake. SDA depends on the absorption rate up th the maxmum cap value max_sda that is achieved at the absorption rate max_ap More...
 
elemental subroutine the_fish::fish_grow_increment_energy (this)
 Grow the fish body mass: increment mass based on energy. More...
 
elemental real(srp) function the_fish::fish_midgut_total_mass_evacuated_step (this, max_time)
 Calculate the increment of the total mass of food evacuated from the midgut after full absorption and evacuation delay (see commondata:global_maximum_duration_midgut_min) that occurs at one time step. More...
 
elemental integer function the_fish::fish_midgut_n_evacuated_step (this, max_time)
 Calculate the number of the total mass of food evacuated from the midgut after full absorption and evacuation delay (see commondata:global_maximum_duration_midgut_min) that occurs at one time step. More...
 
elemental subroutine the_fish::fish_midgut_history_update (this)
 Update the history stack arrays for the fish, ::midgut class. More...
 
elemental integer function the_fish::midgut_absorp_history_last_past_idx (this)
 Determine the index of the latest absorption item in the history stack array. If the whole array is commondata::missing, this means the history stack is empty, then the function returns zero. Note that in most cases the function should return commondata::history_size as the history stack is filled with previous values. More...
 
elemental real(srp) function the_fish::fish_midgut_total_mass_food (this, tolerance)
 Calculate the total mass of food in the fish midgut. More...
 
elemental real(srp) function the_fish::fish_appetite_factor_midgut (this, fcapacity)
 Calculate the fish appetite factor based on the relative midgut fullness. Appetite factor is equivalent to the probability of consuming any food item. More...
 
elemental real(srp) function the_fish::fish_midgut_absorption_rate (this)
 Calculate instantaneous absorption rate based on the current absorption data and previous absorption saved in Output Arrays. More...
 
elemental real(srp) function the_fish::fish_midgut_absorption_factor (this)
 Appetite factor multiplier based on the total absorption rate. More...
 
elemental subroutine the_fish::fish_midgut_shift_items_after_new_ingest (this, food_item_pass)
 Shift food items in the midgut after a new food item is ingested and therefore food items are shifted in stomach adding the new item. More...
 
elemental real(srp) function the_fish::appetite_func (mass_relative, A, R)
 Computational backend for the appetite function. Appetite is calculated as. More...
 
elemental real(srp) function the_fish::fish_appetite_probability_ingestion (this, time_step)
 Calculate the overall appetite of the fish, which defines the probability to ingest any food item. More...
 
pure real(srp) function the_fish::stress_suppress_factor_s (time_step_incr, is_force)
 Calculate suppression factor for appetite caused by stress intervention at time time: generic interface is ::stress_factor(). This is the scalar version, vector -based version is stress_suppress_factor_v(). More...
 
pure real(srp) function, dimension(:), allocatable the_fish::stress_suppress_factor_v (time_step_incr, is_force)
 Vector-based version of the stress-based suppression function ::stress_factor(). There is a scalar version of the same function stress_suppress_factor_s. More...
 
pure real(srp) function the_fish::stress_suppress (time_step)
 Calculate real stress suppression factor for a specific time step given the configured stress intervention pattern. This is a high-level interface to ::stress_factor(). More...
 
elemental real(srp) function the_fish::fish_body_mass_current_get (this)
 Get the current body mass of the fish. Note that this is the shortcut to obtain the last value from the body mass history array the_fish::fish_skel::history::body_mass_current. More...
 
elemental real(srp) function the_fish::fish_appetite_factor_energy_balance (this)
 Calculate appetite factor that depends on the energy balance. More...
 
impure subroutine the_fish::fish_decide_eat_food_item (this, food_item_in, have_eaten)
 This procedure determines if the fish decides to consume the food item and if yes, ingests it using the ::do_ingest() method. @important This version accepts raw food item. Generic interface linking both raw and pointer versions is ambiguous. More...
 
impure subroutine the_fish::fish_decide_eat_food_item_ptr (this, food_item_in, have_eaten)
 This procedure determines if the fish decides to consume the food item and if yes, ingests it using the ::do_ingest() method. @important This version accepts pointer to food item. Generic interface linking both raw and pointer versions is ambiguous. More...
 
elemental real(srp) function the_fish::fish_activity_baseline_component (this, time_step)
 Calculate the baseline activity of the fish. More...
 
elemental real(srp) function the_fish::fish_activity_appetite_factor (this)
 Calculate activity factor linked to appetite. Appetite factor has a linear relationship with the fish appetite !> $ l_{A} = k_{a} A + 1 $, here $ k_{a} + 1 $ is the maximum value of the appetite activity factor when appetite value is maximum $ A = 1 $. Note that the appetite activity factor works as a multiplier for the baseline actvity the_fish::fish::activity_baseline(), see fish_amr_locomotion_energy_cost(). More...
 
elemental real(srp) function the_fish::stomach_adjust (target_emptying_time)
 Calculate the adjustment factor for the transformation of the stomach transport pattern Time scale commondata::global_transport_pattern_t for a different temperature or fish size. More...
 
elemental integer function the_fish::stomach_emptying_time (fish_mass, temperature)
 Calculate the stomach emptying time for a fish with specific body mass at a specific temperature. Calculation is based on spline interpolation of experimental data. More...
 
elemental integer function the_fish::fish_stomach_emptying_time (this, temperature)
 Object-oriented frontend for stomach_emptying_time(): Calculate the stomach emptying time for a fish with specific body mass at a specific temperature. Calculation is based on spline interpolation of experimental data. More...
 
impure type(stomach_emptying_pattern) function the_fish::get_stomach_emptying_matrix_csv (csv_file)
 Get the stomach emptying time base matrix from a CSV input data file. More...
 

Variables

integer, parameter, public the_fish::history_size = 20
 The size of the history that saves the fish data back in time. More...
 

Detailed Description

The FishMet Model: Definition of fish model.

Definition in file m_fish.f90.