FishMet: Fish feeding and appetite model, OPEN EDITION
0.1
FishMet: Fish feeding and appetite model, OPEN EDITION
|
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 !> ![]() ![]() ![]() | |
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... | |
The FishMet Model: Definition of fish model.
Definition in file m_fish.f90.