-
Notifications
You must be signed in to change notification settings - Fork 718
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
Bufrlib C code fix for WRFDA build with intel oneAPI compiler and a run-time segfault Fortran bugfix #1972
Conversation
The regression test results:
|
@weiwangncar We'd prefer to go with current flag solution given resource/time limitation. We could look at for a code fix in a future time. |
In my opinion, it would be much better to fix the code than to add compiler flags ( |
@weiwangncar @mgduda it is perhaps hard to fix this in code level in short time. It is fine to me to leave this out for now and inform users about this. |
Or is there a way we only add these flags for WRFDA build, but exclude them for WRF build? |
Tao Sun @mos3r3n told me that there are not too many C code in the bufr lib. He will look into it. |
I have modified the bufrlib.h and stseq.c in var/external/bufr. Now on Derecho with intel oneAPI compiler WRFDA can be compiled successfully. I also did two simple 3dvar tests to assimilate the conventional data from little_r format and from prepbufr format, respectively. Both tests succeed. |
I use the three modified files and compile WRFDA with intel oneAPI on Derecho, and yet I got error Am I missing something here? |
Can you provide more info about how you did exactly? e.g., what module environment you loaded, then followed by what configure/compile steps? |
I replaced the original files in WRFDA with the modified preproc.sh, da_fill_obs_structures.inc, and configure.defaults from this github. I loaded intel-oneAPI to replace intel compiler. The other modules I have are ncarenv/23.06, craype/2.7.20, hdf5/1.12.2, netcdf/4.9.2, cray-mpich/8.1.25, ncarcompilers/1.00. I cleaned up the WRFDA directory using ./clean -aa. Then I did the configuration i.e., ./configure wrfda with option #50, followed by the compilation i.e, ./compile all_wrfvar >& compile.out. |
Are you compiling the latest develop branch along with 3 modified files or an older version? |
I am using wrfda from wrf4.2.2. It is an older version. |
These are the modules I am using for the develop branch:
When doing configure, I chose 78 instead of 50. The option 50 is not for intel oneAPI. You need to switch to intel-classic for option 50. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code changes look good to me. I'd only suggest filling in the details in the PR description template.
The last change passed the regression test:
|
@Bayu-Risanto If you're using code prior to 4.5.2, you should not use oneAPI. Try |
Okay. Thank you. I installed the WRFDA from WRFv4.5.2 successfully, though I still have a problem with running the da_wrfvar.exe. Some ens members still crashed, producing segmentation faults. Some others were completed successfully. I am not sure where it went wrong. |
Hello... I am using da_wrfvar.exe to perturb my model (HRRR) initiation. However, in some of the members, I get something like this. the rsl.error.0000 says that it is completed but it also says segmentation fault. Can somebody help and tell me what is happening here? Thank you. `taskid: 0 hostname: dec1644 Parent domain DYNAMICS OPTION: Eulerian Mass Coordinate
|
Bufrlib C code fix for WRFDA build with intel oneAPI compiler and a run-time segfault Fortran bugfix
TYPE: bugfix
KEYWORDS: WRFDA, Intel OneAPI, segfault
SOURCE: Tao Sun (NCAR)
ISSUE: For use when this PR closes an issue.
Fixes #1957
LIST OF MODIFIED FILES:
M var/da/da_obs/da_fill_obs_structures.inc
M var/external/bufr/preproc.sh
M var/external/bufr/stseq.c
M var/external/bufr/bufrlib.h
TESTS CONDUCTED: