Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

ERROR in WPS Compiling with dmpar


New member
Hi, everyone!
I have installed WRF-V4.2 successfully using ifort/icc compiler with the selection of 16, dm+sm
But I encountered errors when compiling the WPS-V4.2 with the selection of 19, ifort/icc compiler, dm. The ungrib.exe was successfully built, but the other two failed.
I supposed the errors were associated with the MPI library or incorrect environment varibles and tried to revise the configure.wps, but it didn't work.
Since the domain is very large, I need the dmpar for WPS dealing.
Attached are the configure.wrf; log.compile for WRF-V4.2; configure.wps and log.compile for WPS-V4.2 and the ~/.bashrc.
Thank you for your helps!!


  • bashrc1.png
    15.2 KB · Views: 7
  • bashrc2.png
    43.6 KB · Views: 4
  • configure.wps
    3.3 KB · Views: 3
  • log.compile.wps
    123.2 KB · Views: 3
  • WPS_configure.png
    93.9 KB · Views: 4
  • WRF_configuration.png
    74.8 KB · Views: 4
  • configure.wrf.txt
    23.1 KB · Views: 1
  • log.compile.txt
    874 KB · Views: 1
Last edited:
The issue is that you used a shared memory option when compiling WRF, which is perfectly fine, but WPS is trying to link against the I/O from WRF and needs information about the OpenMP stuff. Since you are using an Intel compiler, try these steps to recompile WPS.

1) ./clean -a
2) ./configure
- after you create your configure.wps file, go into it and look for the line for "WRF_LIB."
WRF_LIB         =       -L$(WRF_DIR)/external/io_grib1 -lio_grib1 \
                        -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \
                        -L$(WRF_DIR)/external/io_int -lwrfio_int \
                        -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \
                        -L$(NETCDF)/lib -lnetcdff -lnetcdf

and add "-liomp5 -lpthread" to the end on the bottom line, so that it looks like
WRF_LIB         =       -L$(WRF_DIR)/external/io_grib1 -lio_grib1 \
                        -L$(WRF_DIR)/external/io_grib_share -lio_grib_share \
                        -L$(WRF_DIR)/external/io_int -lwrfio_int \
                        -L$(WRF_DIR)/external/io_netcdf -lwrfio_nf \
                        -L$(NETCDF)/lib -lnetcdff -lnetcdf -liomp5 -lpthread

Save that file and recompile, and see if that works better.

As a side note, unless you are planning to use very large domains (thousands x thousands of grid points), it's not really necessary to use a distributed memory option for compiling WPS, even if you used it for your WRF compile. The WPS executables run pretty quickly, so we typically recommend just using a serial option.
Hi, kwerner
Thank you for your generous help!!
I have solved this issue by modifying the configure.wrf and configure.wps. and recompiling both the WRF-V4.2 and WPS-V4.2.
I guess the main problem was that I didn't modify the following two settings as it tells in the configure.wrf.

--------from configure.wrf--------------------------------------------------
# If you have Intel MPI installed and wish to use instead, make the
# following changes to settings below:
# DM_FC = mpiifort
# DM_CC = mpiicc

Although the WRF-V4.2 was successfully compiled, the compiling of WPS-V4.2 with dm selection failed even I have modified those in the configure.wps.
The key point is to keep the DM_FC and DM_CC the same for the compiling the WRF and WPS, which are shown in the following figures.

The method you mentioned above may be another effective solution.
Thank you for your help!
Attached are the modified configure.wps and configure.wrf that can successfully configured and compiled.
My domain is very large (thousands x thousands of grid points), so I choose the dm selection.


  • configure.wps
    3.3 KB · Views: 6
  • configure.wrf.txt
    23.1 KB · Views: 3
Thanks for updating this with the method that worked for you. I'm glad you found the solution!