Modules to build JEDI on Orion/Hercules with FMS/2023.04

Hello,

Due to the recent update of FMS to 2024.03, I failed to build the recent JEDI using the spack-stack 1.7.0 modules on Hercules and Orion (3. Pre-configured sites — spack-stack 1.7.0 documentation). I also tried “module unload fms; module load fms/2023.04”. It failed seemingly due to the incompatibility with other lib/package.

What modules would I use to compile the recent JEDI version on Hercules or Orion?

Thanks,
Bo

Hi Bo,

Could you copy/paste the error that you are seeing? And which compiler are you using?

-Nate

Hi Nate,

Thanks for your response. Here is the ecbuild error from the default spack-stack 1.7.0 on that webpage. I tried both Intel and gnu on Hercules. They have the same error.

CMake Error at fv3-jedi-lm/CMakeLists.txt:74 (find_package):
  Could not find a configuration file for package "FMS" that is compatible
  with requested version "2023.04".
  The following configuration files were considered but not accepted:
    /work/noaa/gsienkf/bhuang/expCodes/JEDI/fv3-bundle/PR/GETKF-Memory-20240702-Hercules/build/fms/fms-config.cmake, version: 2020.4.0
    /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.7.0/envs/ue-gcc/install/gcc/12.2.0/fms-release-jcsda-nhowxl2/lib64/cmake/fms/fms-config.cmake, version: 2020.4.0

The error using Hercules Intel by adding “module unload fms; module load fms/2023.0” is on Orion/Hercules below.

  • /work/noaa/gsienkf/bhuang/expCodes/JEDI/fv3-bundle/PR/GETKF-Memory-20240702-Hercules/ecbuild.log.fms2023.04

Thanks,
Bo

Do you get an error when you do the unload/reload? :

module unload fms
module load fms/2023.04

and which version of fms do you see when you do module list before/after the unload/reload?

Hi Nate,

Below are the modules I loaded. I added the last two lines to the modules for Hercules listed on this webpage. Otherwise, it will show errors “Could not find a configuration file for package “FMS” that is compatible with requested version “2023.04”.”

  • module purge

  • module use /work/noaa/epic/role-epic/spack-stack/hercules/modulefiles

  • module load ecflow/5.8.4

  • module load git-lfs/3.1.2

  • module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.7.0/envs/ue-intel/install/modulefiles/Core

  • module load stack-intel/2021.9.0

  • module load stack-intel-oneapi-mpi/2021.9.0

  • module load stack-python/3.10.13

  • module load jedi-fv3-env

  • module unload fms

  • module load fms/2023.04

When I loaded these modules, “unload/reload fms” command will change from the default “fms/release-jcsda” to “fms/2023.04”. Meanwhile, it also showed the error/warning message below.

  • The following dependent module(s) are not currently loaded: fms/release-jcsda (required by: jedi-fv3-env/1.0.0)

Bo

That all looks right. Which bundle did you clone? fv3-bundle, jedi-bundle, or something else?

Thanks. It’s fv3-bundle.
Bo

Hi Bo,
I was able to reproduce your issue with the fv3-bundle. I don’t have an estimate for when it might be fixed, but in the meantime I recommend switching to the jedi-bundle. I believe the jedi-bundle has everything the fv3-bundle has (plus some extras), but if there is something missing that you need, let us know. And if you were uninterested in the extra things in the jedi-bundle and wanted to save some time, you could comment out the MPAS and SOCA related lines at the end of the CMakeLists.txt in the jedi-bundle.
-Nate

Hi Nate,

Thanks very much for your confirmation and recommendation. I will give it a try. In addition, because my ongoing experiments uses “relatively old” JEDI version and rely on the spack-stack-1.6.0/1.7.0 installed on Hercules, I wanted ask if this fix is going to affect/change these two spack modules (I hope not)?

Thanks,
Bo

Hi Bo,
With the list you are using (including the module unload fms module load fms/2023.04 at the end) you should be all set to build the jedi-bundle using spack-1.6/1.7. I built successfully on hercules this morning (using the GNU compiler). BTW, if you choose to comment out MPAS and SOCA in the CMakeLists, you will also need to comment out the the line for the coupling repo: #ecbuild_bundle( PROJECT coupling ...
-Nate

