nhm-usgs / prms

Precipitation Runoff Modeling System
7 stars 9 forks source link

Compile PRMS from source is fail #25

Open zhuzhufeifei opened 1 year ago

zhuzhufeifei commented 1 year ago

cd ./mmf; make; make[1]: Entering directory '/home/feizhu/Downloads/prms-master/mmf' gcc -O --static -DLINUX -D_UF -c mmf.c gcc -O --static -DLINUX -D_UF -c parse_args.c gcc -O --static -DLINUX -D_UF -c alloc_space.c gcc -O --static -DLINUX -D_UF -c build_lists.c gcc -O --static -DLINUX -D_UF -c setup_cont.c gcc -O --static -DLINUX -D_UF -c decl_control.c gcc -O --static -DLINUX -D_UF -c control_addr.c gcc -O --static -DLINUX -D_UF -c control_var.c gcc -O --static -DLINUX -D_UF -c read_params.c read_params.c: In function ‘error_string’: read_params.c:1299:49: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 239 [-Wformat-truncation=] 1299 | snprintf (buf, 256, "ERROR: %s; file is %s; line number %d", message, file_name, lineNumber); | ^~ ~~~~~ In file included from /usr/include/stdio.h:894, from read_params.c:16: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 33 or more bytes (assuming 288) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | va_arg_pack ()); | ~~~~~ read_params.c: In function ‘warning_string’: read_params.c:1312:51: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 237 [-Wformat-truncation=] 1312 | snprintf (buf, 256, "WARNING: %s; file is %s; line number %d", message, file_name, lineNumber); | ^~ ~~~~~ In file included from /usr/include/stdio.h:894, from read_params.c:16: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin_snprintf_chk’ output 35 or more bytes (assuming 290) into a destination of size 256 71 | return builtin___snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | va_arg_pack ()); | ~~~~~ gcc -O --static -DLINUX -D_UF -c sort_dims.c gcc -O --static -DLINUX -D_UF -c sort_params.c gcc -O --static -DLINUX -D_UF -c sort_vars.c gcc -O --static -DLINUX -D_UF -c var_addr.c gcc -O --static -DLINUX -D_UF -c declvar.c gcc -O --static -DLINUX -D_UF -c str_to_vals.c gcc -O --static -DLINUX -D_UF -c declparam.c declparam.c: In function ‘CHECK_param_in_db’: declparam.c:551:50: warning: ‘builtin_snprintf_chk’ output may be truncated before the last format character [-Wformat-truncation=] 551 | snprintf(dim_names, 256, "%s,%s",dim_names,check_param->dimen[i]->name); | ^ In file included from /usr/include/stdio.h:894, from declparam.c:17: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 2 or more bytes (assuming 257) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~ declparam.c:555:98: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 213 [-Wformat-truncation=] 555 | f (buf1, 256, " The dimensions have been declared as %s and %s.", dimen, dim_names); | ^~ ~~~~~

In file included from /usr/include/stdio.h:894, from declparam.c:17: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 45 or more bytes (assuming 300) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~ gcc -O --static -DLINUX -D_UF -c param_addr.c gcc -O --static -DLINUX -D_UF -c getdim.c gcc -O --static -DLINUX -D_UF -c timing.c gcc -O --static -DLINUX -D_UF -c getparam.c gcc -O --static -DLINUX -D_UF -c umalloc_etc.c gcc -O --static -DLINUX -D_UF -c julday.c gcc -O --static -DLINUX -D_UF -c getvar.c gcc -O --static -DLINUX -D_UF -c julconvert.c gcc -O --static -DLINUX -D_UF -c readvar.c gcc -O --static -DLINUX -D_UF -c decldim.c gcc -O --static -DLINUX -D_UF -c get_times.c gcc -O --static -DLINUX -D_UF -c batch_run.c gcc -O --static -DLINUX -D_UF -c read_control.c read_control.c: In function ‘rc’: read_control.c:148:77: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 218 [-Wformat-truncation=] 148 | nprintf (buf, 256, "WARNING: invalid type; key = %s, line = %s", key, line); | ^~ ~~~~

In file included from /usr/include/stdio.h:894, from read_control.c:17: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 39 or more bytes (assuming 294) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~ read_control.c:135:106: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 173 and 188 [-Wformat-truncation=] 135 | rol: too many control indexes; size = %ld, key = %s, line = %s", size, key, line); | ^~ ~~~~

In file included from /usr/include/stdio.h:894, from read_control.c:17: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 69 or more bytes (assuming 339) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~ read_control.c:127:83: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 212 [-Wformat-truncation=] 127 | f (buf, 256, "read_control: negative size; key = %s, line = %s", key, line); | ^~ ~~~~

