From 219e02dc5378791e9c2a2226b83584938c732c83 Mon Sep 17 00:00:00 2001
From: Andreas Gattringer <andreas.gattringer@univie.ac.at>
Date: Wed, 19 Jul 2023 11:01:31 +0200
Subject: [PATCH] start annotating array accesses (in preparation of
 multi-resolution)

---
 src/cats/grids/direct_access.c              |  8 ++++----
 src/cats/grids/grid_converters.c            |  2 +-
 src/cats/inline_population.h                | 11 ++++++-----
 src/cats/misc/debug.c                       |  6 +++---
 src/cats/overlays/overlay_exclusion.c       |  8 ++++----
 src/cats/overlays/overlay_habitat_type_cc.c |  4 ++--
 src/cats/overlays/overlay_resources.c       |  6 +++---
 7 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/src/cats/grids/direct_access.c b/src/cats/grids/direct_access.c
index dfcefa1..cdb8519 100644
--- a/src/cats/grids/direct_access.c
+++ b/src/cats/grids/direct_access.c
@@ -6,23 +6,23 @@
 double load_input_2d_array_double(const struct cats_2d_array_double *raster, cats_dt_coord row, cats_dt_coord col)
 {
         valid_coordinates(&raster->dimension, row, col);
-        return raster->data[row][col];
+        return raster->data[row][col];  // getter [load_input2d_array_double]
 }
 
 char load_input_2d_array_char(const struct cats_2d_array_char *raster, cats_dt_coord row, cats_dt_coord col)
 {
         valid_coordinates(&raster->dimension, row, col);
-        return raster->data[row][col];
+        return raster->data[row][col];  // getter [load_input_2d_array_char]
 }
 
 cats_dt_environment load_input_environment_raster(struct cats_environment_raster *raster, cats_dt_coord row, cats_dt_coord col)
 {
         valid_coordinates(&raster->dimension, row, col);
-        return raster->values[row][col];
+        return raster->values[row][col];  // getter [load_input_environment_raster]
 }
 
 void set_input_environment_raster(struct cats_environment_raster *raster, cats_dt_coord row, cats_dt_coord col, cats_dt_environment value)
 {
         valid_coordinates(&raster->dimension, row, col);
-        raster->values[row][col] = value;
+        raster->values[row][col] = value;  // getter [set_input_environment_raster]
 }
