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

(RESOLVED) Problem Compiling WRFV4.0 on Fedora 28: landread error

Prerita,
I believe that is what that means. Are you trying to compile with the moving nest option? In the configure.wrf files you sent, it looks like you are just compiling with the basic nesting option.
 
Hi,

I am not using the moving nest option and perhaps may not require for my purpose.
To confirm, given this my build should work fine for basic nesting?
Just to reiterate I solved by copying the contents of landread.c.dist to landread.c in share directory in WRFV3.
I also had to change the paths of CPP, types.h files in the source code.

Thanks,
Prerita
 
Prerita,
Great! You should be okay to continue with a basic nested option. Thank you for the update!
 
Hi,
I want to report that I met the same issue but solved it by modifying the configure.wrf
Our cluster/HPC just migrating from CentOS 7 to CentOS8 and then I got this problem. And thanks for the developers, I can fix it without pain.

WRF version: 3.7.1

cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
 
Hi,

Update - I was able to solve the error.
I had to Copy landread.c.dist to landread.c in share directory for WRFV3 and that solved the issue.
However, I am not sure what does that do? Does this mean moving nest option won't be available with this build?

I'd really appreciate any insights into this.

Thanks, Prerita
Hey, how did you copy the landread.c.dist to the landread.c?
 
Hello!

I'm new in here, and this thread gave me ideas (had this issue as well, and it seems the scenario of the institution requires using landread.c).

Also, maybe it's a known issue: WRF seems to build only with libjasper v1.900.1 (built from source); it should work until 1.900.24, but I haven´t been able to wrap my head around how cmake works for building the lib, also in a custom path.

In case someone needs to build with the landread.c (without having any LANDREAD_STUB), there are some modifications to be made both to the Operating System and the resulting WRF build configuration.

Also built with variables
SFC = ifort SCC = icc CCOMP = icc DM_FC = mpiifort DM_CC = mpiicc

I tested my build in Rocky Linux 9, but should work for most operating systems that had the rpc/types.h and other headers inside ''/usr/include/tirpc" instead of "/usr/include/"
It also workarounds an issue that maintainers seem to be unaware of:
  • There are interdependencies inside the tirpc package header files, that also do #include <rpc/types.h> instead of #include <tirpc/rpc/types.h> (it made my builds fail several times, until I made a workaround in the system).
I did a quick search and turned out that it would be a "WON'T FIX": 1537432 – libtirpc: Provide header files in /usr/include/rpc and they seem unaware of the bug.

I include my configure.wrf as reference (for 4.5.1; I guess that some extra changes should be made for 3.9.1.1)

1.- Changes in configure.wrf:
Add explicit linking to libtirpc in LIB_EXTERNAL: -L/usr/lib64 -ltirpc (Rocky9 has them in that path, check in your case/system).

2.- Workaround for .h files: Create symbolic links as root:
Not elegant, but gets the job done... until the maintainers of every OS fix the issue in their respective versions/distros.
I assume that you know that working as root, you should be very careful.
Press the button below to see:
cd /usr/include ln -s tirpc/netconfig.h netconfig.h cd /usr/include/rpc ln -s ../tirpc/rpc/auth_des.h auth_des.h ln -s ../tirpc/rpc/auth_gss.h auth_gss.h ln -s ../tirpc/rpc/auth.h auth.h ln -s ../tirpc/rpc/auth_unix.h auth_unix.h ln -s ../tirpc/rpc/clnt.h clnt.h ln -s ../tirpc/rpc/clnt_soc.h clnt_soc.h ln -s ../tirpc/rpc/clnt_stat.h clnt_stat.h ln -s ../tirpc/rpc/des_crypt.h des_crypt.h ln -s ../tirpc/rpc/des.h des.h ln -s ../tirpc/rpc/key_prot.h key_prot.h ln -s ../tirpc/rpc/nettype.h nettype.h ln -s ../tirpc/rpc/pmap_clnt.h pmap_clnt.h ln -s ../tirpc/rpc/pmap_prot.h pmap_prot.h ln -s ../tirpc/rpc/pmap_rmt.h pmap_rmt.h ln -s ../tirpc/rpc/raw.h raw.h ln -s ../tirpc/rpc/rpcb_clnt.h rpcb_clnt.h ln -s ../tirpc/rpc/rpcb_prot.h rpcb_prot.h ln -s ../tirpc/rpc/rpc_com.h rpc_com.h ln -s ../tirpc/rpc/rpcent.h rpcent.h ln -s ../tirpc/rpc/rpc.h rpc.h ln -s ../tirpc/rpc/rpc_msg.h rpc_msg.h ln -s ../tirpc/rpc/rpcsec_gss.h rpcsec_gss.h ln -s ../tirpc/rpc/svc_auth_gss.h svc_auth_gss.h ln -s ../tirpc/rpc/svc_auth.h svc_auth.h ln -s ../tirpc/rpc/svc_dg.h svc_dg.h ln -s ../tirpc/rpc/svc.h svc.h ln -s ../tirpc/rpc/svc_mt.h svc_mt.h ln -s ../tirpc/rpc/svc_soc.h svc_soc.h ln -s ../tirpc/rpc/types.h types.h ln -s ../tirpc/rpc/xdr.h xdr.h mkdir /usr/include/rpcsvc cd /usr/include/rpcsvc ln -s ../tirpc/rpcsvc/crypt.h crypt.h ln -s ../tirpc/rpcsvc/crypt.x crypt.x

After creating all the previous symlinks, WRF should compile and work as in CentOS/RHEL 7 systems.
 

Attachments

  • configure.wrf-4.5.1_OK_sin-LANDREAD_STUB-1.txt
    21.1 KB · Views: 11
I thought it would be helpful to report that the solutions mentioned in this thread worked for me when compiling WRF v3.9.1.1 for ideal simulations on NCAR's HPC Casper.
Specifically, I did the following:
  • check for -DLANDREADSTUB in configure.wrf (I think I still had to include it)
  • Lastly, copy landread.c.dist to landread.c in share directory

I was able to compile for option 13 (serial, intel). I did not try the parallel option.
 
Top