In file included from /usr/include/stdio.h:894, from read_control.c:17: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 45 or more bytes (assuming 300) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | va_arg_pack ()); | ~~~~~ gcc -O --static -DLINUX -D_UF -c dim_addr.c gcc -O --static -DLINUX -D_UF -c reset_dim.c gcc -O --static -DLINUX -D_UF -c read_line.c read_line.c: In function ‘DATA_read_init’: read_line.c:354:7: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 354 | fgets (line, max_data_ln_len, (fd[i])->fp); | ^~~~~~~~~~ read_line.c:367:7: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 367 | fgets ((fd[i])->line, max_data_ln_len, (fd[i])->fp); | ^~~~~~~~~~~ read_line.c: In function ‘DATA_find_end’: read_line.c:741:3: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 741 | fgets (line, max_data_ln_len, f_ptr); | ^~~~~~~~ read_line.c:743:5: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 743 | fgets (line, max_data_ln_len, f_ptr); | ^~~~~~~~ read_line.c:745:3: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 745 | fgets (line, max_data_ln_len, f_ptr); | ^~~~~~~~ read_line.c:760:5: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 760 | fgets (line, max_data_ln_len, f_ptr); | ^~~~~~~~ read_line.c:762:7: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 762 | fgets (line, max_data_ln_len, f_ptr); | ^~~~~~~~ read_line.c:764:5: warning: ignoring return value of ‘fgets’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 764 | fgets (line, max_data_ln_len, f_ptr); | ^~~~~~~~ read_line.c: In function ‘read_line’: read_line.c:239:25: warning: argument 1 null where non-null expected [-Wnonnull] 239 | (void)strtod (start_point, &end_point); | ^~~~~~~~ In file included from read_line.c:26: /usr/include/stdlib.h:118:15: note: in a call to function ‘strtod’ declared ‘nonnull’ 118 | extern double strtod (const char *restrict __nptr, | ^~ gcc -O --static -DLINUX -D_UF -c get_elem_add.c gcc -O --static -DLINUX -D_UF -c read_vars.c gcc -O --static -DLINUX -D_UF -c getdimname.c gcc -O --static -DLINUX -D_UF -c save_params.c gcc -O --static -DLINUX -D_UF -c load_param.c gcc -O --static -DLINUX -D_UF -c check_vars.c gcc -O --static -DLINUX -D_UF -c create_vstats.c gcc -O --static -DLINUX -D_UF -c free_vstats.c gcc -O --static -DLINUX -D_UF -c write_vstats.c gcc -O --static -DLINUX -D_UF -c call_modules.c gcc -O --static -DLINUX -D_UF -c call_setdims.c gcc -O --static -DLINUX -D_UF -c read_datainfo.c gcc -O --static -DLINUX -D_UF -c putvar.c gcc -O --static -DLINUX -D_UF -c print_params.c gcc -O --static -DLINUX -D_UF -c print_vars.c gcc -O --static -DLINUX -D_UF -c print_model_info.c gcc -O --static -DLINUX -D_UF -c batch_run_functions.c batch_run_functions.c: In function ‘single_run_pre_init’: batch_run_functions.c:133:83: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 207 [-Wformat-truncation=] 133 | tf (err, 256, "ERROR - single_run: Could not open statvar file '%s'\n", | ^~

134 | statvar_path); | ~~~~

In file included from /usr/include/stdio.h:894, from batch_run_functions.c:14: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output between 52 and 307 bytes into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | va_arg_pack ()); | ~~~~~ batch_run_functions.c:170:34: warning: ‘builtin_snprintf_chk’ output may be truncated before the last format character [-Wformat-truncation=] 170 | snprintf (buf, 256, "%s.%s", ani_path, aniVar_names[i]); | ^ In file included from /usr/include/stdio.h:894, from batch_run_functions.c:14: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 2 or more bytes (assuming 257) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | va_arg_pack ()); | ~~~~~ batch_run_functions.c:212:34: warning: ‘builtin_snprintf_chk’ output may be truncated before the last format character [-Wformat-truncation=] 212 | snprintf (buf, 256, "%s.%s", ani_path, ani_out_dims[i]->name); | ^ In file included from /usr/include/stdio.h:894, from batch_run_functions.c:14: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output 2 or more bytes (assuming 257) into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~ batch_run_functions.c:214:83: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 211 [-Wformat-truncation=] 214 | tf (err, 256, "ERROR - single_run: Could not open ani file '%s'\n", buf); | ^~ ~~~

In file included from /usr/include/stdio.h:894, from batch_run_functions.c:14: /usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘builtin___snprintf_chk’ output between 48 and 303 bytes into a destination of size 256 71 | return builtin_snprintf_chk (s, n, USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~ 72 | __glibc_objsize (s), fmt, | ~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~ gcc -O --static -DLINUX -D_UF -c graph_single_run.c gcc -O --static -DLINUX -D_UF -c control_array.c ar ruv ../mmf/libmmf.a mmf.o parse_args.o alloc_space.o build_lists.o setup_cont.o decl_control.o control_addr.o control_var.o read_params.o sort_dims.o sort_params.o sort_vars.o var_addr.o declvar.o str_to_vals.o declparam.o param_addr.o getdim.o timing.o getparam.o umalloc_etc.o julday.o getvar.o julconvert.o readvar.o decldim.o get_times.o batch_run.o read_control.o dim_addr.o reset_dim.o read_line.o get_elem_add.o read_vars.o getdimname.o save_params.o load_param.o check_vars.o create_vstats.o free_vstats.o write_vstats.o call_modules.o call_setdims.o read_datainfo.o putvar.o print_params.o print_vars.o print_model_info.o batch_run_functions.o graph_single_run.o control_array.o call_setdims.o call_modules.o ar: u' modifier ignored sinceD' is the default (see `U') ar: creating ../mmf/libmmf.a a - mmf.o a - parse_args.o a - alloc_space.o a - build_lists.o a - setup_cont.o a - decl_control.o a - control_addr.o a - control_var.o a - read_params.o a - sort_dims.o a - sort_params.o a - sort_vars.o a - var_addr.o a - declvar.o a - str_to_vals.o a - declparam.o a - param_addr.o a - getdim.o a - timing.o a - getparam.o a - umalloc_etc.o a - julday.o a - getvar.o a - julconvert.o a - readvar.o a - decldim.o a - get_times.o a - batch_run.o a - read_control.o a - dim_addr.o a - reset_dim.o a - read_line.o a - get_elem_add.o a - read_vars.o a - getdimname.o a - save_params.o a - load_param.o a - check_vars.o a - create_vstats.o a - free_vstats.o a - write_vstats.o a - call_modules.o a - call_setdims.o a - read_datainfo.o a - putvar.o a - print_params.o a - print_vars.o a - print_model_info.o a - batch_run_functions.o a - graph_single_run.o a - control_array.o a - call_setdims.o a - call_modules.o ranlib ../mmf/libmmf.a make[1]: Leaving directory '/home/feizhu/Downloads/prms-master/mmf' cd ./prms; make; make[1]: Entering directory '/home/feizhu/Downloads/prms-master/prms' gfortran -c -O --static -fbounds-check -Wall -fno-second-underscore call_modules.f90 gfortran -c -O --static -fbounds-check -Wall -fno-second-underscore basin.f90 basin.f90:267:58:

264 | IF ( getparam(MODNAME, 'hru_area', Nhru, 'real', Hru_area)/=0 ) CALL read_error(2, 'hru_area') | 2
...... 267 | IF ( getparam(MODNAME, 'hru_type', Nhru, 'integer', Hru_type)/=0 ) CALL read_error(2, 'hru_type') | 1 Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)). basin.f90:268:58:

264 | IF ( getparam(MODNAME, 'hru_area', Nhru, 'real', Hru_area)/=0 ) CALL read_error(2, 'hru_area') | 2
...... 268 | IF ( getparam(MODNAME, 'cov_type', Nhru, 'integer', Cov_type)/=0 ) CALL read_error(2, 'cov_type') | 1 Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)). basin.f90:271:57:

264 | IF ( getparam(MODNAME, 'hru_area', Nhru, 'real', Hru_area)/=0 ) CALL read_error(2, 'hru_area') | 2
...... 271 | IF ( getparam(MODNAME, 'elev_units', 1, 'integer', Elev_units)/=0 ) CALL read_error(2, 'elev_units') | 1 Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)). basin.f90:296:63:

264 | IF ( getparam(MODNAME, 'hru_area', Nhru, 'real', Hru_area)/=0 ) CALL read_error(2, 'hru_area') | 2

...... 296 | IF ( getparam(MODNAME, 'lake_hru_id', Nhru, 'integer', Lake_hru_id)/=0 ) CALL read_error(1, 'lake_hru_id') | 1

Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)). basin.f90:299:64:

264 | IF ( getparam(MODNAME, 'hru_area', Nhru, 'real', Hru_area)/=0 ) CALL read_error(2, 'hru_area') | 2

...... 299 | IF ( getparam(MODNAME, 'lake_type', Nlake, 'integer', Lake_type)/=0 ) CALL read_error(2, 'lake_type') | 1

Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(4)). make[1]: [Makefile:197: basin.o] Error 1 make[1]: Leaving directory '/home/feizhu/Downloads/prms-master/prms' make: [Makefile:17: standard] Error 2

ccalvocm commented 8 months ago

I'm having the same issue in macOS 13.6.1

pnorton-usgs commented 7 months ago

In the makelist file try adding -fallow-argument-mismatch to your FFLAGS.

`FFLAGS= $(OPTLEVEL) -fno-second-underscore -fallow-argument-mismatch`