Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compile PRMS from source is fail #25

Open
zhuzhufeifei opened this issue Sep 12, 2022 · 2 comments
Open

Compile PRMS from source is fail #25

zhuzhufeifei opened this issue Sep 12, 2022 · 2 comments

Comments

@zhuzhufeifei
Copy link

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 since D' 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
Copy link

I'm having the same issue in macOS 13.6.1

@pnorton-usgs
Copy link

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants