Resolves building issues with Intel compilers (ifx/icx)#1823
Resolves building issues with Intel compilers (ifx/icx)#1823weiwangncar merged 4 commits intowrf-model:release-v4.5.2from mgs-52:master
Conversation
Adding/Replacing missing prototypes. Remove unsupported/bogus compiler switches.
|
Jenkins test results: |
|
@mgs-52 This should target |
|
Yes, this should go into the next release. My own testing with the latest Intel compilers from their download page also works with these updates |
|
@mgs-52 Can you let us know your affiliation, so that we can fill the SOURCE section of the PR? Thanks. |
|
@mgs-52 Any updates? I think affiliation/SOURCE is the last change needed |
|
Well. Technically I'm working in Intel. However this change I did on my own so fill free to Include Intel or not :). |
How about your name? Would you want to include your real name? With that, we don't have to add Intel. |
|
Alexander (Alex) Knyazev. |
|
@mgduda When you get a chance, could you take a look at this? Ignoring whitespace changes most of the edits are rearrangement of function order and fixing bad function signatures (implicit returns and Fortran-esque argument typing) |
|
@mgs-52 May you please do the same job for the codes under WRF/chem (especially those of KPP) as well? I guess WRF-chem users may also get trouble with ifx/icx. Actually, I have done the code modification dealing with the issues of missing of prototypes and function order, and successfully built the WRF with WRF_CHEM=1 and WRF_KPP=1 using the newest Intel compilers. Well, as this is of the same issue that this pull is dealing with, I therefore suggest to complete the same job taking into account WRF-chem before the pull to be merged. What do you think @weiwangncar @islas? |
|
@ahheo Can you point out the files you modified for ifx/icx in chem/ directory? I think it is also ok to do another PR to address WRF-Chem. |
|
@weiwangncar I have done another PR #1942 as you suggested. |
|
@mgs-52 Alexander Knyazev, |
Intel, but I as stated above this doesn't need to be included since I did it on my own. |
Fixes compilation using Intel oneAPI compiler
|
Adding/Replacing missing prototypes. Remove unsupported/bogus compiler switches. TYPE: Bug fix KEYWORDS: Missing prototypes, old unsupported compile options SOURCE: Alexander Knyazev DESCRIPTION OF CHANGES: Problem: Most C code written long ago. No prototypes were used. Solution: Add missing prototypes. LIST OF MODIFIED FILES: external/io_grib1/grib1_util/read_grib.c external/io_grib1/grib1_util/write_grib.c external/io_grib1/grib1_util/read_grib.h external/io_grib1/MEL_grib1/FTP_getfile.c external/io_grib1/MEL_grib1/gribfuncs.h external/io_grib1/MEL_grib1/gribgetbds.c external/io_grib1/MEL_grib1/upd_child_errmsg.c external/io_grib1/MEL_grib1/gribhdr2file.c external/io_grib1/MEL_grib1/init_enc_struct.c external/io_grib1/MEL_grib1/init_gribhdr.c external/io_grib1/MEL_grib1/init_struct.c external/io_grib1/MEL_grib1/ld_enc_input.c external/io_grib1/MEL_grib1/ld_enc_lookup.c external/io_grib1/MEL_grib1/map_lvl.c external/io_grib1/MEL_grib1/map_parm.c external/io_grib1/MEL_grib1/prt_inp_struct.c external/io_grib1/MEL_grib1/prt_badmsg.c external/io_grib1/MEL_grib1/set_bytes.c external/io_grib1/MEL_grib1/ld_grib_origctrs.c external/io_grib1/gribmap.c external/io_grib1/grib1_routines.c external/io_grib1/gribmap.h external/io_grib1/trim.c external/io_grib1/trim.h external/io_grib_share/get_region_center.c external/io_grib_share/open_file.c external/RSL_LITE/gen_comms.c external/RSL_LITE/c_code.c external/RSL_LITE/buf_for_proc.c external/RSL_LITE/rsl_malloc.c external/RSL_LITE/rsl_bcast.c external/RSL_LITE/task_for_point.c external/RSL_LITE/period.c external/RSL_LITE/swap.c external/RSL_LITE/cycle.c external/RSL_LITE/rsl_lite.h tools/protos.h tools/reg_parse.c tools/misc.c tools/symtab_gen.c tools/gen_config.c tools/sym.c tools/gen_streams.c tools/gen_irr_diag.c tools/sym.h frame/pack_utils.c arch/configure.defaults TESTS CONDUCTED: 1. Compilation with Intel oneAPI compiler works with these changes. 2. The Jenkins tests are all passing. RELEASE NOTE: This PR fixed some c code by adding and replacing missing prototypes. This also allows the new Intel oneAPI compiler to work. Remove unsupported/bogus compiler switches.
Adding/Replacing missing prototypes. Remove unsupported/bogus compiler switches.
TYPE: Bug fix
KEYWORDS: Missing Prototypes
SOURCE: Alexander Knyazev
DESCRIPTION OF CHANGES:
Problem: Most C code written long ago. No prototypes were used.
Solution:
Add missing prototypes.
LIST OF MODIFIED FILES:
external/io_grib1/grib1_util/read_grib.c
external/io_grib1/grib1_util/write_grib.c
external/io_grib1/grib1_util/read_grib.h
external/io_grib1/MEL_grib1/FTP_getfile.c
external/io_grib1/MEL_grib1/gribfuncs.h
external/io_grib1/MEL_grib1/gribgetbds.c
external/io_grib1/MEL_grib1/upd_child_errmsg.c
external/io_grib1/MEL_grib1/gribhdr2file.c
external/io_grib1/MEL_grib1/init_enc_struct.c
external/io_grib1/MEL_grib1/init_gribhdr.c
external/io_grib1/MEL_grib1/init_struct.c
external/io_grib1/MEL_grib1/ld_enc_input.c
external/io_grib1/MEL_grib1/ld_enc_lookup.c
external/io_grib1/MEL_grib1/map_lvl.c
external/io_grib1/MEL_grib1/map_parm.c
external/io_grib1/MEL_grib1/prt_inp_struct.c
external/io_grib1/MEL_grib1/prt_badmsg.c
external/io_grib1/MEL_grib1/set_bytes.c
external/io_grib1/MEL_grib1/ld_grib_origctrs.c
external/io_grib1/gribmap.c
external/io_grib1/grib1_routines.c
external/io_grib1/gribmap.h
external/io_grib1/trim.c
external/io_grib1/trim.h
external/io_grib_share/get_region_center.c
external/io_grib_share/open_file.c
external/RSL_LITE/gen_comms.c
external/RSL_LITE/c_code.c
external/RSL_LITE/buf_for_proc.c
external/RSL_LITE/rsl_malloc.c
external/RSL_LITE/rsl_bcast.c
external/RSL_LITE/task_for_point.c
external/RSL_LITE/period.c
external/RSL_LITE/swap.c
external/RSL_LITE/cycle.c
external/RSL_LITE/rsl_lite.h
tools/protos.h
tools/reg_parse.c
tools/misc.c
tools/symtab_gen.c
tools/gen_config.c
tools/sym.c
tools/gen_streams.c
tools/gen_irr_diag.c
tools/sym.h
frame/pack_utils.c
arch/configure.defaults
TESTS CONDUCTED:
RELEASE NOTE: This PR fixed some c code by adding and replacing missing prototypes to allow Intel oneAPI compiler to work. Remove unsupported/bogus compiler switches.