From 1094f83423e83f7a955d76138b8acce4276e1cd3 Mon Sep 17 00:00:00 2001 From: Huidae Cho Date: Fri, 3 Jan 2025 16:50:46 -0700 Subject: [PATCH 1/2] Fix multiple definitions --- vic/drivers/classic/src/vic_classic.c | 1 + vic/vic_run/include/vic_def.h | 8 +++++++- vic/vic_run/include/vic_log.h | 8 +++++++- vic/vic_run/include/vic_run.h | 8 +++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/vic/drivers/classic/src/vic_classic.c b/vic/drivers/classic/src/vic_classic.c index 24fc0f328..e8110120b 100644 --- a/vic/drivers/classic/src/vic_classic.c +++ b/vic/drivers/classic/src/vic_classic.c @@ -4,6 +4,7 @@ * Classic driver of the VIC model *****************************************************************************/ +#define _MAIN_ #include // global variables diff --git a/vic/vic_run/include/vic_def.h b/vic/vic_run/include/vic_def.h index c4e87903b..f6541f423 100644 --- a/vic/vic_run/include/vic_def.h +++ b/vic/vic_run/include/vic_def.h @@ -69,11 +69,17 @@ #define min(a, b) (a < b) ? a : b #define max(a, b) (a > b) ? a : b +#ifdef _MAIN_ +#define GLOBAL +#else +#define GLOBAL extern +#endif + extern size_t NR; /**< array index for force struct that indicates the model step avarage or sum */ extern size_t NF; /**< array index loop counter limit for force struct that indicates the SNOW_STEP values */ -char vic_run_ref_str[MAXSTRING]; +GLOBAL char vic_run_ref_str[MAXSTRING]; /****************************************************************************** * @brief Snow Density parametrizations diff --git a/vic/vic_run/include/vic_log.h b/vic/vic_run/include/vic_log.h index fbe041076..5d105b962 100644 --- a/vic/vic_run/include/vic_log.h +++ b/vic/vic_run/include/vic_log.h @@ -58,7 +58,13 @@ #define LOG_LVL 25 #endif -FILE *LOG_DEST; +#ifdef _MAIN_ +#define GLOBAL +#else +#define GLOBAL extern +#endif + +GLOBAL FILE *LOG_DEST; void finalize_logging(void); void get_logname(const char *path, int id, char *filename); diff --git a/vic/vic_run/include/vic_run.h b/vic/vic_run/include/vic_run.h index b63bbd765..8e43d60bb 100644 --- a/vic/vic_run/include/vic_run.h +++ b/vic/vic_run/include/vic_run.h @@ -9,6 +9,12 @@ #include +#ifdef _MAIN_ +#define GLOBAL +#else +#define GLOBAL extern +#endif + void advect_carbon_storage(double, double, lake_var_struct *, cell_data_struct *); void advect_snow_storage(double, double, double, snow_data_struct *); @@ -154,7 +160,7 @@ double func_atmos_energy_bal(double, va_list); double func_atmos_moist_bal(double, va_list); double func_canopy_energy_bal(double, va_list); double func_surf_energy_bal(double, va_list); -double (*funcd)(double z, double es, double Wind, double AirDens, double ZO, +GLOBAL double (*funcd)(double z, double es, double Wind, double AirDens, double ZO, double EactAir, double F, double hsalt, double phi_r, double ushear, double Zrh); From b1e3751a81efeed0b59d532ed9ebb19ab224dd05 Mon Sep 17 00:00:00 2001 From: Huidae Cho Date: Fri, 3 Jan 2025 16:57:36 -0700 Subject: [PATCH 2/2] Fix other drivers --- vic/drivers/cesm/src/vic_cesm_start.c | 1 + vic/drivers/image/src/vic_image.c | 1 + vic/drivers/python/src/globals.c | 1 + 3 files changed, 3 insertions(+) diff --git a/vic/drivers/cesm/src/vic_cesm_start.c b/vic/drivers/cesm/src/vic_cesm_start.c index 09a77bccd..23294588b 100644 --- a/vic/drivers/cesm/src/vic_cesm_start.c +++ b/vic/drivers/cesm/src/vic_cesm_start.c @@ -4,6 +4,7 @@ * These routine handles the startup tasks for the CESM driver. *****************************************************************************/ +#define _MAIN_ #include // Do we need this line? #include diff --git a/vic/drivers/image/src/vic_image.c b/vic/drivers/image/src/vic_image.c index 5ef26166c..28f25e3fe 100644 --- a/vic/drivers/image/src/vic_image.c +++ b/vic/drivers/image/src/vic_image.c @@ -4,6 +4,7 @@ * Stand-alone image mode driver of the VIC model *****************************************************************************/ +#define _MAIN_ #include #include // Routing routine (extension) diff --git a/vic/drivers/python/src/globals.c b/vic/drivers/python/src/globals.c index 71ce25205..336475776 100644 --- a/vic/drivers/python/src/globals.c +++ b/vic/drivers/python/src/globals.c @@ -5,6 +5,7 @@ * level. *****************************************************************************/ +#define _MAIN_ #include // global variables