Hi Nate,

Thanks for your answer. And sorry for the confusion about the question in my last message. I currently use the fv3-bundle built in Jan 2024 in one of my experiments that uses spack-1.6/1.7 on Hercules. Some features in this “old” JEDI version that I needed were disabled in the recent JEDI. So I may not be able to use the recent JEDI to continue my experiment.

I wanted to know whether there will be any change to or if this potential fix (if it will happen) of FMS change for fv3-bundle will modify the spack-1.6/1.7 installed on Hercules in the future? If not (I hope), it means I can continue my current experiment using this “old” JEDI. That would be great.

Thanks,
Bo

Hi Bo,
I don’t think I follow. Were you trying to re-build (or do a make update on) your build from January? If so, you shouldn’t be doing the fms module swap. The current spack builds on Hercules and Orion would not have been affected by the fms update. It’s not until the next spack release (1.8) later this summer that there will be a change to the spack modules. If you want to continue your experiments, you should load the spack environment as you previously were.
-Nate

Hi Nate,

Thanks for your explanation. It is great to know that the current spacks already built on Hercules/Orion will not be affected by the fms update. Then I can continue using them for my current experiments using “old” JEDI that was built on spack-stack 1.6/1.7.

Also, I can build jedi-bundle successfully using spack-stack 1.7 following your instruction. It is sufficient for me to test some features using the recent JEDI version.

Thanks very much for your patience to answer my questions.

Bo

Hi @ncrossette,
I am also building jedi-bundle on Hercules. I was wondering which version you have built successfully with spack-stack 1.7.0.
Somehow, I got the following error when “make -j”:
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(62): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [GFDL_CLOUD_MICROPHYS_MOD]
use gfdl_cloud_microphys_mod, only: wqs1, wqs2, wqsat2_moist
------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(62): error #6580: Name in only-list does not exist or is not accessible. [WQS1]
use gfdl_cloud_microphys_mod, only: wqs1, wqs2, wqsat2_moist
--------------------------------------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(62): error #6580: Name in only-list does not exist or is not accessible. [WQS2]
use gfdl_cloud_microphys_mod, only: wqs1, wqs2, wqsat2_moist
--------------------------------------------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(62): error #6580: Name in only-list does not exist or is not accessible. [WQSAT2_MOIST]
use gfdl_cloud_microphys_mod, only: wqs1, wqs2, wqsat2_moist
--------------------------------------------------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(994): error #6311: A block was not terminated before an ELSEIF statement was reached.
elseif ( nwat==6 ) then
—^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(1313): error #6404: This name does not have a type, and must have an explicit type. [WQS2]
qsw = wqs2(t0(i,k), den(i,k), dqsdt)
----------------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(1782): error #6404: This name does not have a type, and must have an explicit type. [WQSAT2_MOIST]
qsw = wqsat2_moist(pt2(i,j), qv2(i,j), p2(i,j), dwsdt)
--------------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(2158): error #6406: Conflicting attributes or multiple declaration of name. [WQSAT2_MOIST]
qsw = wqsat2_moist(pt2(i,j), qv2(i,j), p2(i,j), dwsdt)
--------------^
/work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90(2490): error #6406: Conflicting attributes or multiple declaration of name. [WQSAT2_MOIST]
qsw = wqsat2_moist(pt2(i,j), qv2(i,j), p2(i,j), dwsdt)
----------------^
compilation aborted for /work2/noaa/hwrf/tutorial/save/hsiaof/jedi/jedi-bundle/fv3/model/fv_sg.F90 (code 1)
make[2]: *** [fv3/CMakeFiles/fv3.dir/build.make:244: fv3/CMakeFiles/fv3.dir/model/fv_sg.F90.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:26371: fv3/CMakeFiles/fv3.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…

This is likely do yesterday’s maintenance. Multiple people from the JCSDA have been unable to build jedi on either hercules or orion since the update yesterday.