\ No newline at end of file
diff --git a/src/cats/grids/grid_converters.c b/src/cats/grids/grid_converters.c
index b75b043..f76b82a 100644
--- a/src/cats/grids/grid_converters.c
+++ b/src/cats/grids/grid_converters.c
@@ -44,7 +44,7 @@ cats_dt_environment **convert_double_to_environment(const struct cats_2d_array_d
         const cats_dt_coord cols = in_grid->dimension.cols;
         for (int32_t r = 0; r < rows; r++) {
                 for (int32_t c = 0; c < cols; c++) {
-                        array[r][c] = (float) in_grid->data[r][c];
+                        array[r][c] = (float) in_grid->data[r][c]; // converter [convert_double_to_environment]
                 }
         }
 
diff --git a/src/cats/inline_population.h b/src/cats/inline_population.h
index 376a4e2..65f4c54 100644
--- a/src/cats/inline_population.h
+++ b/src/cats/inline_population.h
@@ -50,6 +50,8 @@ get_adult_population(const struct cats_grid *grid, cats_dt_coord row, cats_dt_co
 {
         assert(valid_population_grid(grid, row));
         assert(valid_coordinates(&grid->dimension, row, col));
+        assert(grid->population[row][col] >= 0);        // getter [get_adult_population]
+        return grid->population[row][col];              // getter [get_adult_population]
 }
 
 
@@ -91,8 +93,7 @@ reduce_population_by(const struct cats_grid *grid, cats_dt_coord row, cats_dt_co
 
         cats_dt_population pop = get_adult_population(grid, row, col);
         if (to_reduce > pop) { to_reduce = pop; }
-
-        grid->population[row][col] = pop - to_reduce;// setter;
+        grid->population[row][col] = pop - to_reduce;  // setter [reduce_population_by]
         return to_reduce;
 
 }
@@ -111,7 +112,7 @@ set_population_ignore_cc(const struct cats_grid *grid, const cats_dt_coord row,
                 exit(EXIT_FAILURE);
         }
 
-        if (pop >= 0) grid->population[row][col] = pop; // setter ignore cc;
+        if (pop >= 0) grid->population[row][col] = pop; // setter [set_population_ignore_cc]
 }
 
 
@@ -169,11 +170,11 @@ get_population_ts(const struct cats_grid *grid, const cats_dt_coord row, const c
         assert(valid_population_grid(grid, row));
         assert(valid_coordinates(&grid->dimension, row, col));
 
-        cats_dt_population tmp = grid->population[row][col]; // getter
+        cats_dt_population tmp = grid->population[row][col];    // getter [get_population_ts]
 
         if (unfiltered) *unfiltered = tmp;
 
-        if (grid->population[row][col] >= threshold) {
+        if (grid->population[row][col] >= threshold) {          // getter [get_population_ts]
                 return tmp;
         } else {
                 return 0;
diff --git a/src/cats/misc/debug.c b/src/cats/misc/debug.c
index 7141dd8..acc0c16 100644
--- a/src/cats/misc/debug.c
+++ b/src/cats/misc/debug.c
@@ -55,11 +55,11 @@ void debug_seeds(struct cats_grid *grid, const struct cats_configuration *conf,
 {
         if (row == cats_debug.misc_debug_coords.row && col == cats_debug.misc_debug_coords.col) {
                 fprintf(cats_debug.misc_debug_file, "%d,%d,%s,seeds,%f", grid->id, conf->time.year_current, action,
-                        grid->dispersed_seeds[row][col]);
+                        grid->dispersed_seeds[row][col]);  // debug [debug_seeds]
                 const int32_t seed_persistence = get_vital_age(grid, VA_SEED_PERSISTENCE);
                 for (int32_t i = 0; i < seed_persistence; i++) {
-                        if (grid->seed_bank[row][col]) {
-                                fprintf(cats_debug.misc_debug_file, ",%f", grid->seed_bank[row][col][i]);
+                        if (grid->seed_bank[row][col]) {  // debug [debug_seeds]
+                                fprintf(cats_debug.misc_debug_file, ",%f", grid->seed_bank[row][col][i]); // debug [debug_seeds]
                         } else {
                                 fprintf(cats_debug.misc_debug_file, ",%d", 0);
                         }
diff --git a/src/cats/overlays/overlay_exclusion.c b/src/cats/overlays/overlay_exclusion.c
index f68b869..808b300 100644
--- a/src/cats/overlays/overlay_exclusion.c
+++ b/src/cats/overlays/overlay_exclusion.c
@@ -110,15 +110,15 @@ struct cats_2d_array_char *translate_exclusion(const struct cats_2d_array_double
         for (cats_dt_coord row = 0; row < rows; row++) {
                 for (cats_dt_coord col = 0; col < cols; col++) {
 
-                        const int32_t val = (int32_t) round(data->data[row][col]);
+                        const int32_t val = (int32_t) round(data->data[row][col]); // converter [translate_exclusion]
 
                         if (val == 0) {
-                                result->data[row][col] = OL_EXCLUSION_NOT_EXCLUDED;
+                                result->data[row][col] = OL_EXCLUSION_NOT_EXCLUDED; // converter [translate_exclusion]
                         } else if (isnan(data->data[row][col])) {
-                                result->data[row][col] = OL_EXCLUSION_NAN;
+                                result->data[row][col] = OL_EXCLUSION_NAN; // converter [translate_exclusion]
                                 count += 1;
                         } else {
-                                result->data[row][col] = OL_EXCLUSION_EXCLUDED;
+                                result->data[row][col] = OL_EXCLUSION_EXCLUDED; // converter [translate_exclusion]
                                 count += 1;
                         }
                 }
diff --git a/src/cats/overlays/overlay_habitat_type_cc.c b/src/cats/overlays/overlay_habitat_type_cc.c
index 8752843..d922c15 100644
--- a/src/cats/overlays/overlay_habitat_type_cc.c
+++ b/src/cats/overlays/overlay_habitat_type_cc.c
@@ -129,11 +129,11 @@ struct cats_2d_array_double *translate_habitat(const struct cats_2d_array_double
                         double value = data->data[row][col];
 
                         if (isnan(value)) {
-                                result->data[row][col] = 0.0;
+                                result->data[row][col] = 0.0;  // converter [translate_habitat]
                         } else {
                                 int32_t val = (int32_t) round(value);
                                 double multi = get_habitat_cc_multiplier(habitat_info, val);
-                                result->data[row][col] = multi;
+                                result->data[row][col] = multi;   // converter [translate_habitat]
                         }
                 }
         }
diff --git a/src/cats/overlays/overlay_resources.c b/src/cats/overlays/overlay_resources.c
index 64a171f..55f2578 100644
--- a/src/cats/overlays/overlay_resources.c
+++ b/src/cats/overlays/overlay_resources.c
@@ -14,14 +14,14 @@ struct cats_2d_array_double *translate_resources(const struct cats_2d_array_doub
         for (cats_dt_coord row = 0; row < rows; row++) {
                 for (cats_dt_coord col = 0; col < cols; col++) {
 
-                        double value = data->data[row][col];
+                        double value = data->data[row][col];  // converter [translate_resources]
 
                         if (isnan(value)) {
-                                result->data[row][col] = 0.0;
+                                result->data[row][col] = 0.0;  // converter [translate_resources]
                         } else {
 
                                 if (value <0 ) value = 0;
-                                result->data[row][col] = value;
+                                result->data[row][col] = value; // converter [translate_resources]
                         }
                 }
         }
-- 
GitLab