From f855ffb0a4e34c2fb021fac0e2bddde35d7a1c26 Mon Sep 17 00:00:00 2001 From: "James V. Geiger" Date: Tue, 7 Nov 2023 16:46:46 +0000 Subject: [PATCH 1/6] Add function prototypes to address compiler error error: ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] --- lis/surfacemodels/land/rdhm.3.5.6/frz/gen_frzst.c | 4 ++++ lis/surfacemodels/land/rdhm.3.5.6/frz/scale_frzst.c | 8 ++++++++ lis/surfacemodels/land/rdhm.3.5.6/rdhm_get_ped.c | 3 +++ lis/surfacemodels/land/rdhm.3.5.6/sac/days_of_month.c | 2 ++ lis/surfacemodels/land/rdhm.3.5.6/sac/get_daily_pe.c | 2 ++ lis/surfacemodels/land/rdhm.3.5.6/sac/get_ped.c | 2 ++ 6 files changed, 21 insertions(+) diff --git a/lis/surfacemodels/land/rdhm.3.5.6/frz/gen_frzst.c b/lis/surfacemodels/land/rdhm.3.5.6/frz/gen_frzst.c index ca6f22a08..295d8ead3 100755 --- a/lis/surfacemodels/land/rdhm.3.5.6/frz/gen_frzst.c +++ b/lis/surfacemodels/land/rdhm.3.5.6/frz/gen_frzst.c @@ -6,6 +6,10 @@ #include "linux.h" /* #include "models.h" */ +extern void fstfg1_(int *, int *, int *, int *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *); + +extern void frzind1_(float *, float *, float *, float *, int *, float *, float *, float *); + int gen_frzst(int npix, int *nsoil, int *nupl, float *sac_parx, float *frz_parx, float *frz_stx, float *sac_stx, float *sacst_prv, float *smc, float *sh2o, float dthr, diff --git a/lis/surfacemodels/land/rdhm.3.5.6/frz/scale_frzst.c b/lis/surfacemodels/land/rdhm.3.5.6/frz/scale_frzst.c index a3b7c3062..a15c23eb8 100755 --- a/lis/surfacemodels/land/rdhm.3.5.6/frz/scale_frzst.c +++ b/lis/surfacemodels/land/rdhm.3.5.6/frz/scale_frzst.c @@ -4,6 +4,14 @@ #include "com_header.h" #include "linux.h" +extern void fstfg1_(int *, int *, int *, int *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *, float *); + +extern void soil_int1_(float *,int *,float *,float *,int *,float *); + +extern void scale_sh2o_(float *, float *, float *, int *, int *, float *, float *, float *, float *, float *, float *, float *); + +extern void frzind1_(float *, float *, float *, float *, int *, float *, float *, float *); + int scale_frzst(int npix, int *nsoil, int *nupl, float *sac_parx, float *frz_parx, float *frz_stx, float *sac_stx, float *sacst_prv, float *smc, float *sh2o, float dthr, diff --git a/lis/surfacemodels/land/rdhm.3.5.6/rdhm_get_ped.c b/lis/surfacemodels/land/rdhm.3.5.6/rdhm_get_ped.c index b0a3358b1..ad97bf88e 100755 --- a/lis/surfacemodels/land/rdhm.3.5.6/rdhm_get_ped.c +++ b/lis/surfacemodels/land/rdhm.3.5.6/rdhm_get_ped.c @@ -9,6 +9,9 @@ //-------------------------END NOTICE -- DO NOT EDIT----------------------- /* wrapper for calling get_ped Shugong Wang 10/25/2013 */ + +extern void get_ped(int, int, int, int, int, float *, float *, float *); + void rdhm_get_ped_(int *year, /* */ int *month, /* */ int *day, /* */ diff --git a/lis/surfacemodels/land/rdhm.3.5.6/sac/days_of_month.c b/lis/surfacemodels/land/rdhm.3.5.6/sac/days_of_month.c index cef3f38c3..b109acf20 100755 --- a/lis/surfacemodels/land/rdhm.3.5.6/sac/days_of_month.c +++ b/lis/surfacemodels/land/rdhm.3.5.6/sac/days_of_month.c @@ -13,6 +13,8 @@ #include "com_header.h" #include "models.h" +extern int is_leap_year(int); + int days_of_month(int m, int y) { int num_days[12]={31,28,31,30,31,30,31,31,30,31,30,31}; diff --git a/lis/surfacemodels/land/rdhm.3.5.6/sac/get_daily_pe.c b/lis/surfacemodels/land/rdhm.3.5.6/sac/get_daily_pe.c index e6f2aa2c1..d30f3a0fa 100755 --- a/lis/surfacemodels/land/rdhm.3.5.6/sac/get_daily_pe.c +++ b/lis/surfacemodels/land/rdhm.3.5.6/sac/get_daily_pe.c @@ -15,6 +15,8 @@ #include "models.h" +extern int days_of_month(int, int); + void get_daily_pe(int yr, int mon, int day, int npix, float *pe, float *pe_adj, float *pe_day) { diff --git a/lis/surfacemodels/land/rdhm.3.5.6/sac/get_ped.c b/lis/surfacemodels/land/rdhm.3.5.6/sac/get_ped.c index 65dca8f2b..80af81203 100755 --- a/lis/surfacemodels/land/rdhm.3.5.6/sac/get_ped.c +++ b/lis/surfacemodels/land/rdhm.3.5.6/sac/get_ped.c @@ -16,6 +16,8 @@ #include "com_header.h" #include "models.h" +extern void get_daily_pe(int, int, int, int, float *, float *, float *); + void get_ped(int y, int m, int d, int npix, int dtm, float *pe, float *pe_adj, float *ped) { From a01370a38c2247c045d118dc48eff68429f8848e Mon Sep 17 00:00:00 2001 From: "James V. Geiger" Date: Wed, 8 Nov 2023 18:15:20 +0000 Subject: [PATCH 2/6] Temporarily disable call to vic411_read_vegparam in setup_vic411.c --- lis/surfacemodels/land/vic.4.1.1/setup_vic411.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c b/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c index eaec5d847..ac6505528 100644 --- a/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c +++ b/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c @@ -304,8 +304,10 @@ void FTN(setup_vic411)(int *NGRIDS, int *NTILES, if ( *vtscheme == VIC_BASED ) { /** Read Grid Cell Vegetation Parameters **/ + /* kluge vic411_lis_veg_con[t] = vic411_read_vegparam(vic411_filep.vegparam, vic411_lis_soil_con[t].gridcel, Nveg_type); + */ } else { From a35dd0e3db61846bf8a0c7fdd9f9d674c0957935 Mon Sep 17 00:00:00 2001 From: "James V. Geiger" Date: Wed, 8 Nov 2023 18:18:37 +0000 Subject: [PATCH 3/6] Add function prototypes to address compiler error error: ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] --- lis/surfacemodels/land/vic.4.1.1/setup_vic411.c | 4 ++++ lis/surfacemodels/land/vic.4.1.1/vic411_run.c | 3 +-- lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c | 2 ++ .../land/vic.4.1.2.l/physics/initialize_model_state.c | 2 ++ lis/surfacemodels/land/vic.4.1.2.l/set_vegparam.c | 2 ++ lis/surfacemodels/land/vic.4.1.2.l/setup_vic412.c | 4 ++++ lis/surfacemodels/land/vic.4.1.2.l/vic412_run.c | 3 +-- lis/surfacemodels/land/vic.4.1.2.l/vic412_write_atmos.c | 2 ++ lis/surfacemodels/land/vic.4.1.2.l/vic412_write_state.c | 3 +++ 9 files changed, 21 insertions(+), 4 deletions(-) diff --git a/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c b/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c index ac6505528..1a64140c2 100644 --- a/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c +++ b/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c @@ -17,6 +17,10 @@ #define VIC_BASED ( 0 ) #define LIS_BASED ( 1 ) +extern void vic411_lis_scan_soilparam_flat_ascii(FILE *, float *, float *); + +extern void vic411_compute_treeline_lis(double, double *, char *); + vic411_soil_con_struct vic411_lis_read_soilparam_arc(FILE *, char *, float *, float *); vic411_veg_con_struct *vic411_set_vegparam(int tile_idx, // index of current tile int vegclass, // vegetation class determined by LIS diff --git a/lis/surfacemodels/land/vic.4.1.1/vic411_run.c b/lis/surfacemodels/land/vic.4.1.1/vic411_run.c index f30fa281b..c41114f99 100644 --- a/lis/surfacemodels/land/vic.4.1.1/vic411_run.c +++ b/lis/surfacemodels/land/vic.4.1.1/vic411_run.c @@ -18,8 +18,7 @@ #define VIC_BASED 0 /* VIC based tiling */ #define LIS_BASED 1 /* LIS based tiling */ -//extern void FTN(vic411_diagnoseoutputvar)(int, int, int, int, float, -// char *, char *); +extern void FTN(vic411_diagnoseoutputvar)(int *, int *, int *, int *, double *, char *, int *, char *, int *); //BOP // diff --git a/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c b/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c index 0c0845779..a5e036a4f 100644 --- a/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c +++ b/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c @@ -14,6 +14,8 @@ #define BARETYPE ( 12 ) // UMD -- HARDCODED! +extern int vic411_read_vegparam(FILE *, int, int, int, vic411_veg_con_struct *); + int vic411_real_2_vic(int real_type, int Nveg_type) { extern vic411_veg_lib_struct *vic411_veg_lib; diff --git a/lis/surfacemodels/land/vic.4.1.2.l/physics/initialize_model_state.c b/lis/surfacemodels/land/vic.4.1.2.l/physics/initialize_model_state.c index a79475e00..d9a4e01e0 100644 --- a/lis/surfacemodels/land/vic.4.1.2.l/physics/initialize_model_state.c +++ b/lis/surfacemodels/land/vic.4.1.2.l/physics/initialize_model_state.c @@ -5,6 +5,8 @@ static char vcid[] = "$Id$"; +extern void unpack_model_state(dist_prcp_struct *, global_param_struct *, int, int, int, soil_con_struct *, int, char *, int *, lake_con_struct, float *); + int initialize_model_state(dist_prcp_struct *prcp, dmy_struct dmy, global_param_struct *global_param, diff --git a/lis/surfacemodels/land/vic.4.1.2.l/set_vegparam.c b/lis/surfacemodels/land/vic.4.1.2.l/set_vegparam.c index f1d3923ce..043efd7ea 100755 --- a/lis/surfacemodels/land/vic.4.1.2.l/set_vegparam.c +++ b/lis/surfacemodels/land/vic.4.1.2.l/set_vegparam.c @@ -14,6 +14,8 @@ #define BARETYPE ( 12 ) // UMD -- HARDCODED! +extern int vic412_read_vegparam(FILE *, int, int, int, veg_con_struct *); + int real_2_vic(int real_type, int Nveg_type) { extern veg_lib_struct *veg_lib; diff --git a/lis/surfacemodels/land/vic.4.1.2.l/setup_vic412.c b/lis/surfacemodels/land/vic.4.1.2.l/setup_vic412.c index 305cf4586..0d11b4f81 100755 --- a/lis/surfacemodels/land/vic.4.1.2.l/setup_vic412.c +++ b/lis/surfacemodels/land/vic.4.1.2.l/setup_vic412.c @@ -17,6 +17,10 @@ #define VIC_BASED ( 0 ) #define LIS_BASED ( 1 ) +extern void lis_scan_soilparam_flat_ascii(FILE *, float *, float *); + +extern void vic412_compute_treeline(double, double *, char *); + soil_con_struct *lis_soil_con; dmy_struct *dmy; atmos_data_struct **lis_atmos; diff --git a/lis/surfacemodels/land/vic.4.1.2.l/vic412_run.c b/lis/surfacemodels/land/vic.4.1.2.l/vic412_run.c index eaa138800..f6e322776 100644 --- a/lis/surfacemodels/land/vic.4.1.2.l/vic412_run.c +++ b/lis/surfacemodels/land/vic.4.1.2.l/vic412_run.c @@ -18,8 +18,7 @@ #define VIC_BASED 0 /* VIC based tiling */ #define LIS_BASED 1 /* LIS based tiling */ -//extern void FTN(vic412_diagnoseoutputvar)(int, int, int, int, float, -// char *, char *); +extern void FTN(vic412_diagnoseoutputvar)(int *, int *, int *, int *, double *, char *, int *, char *, int *); //BOP // diff --git a/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_atmos.c b/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_atmos.c index 81874bb5d..9830394a3 100755 --- a/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_atmos.c +++ b/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_atmos.c @@ -11,6 +11,8 @@ #include #include "ftn.h" +extern void write_atmosdata(atmos_data_struct *, int); + //BOP // // !ROUTINE: vic412_write_atmos diff --git a/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_state.c b/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_state.c index 3a57c3e89..4fbd36c50 100755 --- a/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_state.c +++ b/lis/surfacemodels/land/vic.4.1.2.l/vic412_write_state.c @@ -13,6 +13,9 @@ #include "ftn.h" #define VIC_BASED 0 /** VIC based vegetation tiling Added by Shugong Wang on 05/01/2012 **/ #define LIS_BASED 1 /** LIS based vegetation tiling Added by Shugong Wang on 05/01/2012 **/ + +extern void pack_model_state(dist_prcp_struct *, global_param_struct *, int, int, filep_struct *, soil_con_struct *, char *, int *, float *, int *); + //BOP // // !ROUTINE: vic412_write_state From 24d28f62d5031e2e317d2efc7664357f10fea3ea Mon Sep 17 00:00:00 2001 From: "James V. Geiger" Date: Wed, 8 Nov 2023 19:51:18 +0000 Subject: [PATCH 4/6] Restore original version of vic411_read_vegparam.c --- .../{vic411_read_vegparam.c.origin => vic411_read_vegparam.c} | 0 .../{vic411_read_vegparam.c => vic411_read_vegparam_lis.c} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename lis/surfacemodels/land/vic.4.1.1/physics/{vic411_read_vegparam.c.origin => vic411_read_vegparam.c} (100%) rename lis/surfacemodels/land/vic.4.1.1/{vic411_read_vegparam.c => vic411_read_vegparam_lis.c} (100%) diff --git a/lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c.origin b/lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c similarity index 100% rename from lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c.origin rename to lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c diff --git a/lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam.c b/lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c similarity index 100% rename from lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam.c rename to lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c From 4c14b2617e7649ae9b56b84f11a439154bc6b6e0 Mon Sep 17 00:00:00 2001 From: "James V. Geiger" Date: Wed, 8 Nov 2023 20:38:32 +0000 Subject: [PATCH 5/6] Restore vic411_read_vegparam Use vic411_read_vegparam with the VIC tiling scheme. Use vic411_read_vegparam_lis with the LIS tiling scheme. See 'VIC411 veg tiling scheme:' in the LIS Users' Guide. --- .../land/vic.4.1.1/physics/vic411_read_vegparam.c | 4 ++-- lis/surfacemodels/land/vic.4.1.1/physics/vic411_vicNl.h | 2 +- lis/surfacemodels/land/vic.4.1.1/setup_vic411.c | 2 -- lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c | 4 ++-- lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c | 4 ++-- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c b/lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c index b50986ec4..a87371872 100644 --- a/lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c +++ b/lis/surfacemodels/land/vic.4.1.1/physics/vic411_read_vegparam.c @@ -359,7 +359,7 @@ vic411_veg_con_struct *vic411_read_vegparam(FILE *vegparam, - +#if 0 /* trim trailing newlines */ #define END '\0' @@ -372,4 +372,4 @@ void vic411_ttrim( char *c ) for( ; *--c == NEW; *c = END ); } - +#endif diff --git a/lis/surfacemodels/land/vic.4.1.1/physics/vic411_vicNl.h b/lis/surfacemodels/land/vic.4.1.1/physics/vic411_vicNl.h index 72507a592..e04da3738 100644 --- a/lis/surfacemodels/land/vic.4.1.1/physics/vic411_vicNl.h +++ b/lis/surfacemodels/land/vic.4.1.1/physics/vic411_vicNl.h @@ -395,7 +395,7 @@ void read_snowmodel(vic411_atmos_data_struct *, FILE *, int, int, int, int); vic411_soil_con_struct vic411_read_soilparam(FILE *, int); //vic411_soil_con_struct vic411_read_soilparam_arc(FILE *, char *, int *, int *, int); vic411_veg_lib_struct *vic411_read_veglib(FILE *, int *); -// vic411_veg_con_struct *vic411_read_vegparam(FILE *, int, int); +vic411_veg_con_struct *vic411_read_vegparam(FILE *, int, int); int vic411_redistribute_during_storm(vic411_cell_data_struct ***, vic411_veg_var_struct ***, int, int, int, double, double, double, double *); diff --git a/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c b/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c index 1a64140c2..b7fabf560 100644 --- a/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c +++ b/lis/surfacemodels/land/vic.4.1.1/setup_vic411.c @@ -308,10 +308,8 @@ void FTN(setup_vic411)(int *NGRIDS, int *NTILES, if ( *vtscheme == VIC_BASED ) { /** Read Grid Cell Vegetation Parameters **/ - /* kluge vic411_lis_veg_con[t] = vic411_read_vegparam(vic411_filep.vegparam, vic411_lis_soil_con[t].gridcel, Nveg_type); - */ } else { diff --git a/lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c b/lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c index c89ba26df..e02ca8bfb 100644 --- a/lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c +++ b/lis/surfacemodels/land/vic.4.1.1/vic411_read_vegparam_lis.c @@ -13,9 +13,9 @@ #include "vic411_vicNl.h" #include -static char vcid[] = "$Id: vic411_read_vegparam.c,v 4.5.2.11 2009/10/01 21:12:16 vicadmin Exp $"; +static char vcid[] = "$Id: vic411_read_vegparam_lis.c,v 4.5.2.11 2009/10/01 21:12:16 vicadmin Exp $"; // shugong: if cannot find entry for the gridid+vegetation class, return 0, other return 1 -int vic411_read_vegparam(FILE *vegparam, +int vic411_read_vegparam_lis(FILE *vegparam, int gridcel, int Nveg_type, int lis_veg_class, diff --git a/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c b/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c index a5e036a4f..cfe7e8c04 100644 --- a/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c +++ b/lis/surfacemodels/land/vic.4.1.1/vic411_set_vegparam.c @@ -14,7 +14,7 @@ #define BARETYPE ( 12 ) // UMD -- HARDCODED! -extern int vic411_read_vegparam(FILE *, int, int, int, vic411_veg_con_struct *); +extern int vic411_read_vegparam_lis(FILE *, int, int, int, vic411_veg_con_struct *); int vic411_real_2_vic(int real_type, int Nveg_type) { @@ -361,7 +361,7 @@ vic411_veg_con_struct *vic411_set_vegparam(int tile_idx, depth_sum = 0; // added by Shugong Wang to read in root zone information and update vic411_lis_veg_lib - vic411_flag = vic411_read_vegparam(fp_vegparam, gridcel , Nveg_type, vegclass, &(temp[i])); + vic411_flag = vic411_read_vegparam_lis(fp_vegparam, gridcel , Nveg_type, vegclass, &(temp[i])); if(vic411_flag==0) // cannot find veg parameters { // Since root zones are not defined they are copied from the last From f69fcbddb05ed7f8120c4e5798b6a6891126102b Mon Sep 17 00:00:00 2001 From: Eric Kemp Date: Thu, 9 Nov 2023 21:33:38 +0000 Subject: [PATCH 6/6] Removed two debug flags rejected by new Intel ICX compiler. This is to allow compiling with debugging on Narwhal. --- lis/arch/Config.pl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lis/arch/Config.pl b/lis/arch/Config.pl index c26605256..1d954cc1e 100755 --- a/lis/arch/Config.pl +++ b/lis/arch/Config.pl @@ -165,9 +165,11 @@ $sys_c_opt .= " -Wunused-function -Wunused-parameter"; $sys_c_opt .= " -Wunused-variable -Wwrite-strings"; # Run-time flags - $sys_c_opt .= " -check=conversions,stack,uninit"; + #EMK 20231109...Disabled several flags that are rejected by the new ICX + #compiler on Narwhal. + #$sys_c_opt .= " -check=conversions,stack,uninit"; $sys_c_opt .= " -fp-stack-check -fp-trap=common -fp-trap-all=common"; - $sys_c_opt .= " -ftrapuv"; + #$sys_c_opt .= " -ftrapuv"; } elsif($sys_arch eq "linux_pgi") { print "Optimization level $opt_lev is not defined for $sys_arch.\n";