The AHA Model
Revision: 12809
Reference implementation 04 (HEDG02_04)
|
Definition of the decision making and behavioural the architecture. More...
Data Types | |
type | percept_food |
This type defines how the agent perceives food items. The food perception object the_neurobio::percept_food is basically an array of food objects within the visual range of the agent plus distances to the agent. This is the "objective" perception container, reflecting the "real world". We introduce a perception error when perception object is analysed by the agent's neurobiological system. More... | |
type | spatial_percept_component |
This type defines a single spatial perception component, i.e. some single elementary spatial object that can be perceived by the agent from a big array of objects of the same type which are available in the agent's environment. Different kinds of perception objects (e.g. conspecifics, predators etc.) can be produced by extending this basic type. More... | |
type | conspec_percept_comp |
This type defines a single conspecific perception component. It is required for the the_neurobio::percept_conspecifics type that defines the whole conspecifics perception object (array of conspecifics). More... | |
type | percept_conspecifics |
This type defines how the agent perceives conspecifics. More... | |
type | spatialobj_percept_comp |
This type defines a single arbitrary spatial object perception component. For example, a predator perception object is then an array of such spatial object perception components. More... | |
type | percept_predator |
This type defines how the agent perceives a predator. More... | |
type | percept_stomach |
This type defines how the agent perceives its own stomach capacity. More... | |
type | percept_body_mass |
This type defines how the agent perceives its own body mass it can be important for state-dependency. More... | |
type | percept_energy |
This type defines how the agent perceives its own energy reserves it can be important for state-dependency. More... | |
type | percept_age |
This type defines how the agent perceives its own age in terms of the model discrete time step. More... | |
type | percept_reprfact |
Perception of the reproductive factor, reproductive factor depends on the sex hormones differently in males and females. More... | |
type | percept_light |
Perception of the ambient illumination. This is a very simple perception component, singular and static. More... | |
type | percept_depth |
Perception of the current depth horizon. More... | |
type | memory_perceptual |
Individual perception memory(history) stack, a memory component that saves perception values at previous time steps of the model. Not whole perception objects are saved for simplicity, only the most important parameters, integer and real types so commondata::add_to_history() can be used in unmodified form. Decision making can make use of this memory stack. More... | |
type | perception |
The perception architecture of the agent. See "The perception mechanism" for a general overview. At this level, lower order perception objects are combined into the the_neurobio::perception class hierarchy level of the agent. The object bound functions see_ and feel_ obtain (set) the specific perception objects from the external or internal environments of the agent and put them into the the_neurobio::perception data structure. Also, memory component is updated with the perception data. Perception objects can then be used as input into the individual decision-making procedures. More... | |
type | percept_components_motiv |
Perceptual components of motivational states. Plugged into all STATE_ , attention etc. These components are linked to specific inner or outer perception objects (stimuli). Their sum result(s) in the overall value of the motivation component. More... | |
type | state_motivation_base |
These types describe the neurobiological states of the agent. (1) Each state may have several components that are related to specific inner or outer perception objects (stimuli). (2) There is also a motivation component that describes the global motivation value for this state. More... | |
interface | motivation_init_root |
Abstract interface for the deferred init function clean_init that has to be overridden by each object that extends the basic motivational state type. More... | |
type | state_hunger |
The motivational state of hunger. Evokes food seeking, eating, higher activity, emigrating and habitat switching. More... | |
type | state_fear_defence |
The state of fear state. Evokes active escape, fleeing, emigration and habitat switch. More... | |
type | state_reproduce |
The state of reproduction. Evokes seeking conspecifics and mating during the reproductive phase. More... | |
type | motivation |
Motivation is a collection of all internal motivational states of the agent. This type is also used in defining Expectancies of motivations. More... | |
type | memory_emotional |
Individual motivation/emotion memory stack, a memory component that saves the values of the final motivations at previous time steps of the model. Not whole state (STATE_ ) objects are saved for simplicity. add_to_history is used in unmodified form. Decision making can make use of this emotional memory stack. More... | |
type | appraisal |
The appraisal level. At this level, perception objects are feed into the commondata::gamma2gene() sigmoid function and the neuronal responses are obtained at the output. Neuronal responses for different perception objects are then summed up and the promary motivation values are obtained. Following this, modulation alters some of the primary motivation values resulting in the final motivation values. See "From perception to GOS" for an overview. More... | |
type | gos_global |
Global organismic state (GOS) level. GOS is defined by the dominant motivational state component (STATE_ ), namely, by the logical flag %dominant_state. If this logical flag is TRUE for a particular motivational state component, this state is the GOS. Thus, there should be is no separate data component(s) e.g. "value" for GOS. The values the_neurobio::gos_global::gos_main and the_neurobio::gos_global::gos_arousal can be inferred from the motivations, here are doubled mainly for convenience. See "From perception to GOS" for an overview. More... | |
Functions/Subroutines | |
elemental subroutine | percept_food_create_init (this, maximum_number_food_items) |
Initiate an empty food perception object with known number of components. More... | |
subroutine | percept_food_number_seen (this, number_set) |
Set the total number of food items perceived (seen) in the food perception object. Do not reallocate the perception object components with respect to this new number yet. More... | |
subroutine | percept_food_make_fill_arrays (this, items, dist) |
Make the food perception object, fill it with the actual data arrays. More... | |
elemental integer function | percept_food_get_count_found (this) |
Get the number (count) of food items seen. Trivial. More... | |
elemental real(srp) function | percept_food_get_meansize_found (this) |
Get the average size of food items seen. Trivial. More... | |
elemental real(srp) function | percept_food_get_meanmass_found (this) |
Get the average mass of food items seen. Trivial. More... | |
elemental real(srp) function | percept_food_get_meandist_found (this) |
Get the average distance to the food items seen. Trivial. More... | |
elemental subroutine | percept_food_destroy_deallocate (this) |
Deallocate and delete a food perception object. More... | |
subroutine | food_perception_get_visrange_objects (this, food_resource_available, time_step_model) |
Get available food items within the visual range of the agent, which the agent can perceive and therefore respond to. Food perception is packaged into the food perception object this%perceive_food for output. More... | |
elemental logical function | food_perception_is_seeing_food (this) |
Check if the agent sees any food items within its visual range. More... | |
real(srp) function | food_perception_probability_capture_memory_object (this, last, time_step_model) |
Calculate the probability of capture of a subjective representation of food item based on the data from the perceptual memory stack. More... | |
elemental subroutine | percept_stomach_create_init (this) |
Initiate an empty stomach capacity perception object. More... | |
elemental real(srp) function | percept_stomach_get_avail_capacity (this) |
Get the currently available value of the available stomach volume. More... | |
subroutine | percept_stomach_update_avail_capacity (this, current_volume) |
Set and update the currently available value of the available stomach volume. More... | |
elemental subroutine | percept_stomach_destroy_deallocate (this) |
Destroy the stomach perception object and deallocate it. More... | |
elemental subroutine | percept_bodymass_create_init (this) |
Initiate an empty body mass perception object. More... | |
elemental real(srp) function | percept_bodymass_get_current (this) |
Get the current value of the body mass perception. More... | |
subroutine | percept_bodymass_update_current (this, current) |
Set and update the current body mass perception value. More... | |
elemental subroutine | percept_bodymass_destroy_deallocate (this) |
Destroy the body mass perception object and deallocate. More... | |
elemental subroutine | percept_energy_create_init (this) |
Initiate an empty energy perception object. More... | |
elemental real(srp) function | percept_energy_get_current (this) |
Get the current value of the energy reserves. More... | |
subroutine | percept_energy_update_current (this, current) |
Set and update the current energy perception value. More... | |
elemental subroutine | percept_energy_destroy_deallocate (this) |
Destroy the energy perception object and deallocate. More... | |
elemental subroutine | percept_age_create_init (this) |
Initiate an empty age perception object. More... | |
elemental integer function | percept_age_get_current (this) |
Get the current value of the age reserves. More... | |
subroutine | percept_age_update_current (this, current) |
Set and update the current age perception value. More... | |
elemental subroutine | percept_age_destroy_deallocate (this) |
Destroy the age perception object and deallocate it. More... | |
subroutine | spatial_percept_set_cid (this, id) |
Set unique id for the conspecific perception component. More... | |
elemental integer function | spatial_percept_get_cid (this) |
Get the unique id of the food item object. More... | |
elemental subroutine | consp_percept_comp_create (this) |
Create a single conspecific perception component at an undefined position with default properties. More... | |
subroutine | consp_percept_make (this, location, size, mass, dist, cid, is_male) |
Make a single conspecific perception component. This is a single conspecific located within the visual range of the agent. More... | |
elemental real(srp) function | consp_percept_get_size (this) |
Get the conspecific perception component body size. More... | |
elemental real(srp) function | consp_percept_get_mass (this) |
Get the conspecific perception component body mass. More... | |
elemental real(srp) function | consp_percept_get_dist (this) |
Get the conspecific perception component distance. More... | |
elemental logical function | consp_percept_sex_is_male_get (this) |
Get the conspecific perception component sex flag (male). More... | |
elemental logical function | consp_percept_sex_is_female_get (this) |
Get the conspecific perception component sex flag (female). More... | |
elemental subroutine | percept_consp_create_init (this, maximum_number_conspecifics) |
Create conspecifics perception object, it is an array of conspecific perception components. More... | |
elemental subroutine | percept_consp_number_seen (this, number_set) |
Set the total number of conspecifics perceived (seen) in the conspecific perception object. But do not reallocate the conspecific perception components so far. More... | |
pure subroutine | percept_consp_make_fill_arrays (this, consps) |
Make the conspecifics perception object, fill it with the actual arrays. More... | |
elemental integer function | percept_consp_get_count_seen (this) |
Get the number (count) of conspecifics seen. Trivial. More... | |
elemental subroutine | percept_consp_destroy_deallocate (this) |
Deallocate and delete a conspecific perception object. More... | |
subroutine | consp_perception_get_visrange_objects (this, consp_agents, time_step_model) |
Get available conspecific perception objects within the visual range of the agent, which the agent can perceive and therefore respond to. More... | |
elemental logical function | consp_perception_is_seeing_conspecifics (this) |
Check if the agent sees any conspecifics within the visual range. More... | |
elemental subroutine | spatialobj_percept_comp_create (this) |
Create a single arbitrary spatial object perception component at an undefined position with default properties. More... | |
subroutine | spatialobj_percept_make (this, location, size, dist, cid) |
Make a single arbitrary spatial object perception component. More... | |
elemental real(srp) function | spatialobj_percept_get_size (this) |
Get an arbitrary spatial object perception component size. More... | |
elemental real(srp) function | spatialobj_percept_get_dist (this) |
Get the distance to an arbitrary spatial object perception component. More... | |
real(srp) function | spatialobj_percept_visibility_visual_range (this, object_area, contrast, time_step_model) |
Calculate the visibility range of this spatial object. Wrapper to the visual_range function. This function calculates the distance from which this object can be seen by a visual object (e.g. predator or prey). More... | |
elemental subroutine | percept_predator_create_init (this, maximum_number_predators) |
Create predator perception object, it is an array of spatial perception components. More... | |
elemental subroutine | percept_predator_number_seen (this, number_set) |
Set the total number of predators perceived (seen) in the predator perception object. But do not reallocate the predator perception components so far. More... | |
pure subroutine | percept_predator_make_fill_arrays (this, preds, attack_rate) |
Make the predator perception object, fill it with the actual arrays. More... | |
pure subroutine | percept_predator_set_attack_rate_vector (this, attack_rate) |
Set an array of the attack rates for the predator perception object. More... | |
pure subroutine | percept_predator_set_attack_rate_scalar (this, attack_rate) |
Set an array of the attack rates for the predator perception object. More... | |
elemental integer function | percept_predator_get_count_seen (this) |
Get the number (count) of predators seen. Trivial. More... | |
elemental subroutine | percept_predator_destroy_deallocate (this) |
Deallocate and delete a predator perception object. More... | |
subroutine | predator_perception_get_visrange_objects (this, spatl_agents, time_step_model) |
Get available predators perception objects within the visual range of the agent, which the agent can perceive and therefore respond to. More... | |
elemental logical function | predator_perception_is_seeing_predators (this) |
Check if the agent sees any predators within the visual range. More... | |
elemental subroutine | percept_light_create_init (this) |
Make en empty light perception component. Really necessary only when perception objects are all allocatable. More... | |
elemental real(srp) function | percept_light_get_current (this) |
Get the current perception of the illumination. More... | |
subroutine | percept_light_set_current (this, timestep, depth) |
Set the current light level into the perception component. More... | |
elemental subroutine | percept_light_destroy_deallocate (this) |
Destroy / deallocate light perception component. Really necessary only when perception objects are all allocatable. More... | |
subroutine | light_perception_get_object (this, time_step_model) |
Get light perception objects into the individual PERCEPTION object layer. More... | |
elemental subroutine | percept_depth_create_init (this) |
Make en empty depth perception component. Really necessary only when perception objects are all allocatable. More... | |
elemental real(srp) function | percept_depth_get_current (this) |
Get the current perception of the depth. More... | |
subroutine | percept_depth_set_current (this, cdepth) |
Set the current depth level into the perception component. More... | |
elemental subroutine | percept_depth_destroy_deallocate (this) |
Destroy / deallocate depth perception component. Really necessary only when perception objects are all allocatable. More... | |
elemental subroutine | percept_reprfac_create_init (this) |
Make en empty reproductive factor perception component. Really necessary only when perception objects are all allocatable. More... | |
elemental real(srp) function | percept_reprfac_get_current (this) |
Get the current perception of the reproductive factor. More... | |
subroutine | percept_reprfac_set_current (this, reprfac) |
Set the current reproductive factor level into perception component. More... | |
elemental subroutine | percept_reprfac_destroy_deallocate (this) |
Destroy / deallocate reproductive factor perception component. Really necessary only when perception objects are all allocatable. More... | |
subroutine | depth_perception_get_object (this) |
Get depth perception objects into the individual PERCEPTION object layer. More... | |
subroutine | stomach_perception_get_object (this) |
Get the stomach capacity perception objects into the individual PERCEPTION object layer. More... | |
subroutine | bodymass_perception_get_object (this) |
Get the body mass perception objects into the individual PERCEPTION object layer. More... | |
subroutine | energy_perception_get_object (this) |
Get the energy reserves perception objects into the individual PERCEPTION object layer. More... | |
subroutine | age_perception_get_object (this) |
Get the age perception objects into the individual PERCEPTION object layer. More... | |
subroutine | repfac_perception_get_object (this) |
Get the reproductive factor perception objects into the individual PERCEPTION object layer. More... | |
elemental subroutine | percept_memory_add_to_stack (this, light, depth, food, foodsize, fooddist, consp, pred, stom, bdmass, energ, reprfac) |
Add perception components into the memory stack. More... | |
elemental subroutine | percept_memory_cleanup_stack (this) |
Cleanup and destroy the perceptual memory stack. More... | |
elemental integer function | percept_memory_food_get_total (this) |
Get the total number of food items within the whole perceptual memory stack. More... | |
elemental real(srp) function | percept_memory_food_get_mean_n (this, last) |
Get the average number of food items per single time step within the whole perceptual memory stack. More... | |
elemental subroutine | percept_memory_food_mean_n_split (this, window, split_val, older, newer) |
Get the average number of food items per single time step within the perceptual memory stack, split to the first (older) and second (newer) parts. The whole memory stack ('sample') is split by the split_val parameter and two means are calculated: before the split_val and after it. More... | |
elemental real(srp) function | percept_memory_food_get_mean_size (this, last) |
Get the average size of food item per single time step within the whole perceptual memory stack. More... | |
elemental subroutine | percept_memory_food_mean_size_split (this, window, split_val, older, newer) |
Get the average size of food items per single time step within the perceptual memory stack, split to the first (older) and second(newer) parts. The whole memory stack 'sample' is split by the split_val parameter and two means are calculated: before the split_val and after it. More... | |
elemental real(srp) function | percept_memory_food_get_mean_dist (this, last, undef_ret_null) |
Get the average distance to food item per single time step within the whole perceptual memory stack. More... | |
elemental subroutine | percept_memory_food_mean_dist_split (this, window, split_val, older, newer) |
Get the average distance to food items per single time step within the perceptual memory stack, split to the first (older) and second(newer) parts. The whole memory stack 'sample' is split by the split_val parameter and two means are calculated: before the split_val and after it. More... | |
elemental real(srp) function | percept_memory_consp_get_mean_n (this, last) |
Get the average number of conspecifics per single time step within the whole perceptual memory stack. More... | |
elemental integer function | percept_memory_predators_get_total (this) |
Get the total number of predators within the whole perceptual memory stack. More... | |
elemental real(srp) function | percept_memory_predators_get_mean (this, last) |
Get the average number of predators per single time step within the whole perceptual memory stack. More... | |
elemental subroutine | percept_memory_predators_mean_split (this, window, split_val, older, newer) |
Get the average number of predators per single time step within the perceptual memory stack, split to the first (older) and second(newer) parts. The whole memory stack ('sample') is split by the split_val parameter and two means are calculated: before the split_val and after it. More... | |
elemental subroutine | perception_objects_add_memory_stack (this) |
Add the various perception objects to the memory stack object. This procedure is called after all the perceptual components (light, depth food, conspecifics, predators, etc.) are collected (using set object-bound subroutines) into the perception bundle, so all the values are known and ready to be used. More... | |
subroutine | perception_objects_get_all_environmental (this) |
A single umbrella subroutine to get all environmental perceptions: light, depth. This procedure invokes these calls: More... | |
subroutine | perception_objects_get_all_inner (this) |
A single umbrella subroutine wrapper to get all inner perceptions: stomach, body mass, energy, age. Invokes all these procedures: More... | |
elemental subroutine, private | perception_objects_init_agent (this) |
Initialise all the perception objects for the current agent. Do not fill perception objects with the real data yet. More... | |
elemental subroutine | perception_objects_destroy (this, clean_memory) |
Destroy and deallocate all perception objects. More... | |
elemental real(srp) function | perception_predation_risk_objective (this) |
Calculate the risk of predation as being perceived / assessed by this agent. More... | |
elemental real(srp) function | predation_risk_backend (pred_count, pred_memory_mean, weight_direct) |
Simple computational backend for the risk of predation that is used in objective risk function the_neurobio::perception_predation_risk_objective() and the subjective risk function. More... | |
elemental subroutine | perception_components_attention_weights_init (this, all_vals_fix, all_one, weight_light, weight_depth, weight_food_dir, weight_food_mem, weight_conspec, weight_pred_dir, weight_predator, weight_stomach, weight_bodymass, weight_energy, weight_age, weight_reprfac) |
Initialise the attention components of the emotional state to their default parameter values. Attention sets weights to individual perceptual components when the overall weighted sum is calculated. The default weights are parameters defined in COMMONDATA . More... | |
subroutine | perception_components_neuronal_response_init_set (this, this_agent, param_gp_matrix_light, param_gp_matrix_depth, param_gp_matrix_food_dir, param_gp_matrix_food_mem, param_gp_matrix_conspec, param_gp_matrix_pred_dir, param_gp_matrix_predator, param_gp_matrix_stomach, param_gp_matrix_bodymass, param_gp_matrix_energy, param_gp_matrix_age, param_gp_matrix_reprfac, param_gerror_cv_light, param_gerror_cv_depth, param_gerror_cv_food_dir, param_gerror_cv_food_mem, param_gerror_cv_conspec, param_gerror_cv_pred_dir, param_gerror_cv_predator, param_gerror_cv_stomach, param_gerror_cv_bodymass, param_gerror_cv_energy, param_gerror_cv_age, param_gerror_cv_reprfac, param_gene_label_light, param_gene_label_depth, param_gene_label_food_dir, param_gene_label_food_mem, param_gene_label_conspec, param_gene_label_pred_dir, param_gene_label_predator, param_gene_label_stomach, param_gene_label_bodymass, param_gene_label_energy, param_gene_label_age, param_gene_label_reprfac) |
Set and calculate individual perceptual components for this motivational state using the neuronal response function, for this_agent. More... | |
subroutine | perception_components_neuronal_response_calculate (this, this_agent, param_gp_matrix_light, param_gp_matrix_depth, param_gp_matrix_food_dir, param_gp_matrix_food_mem, param_gp_matrix_conspec, param_gp_matrix_pred_dir, param_gp_matrix_predator, param_gp_matrix_stomach, param_gp_matrix_bodymass, param_gp_matrix_energy, param_gp_matrix_age, param_gp_matrix_reprfac, param_gerror_cv_light, param_gerror_cv_depth, param_gerror_cv_food_dir, param_gerror_cv_food_mem, param_gerror_cv_conspec, param_gerror_cv_pred_dir, param_gerror_cv_predator, param_gerror_cv_stomach, param_gerror_cv_bodymass, param_gerror_cv_energy, param_gerror_cv_age, param_gerror_cv_reprfac, perception_override_light, perception_override_depth, perception_override_food_dir, perception_override_food_mem, perception_override_conspec, perception_override_pred_dir, perception_override_predator, perception_override_stomach, perception_override_bodymass, perception_override_energy, perception_override_age, perception_override_reprfac) |
Calculate individual perceptual components for this motivational state using the neuronal response function, for an this_agent. More... | |
elemental real(srp) function | state_motivation_light_get (this) |
Standard "get" function for the state neuronal light effect component. More... | |
elemental real(srp) function | state_motivation_depth_get (this) |
Standard "get" function for the state neuronal depth effect component. More... | |
elemental real(srp) function | state_motivation_food_dir_get (this) |
Standard "get" function for the state neuronal directly seen food effect component. More... | |
elemental real(srp) function | state_motivation_food_mem_get (this) |
Standard "get" function for the state neuronal food items from past memory effect component. More... | |
elemental real(srp) function | state_motivation_conspec_get (this) |
Standard "get" function for the state neuronal conspecifics effect component. More... | |
elemental real(srp) function | state_motivation_pred_dir_get (this) |
Standard "get" function for the state neuronal direct predation effect component. More... | |
elemental real(srp) function | state_motivation_predator_get (this) |
Standard "get" function for the state neuronal predators effect component. More... | |
elemental real(srp) function | state_motivation_stomach_get (this) |
Standard "get" function for the state neuronal stomach effect component. More... | |
elemental real(srp) function | state_motivation_bodymass_get (this) |
Standard "get" function for the state neuronal body mass effect component. More... | |
elemental real(srp) function | state_motivation_energy_get (this) |
Standard "get" function for the state neuronal energy reserves effect component. More... | |
elemental real(srp) function | state_motivation_age_get (this) |
Standard "get" function for the state neuronal age effect component. More... | |
elemental real(srp) function | state_motivation_reprfac_get (this) |
Standard "get" function for the state neuronal reproductive factor effect component. More... | |
elemental real(srp) function | state_motivation_motivation_prim_get (this) |
Standard "get" function for the root state, get the overall primary motivation value (before modulation). More... | |
elemental real(srp) function | state_motivation_motivation_get (this) |
Standard "get" function for the root state, get the overall final motivation value (after modulation). More... | |
elemental logical function | state_motivation_is_dominant_get (this) |
Check if the root state is the dominant state in GOS. More... | |
elemental character(len=label_length) function | state_motivation_fixed_label_get (this) |
Get the fixed label for this motivational state. Note that the label is fixed and cannot be changed. More... | |
pure subroutine | state_motivation_attention_weights_transfer (this, copy_from) |
Transfer attention weights between two motivation state components. The main use of this subroutine would be to transfer attention from the actor agent's main motivation's attention component to the behaviour's GOS expectancy object. More... | |
elemental real(srp) function | perception_component_maxval (this) |
Calculate the maximum value over all the perceptual components. More... | |
elemental real(srp) function | state_motivation_percept_maxval (this) |
Calculate the maximum value over all the perceptual components of this motivational state component. More... | |
elemental real(srp) function | state_motivation_calculate_prim (this, maxvalue) |
Calculate the level of primary motivation for this specific emotional state component. More... | |
elemental subroutine | perception_component_motivation_init_zero (this) |
Initialise perception components for a motivation state object. More... | |
elemental subroutine | state_hunger_zero (this) |
Init and cleanup hunger motivation object. The only difference from the base root STATE_MOTIVATION_BASE is that it sets unique label. More... | |
elemental subroutine | state_fear_defence_zero (this) |
Init and cleanup fear state motivation object. The only difference from the base root STATE_MOTIVATION_BASE is that it sets unique label. More... | |
elemental subroutine | state_reproduce_zero (this) |
Init and cleanup reproductive motivation object. The only difference from the base root STATE_MOTIVATION_BASE is that it sets unique label. More... | |
elemental subroutine | motivation_init_all_zero (this) |
Init the expectancy components to a zero state. More... | |
elemental subroutine | motivation_reset_gos_indicators (this) |
Reset all GOS indicators for this motivation object. More... | |
elemental real(srp) function | motivation_max_perception_calc (this) |
Calculate maximum value of the perception components across all motivations. More... | |
pure real(srp) function, dimension(:), allocatable | motivation_return_final_as_vector (this) |
Return the vector of final motivation values for all motivational state components. More... | |
elemental real(srp) function | motivation_maximum_value_motivation_finl (this) |
Calculate the maximum value of the final motivations across all motivational state components. More... | |
elemental logical function | motivation_val_is_maximum_value_motivation_finl (this, test_value) |
Checks if the test value is the maximum final motivation value across all motivational state components. More... | |
elemental logical function | motivation_val_is_maximum_value_motivation_finl_o (this, test_motivation) |
Checks if the test value is the maximum final motivation value across all motivational state components. More... | |
elemental subroutine | motivation_primary_sum_components (this, max_val) |
Calculate the primary motivations from motivation-specific perception appraisal components. The primary motivations are motivation values before the modulation takes place. More... | |
elemental subroutine | motivation_modulation_absent (this) |
Produce modulation of the primary motivations, that result in the final motivation values (_finl ). In this subroutine, modulation is absent, so the final motivation values are equal to the primary motivations. More... | |
elemental subroutine, private | appraisal_init_zero_cleanup_all (this) |
Initialise and cleanup all appraisal object components and sub-objects. More... | |
elemental subroutine | appraisal_agent_set_dead (this) |
Set the individual to be dead. Note that this function does not deallocate the individual agent object, this may be a separate destructor function. More... | |
subroutine | appraisal_perceptual_comps_motiv_neur_response_calculate (this) |
Get the perceptual components of all motivational states by passing perceptions via the neuronal response function. More... | |
elemental subroutine | appraisal_primary_motivations_calculate (this, rescale_max_motivation) |
Calculate primary motivations from perceptual components of each motivation state. More... | |
subroutine | appraisal_motivation_modulation_non_genetic (this, no_modulation) |
Produce modulation of the primary motivations, that result in the final motivation values (_finl ). Modulation here is non-genetic and involves a fixed transformation of the primary motivation values. More... | |
subroutine | appraisal_motivation_modulation_genetic (this, no_genetic_modulation) |
Produce modulation of the primary motivations, that result in the final motivation values (_finl ). Modulation involves effects of such characteristics of the agent as body mass and age on the primary motivations (hunger, active and passive avoidance and reproduction) mediated by the genome effects. Here the genome determines the coefficients that set the degree of the influence of the agent's characteristics on the motivations. More... | |
elemental subroutine | appraisal_add_final_motivations_memory (this) |
Add individual final emotional state components into the emotional memory stack. This is a wrapper to the the_neurobio::memory_emotional::add_to_memory method. More... | |
real(srp) function | reproduce_do_probability_reproduction_calc (this, weight_baseline, allow_immature) |
Calculate the instantaneous probability of successful reproduction. More... | |
logical function | reproduction_success_stochast (this, prob) |
Determine a stochastic outcome of this agent reproduction. Returns TRUE if the agent has reproduced successfully. More... | |
elemental subroutine | emotional_memory_add_to_stack (this, v_hunger, v_defence_fear, v_reproduction, v_gos_label, v_gos_arousal, v_gos_repeated) |
Add emotional components into the memory stack. More... | |
elemental subroutine | emotional_memory_add_gos_to_stack (this, v_gos_label, v_gos_arousal, v_gos_repeated) |
Add the current GOS label or/and arousal value and/or arousal repeat count into the emotional memory stack. More... | |
elemental subroutine | emotional_memory_cleanup_stack (this) |
Cleanup and destroy the emotional memory stack. More... | |
elemental real(srp) function | emotional_memory_hunger_get_mean (this, last) |
Get the average value of the hunger motivation state within the whole emotional memory stack. More... | |
elemental real(srp) function | emotional_memory_actve_avoid_get_mean (this, last) |
Get the average value of the fear state motivation state within the whole emotional memory stack. More... | |
elemental real(srp) function | emotional_memory_reproduct_get_mean (this, last) |
Get the average value of the reproductive motivation state within the whole emotional memory stack. More... | |
elemental real(srp) function | emotional_memory_arousal_mean (this, last) |
Get the average value of the GOS arousal within the whole emotional memory stack. More... | |
subroutine | gos_find_global_state (this) |
Find and set the Global Organismic State (GOS) of the agent based on the various available motivation values. The motivation values linked with the different stimuli compete with the current GOS and among themselves. More... | |
elemental subroutine, private | gos_init_zero_state (this) |
Initialise GOS engine components to a zero state. The values are set to commondata::missing, commondata::unknown, string to "undefined". More... | |
elemental subroutine | gos_agent_set_dead (this) |
Set the individual to be dead. Note that this function does not deallocate the individual agent object, this may be a separate destructor function. More... | |
elemental subroutine | gos_reset_motivations_non_dominant (this) |
Reset all motivation states as not dominant with respect to the GOS. More... | |
elemental character(len=label_length) function | gos_global_get_label (this) |
Get the current global organismic state (GOS). More... | |
elemental real(srp) function | gos_get_arousal_level (this) |
Get the overall level of arousal. Arousal is the current level of the dominant motivation that has brought about the current GOS at the previous time step. More... | |
subroutine | gos_attention_modulate_weights (this) |
Modulate the attention weights to suppress all perceptions alternative to the current GOS. This is done using the attention modulation interpolation curve. More... | |
elemental integer function | perception_food_items_below_calculate (this) |
Calculate the number of food items in the perception object that are located below the actor agent. More... | |
elemental integer function | perception_food_items_below_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the number of food items in the perception object that are located below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z+hz_lower, z+hz_upper]. More... | |
elemental real(srp) function | perception_food_mass_below_calculate (this) |
Calculate the average mass of a food item from all the items in the current perception object that are below the actor agent. More... | |
elemental real(srp) function | perception_food_mass_below_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the average mass of a food item from all the items in the current perception object that are below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z+hz_lower, z+hz_upper]. More... | |
elemental integer function | perception_food_items_above_calculate (this) |
Calculate the number of food items in the perception object that are located above the actor agent. More... | |
elemental integer function | perception_food_items_above_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the number of food items in the perception object that are located above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z-hz_upper, z-hz_upper]. More... | |
elemental real(srp) function | perception_food_mass_above_calculate (this) |
Calculate the average mass of a food item from all the items in the current perception object that are above the actor agent. More... | |
elemental real(srp) function | perception_food_mass_above_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the average mass of a food item from all the items in the current perception object that are above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z-hz_upper, z-hz_upper]. More... | |
elemental integer function | perception_conspecifics_below_calculate (this) |
Calculate the number of conspecifics in the perception object that are located below the actor agent. More... | |
elemental integer function | perception_conspecifics_above_calculate (this) |
Calculate the number of conspecifics in the perception object that are located above the actor agent. More... | |
elemental integer function | perception_conspecifics_below_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the number of conspecifics in the perception object that are located below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z+hz_lower, z+hz_upper]. More... | |
elemental integer function | perception_conspecifics_above_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the number of conspecifics in the perception object that are located above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z-hz_upper, z-hz_upper]. More... | |
elemental integer function | perception_predator_below_calculate (this) |
Calculate the number of predators in the perception object that are located below the actor agent. More... | |
elemental integer function | perception_predator_above_calculate (this) |
Calculate the number of predators in the perception object that are located above the actor agent. More... | |
elemental integer function | perception_predator_below_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the number of predators in the perception object that are located below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z+hz_lower, z+hz_upper]. More... | |
elemental integer function | perception_predator_above_horiz_calculate (this, hz_lower, hz_upper) |
Calculate the number of predators in the perception object that are located above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this actor agent: [z-hz_upper, z-hz_upper]. More... | |
elemental real(srp) function | perception_food_dist_below_calculate (this) |
Calculate the average distance to all food items in the current perception object that are below the actor agent. More... | |
elemental real(srp) function | perception_food_dist_above_calculate (this) |
Calculate the average distance to all food items in the current perception object that are above the actor agent. More... | |
elemental real(srp) function | perception_consp_dist_below_calculate (this) |
Calculate the average distance to all conspecifics in the current perception object that are below the actor agent. More... | |
elemental real(srp) function | perception_consp_dist_above_calculate (this) |
Calculate the average distance to all conspecifics in the current perception object that are above the actor agent. More... | |
elemental real(srp) function | perception_predator_dist_below_calculate (this) |
Calculate the average distance to all predators in the current perception object that are below the actor agent. More... | |
elemental real(srp) function | perception_predator_dist_above_calculate (this) |
Calculate the average distance to all predators in the current perception object that are above the actor agent. More... | |
real(srp) function | predator_capture_probability_calculate_spatobj (this, this_predator, attack_rate, is_freezing, time_step_model) |
Calculate the probability of attack and capture of the this agent by the predator this_predator . This probability is a function of the distance between the predator and the agent and is calculated by the predator-class-bound procedure the_environment::predator::risk_fish(). Example call: More... | |
real(srp) function | predator_capture_probability_calculate_pred (this, this_predator, is_freezing, time_step_model) |
Calculate the probability of attack and capture of the this agent by the predator this_predator . This probability is a function of the distance between the predator and the agent and is calculated by the predator-class-bound procedure the_environment::predator::risk_fish(). More... | |
real(srp) function | predation_capture_probability_risk_wrapper (this, is_freezing) |
Calculate the overall direct predation risk for the agent, i.e. the probability of attack and capture by the nearest predator. More... | |
elemental real(srp) function | get_prop_size (this) |
Get the body size property of a polymorphic object. The object can be of the following extension of the basic the_environment::spatial class: More... | |
elemental real(srp) function | get_prop_mass (this) |
Get the body mass property of a polymorphic object. The object can be of the following extension of the basic the_environment::spatial class: More... | |
Variables | |
character(len= *), parameter, private | modname = "(THE_NEUROBIO)" |
Definition of the decision making and behavioural the architecture.
This module defines the neurobiological architecture of the agent, starting from perception to representation, appraisal, motivation, emotion, determination of the global organismic state, and behaviour.
elemental subroutine the_neurobio::percept_food_create_init | ( | class(percept_food), intent(inout) | this, |
integer, intent(in) | maximum_number_food_items | ||
) |
Initiate an empty food perception object with known number of components.
[in] | maximum_number_food_items | maximum_number_food_items Maximum number of food items in the food perception object, normally equal to the partial food resource indexing order commondata::food_select_items_index_partial . |
Create all food items in the perception array (create
is elemental procedure).
Initialise all other components of the perception object.
array
Set the initial number of food items in the perception object to the maximum number using the function percept_food_number_seen
below.
Definition at line 1367 of file m_neuro.f90.
subroutine the_neurobio::percept_food_number_seen | ( | class(percept_food), intent(inout) | this, |
integer, intent(in) | number_set | ||
) |
Set the total number of food items perceived (seen) in the food perception object. Do not reallocate the perception object components with respect to this new number yet.
[in] | number_set | Set the number of food items in the perception object. |
Definition at line 1409 of file m_neuro.f90.
subroutine the_neurobio::percept_food_make_fill_arrays | ( | class(percept_food), intent(inout) | this, |
type(food_item), dimension(:), intent(in) | items, | ||
real(srp), dimension(:), intent(in) | dist | ||
) |
Make the food perception object, fill it with the actual data arrays.
init
method. [in] | items | items an array of food items that form the perception object. |
[in] | dist | dist an array of the distances between the agent and each of the food items in the perception object. |
First we check for non-conforming input arrays and re-init and reallocate the perception object, if needed, to the minimum value.
Report this issue to the log.
Second, fill the dynamic food perception object with the data from the input arrays. They should have conforming sizes now.
Definition at line 1421 of file m_neuro.f90.
elemental integer function the_neurobio::percept_food_get_count_found | ( | class(percept_food), intent(in) | this | ) |
Get the number (count) of food items seen. Trivial.
Definition at line 1460 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_food_get_meansize_found | ( | class(percept_food), intent(in) | this | ) |
Get the average size of food items seen. Trivial.
Definition at line 1470 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_food_get_meanmass_found | ( | class(percept_food), intent(in) | this | ) |
Get the average mass of food items seen. Trivial.
Definition at line 1484 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_food_get_meandist_found | ( | class(percept_food), intent(in) | this | ) |
Get the average distance to the food items seen. Trivial.
If no food items seen, we have undefined distance.
Definition at line 1500 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_food_destroy_deallocate | ( | class(percept_food), intent(inout) | this | ) |
Deallocate and delete a food perception object.
Definition at line 1514 of file m_neuro.f90.
subroutine the_neurobio::food_perception_get_visrange_objects | ( | class(perception), intent(inout) | this, |
class(food_resource), intent(in) | food_resource_available, | ||
integer, intent(in), optional | time_step_model | ||
) |
Get available food items within the visual range of the agent, which the agent can perceive and therefore respond to. Food perception is packaged into the food perception object this%perceive_food for output.
Food perception is quite complex to implement as it requires determining individual food items within the current visual range of the agent. There are, however, potentially thousands (or millions) of food items in the food resource, each of the food items is stochastic (e.g. they have different sizes), so visual range differ for each item and each agent should determine food items in its proximity at numerous time steps of the model. This means repeating huge loops many times for each agent at each time step. This is approached by array segmentation: the perception object is obtained by partial indexing of a very limited number (=commondata::food_select_items_index_partial
) of only the nearest food items, the agent's visual range is then determined for each of this nearest neighbouring food items, and finally those food items that individually fall within the visual range are included into the perception object.
All these procedures were actually implemented using the first (the_neurobio::perception::see_food) as a template. All three implement partial indexing of the nearest spatial objects to accelerate computation of large arrays of spatial objects.
[in] | food_resource_available | food_resource_available Global food resource object from which we select neighbouring item components that are present within the visual range of the agent. |
[in] | time_step_model | time_step_model The current time step of the model. |
the_environment::food_item
) available to the agent.dist_food_neighbours - temporary array of the distances to the neighbouring food items.
food_resource_available
and dist_foods
. Needed to calculate the agent's visual range.food_items_n_visrange
elements of it are actually within the visual range.food_items_percept_in_visrange
for output that are within he visual range of the agent.Check optional time step parameter. If unset, use global commondata::global_time_step_model_current
.
Initialise index and rank values. Unititialised index arrays may result in invalid memory reference in ARRAY_INDEX
(it is not safe by design).
Copy food items array component from the food_resource_available
class' the_environment::food_item's array.
call dist_foods%position( food_resource_available%food%location() )as the objects are
the_environment::food_item
higher level than the_environment::spatial
.First, we determine up to the maximum order (fast partial indexing) of commondata::food_select_items_index_partial
neighbouring food items that are in proximity of the agent. This is done using the the_environment::spatial::neighbours() backend procedure.
Second, we select only those items within this set, which are within the visual range of the agent under the current conditions. To do this we, first, calculate the ambient illumination/irradiance level at the depth of the agent. Done using the the_environment::spatial::illumination() procedure.
Compute the array of "prey areas" for each of the food items (whole array or neighbouring food items only).
Compute the vector of the visual ranges for detecting each of the food items by the agent.
Now we can get the pre-output array food_items_percept_in_visrange
that contains the food objects available within the visual range of the agent. Also, we count the number of such items for the output parameter food_items_n_visrange
.
Also, check if the food item is available (not eaten).
Here we also log warning if no food items found, when debugging (see commondata::is_debug).
Finally, we can now create the output food perception object, including only food items that are within the current visual range of the agent. Init (create and allocate) the food perception object (at first empty) using the the_neurobio::percept_food::init().
Fill the output perception object with the values obtained at the step 3. This is done using the the_neurobio::percept_food::make() backend procedure.
Definition at line 1553 of file m_neuro.f90.
elemental logical function the_neurobio::food_perception_is_seeing_food | ( | class(perception), intent(in) | this | ) |
Check if the agent sees any food items within its visual range.
see_food
method as it is only an accessor get-function. Definition at line 1765 of file m_neuro.f90.
real(srp) function the_neurobio::food_perception_probability_capture_memory_object | ( | class(perception), intent(in) | this, |
integer, intent(in), optional | last, | ||
integer, intent(in), optional | time_step_model | ||
) |
Calculate the probability of capture of a subjective representation of food item based on the data from the perceptual memory stack.
[in] | last | last Limit to only this number of latest components in history. |
[in] | time_step_model | time_step_model optional time step of the model, if absent, obtained from the global variable commondata::global_time_step_model_current . |
subjective_food_item_average
of the type the_environment::food_item is a subjective representation of the food item object built from the memory stack data.
First, check optional time step parameter. If unset, use global commondata::global_time_step_model_current.
Second, build the subjective food item subjective_food_item_average
using the the_environment:: food_item::make() method. The location of this subjective food item coincides with the location of the agent. This allows to calculate the visibility (visual range) of the food items bat the depth of the agent.
Then the capture probability is calculated using the type-bound method the_environment::food_item::capture_probability(). Importantly, the distance towards towards the food item is explicitly provided as the average distance from the memory stack calculated by the the_neurobio::memory_perceptual::get_food_mean_dist().
Finally, we add a random Gaussian error to the above objective value. Now we have obtained the stochastic subjective value of the capture probability for this food item including a Gaussian error. There is also a strong limitation for the subjective probability to be within the range [0.0, 1.0]. See also subjective_capture_prob() for a similar Gaussian error in subjective probability.
Definition at line 1779 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_stomach_create_init | ( | class(percept_stomach), intent(inout) | this | ) |
Initiate an empty stomach capacity perception object.
First, assign the current stomach capacity to MISSING
.
Definition at line 1858 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_stomach_get_avail_capacity | ( | class(percept_stomach), intent(in) | this | ) |
Get the currently available value of the available stomach volume.
Definition at line 1868 of file m_neuro.f90.
subroutine the_neurobio::percept_stomach_update_avail_capacity | ( | class(percept_stomach), intent(inout) | this, |
real(srp), intent(in) | current_volume | ||
) |
Set and update the currently available value of the available stomach volume.
[in] | current_volume | current_volume the new (updated) current volume of the stomach capacity. |
Definition at line 1882 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_stomach_destroy_deallocate | ( | class(percept_stomach), intent(inout) | this | ) |
Destroy the stomach perception object and deallocate it.
Set the current value to commondata::missing.
Definition at line 1896 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_bodymass_create_init | ( | class(percept_body_mass), intent(inout) | this | ) |
Initiate an empty body mass perception object.
Assign the current body mass to commondata::missing
.
Definition at line 1910 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_bodymass_get_current | ( | class(percept_body_mass), intent(in) | this | ) |
Get the current value of the body mass perception.
Definition at line 1920 of file m_neuro.f90.
subroutine the_neurobio::percept_bodymass_update_current | ( | class(percept_body_mass), intent(inout) | this, |
real(srp), intent(in) | current | ||
) |
Set and update the current body mass perception value.
[in] | current | current the new (updated) current volume of the stomach capacity. |
Definition at line 1933 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_bodymass_destroy_deallocate | ( | class(percept_body_mass), intent(inout) | this | ) |
Destroy the body mass perception object and deallocate.
Set the current value to commondata::missing.
Definition at line 1947 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_energy_create_init | ( | class(percept_energy), intent(inout) | this | ) |
Initiate an empty energy perception object.
Assign the current energy to commondata::missing.
Definition at line 1961 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_energy_get_current | ( | class(percept_energy), intent(in) | this | ) |
Get the current value of the energy reserves.
Definition at line 1971 of file m_neuro.f90.
subroutine the_neurobio::percept_energy_update_current | ( | class(percept_energy), intent(inout) | this, |
real(srp), intent(in) | current | ||
) |
Set and update the current energy perception value.
[in] | current | current the new (updated) current energy reserves. |
Definition at line 1984 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_energy_destroy_deallocate | ( | class(percept_energy), intent(inout) | this | ) |
Destroy the energy perception object and deallocate.
Definition at line 1997 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_age_create_init | ( | class(percept_age), intent(inout) | this | ) |
Initiate an empty age perception object.
Assign the current age to commondata::unknown.
Definition at line 2011 of file m_neuro.f90.
elemental integer function the_neurobio::percept_age_get_current | ( | class(percept_age), intent(in) | this | ) |
Get the current value of the age reserves.
Definition at line 2021 of file m_neuro.f90.
subroutine the_neurobio::percept_age_update_current | ( | class(percept_age), intent(inout) | this, |
integer, intent(in) | current | ||
) |
Set and update the current age perception value.
[in] | current | current the new (updated) current age. |
Definition at line 2034 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_age_destroy_deallocate | ( | class(percept_age), intent(inout) | this | ) |
Destroy the age perception object and deallocate it.
Set the current value to commondata::unknown.
Definition at line 2047 of file m_neuro.f90.
subroutine the_neurobio::spatial_percept_set_cid | ( | class(spatial_percept_component), intent(inout) | this, |
integer, intent(in), optional | id | ||
) |
Set unique id for the conspecific perception component.
[in] | id | iid optional individual id number for the food item. |
HUGE_ID is a local parameter, the maximum unique id ever possible.
Check if conspecific cid is provided and if not, set random within the huge range.
Definition at line 2061 of file m_neuro.f90.
elemental integer function the_neurobio::spatial_percept_get_cid | ( | class(spatial_percept_component), intent(in) | this | ) |
Get the unique id of the food item object.
Definition at line 2083 of file m_neuro.f90.
elemental subroutine the_neurobio::consp_percept_comp_create | ( | class(conspec_percept_comp), intent(inout) | this | ) |
Create a single conspecific perception component at an undefined position with default properties.
We here just set an undefined location of the food object using standard interface function missing
.
Set cid to UNKNOWN.
Then we set the conspecific size. Should it be MISSING or grand average? thisconsp_body_size = MISSING
Set the conspecific mass. The default mass of the conspecific is twice the minimum body mass. There is no upper limit on the body mass.
Init distance towards the conspecific, now with MISSING value.
Init the sex is male by default, it is arbitrary.
Definition at line 2100 of file m_neuro.f90.
subroutine the_neurobio::consp_percept_make | ( | class(conspec_percept_comp), intent(inout) | this, |
type(spatial), intent(in) | location, | ||
real(srp), intent(in), optional | size, | ||
real(srp), intent(in), optional | mass, | ||
real(srp), intent(in), optional | dist, | ||
integer, intent(in), optional | cid, | ||
logical, intent(in), optional | is_male | ||
) |
Make a single conspecific perception component. This is a single conspecific located within the visual range of the agent.
[in] | location | Location of the conspecific perception component, as a SPATIAL type container |
[in] | size | size This is the optional conspecific body size as guessed by the agent. May or may not reflect the "true" size of the conspecific. |
[in] | mass | mass This is the optional conspecific body mass as guessed by the agent. May or may not reflect the "true" mass of the conspecific. |
[in] | dist | dist The distance towards this conspecific. |
[in] | cid | iid Optional cid for the conspecific perception component. If not provided, set random. |
[in] | is_male | is_male Optional flag that sex is male. |
We here just set the location of the food object using standard interface function position
.
If individual id is provided, set it. If not, set random.
Then we set the conspecific perception component body size. Check if optional size is provided and left untouched if not.
Then we set the conspecific perception component body mass. Check if optional size is provided and left untouched if not.
Also set the distance towards the conspecific if provided. If not provided, ignore.
Definition at line 2134 of file m_neuro.f90.
elemental real(srp) function the_neurobio::consp_percept_get_size | ( | class(conspec_percept_comp), intent(in) | this | ) |
Get the conspecific perception component body size.
Definition at line 2199 of file m_neuro.f90.
elemental real(srp) function the_neurobio::consp_percept_get_mass | ( | class(conspec_percept_comp), intent(in) | this | ) |
Get the conspecific perception component body mass.
Definition at line 2209 of file m_neuro.f90.
elemental real(srp) function the_neurobio::consp_percept_get_dist | ( | class(conspec_percept_comp), intent(in) | this | ) |
Get the conspecific perception component distance.
Definition at line 2220 of file m_neuro.f90.
elemental logical function the_neurobio::consp_percept_sex_is_male_get | ( | class(conspec_percept_comp), intent(in) | this | ) |
Get the conspecific perception component sex flag (male).
Definition at line 2231 of file m_neuro.f90.
elemental logical function the_neurobio::consp_percept_sex_is_female_get | ( | class(conspec_percept_comp), intent(in) | this | ) |
Get the conspecific perception component sex flag (female).
Definition at line 2241 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_consp_create_init | ( | class(percept_conspecifics), intent(inout) | this, |
integer, intent(in) | maximum_number_conspecifics | ||
) |
Create conspecifics perception object, it is an array of conspecific perception components.
[in] | maximum_number_conspecifics | maximum_number_conspecifics The maximum number of conspecifics in the conspecifics perception object. Normally equal to the partial conspecific selection indexing order CONSP_SELECT_ITEMS_INDEX_PARTIAL . |
Allocate the array of the conspecific perception components
And create all perception components (create is elemental
).
Set the initial number of conspecifics within the visual range to the maximum number provided.
Definition at line 2256 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_consp_number_seen | ( | class(percept_conspecifics), intent(inout) | this, |
integer, intent(in) | number_set | ||
) |
Set the total number of conspecifics perceived (seen) in the conspecific perception object. But do not reallocate the conspecific perception components so far.
[in] | number_set | number_set Set the number of conspecifics in the perception object. |
Definition at line 2283 of file m_neuro.f90.
pure subroutine the_neurobio::percept_consp_make_fill_arrays | ( | class(percept_conspecifics), intent(inout) | this, |
type(conspec_percept_comp), dimension(:), intent(in) | consps | ||
) |
Make the conspecifics perception object, fill it with the actual arrays.
init
method. [in] | consps | consps an array of conspecific perception components that form the perception object. |
PROCNAME is the procedure name for logging and debugging (with MODNAME).
Fill the dynamic conspecific perception object with the data from the input array.
Definition at line 2297 of file m_neuro.f90.
elemental integer function the_neurobio::percept_consp_get_count_seen | ( | class(percept_conspecifics), intent(in) | this | ) |
Get the number (count) of conspecifics seen. Trivial.
Definition at line 2316 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_consp_destroy_deallocate | ( | class(percept_conspecifics), intent(inout) | this | ) |
Deallocate and delete a conspecific perception object.
Definition at line 2326 of file m_neuro.f90.
subroutine the_neurobio::consp_perception_get_visrange_objects | ( | class(perception), intent(inout) | this, |
class(condition), dimension(:), intent(in) | consp_agents, | ||
integer, intent(in), optional | time_step_model | ||
) |
Get available conspecific perception objects within the visual range of the agent, which the agent can perceive and therefore respond to.
All these procedures were actually implemented using the first (the_neurobio::perception::see_food) as a template. All three implement partial indexing of the nearest spatial objects to accelerate computation of large arrays of spatial objects.
[in] | consp_agents | consp_agents An array of spatial objects where we are looking for the nearest available perception objects (array). |
[in] | time_step_model | time_step_model The current time step of the model. |
consp_masses - local array for the body masses of the agents.
commondata::zero
, or we can allow a higher discrepancy (this also might correct some errors).commondata::consp_select_items_index_partial
elements, but only the first sobjects_n_visrange
elements of it are actually within the visual range.consp_sizes
and consp_alive
must have identical sizes.sobjects_percept_in_visrange
for output that are within he visual range of the agent.Initialise index and rank values. Uninitialised index arrays may result in invalid memory reference in ARRAY_INDEX
(it is not safe by design).
Also zero-init self index.
Check optional time step parameter. If unset, use global commondata::global_time_step_model_current
.
Set the size for all the internal arrays, that is equal to the consp_agents
objects array size.
Copy conspecifics array from the input consp_agents
class into agents_near
.
Get local arrays for the conspecific sizes, alive status and sex using elemental array-based accessor functions.
First, we get, up to the maximum order (fast partial indexing) of commondata::consp_select_items_index_partial
, neighbouring conspecifics that are in proximity of this agent. here we get partial index vector for the input array of objects: dist_index
. The calculation backend is the_environment::spatial::neighbours().
Second, we select only those items within this set, which are within the visual range of the agent under the current conditions. To do this we, first, calculate the ambient illumination/irradiance level at the depth of the agent. Done using the the_environment::spatial::illumination() procedure.
Compute the array of "prey areas" for each conspecific.
Compute the vector of the visual ranges for detecting each of the conspecifics by the agent.
Now we can get the pre-output array sobjects_percept_in_visrange
that contains the conspecifics available within the visual range of the agent. Also, we count their number for the output parameter sobjects_n_visrange
.
Include only agents non identical to oneself. TODO: Use individual ID, but have to pass as an additional dummy parameter.
Include only alive agents.
Index of itself, will exclude from min. values.
Here we also log warning if no conspecifics found, when debugging. If the self index self_idx is non-zero, will output next from self value, usually 2.
Finally, we can now create the output conspecific perception object, including only conspecifics that are within the current visual range of the agent. Init (create and allocate) the conspecific perception object, at first empty, using the food perception object (at first empty) using the the_neurobio::percept_conspecifics::init().
Fill the output perception object with the values obtained at the step 3. This is done using the the_neurobio::percept_conspecifics::make() backend procedure.
Definition at line 2347 of file m_neuro.f90.
elemental logical function the_neurobio::consp_perception_is_seeing_conspecifics | ( | class(perception), intent(in) | this | ) |
Check if the agent sees any conspecifics within the visual range.
see_consp
method as it is only an accessor get-function. Definition at line 2614 of file m_neuro.f90.
elemental subroutine the_neurobio::spatialobj_percept_comp_create | ( | class(spatialobj_percept_comp), intent(inout) | this | ) |
Create a single arbitrary spatial object perception component at an undefined position with default properties.
Just set an undefined location of the object using standard interface function the_environment::spatial::missing()
.
Set cid to commondata::unknown.
Then we set the object size to commondata::missing.
Init distance towards the object, initially also commondata::missing.
Definition at line 2630 of file m_neuro.f90.
subroutine the_neurobio::spatialobj_percept_make | ( | class(spatialobj_percept_comp), intent(inout) | this, |
type(spatial), intent(in) | location, | ||
real(srp), intent(in), optional | size, | ||
real(srp), intent(in), optional | dist, | ||
integer, intent(in), optional | cid | ||
) |
Make a single arbitrary spatial object perception component.
[in] | location | Location of the spatial object perception component, as a the_environment::spatial type container. |
[in] | size | size This is the optional object size. |
[in] | dist | dist The distance towards this object. |
[in] | cid | iid Optional cid for the object, e.g. number within an array. |
Set the location of the object using standard interface function the_envirnoment::spatial::position()
.
If individual id is provided, set it. If not, set random.
Set the object perception component size. Only nonzero size is accepted.
Also set the distance towards the conspecific if provided. If not provided, ignore.
Definition at line 2653 of file m_neuro.f90.
elemental real(srp) function the_neurobio::spatialobj_percept_get_size | ( | class(spatialobj_percept_comp), intent(in) | this | ) |
Get an arbitrary spatial object perception component size.
Definition at line 2696 of file m_neuro.f90.
elemental real(srp) function the_neurobio::spatialobj_percept_get_dist | ( | class(spatialobj_percept_comp), intent(in) | this | ) |
Get the distance to an arbitrary spatial object perception component.
Definition at line 2707 of file m_neuro.f90.
real(srp) function the_neurobio::spatialobj_percept_visibility_visual_range | ( | class(spatialobj_percept_comp), intent(in) | this, |
real(srp), intent(in), optional | object_area, | ||
real(srp), intent(in), optional | contrast, | ||
integer, intent(in), optional | time_step_model | ||
) |
Calculate the visibility range of this spatial object. Wrapper to the visual_range
function. This function calculates the distance from which this object can be seen by a visual object (e.g. predator or prey).
visual_range
procedures use meter for units, this auto-converts to cm. [in] | object_area | object_area is optional area of the spatial object. This parameter can be necessary because the area can be calculated differently for different types of objects, e.g. fish using commondata::length2sidearea_fish() or food items using commondata::carea(). The default object area if the parameter is absent, uses the fish backend. |
[in] | contrast | contrast is an optional inherent visual contrast of the spatial object. The default contrast of all objects is defined by the commondata::preycontrast_default parameter. |
[in] | time_step_model | optional time step of the model, if absent gets the current time step as defined by the value of commondata::global_time_step_model_current . |
Check optional contrast
parameter. If unset, use global commondata::preycontrast_default
.
Check optional time step parameter. If unset, use global commondata::global_time_step_model_current
.
Second, check if the object area (object_area
) parameter is provided. If not, calculate area from the sobj_size
component assuming it is a fish. This is logical because the_neurobio::spatialobj_percept_comp class is mainly used in the perception of conspecifics and predators.
Calculate ambient illumination / irradiance at the depth of this object at the given time step.
Return visual range to see this spatial object: its visibility range.
Definition at line 2727 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_predator_create_init | ( | class(percept_predator), intent(inout) | this, |
integer, intent(in) | maximum_number_predators | ||
) |
Create predator perception object, it is an array of spatial perception components.
[in] | maximum_number_predators | maximum_number_predators The maximum number of predators in the perception object. Normally equal to the partial predator selection indexing order PREDATOR_SELECT_ITEMS_INDEX_PARTIAL . |
Allocate the array of the predator's spatial perception components.
Allocate the array of the predator attack rates.
And create all perception components (create is elemental
).
Fill the predator's attack rates arrays with commondata::missing values.
Set the initial number of predators within the visual range to the maximum number provided.
Definition at line 2799 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_predator_number_seen | ( | class(percept_predator), intent(inout) | this, |
integer, intent(in) | number_set | ||
) |
Set the total number of predators perceived (seen) in the predator perception object. But do not reallocate the predator perception components so far.
[in] | number_set | number_set Set the number of predators in the perception object. |
Definition at line 2834 of file m_neuro.f90.
pure subroutine the_neurobio::percept_predator_make_fill_arrays | ( | class(percept_predator), intent(inout) | this, |
type(spatialobj_percept_comp), dimension(:), intent(in) | preds, | ||
real(srp), dimension(:), intent(in), optional | attack_rate | ||
) |
Make the predator perception object, fill it with the actual arrays.
the_neurobio::percept_predator::init()
method. [in] | preds | preds an array of predator (spatial, the_neurobio::spatialobj_percept_comp ) perception components that form the perception object. |
Fill the dynamic conspecific perception object with the data from the input array.
The arrays for the body sizes and attack rates of the predators are set only if these arrays are present in the dummy arguments to this procedure. If they are not provided, default values are used as defined by commondata::predator_attack_rate_default parameter.
Definition at line 2849 of file m_neuro.f90.
pure subroutine the_neurobio::percept_predator_set_attack_rate_vector | ( | class(percept_predator), intent(inout) | this, |
real(srp), dimension(:), intent(in) | attack_rate | ||
) |
Set an array of the attack rates for the predator perception object.
Definition at line 2881 of file m_neuro.f90.
pure subroutine the_neurobio::percept_predator_set_attack_rate_scalar | ( | class(percept_predator), intent(inout) | this, |
real(srp), intent(in) | attack_rate | ||
) |
Set an array of the attack rates for the predator perception object.
Definition at line 2892 of file m_neuro.f90.
elemental integer function the_neurobio::percept_predator_get_count_seen | ( | class(percept_predator), intent(in) | this | ) |
Get the number (count) of predators seen. Trivial.
Definition at line 2903 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_predator_destroy_deallocate | ( | class(percept_predator), intent(inout) | this | ) |
Deallocate and delete a predator perception object.
Definition at line 2913 of file m_neuro.f90.
subroutine the_neurobio::predator_perception_get_visrange_objects | ( | class(perception), intent(inout) | this, |
class(predator), dimension(:), intent(in) | spatl_agents, | ||
integer, intent(in), optional | time_step_model | ||
) |
Get available predators perception objects within the visual range of the agent, which the agent can perceive and therefore respond to.
All these procedures were actually implemented using the first (the_neurobio::perception::see_food) as a template. All three implement partial indexing of the nearest spatial objects to accelerate computation of large arrays of spatial objects.
[in] | spatl_agents | spatl_agents An array of spatial objects where we are looking for the nearest available perception objects (array). |
[in] | time_step_model | time_step_model The current time step of the model. |
commondata::zero
, or one can allow a higher discrepancy (this also might correct some errors).agents_near - temporary array of predators in proximity to this agent.
commondata::pred_select_items_index_partial
elements, but only the first sobjects_n_visrange
elements of it are actually within the visual range.commondata::pred_select_items_index_partial
elements, but only the first sobjects_n_visrange
elements of it are actually within the visual range.spatl_sizes
must have identical size.food_items_percept_in_visrange
for output that are within he visual range of the agent.Initialise index and rank values. Uninitialised index arrays may result in invalid memory reference in ARRAY_INDEX
(it is not safe by design).
Check optional time step parameter. If unset, use global commondata::global_time_step_model_current
.
This is the maximum size of the index. If the number of spatial objects is huge, we use partial indexing of the neighbours array. Then it is equal to the partial indexing commondata::pred_select_items_index_partial
. However, if the number of potential neighbouring objects is smaller than the partial index size, we use full indexing. In the later case index_max_size
is equal to the actual size of the neighbouring objects array.
commondata::pred_select_items_index_partial
. However, the number of predators can be smaller than this.Copy predators array from the input spatl_agents
class into agents_near
.
Get an array of the body sizes of the predators using array-based elemental function (This now works ok in Intel Fortran 17).
Get an array of the attack rates of the predators using array-based elemental function.
First, we get, up to the maximum order (fast partial indexing) of commondata::pred_select_items_index_partial
, neighbouring predators that are in proximity of this agent. here we get partial index vector for the input array of objects: dist_index
. Partial indexing is the most typical case as we have normally quite large number of agents within the population and food items within the habitat. However, this might be important for predators. Predators can be quite infrequent within the habitat, their number can be smaller than the maximum indexing parameter commondata::pred_select_items_index_partial
. Hence the check is much more important here than in similar procedures for food items and conspecifics. The neighbours are computed using the the_environment::spatial::neighbours() procedure.
Here we check if the number of neighbouring agents is smaller than the partial indexing parameter commondata::pred_select_items_index_partial and if yes, do full indexing.
However, if the number of potential neighbouring objects is big, do partial indexing.
Second, we select only those items within this set, which are within the visual range of the agent under the current conditions. To do this we, first, calculate the ambient illumination/irradiance level at the depth of the agent. Done using the the_environment::spatial::illumination() procedure.
Compute the array of "prey areas" for each conspecific. So far prey_contrast
is not set, use default value commondata::individual_visual_contrast_default
.
Compute the vector of the visual ranges for detecting each of the predators by the agent.
Now we can get the pre-output array sobjects_percept_in_visrange
that contains the predators available within the visual range of the agent. Also, we count their number for the output parameter sobjects_n_visrange
.
The inherent attack rates of each of the predators within the visual range is also collected here into the pred_attack_rates_in_visrange
array.
Here we also log warning if no objects found, when debugging. (see commondata::is_debug).
Finally, we can now create the output conspecific perception object, including only predators that are within the current visual range of the agent. Init (create and allocate) the predator perception object, at first empty, with the_neurobio::percept_predator::init().
Fill the output perception object with the values obtained at the step 3 using the the_neurobio::percept_predator::make() method.
Note that if the commondata::agent_can_assess_predator_attack_rate parameter is set to TRUE, the agents can access and assess the inherent attack rate of the predator. This can be for example possible if the agent can assess the hunger level of the predator. The attack rate is then set from the array of the inherent attack rates of the predators pred_attack_rates_in_visrange
. May need to add a predator perception error to this value, but it is not implemented yet.
Note that if the commondata::agent_can_assess_predator_attack_rate parameter is set to FALSE, the agents cannot access the inherent attack rate of the predator. The attack rate is then fixed from the default parameter commondata::predator_attack_rate_default value.
Definition at line 2937 of file m_neuro.f90.
elemental logical function the_neurobio::predator_perception_is_seeing_predators | ( | class(perception), intent(in) | this | ) |
Check if the agent sees any predators within the visual range.
the_neurobio::perception::see_food()
method as it is just an accessor function. Definition at line 3226 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_light_create_init | ( | class(percept_light), intent(inout) | this | ) |
Make en empty light perception component. Really necessary only when perception objects are all allocatable.
Definition at line 3243 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_light_get_current | ( | class(percept_light), intent(in) | this | ) |
Get the current perception of the illumination.
Definition at line 3252 of file m_neuro.f90.
subroutine the_neurobio::percept_light_set_current | ( | class(percept_light), intent(inout) | this, |
integer, intent(in) | timestep, | ||
real(srp), intent(in) | depth | ||
) |
Set the current light level into the perception component.
Here we, calculate the ambient illumination/irradiance level at the current depth of the agent.
is_stochastic
logical parameter is TRUE in light_surface
, that sets a stochastic illumination level at the surface and therefore also at the agent's current depth.Definition at line 3262 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_light_destroy_deallocate | ( | class(percept_light), intent(inout) | this | ) |
Destroy / deallocate light perception component. Really necessary only when perception objects are all allocatable.
Definition at line 3283 of file m_neuro.f90.
subroutine the_neurobio::light_perception_get_object | ( | class(perception), intent(inout) | this, |
integer, intent(in), optional | time_step_model | ||
) |
Get light perception objects into the individual PERCEPTION object layer.
[in] | time_step_model | time_step_model The current time step of the model. |
Local copy of the time step of the model.
Check optional time step parameter. If unset, use global commondata::global_time_step_model_current
.
Allocate and init the perception object (needed only when it is allocatable)
Definition at line 3293 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_depth_create_init | ( | class(percept_depth), intent(inout) | this | ) |
Make en empty depth perception component. Really necessary only when perception objects are all allocatable.
Definition at line 3325 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_depth_get_current | ( | class(percept_depth), intent(in) | this | ) |
Get the current perception of the depth.
Definition at line 3334 of file m_neuro.f90.
subroutine the_neurobio::percept_depth_set_current | ( | class(percept_depth), intent(inout) | this, |
real(srp), intent(in) | cdepth | ||
) |
Set the current depth level into the perception component.
Definition at line 3344 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_depth_destroy_deallocate | ( | class(percept_depth), intent(inout) | this | ) |
Destroy / deallocate depth perception component. Really necessary only when perception objects are all allocatable.
Definition at line 3355 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_reprfac_create_init | ( | class(percept_reprfact), intent(inout) | this | ) |
Make en empty reproductive factor perception component. Really necessary only when perception objects are all allocatable.
Definition at line 3369 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_reprfac_get_current | ( | class(percept_reprfact), intent(in) | this | ) |
Get the current perception of the reproductive factor.
Definition at line 3378 of file m_neuro.f90.
subroutine the_neurobio::percept_reprfac_set_current | ( | class(percept_reprfact), intent(inout) | this, |
real(srp), intent(in) | reprfac | ||
) |
Set the current reproductive factor level into perception component.
Definition at line 3388 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_reprfac_destroy_deallocate | ( | class(percept_reprfact), intent(inout) | this | ) |
Destroy / deallocate reproductive factor perception component. Really necessary only when perception objects are all allocatable.
Definition at line 3399 of file m_neuro.f90.
subroutine the_neurobio::depth_perception_get_object | ( | class(perception), intent(inout) | this | ) |
Get depth perception objects into the individual PERCEPTION object layer.
Allocate and init the perception object (needed only when it is allocatable)
Definition at line 3413 of file m_neuro.f90.
subroutine the_neurobio::stomach_perception_get_object | ( | class(perception), intent(inout) | this | ) |
Get the stomach capacity perception objects into the individual PERCEPTION object layer.
Allocate and init the perception object (needed only when it is allocatable)
Calculate the available stomach capacity, i.e. maximum stomach mass minus current stomach content, and set the value into the stomach perception object. Body mass and maxstomcap are from the CONDITION
layer.
Definition at line 3427 of file m_neuro.f90.
subroutine the_neurobio::bodymass_perception_get_object | ( | class(perception), intent(inout) | this | ) |
Get the body mass perception objects into the individual PERCEPTION object layer.
Allocate and init the perception object (needed only when it is allocatable)
Get the body mass from the individual, put it to the perception object.
Definition at line 3446 of file m_neuro.f90.
subroutine the_neurobio::energy_perception_get_object | ( | class(perception), intent(inout) | this | ) |
Get the energy reserves perception objects into the individual PERCEPTION object layer.
Allocate and init the perception object (needed only when it is allocatable)
Get the energy reserves from the individual, put it to the perception object.
Definition at line 3461 of file m_neuro.f90.
subroutine the_neurobio::age_perception_get_object | ( | class(perception), intent(inout) | this | ) |
Get the age perception objects into the individual PERCEPTION object layer.
Allocate and init the perception object (needed only when it is allocatable).
Get the age from the individual, put it to the perception object.
Definition at line 3477 of file m_neuro.f90.
subroutine the_neurobio::repfac_perception_get_object | ( | class(perception), intent(inout) | this | ) |
Get the reproductive factor perception objects into the individual PERCEPTION object layer.
Allocate and init the perception object (needed only when it is allocatable).
Get the the_hormones::hormones::reproductive_factor() from the individual, put it to the perception object.
Definition at line 3493 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_memory_add_to_stack | ( | class(memory_perceptual), intent(inout) | this, |
real(srp), intent(in) | light, | ||
real(srp), intent(in) | depth, | ||
real(srp), intent(in) | food, | ||
real(srp), intent(in) | foodsize, | ||
real(srp), intent(in) | fooddist, | ||
integer, intent(in) | consp, | ||
integer, intent(in) | pred, | ||
real(srp), intent(in) | stom, | ||
real(srp), intent(in) | bdmass, | ||
real(srp), intent(in) | energ, | ||
real(srp), intent(in) | reprfac | ||
) |
Add perception components into the memory stack.
[in] | light | The parameters of the subroutine are the actual values that are added to the perceptual memory stack arrays. |
Each of the memory stack components corresponds to the respective dummy parameter. So arrays are updated at each step.
Definition at line 3513 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_memory_cleanup_stack | ( | class(memory_perceptual), intent(inout) | this | ) |
Cleanup and destroy the perceptual memory stack.
cleanup procedure uses whole array assignment.
Definition at line 3550 of file m_neuro.f90.
elemental integer function the_neurobio::percept_memory_food_get_total | ( | class(memory_perceptual), intent(in) | this | ) |
Get the total number of food items within the whole perceptual memory stack.
Calculate the overall sum excluding missing values (masked).
Definition at line 3572 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_memory_food_get_mean_n | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average number of food items per single time step within the whole perceptual memory stack.
[in] | last | last Limit to only this number of latest components in history. |
Local copy of optional last
Check if we are given the parameter requesting the latest history size. if parameter last
absent or bigger than the array size, get whole stack array.
Calculate the average excluding missing values (masked) using commondata::average().
Definition at line 3595 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_memory_food_mean_n_split | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | window, | ||
integer, intent(in), optional | split_val, | ||
real(srp), intent(out) | older, | ||
real(srp), intent(out) | newer | ||
) |
Get the average number of food items per single time step within the perceptual memory stack, split to the first (older) and second (newer) parts. The whole memory stack ('sample') is split by the split_val
parameter and two means are calculated: before the split_val
and after it.
[in] | window | window is the whole memory window which is analysed, if not present, the whole memory stack is used. |
[in] | split_val | split_val is the split value for the separation of the older and newer averages. If not present, just splits the memory window evenly in two halves. |
[out] | older | older is the output average number of the food items in the first (older) part of the memory window. |
[out] | newer | newer is the output average number of the food items in the second (newer) part of the memory window. |
First, check optional parameters: the memory window window
and the split value split_val
. If either is not provided, defaults are used.
(Also, a check is made so that a window exceeding the history stack length is reduced accordingly to the whole memory size).
split_val
.A sanity check is also done, if the split value happen to exceed the window
parameter, it is reduced to the default 1/2 of the window
.
Second, the older
and the newer
output average values are calculated. Here is the illustration of the calculation:
Such 'window' and 'split_val' values... |<----- window ----->| +--------+--------------------+ + | :|: + +--------+--------------------+ ^ split_val ... result in these means: +--------+---------------------+ + | mean for | mean for + + | 'older' | 'newer' + +--------+---------------------+
Definition at line 3648 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_memory_food_get_mean_size | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average size of food item per single time step within the whole perceptual memory stack.
[in] | last | last Limit to only this number of latest components in history. |
Local copy of optional last
Check if we are given the parameter requesting the latest history size. if parameter last
absent or bigger than the array size, get whole stack array.
Calculate the average excluding missing values (masked) using commondata::average().
Definition at line 3739 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_memory_food_mean_size_split | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | window, | ||
integer, intent(in), optional | split_val, | ||
real(srp), intent(out) | older, | ||
real(srp), intent(out) | newer | ||
) |
Get the average size of food items per single time step within the perceptual memory stack, split to the first (older) and second(newer) parts. The whole memory stack 'sample' is split by the split_val
parameter and two means are calculated: before the split_val
and after it.
[in] | window | window is the whole memory window which is analysed, if not present, the whole memory stack is used. |
[in] | split_val | split_val is the split value for the separation of the older and newer averages. If not present, just splits the memory window evenly in two halves. |
[out] | older | older is the output average sizes of the food items in the first (older) part of the memory window. |
[out] | newer | newer is the output average sizes of the food items in the second (newer) part of the memory window. |
First, check optional parameters: the memory window window
and the split value split_val
. If either is not provided, defaults are used.
(Also, a check is made so that a window exceeding the history stack length is reduced accordingly to the whole memory size).
split_val
.A sanity check is also done, if the split value happen to exceed the window
parameter, it is reduced to the default 1/2 of the window
.
Second, the older
and the newer
output average values are calculated. Here is the illustration of the calculation:
Such 'window' and 'split_val' values... |<----- window ----->| +--------+--------------------+ + | :|: + +--------+--------------------+ ^ split_val ... result in these means: +--------+---------------------+ + | mean for | mean for + + | 'older' | 'newer' + +--------+---------------------+
Definition at line 3792 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_memory_food_get_mean_dist | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | last, | ||
logical, intent(in), optional | undef_ret_null | ||
) |
Get the average distance to food item per single time step within the whole perceptual memory stack.
[in] | last | last Limit to only this number of latest components in history. |
[in] | undef_ret_null | undef_ret_null Optional flag if undefined value with sample size should return zero mean value; if absent is set to TRUE and zero mean is returned. Note that this behaviour is the opposite of the standard commondata::average(). It is because this function is mainly for perception memory, where zero value is appropriate in absence of any food items. |
Local copies of optionals
Check if we are given the parameter requesting the latest history size. if parameter last
absent or bigger than the array size, get whole stack array.
Calculate the average excluding missing values (masked) using commondata::average().
Definition at line 3883 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_memory_food_mean_dist_split | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | window, | ||
integer, intent(in), optional | split_val, | ||
real(srp), intent(out) | older, | ||
real(srp), intent(out) | newer | ||
) |
Get the average distance to food items per single time step within the perceptual memory stack, split to the first (older) and second(newer) parts. The whole memory stack 'sample' is split by the split_val
parameter and two means are calculated: before the split_val
and after it.
[in] | window | window is the whole memory window which is analysed, if not present, the whole memory stack is used. |
[in] | split_val | split_val is the split value for the separation of the older and newer averages. If not present, just splits the memory window evenly in two halves. |
[out] | older | older is the output average distance to the food items in the first (older) part of the memory window. |
[out] | newer | newer is the output average distance to the food items in the second (newer) part of the memory window. |
First, check optional parameters: the memory window window
and the split value split_val
. If either is not provided, defaults are used.
(Also, a check is made so that a window exceeding the history stack length is reduced accordingly to the whole memory size).
split_val
.A sanity check is also done, if the split value happen to exceed the window
parameter, it is reduced to the default 1/2 of the window
.
Second, the older
and the newer
output average values are calculated. Here is the illustration of the calculation:
Such 'window' and 'split_val' values... |<----- window ----->| +--------+--------------------+ + | :|: + +--------+--------------------+ ^ split_val ... result in these means: +--------+---------------------+ + | mean for | mean for + + | 'older' | 'newer' + +--------+---------------------+
Definition at line 3948 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_memory_consp_get_mean_n | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average number of conspecifics per single time step within the whole perceptual memory stack.
[in] | last | last Limit to only this number of latest components in history. |
Local copy of optional last
Check if we are given the parameter requesting the latest history size. if parameter last
absent or bigger than the array size, get whole stack array.
Calculate the average excluding missing values (masked) using commondata::average().
Definition at line 4030 of file m_neuro.f90.
elemental integer function the_neurobio::percept_memory_predators_get_total | ( | class(memory_perceptual), intent(in) | this | ) |
Get the total number of predators within the whole perceptual memory stack.
Calculate the overall sum excluding missing values (masked).
Definition at line 4070 of file m_neuro.f90.
elemental real(srp) function the_neurobio::percept_memory_predators_get_mean | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average number of predators per single time step within the whole perceptual memory stack.
[in] | last | last Limit to only this number of latest components in the history. |
Local copy of optional last
History stack size. We determine it from the size of the actual array rather than HISTORY_SIZE_PERCEPTION
for further safety.
Check if we are given the parameter requesting the latest history size. if parameter last
absent or bigger than the array size, get whole stack array.
Calculate the average excluding missing values (masked).
Definition at line 4093 of file m_neuro.f90.
elemental subroutine the_neurobio::percept_memory_predators_mean_split | ( | class(memory_perceptual), intent(in) | this, |
integer, intent(in), optional | window, | ||
integer, intent(in), optional | split_val, | ||
real(srp), intent(out) | older, | ||
real(srp), intent(out) | newer | ||
) |
Get the average number of predators per single time step within the perceptual memory stack, split to the first (older) and second(newer) parts. The whole memory stack ('sample') is split by the split_val
parameter and two means are calculated: before the split_val
and after it.
[in] | window | window is the whole memory window which is analysed, if not present, the whole memory stack is used. |
[in] | split_val | split_val is the split value for the separation of the older and newer averages. If not present, just splits the memory window evenly in two halves. |
[out] | older | older is the output average number of predators in the first (older) part of the memory window. |
[out] | newer | newer is the output average number of predators in the second (newer) part of the memory window. |
First, check optional parameters: the memory window window
and the split value split_val
. If either is not provided, defaults are used.
(Also, a check is made so that a window exceeding the history stack length is reduced accordingly to the whole memory size).
split_val
.A sanity check is also done, if the split value happen to exceed the window
parameter, it is reduced to the default 1/2 of the window
.
Second, the older
and the newer
output average values are calculated. Here is the illustration of the calculation:
Such 'window' and 'split_val' values... |<----- window ----->| +--------+--------------------+ + | :|: + +--------+--------------------+ ^ split_val ... result in these means: +--------+---------------------+ + | mean for | mean for + + | 'older' | 'newer' + +--------+---------------------+
Definition at line 4145 of file m_neuro.f90.
elemental subroutine the_neurobio::perception_objects_add_memory_stack | ( | class(perception), intent(inout) | this | ) |
Add the various perception objects to the memory stack object. This procedure is called after all the perceptual components (light, depth food, conspecifics, predators, etc.) are collected (using set
object-bound subroutines) into the perception bundle, so all the values are known and ready to be used.
Now collect all perception variables into the whole memory stack object.
Definition at line 4230 of file m_neuro.f90.
subroutine the_neurobio::perception_objects_get_all_environmental | ( | class(perception), intent(inout) | this | ) |
A single umbrella subroutine to get all environmental perceptions: light, depth. This procedure invokes these calls:
See also the_neurobio::perception::perceptions_inner().
Definition at line 4260 of file m_neuro.f90.
subroutine the_neurobio::perception_objects_get_all_inner | ( | class(perception), intent(inout) | this | ) |
A single umbrella subroutine wrapper to get all inner perceptions: stomach, body mass, energy, age. Invokes all these procedures:
See also the_neurobio::perception::perceptions_environ().
Splitting between the procedures for getting the inner and outer perceptions is for convenience only, this inner perceptions subroutine has no other parameters.
`call proto_parentsindividual(ind)see_consp( & consp_agents = proto_parentsindividual, & time_step_model = 1 )`
`call proto_parentsindividual(ind)see_pred( & spatl_agents = predators, & time_step_model = 1 )
call proto_parentsindividual(ind)feel_light(timestep)
call proto_parentsindividual(ind)feel_depth()`
Definition at line 4299 of file m_neuro.f90.
|
private |
Initialise all the perception objects for the current agent. Do not fill perception objects with the real data yet.
Init all perception objects within the agent.
Init and cleanup perceptual memory stack at start.
Definition at line 4313 of file m_neuro.f90.
elemental subroutine the_neurobio::perception_objects_destroy | ( | class(perception), intent(inout) | this, |
logical, intent(in), optional | clean_memory | ||
) |
Destroy and deallocate all perception objects.
[in] | clean_memory | clean_memory Logical flag to cleanup perceptual memory stack. |
Use the destroy
method for all perception objects within the agent.
Init and cleanup perceptual memory stack if clean_memory is set to TRUE.
Definition at line 4335 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_predation_risk_objective | ( | class(perception), intent(in) | this | ) |
Calculate the risk of predation as being perceived / assessed by this agent.
PERCEPTION
(which might seem more logical as it is basically the perception of predation risk by the agent) or APPRAISAL
level class. Here it is in the APPRAISAL
because it is actually used here. It may also be safer here as we need completed perception objects and perception memory stack to assess the objective predation risk. WEIGHT_DIRECT is the relative weight given to the immediate perception of predators over the predators counts in the memory stack. Obtained from global parameters (commondata::predation_risk_weight_immediate
).
MEM_WIND is the size of the memory window when assessing the predator risk, only this number of the latest elements from the memory stack is taken into account. So we further weight the direct threat over the background risk when making the decision.
Here we analyse the predator perception object and memory stack to get the predation risk perception value, that will be fed into the sigmoid function via neuro_resp
at the next step. Perception of the predation risk is the weighted sum of the total number of predators in the memory stack and the current count of predators within the visual range of the agent. The actual calculatio is done by the comon backend that is used for objective and subjective assessment of risk: the_neurobio::predation_risk_backend().
Definition at line 4372 of file m_neuro.f90.
elemental real(srp) function the_neurobio::predation_risk_backend | ( | integer, intent(in) | pred_count, |
real(srp), intent(in) | pred_memory_mean, | ||
real(srp), intent(in), optional | weight_direct | ||
) |
Simple computational backend for the risk of predation that is used in objective risk function the_neurobio::perception_predation_risk_objective() and the subjective risk function.
[in] | pred_count | pred_count The number of predators in the current perception object. This is an estimate of the direct risk of predation . |
[in] | pred_memory_mean | pred_memory_mean The mean number of predators in the memory window. The size of the memory window is not set here. It is an estimate of the indirect risk of predation . |
[in] | weight_direct | weight_direct an optional weighting factor for the immediate risk (the number of predators in the current perception object), . If not provided, the default value is set by the commondata::predation_risk_weight_immediate parameter. |
First, check if the optional direct risk weighting factor ) is provided as a dummy parameter. If not provided, use the default value that is set by the commondata::predation_risk_weight_immediate parameter.
Second, calculate the predation risk as a weighted sum of the direct risk (number of immediately perceived predators, ) and indirect risk (average number of predators in the memory, ):
Definition at line 4414 of file m_neuro.f90.
elemental subroutine the_neurobio::perception_components_attention_weights_init | ( | class(percept_components_motiv), intent(inout) | this, |
real(srp), intent(in), optional | all_vals_fix, | ||
logical, intent(in), optional | all_one, | ||
real(srp), intent(in), optional | weight_light, | ||
real(srp), intent(in), optional | weight_depth, | ||
real(srp), intent(in), optional | weight_food_dir, | ||
real(srp), intent(in), optional | weight_food_mem, | ||
real(srp), intent(in), optional | weight_conspec, | ||
real(srp), intent(in), optional | weight_pred_dir, | ||
real(srp), intent(in), optional | weight_predator, | ||
real(srp), intent(in), optional | weight_stomach, | ||
real(srp), intent(in), optional | weight_bodymass, | ||
real(srp), intent(in), optional | weight_energy, | ||
real(srp), intent(in), optional | weight_age, | ||
real(srp), intent(in), optional | weight_reprfac | ||
) |
Initialise the attention components of the emotional state to their default parameter values. Attention sets weights to individual perceptual components when the overall weighted sum is calculated. The default weights are parameters defined in COMMONDATA
.
weight_
parameters are not passed as an array to (a) allow for elemental function, (b) allow disabling attention components at init when weights are not provided = set to zero. all_vals_fix
, all_one
and then weight_
s, i.e. if all_vals_fix
is provided, all other are ignored (see return
in if-present-test blocks). [in] | all_vals_fix | all_vals_fix Optional parameter setting all weights equal to a specific fixed value. |
[in] | all_one | all_one Optional logical parameter setting all weights to 1.0, so the perceptual components go into unchanged form (weight=1) into the weighted sum (overall primary motivation value). |
[in] | weight_light | Optional attention weights for specific perception components. |
[in] | weight_depth | Optional attention weights for specific perception components. |
[in] | weight_food_dir | Optional attention weights for specific perception components. |
[in] | weight_food_mem | Optional attention weights for specific perception components. |
[in] | weight_conspec | Optional attention weights for specific perception components. |
[in] | weight_pred_dir | Optional attention weights for specific perception components. |
[in] | weight_predator | Optional attention weights for specific perception components. |
[in] | weight_stomach | Optional attention weights for specific perception components. |
[in] | weight_bodymass | Optional attention weights for specific perception components. |
[in] | weight_energy | Optional attention weights for specific perception components. |
[in] | weight_age | Optional attention weights for specific perception components. |
[in] | weight_reprfac | Optional attention weights for specific perception components. |
Local copies of the optional parameters.
If all_vals_fix
is set, set all weights to this fixed value.
Return after setting values.
If all_one
is present and set to TRUE, init all attention weights to 1.0
Return after setting values.
Set individual attention weights
If nothing is provided, set attention weights from the dummy parameters of this procedure.
Definition at line 4477 of file m_neuro.f90.
subroutine the_neurobio::perception_components_neuronal_response_init_set | ( | class(percept_components_motiv), intent(inout) | this, |
class(appraisal), intent(inout) | this_agent, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_light, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_depth, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_food_dir, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_food_mem, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_conspec, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_pred_dir, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_predator, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_stomach, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_bodymass, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_energy, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_age, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_reprfac, | ||
real(srp), intent(in), optional | param_gerror_cv_light, | ||
real(srp), intent(in), optional | param_gerror_cv_depth, | ||
real(srp), intent(in), optional | param_gerror_cv_food_dir, | ||
real(srp), intent(in), optional | param_gerror_cv_food_mem, | ||
real(srp), intent(in), optional | param_gerror_cv_conspec, | ||
real(srp), intent(in), optional | param_gerror_cv_pred_dir, | ||
real(srp), intent(in), optional | param_gerror_cv_predator, | ||
real(srp), intent(in), optional | param_gerror_cv_stomach, | ||
real(srp), intent(in), optional | param_gerror_cv_bodymass, | ||
real(srp), intent(in), optional | param_gerror_cv_energy, | ||
real(srp), intent(in), optional | param_gerror_cv_age, | ||
real(srp), intent(in), optional | param_gerror_cv_reprfac, | ||
character(len=*), intent(in), optional | param_gene_label_light, | ||
character(len=*), intent(in), optional | param_gene_label_depth, | ||
character(len=*), intent(in), optional | param_gene_label_food_dir, | ||
character(len=*), intent(in), optional | param_gene_label_food_mem, | ||
character(len=*), intent(in), optional | param_gene_label_conspec, | ||
character(len=*), intent(in), optional | param_gene_label_pred_dir, | ||
character(len=*), intent(in), optional | param_gene_label_predator, | ||
character(len=*), intent(in), optional | param_gene_label_stomach, | ||
character(len=*), intent(in), optional | param_gene_label_bodymass, | ||
character(len=*), intent(in), optional | param_gene_label_energy, | ||
character(len=*), intent(in), optional | param_gene_label_age, | ||
character(len=*), intent(in), optional | param_gene_label_reprfac | ||
) |
Set and calculate individual perceptual components for this motivational state using the neuronal response function, for this_agent.
neuro_resp
, unlike this, the intent [in] procedure perception_components_neuronal_response_calculate
uses inner subroutines. [in,out] | this_agent | [inout] this_agent The actor agent. |
[in] | param_gp_matrix_light | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_depth | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_food_dir | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_food_mem | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_conspec | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_pred_dir | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_predator | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_stomach | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_bodymass | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_energy | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_age | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_reprfac | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gerror_cv_light | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_depth | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_food_dir | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_food_mem | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_conspec | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_pred_dir | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_predator | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_stomach | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_bodymass | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_energy | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_age | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_reprfac | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light |
[in] | param_gerror_cv_depth | coefficient of variation for depth |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gene_label_light | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_depth | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_food_dir | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_food_mem | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_conspec | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_pred_dir | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_predator | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_stomach | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_bodymass | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_energy | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_age | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
[in] | param_gene_label_reprfac | param_gene_label_light label for light; |
[in] | param_gene_label_depth | label for depth; |
[in] | param_gene_label_food_dir | label for direct food; |
[in] | param_gene_label_food_mem | label for number of food items in memory; |
[in] | param_gene_label_conspec | label for number of conspecific; |
[in] | param_gene_label_pred_dir | label for direct predation risk; |
[in] | param_gene_label_predator | label for number of predators; |
[in] | param_gene_label_stomach | label for stomach contents; |
[in] | param_gene_label_bodymass | label for body mass; |
[in] | param_gene_label_energy | label for energy reserves; |
[in] | param_gene_label_age | label for age; |
[in] | param_gene_label_reprfac | label for reproductive factor; |
Local copies of genotype x phenotype boolean matrices.
Local copies of the Gaussian perception error coefficients of variation.
We check input boolean G x P matrices and calculate the perceptual components of this motivation state only when the boolean matrix is provided as a parameter. Also check the corresponding variance/CV and reset to deterministic (variance zero) is not provided as a dummy parameter parameter.
param_g_p_matrix
and param_gerror_cv_light
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
).the_neurobio::appraisal
but does set the label so the_agent
has intent[inout].Definition at line 4668 of file m_neuro.f90.
subroutine the_neurobio::perception_components_neuronal_response_calculate | ( | class(percept_components_motiv), intent(inout) | this, |
class(appraisal), intent(in) | this_agent, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_light, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_depth, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_food_dir, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_food_mem, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_conspec, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_pred_dir, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_predator, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_stomach, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_bodymass, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_energy, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_age, | ||
logical, dimension(max_nalleles,n_chromosomes), intent(in), optional | param_gp_matrix_reprfac, | ||
real(srp), intent(in), optional | param_gerror_cv_light, | ||
real(srp), intent(in), optional | param_gerror_cv_depth, | ||
real(srp), intent(in), optional | param_gerror_cv_food_dir, | ||
real(srp), intent(in), optional | param_gerror_cv_food_mem, | ||
real(srp), intent(in), optional | param_gerror_cv_conspec, | ||
real(srp), intent(in), optional | param_gerror_cv_pred_dir, | ||
real(srp), intent(in), optional | param_gerror_cv_predator, | ||
real(srp), intent(in), optional | param_gerror_cv_stomach, | ||
real(srp), intent(in), optional | param_gerror_cv_bodymass, | ||
real(srp), intent(in), optional | param_gerror_cv_energy, | ||
real(srp), intent(in), optional | param_gerror_cv_age, | ||
real(srp), intent(in), optional | param_gerror_cv_reprfac, | ||
real(srp), intent(in), optional | perception_override_light, | ||
real(srp), intent(in), optional | perception_override_depth, | ||
real(srp), intent(in), optional | perception_override_food_dir, | ||
real(srp), intent(in), optional | perception_override_food_mem, | ||
real(srp), intent(in), optional | perception_override_conspec, | ||
real(srp), intent(in), optional | perception_override_pred_dir, | ||
real(srp), intent(in), optional | perception_override_predator, | ||
real(srp), intent(in), optional | perception_override_stomach, | ||
real(srp), intent(in), optional | perception_override_bodymass, | ||
real(srp), intent(in), optional | perception_override_energy, | ||
real(srp), intent(in), optional | perception_override_age, | ||
real(srp), intent(in), optional | perception_override_reprfac | ||
) |
Calculate individual perceptual components for this motivational state using the neuronal response function, for an this_agent.
this_agent
data structure. This is done for calculating representation expectancies from possible behaviour. [in] | this_agent | [inout] this_agent The actor agent. |
[in] | param_gp_matrix_light | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_depth | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_food_dir | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_food_mem | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_conspec | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_pred_dir | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_predator | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_stomach | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_bodymass | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_energy | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_age | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gp_matrix_reprfac | ### Boolean G x P matrices ### Input structure of the fixed parameters that define the boolean genotype x phenotype matrices for each perceptual component of motivational state defined in commondata. |
param_g_p_matrix
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv
). [in] | param_gp_matrix_light | boolean G x P matrix for light; |
[in] | param_gp_matrix_depth | boolean G x P matrix for depth; |
[in] | param_gp_matrix_food_dir | boolean G x P matrix for direct food; |
[in] | param_gp_matrix_food_mem | boolean G x P matrix for number of food items in memory; |
[in] | param_gp_matrix_conspec | boolean G x P matrix for number of conspecifics; |
[in] | param_gp_matrix_pred_dir | boolean G x P matrix for direct predation risk; |
[in] | param_gp_matrix_predator | boolean G x P matrix for number of predators; |
[in] | param_gp_matrix_stomach | boolean G x P matrix for stomach contents; |
[in] | param_gp_matrix_bodymass | boolean G x P matrix for body mass; |
[in] | param_gp_matrix_energy | boolean G x P matrix for energy reserves; |
[in] | param_gp_matrix_age | boolean G x P matrix for age; |
[in] | param_gp_matrix_reprfac | boolean G x P matrix for reproductive factor. |
[in] | param_gerror_cv_light | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_depth | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_food_dir | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_food_mem | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_conspec | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_pred_dir | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_predator | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_stomach | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_bodymass | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_energy | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_age | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | param_gerror_cv_reprfac | ### Coefficients of variation parameters ### Input structures that define the coefficient of variation for the Gaussian perception error parameters for each of the perceptual components. Normally they are also defined in commondata. |
[in] | param_gerror_cv_light | coefficient of variation for light; |
[in] | param_gerror_cv_depth | coefficient of variation for depth; |
[in] | param_gerror_cv_food_dir | coefficient of variation for direct food; |
[in] | param_gerror_cv_food_mem | coefficient of variation for number of food items in memory; |
[in] | param_gerror_cv_conspec | coefficient of variation for number of conspecific; |
[in] | param_gerror_cv_pred_dir | coefficient of variation for direct predation risk; |
[in] | param_gerror_cv_predator | coefficient of variation for number of predators; |
[in] | param_gerror_cv_stomach | coefficient of variation for stomach contents; |
[in] | param_gerror_cv_bodymass | coefficient of variation for body mass; |
[in] | param_gerror_cv_energy | coefficient of variation for energy reserves; |
[in] | param_gerror_cv_age | coefficient of variation for age; |
[in] | param_gerror_cv_reprfac | coefficient of variation for reproductive factor. |
[in] | perception_override_light | ### Perception overrides (fake perceptions) ### Optional parameters to override the perception value of this_agent that will be passed through the neuronal response function. We need to be able to pass arbitrary perception values to neuronal response to assess expectancies of different behaviours for this agent. |
init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. init_val
parameter of the neuronal response function, i.e. be real. But the perception object accessor (get) function of the respective perception object (PERCEPT_
) sometimes have integer type. In such cases use inline real conversion function when calling this procedure. [in] | perception_override_light | perception override for light; |
[in] | perception_override_depth | perception override for depth; |
[in] | perception_override_food_dir | perception override for direct food (convert from integer); |
[in] | perception_override_food_mem | perception override for number of food items in memory; |
[in] | perception_override_conspec | perception override for number of conspecific (convert from integer); |
[in] | perception_override_pred_dir | perception override for direct predation risk; |
[in] | perception_override_predator | perception override for number of predators; |
[in] | perception_override_stomach | perception override for stomach contents; |
[in] | perception_override_bodymass | perception override for body mass; |
[in] | perception_override_energy | perception override for energy reserves; |
[in] | perception_override_age | perception override for age (convert from integer); |
[in] | perception_override_reprfac | perception override for reproductive factor. |
We check input boolean G x P matrices and calculate the perceptual components of this motivation state only when the boolean matrix is provided as a parameter. Also check the corresponding variance/CV and reset to deterministic (variance zero) is not provided as a dummy parameter parameter.
param_g_p_matrix_
and param_gerror_cv_
parameters as perceptual components for this motivation (the_neurobio::percept_components_motiv).Definition at line 5233 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_light_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal light effect component.
Definition at line 5753 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_depth_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal depth effect component.
Definition at line 5765 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_food_dir_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal directly seen food effect component.
Definition at line 5777 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_food_mem_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal food items from past memory effect component.
Definition at line 5789 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_conspec_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal conspecifics effect component.
Definition at line 5801 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_pred_dir_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal direct predation effect component.
Definition at line 5813 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_predator_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal predators effect component.
Definition at line 5825 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_stomach_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal stomach effect component.
Definition at line 5837 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_bodymass_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal body mass effect component.
Definition at line 5849 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_energy_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal energy reserves effect component.
Definition at line 5861 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_age_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal age effect component.
Definition at line 5873 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_reprfac_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the state neuronal reproductive factor effect component.
Definition at line 5885 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_motivation_prim_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the root state, get the overall primary motivation value (before modulation).
Definition at line 5897 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_motivation_get | ( | class(state_motivation_base), intent(in) | this | ) |
Standard "get" function for the root state, get the overall final motivation value (after modulation).
Definition at line 5909 of file m_neuro.f90.
elemental logical function the_neurobio::state_motivation_is_dominant_get | ( | class(state_motivation_base), intent(in) | this | ) |
Check if the root state is the dominant state in GOS.
Definition at line 5920 of file m_neuro.f90.
elemental character(len=label_length) function the_neurobio::state_motivation_fixed_label_get | ( | class(state_motivation_base), intent(in) | this | ) |
Get the fixed label for this motivational state. Note that the label is fixed and cannot be changed.
Definition at line 5934 of file m_neuro.f90.
pure subroutine the_neurobio::state_motivation_attention_weights_transfer | ( | class(state_motivation_base), intent(inout) | this, |
class(state_motivation_base), intent(in) | copy_from | ||
) |
Transfer attention weights between two motivation state components. The main use of this subroutine would be to transfer attention from the actor agent's main motivation's attention component to the behaviour's GOS expectancy object.
behaviour_root_attention_weights_transfer
which does this is not using this procedure and transfers objects directly. Definition at line 5952 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_component_maxval | ( | class(percept_components_motiv), intent(in) | this | ) |
Calculate the maximum value over all the perceptual components.
Definition at line 5976 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_percept_maxval | ( | class(state_motivation_base), intent(in) | this | ) |
Calculate the maximum value over all the perceptual components of this motivational state component.
motivation_primary_calc
procedure. Definition at line 6002 of file m_neuro.f90.
elemental real(srp) function the_neurobio::state_motivation_calculate_prim | ( | class(state_motivation_base), intent(in) | this, |
real(srp), intent(in), optional | maxvalue | ||
) |
Calculate the level of primary motivation for this specific emotional state component.
motivation_primary_calc
procedure. [in] | maxvalue | The maximum value across all appraisal perception components, needed to standardise and rescale the latter to the range 0:1 before they are summed up. |
Local parameters defining 0.0 and 1.0 for rescale.
Local copy of optional maxvalue
.
Normally we rescale all values within the perceptual motivation components coming from the appraisal level into a [0..1] range within the agent, so that they are comparable across the motivations. To do this we need the maximum perception value over all perception objects: maxvalue
. Normally maxvalue
is an input parameter taking account of all motivation all state components. But if it is not provided, we calculate local maximum for this motivational component only.
Calculate the primary motivation for this motivational state by summing up (averaging) all the perceptual components for this motivation weighted by their respective attention weights; components are **rescaled* from the potential global range 0:maxvalue to the range 0:1.
maxvalue
should normally be the maximum value for all available motivation states, not just this. TODO: make maxvalue a structure reflecting motivational components.Definition at line 6016 of file m_neuro.f90.
elemental subroutine the_neurobio::perception_component_motivation_init_zero | ( | class(percept_components_motiv), intent(inout) | this | ) |
Initialise perception components for a motivation state object.
Definition at line 6099 of file m_neuro.f90.
elemental subroutine the_neurobio::state_hunger_zero | ( | class(state_hunger), intent(inout) | this | ) |
Init and cleanup hunger motivation object. The only difference from the base root STATE_MOTIVATION_BASE is that it sets unique label.
Definition at line 6120 of file m_neuro.f90.
elemental subroutine the_neurobio::state_fear_defence_zero | ( | class(state_fear_defence), intent(inout) | this | ) |
Init and cleanup fear state motivation object. The only difference from the base root STATE_MOTIVATION_BASE is that it sets unique label.
Definition at line 6152 of file m_neuro.f90.
elemental subroutine the_neurobio::state_reproduce_zero | ( | class(state_reproduce), intent(inout) | this | ) |
Init and cleanup reproductive motivation object. The only difference from the base root STATE_MOTIVATION_BASE is that it sets unique label.
Definition at line 6184 of file m_neuro.f90.
elemental subroutine the_neurobio::motivation_init_all_zero | ( | class(motivation), intent(inout) | this | ) |
Init the expectancy components to a zero state.
Expectancy components.
Also set the private and fixed "number of motivational states" constant, we obviously have 3 motivations.
Definition at line 6214 of file m_neuro.f90.
elemental subroutine the_neurobio::motivation_reset_gos_indicators | ( | class(motivation), intent(inout) | this | ) |
Reset all GOS indicators for this motivation object.
Reset dominant status to FALSE for all motivational states.
Definition at line 6230 of file m_neuro.f90.
elemental real(srp) function the_neurobio::motivation_max_perception_calc | ( | class(motivation), intent(in) | this | ) |
Calculate maximum value of the perception components across all motivations.
Definition at line 6243 of file m_neuro.f90.
pure real(srp) function, dimension(:), allocatable the_neurobio::motivation_return_final_as_vector | ( | class(motivation), intent(in) | this | ) |
Return the vector of final motivation values for all motivational state components.
Definition at line 6260 of file m_neuro.f90.
elemental real(srp) function the_neurobio::motivation_maximum_value_motivation_finl | ( | class(motivation), intent(in) | this | ) |
Calculate the maximum value of the final motivations across all motivational state components.
[in] | this | this self |
An equivalent "manual" form not using finals
function : maxvalue = maxval( [ thishungermotivation_finl, & thisfear_defencemotivation_finl, & thisreproductionmotivation_finl ] )
Definition at line 6274 of file m_neuro.f90.
elemental logical function the_neurobio::motivation_val_is_maximum_value_motivation_finl | ( | class(motivation), intent(in) | this, |
real(srp), intent(in) | test_value | ||
) |
Checks if the test value is the maximum final motivation value across all motivational state components.
Definition at line 6290 of file m_neuro.f90.
elemental logical function the_neurobio::motivation_val_is_maximum_value_motivation_finl_o | ( | class(motivation), intent(in) | this, |
class(state_motivation_base), intent(in) | test_motivation | ||
) |
Checks if the test value is the maximum final motivation value across all motivational state components.
Definition at line 6309 of file m_neuro.f90.
elemental subroutine the_neurobio::motivation_primary_sum_components | ( | class(motivation), intent(inout) | this, |
real(srp), intent(in), optional | max_val | ||
) |
Calculate the primary motivations from motivation-specific perception appraisal components. The primary motivations are motivation values before the modulation takes place.
[in] | max_val | max_val optional parameter that sets the maximum perception value for rescaling all perceptions to a common currency. |
appmaxval
.If the maximum rescale perception is provided as a parameter, use it.
Definition at line 6328 of file m_neuro.f90.
elemental subroutine the_neurobio::motivation_modulation_absent | ( | class(motivation), intent(inout) | this | ) |
Produce modulation of the primary motivations, that result in the final motivation values (_finl
). In this subroutine, modulation is absent, so the final motivation values are equal to the primary motivations.
Here the final motivations are just equal to their primary values
Definition at line 6385 of file m_neuro.f90.
|
private |
Initialise and cleanup all appraisal object components and sub-objects.
Init and clean all motivational components.
Also cleanup the emotional memory stack.
Definition at line 6448 of file m_neuro.f90.
elemental subroutine the_neurobio::appraisal_agent_set_dead | ( | class(appraisal), intent(inout) | this | ) |
Set the individual to be dead. Note that this function does not deallocate the individual agent object, this may be a separate destructor function.
The dies
method is implemented at the following levels of the agent object hierarchy (upper overrides the lower level):
dies
method is implemented at the gos_global to allow "cleaning" of all neurobiological objects when dies
is called when performing the behaviours upwards in the object hierarchy. Definition at line 6477 of file m_neuro.f90.
subroutine the_neurobio::appraisal_perceptual_comps_motiv_neur_response_calculate | ( | class(appraisal), intent(inout) | this | ) |
Get the perceptual components of all motivational states by passing perceptions via the neuronal response function.
Call the neuronal response initialisation procedure the_neurobio::percept_components_motiv::motivation_components_init() for all the motivation states:
Definition at line 6493 of file m_neuro.f90.
elemental subroutine the_neurobio::appraisal_primary_motivations_calculate | ( | class(appraisal), intent(inout) | this, |
real(srp), intent(in), optional | rescale_max_motivation | ||
) |
Calculate primary motivations from perceptual components of each motivation state.
[in] | rescale_max_motivation | rescale_max_motivation maximum motivation value for rescaling all motivational components for comparison across all motivation and perceptual components and behaviour units. |
Check if global maximum motivation across all behaviours and perceptual components is provided for rescaling.
Finally, the primary motivation values are calculated using the the_neurobio::motivation::motivation_primary_calc() method.
Definition at line 6644 of file m_neuro.f90.
subroutine the_neurobio::appraisal_motivation_modulation_non_genetic | ( | class(appraisal), intent(inout) | this, |
logical, intent(in), optional | no_modulation | ||
) |
Produce modulation of the primary motivations, that result in the final motivation values (_finl
). Modulation here is non-genetic and involves a fixed transformation of the primary motivation values.
[in] | no_modulation | no_genetic_modulation chooses if genetic modulation is calculated at all, if set to TRUE, then genetic modulation is not calculated and the final motivational values are just equal to the primary motivations. |
AGE_ARRAY_ABSCISSA
is the interpolation grid abscissa for the weighting factor applied to reproductive motivation. It is defined by the parameter commondata::reprod_modulation_devel_abscissa.AGE_ARRAY_ORDINATE
is the interpolation grid ordinate. Its first and last values are set as 0.0 and 1.0, and the middle is defined by the parameter commondata::reprod_modulation_devel_w2.
htintrpl.exe [ 7000, 8555, 11666 ] [ 0, 0.10, 1.0 ]
First, initialise the final motivation values from the no modulation method the_neurobio::motivation::modulation_none().
Then check if developmental or genetic (or any other) modulation is disabled by the parameters commondata::modulation_appraisal_disable_all.
Check if no_genetic_modulation
parameter is set to TRUE and if yes, return without no further processing.
Reproductive factor the_hormones::hormones::reproductive_factor() is accumulated by the sex hormone level whenever the agent is growing. Such accumulation can increase motivation for reproduction. However, reproduction is not possible in young and small agents. Therefore, this procedure implements a developmental modulation of the reproductive factor: reproductive motivation the_neurobio::state_reproduce is weighted out while the agent does not reach a target body length and age. This weighting is defined by nonlinear interpolation using the abscissa array AGE_ARRAY_ABSCISSA
and ordinate AGE_ARRAY_ORDINATE
. Such weighting, thus, allows non-zero reproductive motivation only when the agent reaches the age exceeding the first abscissa value AGE_ARRAY_ABSCISSA
, age > L/2, as here the weighting factor exceeds zero. Furthermore, when the age of the agent exceeds the last value of AGE_ARRAY_ABSCISSA
, the weighting factor is equal to 1.0, so reproductive motivation is not limited any more.
Interpolation plots can be saved in the debug mode using this plotting command: commondata::debug_interpolate_plot_save().
Definition at line 6686 of file m_neuro.f90.
subroutine the_neurobio::appraisal_motivation_modulation_genetic | ( | class(appraisal), intent(inout) | this, |
logical, intent(in), optional | no_genetic_modulation | ||
) |
Produce modulation of the primary motivations, that result in the final motivation values (_finl
). Modulation involves effects of such characteristics of the agent as body mass and age on the primary motivations (hunger, active and passive avoidance and reproduction) mediated by the genome effects. Here the genome determines the coefficients that set the degree of the influence of the agent's characteristics on the motivations.
[in] | no_genetic_modulation | no_genetic_modulation chooses if genetic modulation is calculated at all, if set to TRUE, then genetic modulation is not calculated and the final motivational values are just equal to the primary motivations. |
First, initialise the final motivation values from the no modulation method the_neurobio::motivation::modulation_none().
Then check if developmental or genetic (or any other) modulation is disabled by the parameters commondata::modulation_appraisal_disable_all.
Check if no_genetic_modulation
parameter is set to TRUE and if yes, return without no further processing.
Sex modulation of the reproduction motivation state for male.
modulation_gamma
parameter. The maximum modulatory increase ever possible is the double value of the raw primary motivation.Sex modulation of the reproduction motivation state for female.
modulation_gamma
parameter. The maximum modulatory increase ever possible is the double value of the raw primary motivation.The values are logged in thedebug mode.
Definition at line 6786 of file m_neuro.f90.
elemental subroutine the_neurobio::appraisal_add_final_motivations_memory | ( | class(appraisal), intent(inout) | this | ) |
Add individual final emotional state components into the emotional memory stack. This is a wrapper to the the_neurobio::memory_emotional::add_to_memory method.
Definition at line 6934 of file m_neuro.f90.
real(srp) function the_neurobio::reproduce_do_probability_reproduction_calc | ( | class(appraisal), intent(in) | this, |
real(srp), intent(in), optional | weight_baseline, | ||
logical, intent(in), optional | allow_immature | ||
) |
Calculate the instantaneous probability of successful reproduction.
[in] | weight_baseline | weight_baseline is the weighting factor for the baseline probability of successful reproduction (see details below). |
[in] | allow_immature | allow_immature a logical switch that allows calculation (non-zero probability) if the agent is not ready to reproduction as determined by the the_body::reproduction::is_ready_reproduce() method. Normally, immature agents (for which this method returns FALSE) have zero probability of reproduction. The default is FALSE, i.e. not to allow reproduction to immature agents. |
The probability of successful reproduction depends on the number of conspecifics of the same and the opposite sex within the this
agent's visual range. So the starting point here is the number of conspecifics within the current conspecifics perception object.
First, determine if the hormonal system of the agent is ready for reproduction using the_body::reproduction::is_ready_reproduce().
If this agent is not ready to reproduce, a zero probability of reproduction returned. However, if the optional parameter allow_immature
is explicitly set to TRUE, this check is not done and the probability of reproduction is calculated as follows.
Second, determine if there are any conspecifics in the perception, if there are no, reproduction is impossible. Return straight away zero probability in such a case.
Second, extract the number of conspecifics n_conspecifics_perception
from the perception object.
Also, initialise the number of same- and opposite-sex conspecifics (integer counters) as well as the total mass of same-sex conspecifics (real) to zero.
Third, determine how many of the conspecifics in perception have the same and the opposite sex. Calculate total mass of same sex conspecifics.
Additionally, check if the number of opposite sex agents is zero. in such a case zero probability of reproduction is obviously returned.
Fourth, calculate the baseline probability of reproduction. This probability is proportional to the proportions of the same- and opposite-sex agents within the visual range.
where is the number of the opposite-sex agents, is the number of same-sex agents. We also adjust the baseline probability of successful reproduction by a parameter factor , so that this probability never reaches 1:
For example, if there is only one agent of the opposite sex and no same-sex in proximity the baseline probability of reproduction is 1/(1+0) = 1.0 (note that the this agent also adds to the same-sex count, hence "1+..."). If there are 3 opposite-sex agents and 3 same-sex agents, the baseline probability is calculated as 3/(1+3) = 0.75. This doesn't take account of the multiplier factor.
Fifth, to get the final successful reproduction probability, the baseline value is multiplied by a function that depends on the relative body mass of the this
agent with respect to all the same-sex agents in proximity.
where is the final probability of successful reproduction. This is done to model direct within-sex competition for mates. Therefore, if the this
agent is smaller than all the other same-sex agents here, the probability of successful reproduction significantly reduces. On the other hand, if the agent is larger than all the others, this probability would increase. The form of the function is calculated on the bases of the ratio of the this
agent body mass to the average body mass of all same sex agents within the visual range:
Note that if there are no same sex agents (i.e. intra-sexual competition is absent) the probability of reproduction takes the baseline value :
No debug interpolation plot is produced in such a degenerate case.
The function itself is obtained from a nonlinear interpolation of grid values defined by the parameter arrays commondata::probability_reproduction_delta_mass_abscissa
and commondata::probability_reproduction_delta_mass_ordinate
.
So the final reproduction probability value is obtained by multiplication of the baseline value by the function. The final probability of reproduction value is limited to lie within the range .
Interpolation plots can be saved in the debug mode using this plotting command: commondata::debug_interpolate_plot_save().
Definition at line 6950 of file m_neuro.f90.
logical function the_neurobio::reproduction_success_stochast | ( | class(appraisal), intent(in) | this, |
real(srp), intent(in), optional | prob | ||
) |
Determine a stochastic outcome of this agent reproduction. Returns TRUE if the agent has reproduced successfully.
[in] | prob | optional fixed probability of reproduction to override. |
Check if prob
is present, if not, the probability of reproduction is calculated based on the perception objects of the actor agent this
using the probability_reproduction()
method.
Determine the reproduction success stochastically based on the probability of repriduction (prob_here
) value.
Definition at line 7194 of file m_neuro.f90.
elemental subroutine the_neurobio::emotional_memory_add_to_stack | ( | class(memory_emotional), intent(inout) | this, |
real(srp), intent(in) | v_hunger, | ||
real(srp), intent(in) | v_defence_fear, | ||
real(srp), intent(in) | v_reproduction, | ||
character(*), intent(in), optional | v_gos_label, | ||
real(srp), intent(in), optional | v_gos_arousal, | ||
integer, intent(in), optional | v_gos_repeated | ||
) |
Add emotional components into the memory stack.
[in] | v_hunger | The parameters of the subroutine are the actual values that are added to the emotional memory stack arrays. |
[in] | v_hunger | value for hunger; |
[in] | v_defence_fear | value for fear state; |
[in] | v_reproduction | value for reproduction; |
[in] | v_gos_label | value for GOS label; |
[in] | v_gos_arousal | value for GOS arousal value; |
[in] | v_gos_repeated | value for repeated counter for GOS. |
Each of the memory stack components corresponds to the respective dummy parameter. These arrays are updated at each step (mandatory procedure arguments):
However, GOS parameters are optional and updated only if provided for invocation of this method (optional arguments):
Definition at line 7227 of file m_neuro.f90.
elemental subroutine the_neurobio::emotional_memory_add_gos_to_stack | ( | class(memory_emotional), intent(inout) | this, |
character(*), intent(in), optional | v_gos_label, | ||
real(srp), intent(in), optional | v_gos_arousal, | ||
integer, intent(in), optional | v_gos_repeated | ||
) |
Add the current GOS label or/and arousal value and/or arousal repeat count into the emotional memory stack.
[in] | v_gos_label | v_gos_label Text label for the current GOS. |
[in] | v_gos_arousal | v_gos_arousal The maximum motivation (arousal) value for the current GOS. |
[in] | v_gos_repeated | v_gos_repeated |
GOS label is added to the memory stack.
GOS arousal is added to the memory stack.
The GOS repeated counter (gos_repeated) is added to the memory stack.
Definition at line 7275 of file m_neuro.f90.
elemental subroutine the_neurobio::emotional_memory_cleanup_stack | ( | class(memory_emotional), intent(inout) | this | ) |
Cleanup and destroy the emotional memory stack.
cleanup procedure uses whole array assignment to the commondata::missing values.
Definition at line 7302 of file m_neuro.f90.
elemental real(srp) function the_neurobio::emotional_memory_hunger_get_mean | ( | class(memory_emotional), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average value of the hunger motivation state within the whole emotional memory stack.
[in] | last | last Limit to only this number of latest components in the history. |
last
parameter is absent or bigger than the array size, get the whole stack array.Calculate the average excluding missing values (masked) within the subarray of interest.
Definition at line 7320 of file m_neuro.f90.
elemental real(srp) function the_neurobio::emotional_memory_actve_avoid_get_mean | ( | class(memory_emotional), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average value of the fear state motivation state within the whole emotional memory stack.
[in] | last | last Limit to only this number of latest components in the history. |
last
parameter is absent or bigger than the array size, get the whole stack array.Calculate the average excluding missing values (masked) within the subarray of interest.
Definition at line 7361 of file m_neuro.f90.
elemental real(srp) function the_neurobio::emotional_memory_reproduct_get_mean | ( | class(memory_emotional), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average value of the reproductive motivation state within the whole emotional memory stack.
[in] | last | last Limit to only this number of latest components in the history. |
last
parameter is absent or bigger than the array size, get the whole stack array.Calculate the average excluding missing values (masked) within the subarray of interest.
Definition at line 7403 of file m_neuro.f90.
elemental real(srp) function the_neurobio::emotional_memory_arousal_mean | ( | class(memory_emotional), intent(in) | this, |
integer, intent(in), optional | last | ||
) |
Get the average value of the GOS arousal within the whole emotional memory stack.
[in] | last | last Limit to only this number of latest components in the history. |
last
parameter is absent or bigger than the array size, get the whole stack array.Calculate the average excluding missing values (masked) within the subarray of interest.
Definition at line 7445 of file m_neuro.f90.
subroutine the_neurobio::gos_find_global_state | ( | class(gos_global), intent(inout) | this | ) |
Find and set the Global Organismic State (GOS) of the agent based on the various available motivation values. The motivation values linked with the different stimuli compete with the current GOS and among themselves.
The GOS competition threshold is a function of the current GOS arousal level: if it is very low, it would be very difficult to switch to a different GOS. However, if the current GOS has a high arousal, then switching to a competing motivation is relatively easy: a very small motivational surplus is enough for winning the competition with the current GOS.
Public attribute of the GOS_GLOBAL
class: gos_arousal
keeps the current level of the GOS arousal (A, see below). If GOS does switch as a result of competition with the other motivational states, it gets the value of its winning (maximum) motivation, if GOS does not switch as a result of competition, the gos_arousal
value dissipates spontaneously to a lower value and the gos_repeated
attribute of GOS_GLOBAL
gets the successive number of repetitions of the same out of competition GOS state.
Local variable: arousal_new
is the maximum level of motivation among all new incoming motivations A. It is this motivation value that competes with the current GOS arousal value (G the gos_arousal
public attribute of the GOS_GLOBAL
class).
Local variable gos_dthreshold
is a dynamic threshold factor for GOS change (see below). It determines the threshold that a new competing motivation has to exceed to win the competition with the previous (and still current up to this point) motivation.
The GOS competition threshold is a function of the current GOS arousal level : if it is very low, we need a relatively high competing motivation to win competition, if it is high then very small difference is enough. The global organismic state will switch to a competing state only if its maximum motivation exceeds the current GOS's arousal level by more than units of :
Here the threshold factor is set by a nonparametric function that is calculated from nonlinear interpolation of the grid values:
So if the agent currently has a low GOS arousal G=0.1, it requires a competing state to be at least A=0.155 to win (with =0.55, 0.155 = 0.1 + 0.1 * 0.55). However, if the agent has a high GOS motivation G=0.8, almost any exceeding motivation (>0.808) will win. The actual value of the nonparametric interpolation function are obtained by nonlinear interpolation of the grid values defined by the MOTIVATION_COMPET_THRESHOLD_CURVE_
parameter arrays.
The interpolation plots are saved in the debug mode to a disk file using an external command by the commondata::debug_interpolate_plot_save()
procedure.
Once the dynamic threshold is calculated, we can compare each of the competing motivation levels with the current arousal. If the maximum value of these motivations exceeds the current arousal by more than the threshold factor, the GOS switches to the new motivation. If not, we are still left with the previous GOS.
If the maximum competing motivation does not exceed the threshold, we are left with the old GOS. However, we reduce the current arousal spontaneously using a simple linear or some non-linear dissipation pattern using the %gos_repeated parameter that sets the number of repeated occurrences of the same (current) GOS. First, increment GOS repeat counter.
And spontaneously decrease, dissipate, the current arousal level. Spontaneous dissipation of arousal is implemented by multiplying the current level by a factor within the range [0.0..1.0] that can depend on the number of times this GOS is repeated.
arousal_decrease_factor_fixed
= fixed value arousal_decrease_factor_nonpar
= nonlinear, nonparametric, based on nonlinear interpolation. @plot aha_gos_arousal_dissipation.svg
arousal_decrease_factor_fixed
or arousal_decrease_factor_nonpar
.If the maximum competing motivation exceeds the threshold, we get to a new GOS. That is, the highest among the competing motivations defines the new GOS.
gos_repeated
is initialised to 1.0 at gos_reset
.Reset all motivations to non-dominant.
Set new GOS for hunger...
Reset all motivations to non-dominant.
Set new GOS for fear_defence...
Reset all motivations to non-dominant.
Set new GOS for reproduction...
Add the current GOS parameters to the emotional memory stack
init_appraisal
Finally recalculate the attention weights for all the states' perception components using attention_modulate(). The dominant GOS state will now get its default attention weights whereas all non-dominant states will get modulated values, i.e. values recalculated from a non-linear interpolation based attention modulation curve.
Definition at line 7508 of file m_neuro.f90.
|
private |
Initialise GOS engine components to a zero state. The values are set to commondata::missing, commondata::unknown, string to "undefined".
Definition at line 7787 of file m_neuro.f90.
elemental subroutine the_neurobio::gos_agent_set_dead | ( | class(gos_global), intent(inout) | this | ) |
Set the individual to be dead. Note that this function does not deallocate the individual agent object, this may be a separate destructor function.
The dies
method is implemented at the following levels of the agent object hierarchy (upper overrides the lower level):
dies
method is implemented at the gos_global to allow "cleaning" of all neurobiological objects when dies
is called when performing the behaviours upwards in the object hierarchy. Definition at line 7818 of file m_neuro.f90.
elemental subroutine the_neurobio::gos_reset_motivations_non_dominant | ( | class(gos_global), intent(inout) | this | ) |
Reset all motivation states as not dominant with respect to the GOS.
Reset dominant status to FALSE for all motivational states calling the the_neurobio::motivation::gos_ind_reset().
Also reset the number of GOS repeated occurrences to 1.
Definition at line 7832 of file m_neuro.f90.
elemental character(len=label_length) function the_neurobio::gos_global_get_label | ( | class(gos_global), intent(in) | this | ) |
Get the current global organismic state (GOS).
Check which of the currently implemented motivational state components (STATE_
) has the dominant flag. Can call motivation-type-bound function %is_dominant().
Definition at line 7847 of file m_neuro.f90.
elemental real(srp) function the_neurobio::gos_get_arousal_level | ( | class(gos_global), intent(in) | this | ) |
Get the overall level of arousal. Arousal is the current level of the dominant motivation that has brought about the current GOS at the previous time step.
Definition at line 7882 of file m_neuro.f90.
subroutine the_neurobio::gos_attention_modulate_weights | ( | class(gos_global), intent(inout) | this | ) |
Modulate the attention weights to suppress all perceptions alternative to the current GOS. This is done using the attention modulation interpolation curve.
gos_find()
and should normally not be called separately. Each of the perceptions is weighted by an attention factor. The attention factor is in turn modulated (weighted) by the current Global Organismic State (GOS). When the current arousal is relatively high, all irrelevant perceptions are effectively filtered out (weighted by near-zero) and do not (largely) contribute to the GOS at the next time step. For example, the agent just does not "see" food items when it is in a high fear state.
Thus, perception is weighted by the attention suppression factor separately for each motivational (emotional) state according to the scheme below:
Also see Cognitive architecture section.
First, we calculate the attention weight given to all non-dominant perceptions via nonlinear interpolation. Interpolation is based on the grid defined by two parameters: ATTENTION_MODULATION_CURVE_ABSCISSA
and ATTENTION_MODULATION_CURVE_ORDINATE
.
htintrpl.exe [0.0, 0.3, 0.5, 1.0] [1.0, 0.98, 0.9, 0.0] [2]
Interpolation plots can be saved in the debug mode using this plotting command: commondata::debug_interpolate_plot_save().
Second, we reset the attention weights for the dominant GOS state to their default parameter values whereas for all other states, to the recalculated percept_w
modulated/weighted value. The the_neurobio::percept_components_motiv::attention_init() method is used to adjust the attention weights.
Definition at line 7899 of file m_neuro.f90.
elemental integer function the_neurobio::perception_food_items_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the number of food items in the perception object that are located below the actor agent.
First, initialise the counter to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculate food items within the perception that are below the agent.
Definition at line 8112 of file m_neuro.f90.
elemental integer function the_neurobio::perception_food_items_below_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the number of food items in the perception object that are located below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z+hz_lower, z+hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the counter to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Loop through the food items within the later and calculate the total number.
Definition at line 8144 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_food_mass_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average mass of a food item from all the items in the current perception object that are below the actor agent.
First, initialise the return average mass and the counter for calculating the average both to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculation of the average mass of the food items below is done by concurrent looping through the food items within the perception object.
This is done by checking the condition:
if ( food_item .below. this ) ...
.below.
that is implemented in the_environment
module.The average mass of the food items is calculated using the food items mass values returned by the function get_mass
(the_environment::food_item::get_mass()
) .
Final average value is calculated, obviously, by division of the total mass by the total count. In case the count is zero, also return zero mean.
Definition at line 8189 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_food_mass_below_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the average mass of a food item from all the items in the current perception object that are below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z+hz_lower, z+hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the return average mass and the counter for calculating the average both to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculation of the average mass of the food items below is done by concurrent looping through the food items within the perception object.
The average mass of the food items is calculated using the food items mass values returned by the function get_mass
(the_environment::food_item::get_mass()
) .
Final average value is calculated, obviously, by division of the total mass by the total count. In case the count is zero, also return zero mean.
Definition at line 8251 of file m_neuro.f90.
elemental integer function the_neurobio::perception_food_items_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the number of food items in the perception object that are located above the actor agent.
First, initialise the counter to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculate food items within the perception that are above the agent.
Definition at line 8313 of file m_neuro.f90.
elemental integer function the_neurobio::perception_food_items_above_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the number of food items in the perception object that are located above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z-hz_upper, z-hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the counter to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Loop through the food items within the later and calculate the total number.
Definition at line 8345 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_food_mass_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average mass of a food item from all the items in the current perception object that are above the actor agent.
First, initialise the return average mass and the counter for calculating the average both to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculation of the average mass of the food items above is done by concurrent looping through the food items within the perception object.
This is done by checking the condition:
if ( food_item .above. this ) ...
.above.
that is implemented in the_environment
module.The average mass of the food items is calculated using the food items mass values returned by the function get_mass
(the_environment::food_item::get_mass()
) .
Final average value is calculated, obviously, by division of the total mass by the total count. In case the count is zero, also return zero mean.
Definition at line 8390 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_food_mass_above_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the average mass of a food item from all the items in the current perception object that are above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z-hz_upper, z-hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the return average mass and the counter for calculating the average both to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculation of the average mass of the food items above is done by concurrent looping through the food items within the perception object.
The average mass of the food items is calculated using the food items mass values returned by the function get_mass
(the_environment::food_item::get_mass()
) .
Final average value is calculated, obviously, by division of the total mass by the total count. In case the count is zero, also return zero mean.
Definition at line 8450 of file m_neuro.f90.
elemental integer function the_neurobio::perception_conspecifics_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the number of conspecifics in the perception object that are located below the actor agent.
First, initialise the counter to zero.
Then, check if the agent has any conspecifics in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the conspecifics and count their total number.
Definition at line 8512 of file m_neuro.f90.
elemental integer function the_neurobio::perception_conspecifics_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the number of conspecifics in the perception object that are located above the actor agent.
First, initialise the counter to zero.
Then, check if the agent has any conspecifics in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the conspecifics and count their total number.
Definition at line 8539 of file m_neuro.f90.
elemental integer function the_neurobio::perception_conspecifics_below_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the number of conspecifics in the perception object that are located below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z+hz_lower, z+hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the counter to zero.
Then, check if the agent has any conspecifics in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the conspecifics within the later and calculate their number.
Definition at line 8569 of file m_neuro.f90.
elemental integer function the_neurobio::perception_conspecifics_above_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the number of conspecifics in the perception object that are located above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z-hz_upper, z-hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the counter to zero.
Then, check if the agent has any conspecifics in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the conspecifics within and calculate their number.
Definition at line 8613 of file m_neuro.f90.
elemental integer function the_neurobio::perception_predator_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the number of predators in the perception object that are located below the actor agent.
First, initialise the counter to zero.
Then, check if the agent has any predators in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the predators and count their total number.
Definition at line 8654 of file m_neuro.f90.
elemental integer function the_neurobio::perception_predator_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the number of predators in the perception object that are located above the actor agent.
First, initialise the counter to zero.
Then, check if the agent has any predators in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the predators and count their total number.
Definition at line 8681 of file m_neuro.f90.
elemental integer function the_neurobio::perception_predator_below_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the number of predators in the perception object that are located below the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z+hz_lower, z+hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the counter to zero.
Then, check if the agent has any predators in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the predators within the later and calculate their number.
Definition at line 8711 of file m_neuro.f90.
elemental integer function the_neurobio::perception_predator_above_horiz_calculate | ( | class(perception), intent(in) | this, |
real(srp), intent(in) | hz_lower, | ||
real(srp), intent(in) | hz_upper | ||
) |
Calculate the number of predators in the perception object that are located above the actor agent within a specific vertical horizon [hz_lower,hz_upper]. The horizon limits are relative, in that they start from the depth position of the this
actor agent: [z-hz_upper, z-hz_upper].
[in] | hz_lower | hz_lower The upper limit for the vertical horizon |
[in] | hz_upper | hz_upper The lower limit for the vertical horizon |
First, initialise the counter to zero.
Then, check if the agent has any predators in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Loop through the predators within and calculate their number.
Definition at line 8755 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_food_dist_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average distance to all food items in the current perception object that are below the actor agent.
First, initialise the return average and the counter to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculation of the average distance to the food items below is done by concurrent looping through the food items within the perception object and calculating the distance from the agent.
This is done by checking the condition:
if ( food_item .below. this ) ...
Final average value is calculated, obviously, by division of the total distance by the count. In case the count is zero, also return commondata::missing mean. Note that zero is not returned here because zero distance to food item would result in the highest probability of capture which is not what is intended (zero probability should be invoked for null food items).
Definition at line 8796 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_food_dist_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average distance to all food items in the current perception object that are above the actor agent.
First, initialise the return average and the counter to zero.
Then, check if the agent has any food items in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one food item in the perception object. Calculation of the average distance to the food items above is done by concurrent looping through the food items within the perception object and calculating the distance from the agent.
This is done by checking the condition:
if ( food_item .above. this ) ...
Final average value is calculated, obviously, by division of the total distance by the count. In case the count is zero, also return commondata::missing mean. Note that zero is not returned here because zero distance to food item would result in the highest probability of capture which is not what is intended (zero probability should be invoked for null food items).
Definition at line 8852 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_consp_dist_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average distance to all conspecifics in the current perception object that are below the actor agent.
First, initialise the return average and the counter to zero.
Then, check if the agent has any conspecifics in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Calculation of the average distance to the conspecifics below is done by concurrent looping through the conspecifics within the perception object and calculating the distance from the agent.
This is done by checking the condition:
if ( food_item .below. this ) ...
Final average value is calculated, obviously, by division of the total distance by the count. In case the count is zero, also return commondata::missing mean.
Definition at line 8908 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_consp_dist_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average distance to all conspecifics in the current perception object that are above the actor agent.
First, initialise the return average and the counter to zero.
Then, check if the agent has any conspecifics in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Calculation of the average distance to the conspecifics above is done by concurrent looping through the conspecifics within the perception object and calculating the distance from the agent.
This is done by checking the condition:
if ( food_item .above. this ) ...
Final average value is calculated, obviously, by division of the total distance by the count. In case the count is zero, also return commondata::missing mean.
Definition at line 8961 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_predator_dist_below_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average distance to all predators in the current perception object that are below the actor agent.
First, initialise the return average and the counter to zero.
Then, check if the agent has any predators in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Calculation of the average distance to the predators below is done by concurrent looping through the predators within the perception object and calculating the distance from the agent.
This is done by checking the condition:
if ( food_item .below. this ) ...
Final average value is calculated, obviously, by division of the total distance by the count. In case the count is zero, also return commondata::missing mean.
Definition at line 9014 of file m_neuro.f90.
elemental real(srp) function the_neurobio::perception_predator_dist_above_calculate | ( | class(perception), intent(in) | this | ) |
Calculate the average distance to all predators in the current perception object that are above the actor agent.
First, initialise the return average and the counter to zero.
Then, check if the agent has any predators in the perception; if not, return zero straight away.
From now on it is assumed that the agent has at least one conspecific in the perception object. Calculation of the average distance to the predators above is done by concurrent looping through the predators within the perception object and calculating the distance from the agent.
This is done by checking the condition:
if ( food_item .above. this ) ...
Final average value is calculated, obviously, by division of the total distance by the count. In case the count is zero, also return commondata::missing mean.
Definition at line 9067 of file m_neuro.f90.
real(srp) function the_neurobio::predator_capture_probability_calculate_spatobj | ( | class(perception), intent(in) | this, |
class(spatialobj_percept_comp), intent(in) | this_predator, | ||
real(srp), intent(in) | attack_rate, | ||
logical, intent(in), optional | is_freezing, | ||
integer, intent(in), optional | time_step_model | ||
) |
Calculate the probability of attack and capture of the this
agent by the predator this_predator
. This probability is a function of the distance between the predator and the agent and is calculated by the predator-class-bound procedure the_environment::predator::risk_fish(). Example call:
risk=proto_parents%individual(ind)%risk_pred( & proto_parents%individual(ind)%perceive_predator%predators_seen(i), & proto_parents%individual(ind)%perceive_predator%predators_attack_rates(i))
this_predator
parameter as class the_neurobio::spatialobj_percept_comp that is used for keeping the predator representations in the perception object. This representation keeps two separate array for the_neurobio::spatialobj_percept_comp spatial objects and the attack rate. [in] | this_predator | this_predator the predator that is about to attack the agent. |
[in] | attack_rate | attack_rate attack rate of the predator. |
[in] | is_freezing | is_freezing optional logical flag indicating that the fish prey agent is immobile (freezing) that would result in reduced predation risk. Default value is FALSE. |
[in] | time_step_model | time_step_model optional time step of the model, if absent, set from the current time step commondata::global_time_step_model_current. |
First, check if the agent has any predators and return zero and exit if there are no predators in the agent's perception object.
this_predator
object as a class SPATIALOBJ_PERCEPT_COMP. This is because the former normally calculated the objective predation risk whereas this version, subjective risk in the agent's perception. The agent cannot be aware of a predator that is outside of its perception.Second, Check optional time step parameter. If unset, use global variable commondata::global_time_step_model_current
.
Third, create a temporary PREDATOR type object using the standard method make
. The body size and the spatial position are obtained directly from the this_predator
object. However, the attack rate is obtained from the second dummy argument attack_rate
to this procedure.
Calculate the distance between the agent and predator.
Set the debug plot file name that will be passed to the predator-class-bound function the_environment::predator::risk_fish().
Calculate the probability of capture of the this
prey agent by the predator. See the_environment::predator::risk_fish() for the details of the calculation.
Definition at line 9134 of file m_neuro.f90.
real(srp) function the_neurobio::predator_capture_probability_calculate_pred | ( | class(perception), intent(in) | this, |
class(predator), intent(in) | this_predator, | ||
logical, intent(in), optional | is_freezing, | ||
integer, intent(in), optional | time_step_model | ||
) |
Calculate the probability of attack and capture of the this
agent by the predator this_predator
. This probability is a function of the distance between the predator and the agent and is calculated by the predator-class-bound procedure the_environment::predator::risk_fish().
this_predator
parameter as class the_neurobio::predator, i.e. for the objective predator object. [in] | this_predator | this_predator the predator that is about to attack the agent. |
[in] | is_freezing | is_freezing optional logical flag indicating that the fish prey agent is immobile (freezing) that would result in reduced predation risk. Default value is FALSE. |
[in] | time_step_model | time_step_model optional time step of the model, if absent, set from the current time step commondata::global_time_step_model_current. |
First, check if the agent has any predators in the perception object. Return a near-zero value defined by the commondata::predator_attack_capture_probability_min parameter constant, and exit if there are no predators in the agent's perception object.
this_predator
object as a type PREDATOR. This is because the former normally calculated the subjective assessment of the predation risk whereas this version, objective risk.Second, Check optional time step parameter. If unset, use global variable commondata::global_time_step_model_current
.
Calculate the distance between the agent and predator.
Set the debug plot file name that will be passed to the predator-class-bound function the_environment::predator::risk_fish().
Calculate the probability of capture of the this
prey agent by the predator. See the_environment::predator::risk_fish() for the details of the calculation.
Definition at line 9253 of file m_neuro.f90.
real(srp) function the_neurobio::predation_capture_probability_risk_wrapper | ( | class(perception), intent(in) | this, |
logical, intent(in), optional | is_freezing | ||
) |
Calculate the overall direct predation risk for the agent, i.e. the probability of attack and capture by the nearest predator.
[in] | is_freezing | is_freezing optional logical flag indicating that the fish prey agent is immobile (freezing) that would result in reduced predation risk. Default value is FALSE. |
Definition at line 9344 of file m_neuro.f90.
elemental real(srp) function the_neurobio::get_prop_size | ( | class(spatial), intent(in) | this | ) |
Get the body size property of a polymorphic object. The object can be of the following extension of the basic the_environment::spatial class:
M = get_props_size(object)
. Get the properties of the conspecific from the perception object or real physical conspecific data. This is done by determining the this
data type with "select type" construct.
this
is a conspecific from the perception object, its body length is obtained from the respective data components of the_neurobio::conspec_percept_comp.this
is real conspecific (the_neurobio::condition class), its body length is obtained from the the_body::condition::get_length() and the_body::condition::get_mass() methods.Definition at line 9384 of file m_neuro.f90.
elemental real(srp) function the_neurobio::get_prop_mass | ( | class(spatial), intent(in) | this | ) |
Get the body mass property of a polymorphic object. The object can be of the following extension of the basic the_environment::spatial class:
M = get_props_mass(object)
. Get the properties of the conspecific from the perception object or real physical conspecific data. This is done by determining the this
data type with "select type" construct.
this
is a conspecific from the perception object, its body length is obtained from the respective data components of the_neurobio::conspec_percept_comp.this
is real conspecific (the_neurobio::condition class), its body length is obtained from the the_body::condition::get_length() and the_body::condition::get_mass() methods.Definition at line 9425 of file m_neuro.f90.
|
private |
Definition at line 25 of file m_neuro.f90.