How to compile updated FMS for use with MOM6?

I have a specific use case that requires both the latest MOM6 code and updated FMS. Basically the older FMS doesn’t work with ERA5 as this dataset includes values at different heights.

The most common workflow for NCI users I’m aware of is cloning the MOM6_examples repo and compiling it with @angus-g 's ninja tool, or using a wrapper for this.

However, the FMS version used here is 3 years old. I’ve tried cloning the latest version but then it’s incompatible with the ninja tool due to changes to the file structure. I can confirm that I’m able to compile and run the latest MOM6 code with the old FMS though if I turn off ERA5 buoyancy forcing.

Has anyone in the community done this recently who could lend a hand?

I have built FMS with my build scripts recently, but the new FMS structure completely changes how it looks for things. I believe I have a branch that will work with the newer FMS versions. I’ll dig that up and look at whether I can unify things to work with a wide range of versions.


Seems like @micael is building FMS with spack

I don’t think there is a MOM6 spack package … yet … but it might be feasible/relatively easy to build the dependencies with spack and compile MOM6 with ninja.

1 Like

For those following at home: Angus has updated his ninja scripts so that they works with the latest version of ALL of the code required to run MOM6 + SIS2 as of Jan 17 2024.

There are many changes to the structure of the FMS, coupler and MOM6 code that needed troubleshooting!

Why did I need the updated codebase in the first place?

  • Various improvements to Open Boundary Conditions in MOM6
  • Coupler now handles surface fluxes for ERA5 properly