diff --git a/src/modules/butterflies/butterflies_generations.c b/src/modules/butterflies/butterflies_generations.c index 3e0ab6617f8f0d0d4efe25115d927ac16138080c..f0fd931e1d6cd4581717cb8d16f4fe061e0e90ad 100644 --- a/src/modules/butterflies/butterflies_generations.c +++ b/src/modules/butterflies/butterflies_generations.c @@ -22,7 +22,7 @@ void bf_area_generation_update(struct cats_grid *grid, struct cats_thread_info * const cats_dt_coord end_col = ts->area.end_col; struct statistics *stats = &ts->stats[grid->id]; - const cats_dt_rates ot = grid->param.OT; + const cats_dt_rates suit_ts = module_conf->butterfly_generations.suitability_cutoff; const int64_t egg_cells_id = module_conf->stat_ids[BF_CELLS_WITH_EGGS]; const int64_t egg_cells_removed_id = module_conf->stat_ids[BF_CELLS_WITH_EGGS]; @@ -32,13 +32,12 @@ void bf_area_generation_update(struct cats_grid *grid, struct cats_thread_info * for (cats_dt_coord row = start_row; row < end_row; row++) { for (cats_dt_coord col = start_col; col < end_col; col++) { - if (get_suitability(grid, row, col) < ot) + if (get_suitability(grid, row, col) < suit_ts) { if (data->eggs[row][col] > 0) cells_with_eggs_removed += 1; data->eggs[row][col] = 0.0f; data->generations[row][col] = 0.0f; set_population_ignore_cc(grid, row, col, 0); - continue; } diff --git a/src/modules/butterflies/butterflies_populations.c b/src/modules/butterflies/butterflies_populations.c index 07c3c6a1b099f7a7cba247ea7dad1c168e9790f8..161e5d53c0351a1742bfebdc875cbd131af6a038 100644 --- a/src/modules/butterflies/butterflies_populations.c +++ b/src/modules/butterflies/butterflies_populations.c @@ -107,6 +107,7 @@ void bf_cell_maturation(struct cats_grid *grid, struct cats_thread_info *ts, cat const int module_id = CATS_MODULE_ID; struct grid_data_butterflies *data = grid->grid_modules[module_id].module_data; + if (data->eggs[row][col] == 0) return; if (data->eggs[row][col] < 0) { log_message(LOG_ERROR, "Number of eggs < 0: row %d col %d: %f", row, col, data->eggs[row][col]); @@ -156,8 +157,9 @@ void bf_cell_maturation(struct cats_grid *grid, struct cats_thread_info *ts, cat cats_dt_environment suit = get_suitability(grid, row, col); cats_dt_rates reproduction_rate = calculate_rate(&module_conf->reproduction_rate, NAN, &grid->param, grid, row, col, NULL); - if (suit < grid->param.OT && reproduction_rate > 0) { - log_message(LOG_ERROR, "Suitability %f under OT %Lf, but adults per female = %Lf", suit, grid->param.OT, + cats_dt_rates suit_ts = module_conf->reproduction_rate.suitability_cutoff; + if (suit_ts < grid->param.OT && reproduction_rate > 0) { + log_message(LOG_ERROR, "Suitability %f under threshold %Lf, but adults per female = %Lf", suit, suit_ts, reproduction_rate); exit_cats(EXIT_FAILURE); }