Per @benkirk's request, here are my thoughts on the WRF GCC containers...
In general, things look good to me. I have the following comments:
- emacs (and an LSP extension I guess) seems like an unnecessary build dependency for WRF. Will we support everyone's text editor of choice? 😄
- If this doesn't result in libjasper being version 1.9, you may want to force that, as newer versions of jasper can cause issues. (addendum - I see later that you build 1.900.1)
- I don't think HDF5 support in WRF is commonly used, and so you could probably disable and then not build the Fortran component of HDF5 (though I'm agnostic on your choice - it's probably no harm to add)
- Did you choose not to use szip support in HDF5 for a particular reason? I usually enable it when building out netCDF stack.
- Occasionally people want DAP support with netCDF, but I agree with not using it here. People can run bare-metal netCDF commands for that.
--disable-dap shouldn't be necessary for the Fortran component of netCDF (it is inferred from the C library)
- Any reason not to use
|& when running tee? Hopefully you don't get any errors, of course, but sometimes non-fatal stuff gets dumped to stderr.
- The WRF folks recommend a
dm build, but this seems to make a dm+sm build of vanilla WRF. IMO, if we are offering a container for compatibility, we should go with the base case, not the config that is most performant some of the time while breaking entirely for other model runtime setups.
- There are some folks who use MPI-enabled WPS, but compiling it serially as you do makes sense to me for the base-case here. 👍
Per @benkirk's request, here are my thoughts on the WRF GCC containers...
In general, things look good to me. I have the following comments:
--disable-dapshouldn't be necessary for the Fortran component of netCDF (it is inferred from the C library)|&when runningtee? Hopefully you don't get any errors, of course, but sometimes non-fatal stuff gets dumped to stderr.dmbuild, but this seems to make adm+smbuild of vanilla WRF. IMO, if we are offering a container for compatibility, we should go with the base case, not the config that is most performant some of the time while breaking entirely for other model runtime setups.