Skip to content

WRF V4.1 Known Problems

Kelly Werner edited this page Apr 18, 2019 · 2 revisions

Newer GNU Internal Compiler Error with Bounds Checking (Posted June 8, 2018)

Problem: Starting with GNU/6.4.1 and continuing through (at least) GNU/7.3.0, the fast RRTMG scheme is not able to compile when using the "-d" or "-D" options on the configure command. Starting with GNU/8.1.0, the code is able to build with the debug options.

./configure -D

Below is the message users will see after the build:

module_ra_rrtmg_swf.f90:5612:0:

use rrsw_kg21_f, only : kao, kbo, selfrefo, forrefo, sfluxrefo, &

internal compiler error: in gfc_trans_use_stmts, at fortran/trans-decl.c:4920

module_ra_rrtmg_swf.f90:5612:0: internal compiler error: Abort trap: 6 gfortran: internal compiler error: Abort trap: 6 (program f951)

Solution: Currently, the solution is to remove the offending code (RRTMG fast for longwave and shortwave). After the user constructs the configure.wrf file (after the configure step, and before the compile step), the configure.wrf file is edited. Remove this line:

-DBUILD_RRTMG_FAST=1 \

Then the code may be built as usual. Note that in this condition, the WRF code may not be used to run either of the fast RRTMG schemes.

"Ran out of valid boundary conditions in file wrfbdy_d01" infinite loop

Problem

If a user tried to start a simulation after the last LBC valid period, the WRF model would get into an infinite loop and print out repeated statements:
THIS TIME 2000-01-24_18:00:00, NEXT TIME 2000-01-25_00:00:00
d01 2000-01-25_06:00:00 Input data is acceptable to use: wrfbdy_d01
2 input_wrf: wrf_get_next_time current_date: 2000-01-24_18:00:00 Status = -4
d01 2000-01-25_06:00:00 ---- ERROR: Ran out of valid boundary conditions in file wrfbdy_d01

Solution

The file share/input_wrf.F has been modified to resolve the problem. See the GitHub PR for additional details and specifics on the code modification. Users can download the corrected file here: Modified input_wrf.F
You will need to place the modified file in your share/ directory and then recompile the code. There is no need to issue a 'clean -a' or to reconfigure prior to recompiling.