Skip to content

Compilation with GRIB2 output enabled fails in libio_grib2.a #2184

@d1mach

Description

@d1mach

When compiling WRF with I_really_want_to_output_grib2_from_WRF set to TRUE in arch/Config.pl compilation fails in external/io_grib2 with the following diagnostics:

/lib/cpp -P -nostdinc -DEM_CORE=1 -DNMM_CORE=0 -DNMM_MAX_DIM=2600 -DDA_CORE=0 -DWRFPLUS=0 -DIWORDSIZE=4 -DDWORDSIZE=8 -DRWORDSIZE=4 -DLWORDSIZE=4 -DNONSTANDARD_SYSTEM_SUBR  -DWRF_USE_CLM  -DDM_PARALLEL -DNETCDF -DGRIB2 -DHDF5 -DLANDREAD_STUB=1 -DUSE_ALLOCATABLES -Dwrfmodel -DGRIB1 -DINTIO -DKEEP_INT_AROUND -DLIMIT_ARGS -DBUILD_RRTMG_FAST=0 -DBUILD_RRTMK=0 -DBUILD_SBM_FAST=1 -DSHOW_ALL_VARS_USED=0 -DCONFIG_BUF_LEN=65536 -DMAX_DOMAINS_F=21 -DMAX_HISTORY=25 -DNMM_NEST=0  -I. -traditional-cpp  -traditional  -I. -Ig2lib -Ibacio-1.3 -I../io_grib_share io_grib2.F > io_grib2.f90
io_grib2.F:109:2: fatal error: wrf_status_codes.h: No such file or directory
  109 | #include "wrf_io_flags.h"
      |  ^~~~~~~~~~~~~~~~~~~~
compilation terminated.

As a result, wrf.exe and real.exe are not created.

Tested with compilation option 34 (gfortran + dmpar).
To reproduce

  1. Checkout a recent copy of WRF at release 4.6.1 (e.g. at commit d66e442)
  2. edit arch/Config.pl to change I_really_want_to_output_grib2_from_WRF to TRUE
  3. Run ./compile

Compilation with GRIB2 enabled used to work with WRF release 4.5.1 at least at commit 3dd1546.

Now compilation can be fixed by adding -I../ioapi_share to FINCLUDES in external/io_grib2/Makefile, that is

27c27
< F_INCLUDES   = -I. -Ig2lib -Ibacio-1.3 -I../io_grib_share
---
> F_INCLUDES   = -I. -Ig2lib -Ibacio-1.3 -I../io_grib_share -I../ioapi_share

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions