NCEP GFS Model and Operational Dataset Upgrade Incompatibility with ungrib.exe V3.9 (posted 7/13/2017)
Problem: Beginning 1200 UTC, July 19, 2017, NCEP upgraded GFS data, as well as several output datasets provided on its ftp site. The updates, which include adding missing values to land fields (such as soil
temperature, moisture and snow etc.), and changing the landsea mask field, will break the WRF model
if you are not using an updated version of WPS. For complete information regarding NCEP updates, please see
http://www.nws.noaa.gov/os/notification/scn17-67gfsupgrade.htm
Solution: You can download the updated WPS program, WPSV3.9.0.1, from here. If you prefer using older versions of WPS, you still need to use the new ungrib.exe program, new Vtable.GFS, and METGRID.TBL.ARW from this tar file.
If you plan to only build ungrib.exe, download the full WPSV3.9.0.1 tar file, unpack it, and then build only the ungrib.exe executable:
./compile ungrib >& log.compile.ungrib
You can then copy or link the new ungrib.exe executable (found in ungrib/src/) in your older version of WPS/.
**NOTE**
If you are recompiling the above WPS/ungrib code with PGI, you will need 2 files, packaged here. Place this tar file in your WPS/ungrib/src/ngl/g2/ directory, unpack the tar file, and then go back to WPS/ and go through the configure/compile process.
Problem when Compiling with Older Gfortran Compiler
If compiling the WPS code with older versions of gfortran (we have yet to determine exactly how old), you likely will receive errrors such as:
read_namelist.f90:72.25:
add_lvls, new_plvl, interp_type
1
Error: NAMELIST attribute conflicts with ALLOCATABLE attribute in 'new_plvl' at (1)
read_namelist.f90:238.20:
read(10,NML=ungrib,END=100)
1
Error: Symbol 'ungrib' at (1) must be a NAMELIST group name
One solution would be to upgrade to a newer version of gfortran. Another simple, quick solution would be to go into the read_namelist.F file, found in ungrib/src/, and go to line 56. Change it to:
real, dimension(250) :: new_plvl
Then delete line 74:
allocate(new_plvl(size(new_plvl_in)))
and delete line 297:
deallocate(new_plvl)
Save the read_namelist.F file, then recompile again.