From 751a54383307bb04e0713d4e5ca5be1d44207857 Mon Sep 17 00:00:00 2001
From: Andreas Gattringer <andreas.gattringer@univie.ac.at>
Date: Thu, 1 Dec 2022 12:47:05 +0100
Subject: [PATCH] fix bug: carrying capacity maximum should be a required
 configuration parameter

---
 src/cats/vital_rates/default_vital_rates.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/cats/vital_rates/default_vital_rates.c b/src/cats/vital_rates/default_vital_rates.c
index 45db4d6..83b6de1 100644
--- a/src/cats/vital_rates/default_vital_rates.c
+++ b/src/cats/vital_rates/default_vital_rates.c
@@ -195,6 +195,9 @@ void setup_carrying_capacity(struct cats_configuration *conf)
 {
         for (int32_t sp_idx = 0; sp_idx < conf->param_count; sp_idx++) {
                 struct cats_vital_rate *vr = &conf->param[sp_idx].carrying_capacity;
+                init_cats_vital_rate(vr);
+                vr->suitability_cutoff_hint = HYBRID_SUIT_TS_ZERO;
+                vr->suitability_cutoff = 0.0;
                 vr->is_carrying_capacity = true;
                 vr->default_rate_id = VR_UNSPECIFIED;
                 vr->is_integer_quantity = true;
@@ -202,6 +205,7 @@ void setup_carrying_capacity(struct cats_configuration *conf)
                 vr->upper_limit_excl = NAN;
                 vr->upper_limit_incl = NAN;
                 vr->lower_limit_incl = 1.0;
+                vr->max_rate = NAN;
                 vr->density = NO_DENSITY_DEP;
                 set_vital_rate_name(vr, "carrying capacity");
                 set_vital_rate_link_hybrid_function(vr, conf, LINK_SUITABILITY_SIGMOID);
@@ -241,7 +245,8 @@ void post_process_vital_rate(struct cats_configuration *conf, struct cats_vital_
                 switch (vr->suitability_cutoff_hint) {
                         case HYBRID_SUIT_TS_UNSPECIFIED:
                                 log_message(LOG_ERROR,
-                                            "%s: vital rate '%s' does not provide information about suitability cutoff");
+                                            "%s: vital rate '%s' does not provide information about suitability cutoff",
+                                            __func__, vr->name);
                                 exit_cats(EXIT_FAILURE);
                                 // break;
                         case HYBRID_SUIT_TS_ZT:
-- 
GitLab