Skip to content

Add ACCESS-ESM3#410

Open
anton-seaice wants to merge 21 commits into
api-v2from
212
Open

Add ACCESS-ESM3#410
anton-seaice wants to merge 21 commits into
api-v2from
212

Conversation

@anton-seaice
Copy link
Copy Markdown
Contributor

@anton-seaice anton-seaice commented Apr 16, 2026

Contributes to #212 - this change adds a bundle package for access-esm3, and supports installing UM13 as a library.

This change depends on ACCESS-NRI/access3-share#40 and https://github.com/ACCESS-NRI/UM/pull/132

The CI manifests are only provided as a demo, and ill drop that commit before merging (as there aren't stable versions of the model components to put in the CI manifests yet). GCOM only builds with intel-classic , therefore it's assumed ESM3 only builds with intel-classic (for now)

Comment thread spack_repo/access/nri/packages/um/package.py Outdated
@anton-seaice anton-seaice marked this pull request as ready for review April 21, 2026 01:25
@anton-seaice
Copy link
Copy Markdown
Contributor Author

Hi @penguian @harshula - this change is ready for review. It adds access-esm3. See pre-release deployment (still running) in ACCESS-NRI/ACCESS-ESM3#2

@anton-seaice anton-seaice self-assigned this Apr 21, 2026
@anton-seaice anton-seaice changed the title Initial work to add ESM3 Add ACCESS-ESM3 Apr 21, 2026
@anton-seaice
Copy link
Copy Markdown
Contributor Author

This is ready to review @harshula - I guess Paul is on leave

@anton-seaice
Copy link
Copy Markdown
Contributor Author

Ready for review @penguian @harshula

@anton-seaice anton-seaice mentioned this pull request May 18, 2026
5 tasks
Comment thread spack_repo/access/nri/packages/um/package.py Outdated
Comment thread spack_repo/access/nri/build_systems/um_base.py Outdated
Comment thread spack_repo/access/nri/packages/gcom/package.py Outdated
Comment thread spack_repo/access/nri/packages/um/package.py
Comment thread spack_repo/access/nri/packages/gcom/package.py Outdated
Comment thread spack_repo/access/nri/packages/gcom/package.py Outdated

def __create_pkgconfig(self, spec, prefix):

version = self.spec.version.string
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

concretised gcom as:

- s7wxkfa ^gcom@git.6319ae016dcadc192842a06178f3dbd21a8af64f=7.7.1-git.14 cflags='-march=sapphirerapids -mtune=sapphirerapids -unroll' cxxflags='-march=sapphirerapids -mtune=sapphirerapids -unroll' fflags='-march=sapphirerapids -mtune=sapphirerapids -unroll' +mpi build_system=generic commit=6319ae016dcadc192842a06178f3dbd21a8af64f platform=linux os=rocky8 target=x86_64_v4 %c,fortran=intel@2021.10.0

Fails with

 ==> Error: AttributeError: 'GitVersion' object has no attribute 'string'

The 'gcom' package cannot find an attribute while trying to build from sources. You can fix this by updating the build recipe, and you can also report the issue as a build-error or a bug at https://github.com/spack/spack/issues

/g/data/tm70/as2285/spack/om3-1.1/access-spack-packages/spack_repo/access/nri/packages/gcom/package.py:89, in install:
         86        # Do the build with fcm
         87        fcm("make", "-f", "fcm-make/gcom.cfg")
         88
  >>     89        self.__create_pkgconfig(spec, prefix)
         90
         91        # Install the library
         92        mkdirp(prefix.lib)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for checking @git.gitref. Please include the conditional from the MOM5 SPR when you need to extract the version.

@anton-seaice
Copy link
Copy Markdown
Contributor Author

I think all the review comments have been addressed @harshula @penguian

  • Made an issue about making a build_system for access3: Investigate access3 base class #422
  • Fixed the version strings for GitVersion
  • Only installs pkgconf file when there is a um library actually built
  • Tidied up unneeded loops a bit

Demo esm3 build:
ACCESS-NRI/ACCESS-ESM3#2 (comment)

Demo ram3 build (from an svn source):
still progressing - ACCESS-NRI/ACCESS-rAM3#32

Demo am3 build:
still progressing - see ACCESS-NRI/ACCESS-AM3#36

@anton-seaice anton-seaice requested a review from harshula May 19, 2026 05:56
Comment on lines +553 to +555
# Upstream is missing a pkgconfig file, so create it
self.__create_pkgconfig(spec, prefix)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if __create_pkgconfig and its definition should be moved from um_base.py to um/package.py?

I think um_createbc is a different program which uses the build method from UmBasePackage. We possibly shouldn't (?) be creating the pkgconfig file for it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should only create the pkgconf file if a um-atmos library is built now. So that is probably an argument to move it to the um pacakge if um_createbc isn't going to be used to build libraries that get installed ?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah thanks I see, yeah I think it makes sense to move it to the um package

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okie done !

Comment thread spack_repo/access/nri/packages/access3/package.py Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants