Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a package for SURF #165

Open
penguian opened this issue Nov 15, 2024 · 0 comments
Open

Add a package for SURF #165

penguian opened this issue Nov 15, 2024 · 0 comments

Comments

@penguian
Copy link
Contributor

penguian commented Nov 15, 2024

Add a Spack package definition capable of building recent releases of SURF. This is required by the Regional Nesting Suite release to ensure transparent and reproducible software builds.

Background

SURF scripts and executables used by the Regional Nesting Suite.

The SURF executables used by the Regional Nesting Suite are compiled separately and then installed via install_cold as a symbolic link at $ROSE_SUITE_DIR/share/fcm_make_surf.

In the case of app/install_cold/opt/rose-app-nci-gadi.conf in both the u-dg768 and u-by395 Regional Nesting Suites this is a link to /projects/access/NWP_SHARE/surf-2020.01.0/1.0.0/intel1903-ompi401. This directory contains the subdirectory build/bin with

$ ls /projects/access/NWP_SHARE/surf-2020.01.0/1.0.0/intel1903-ompi401/build/bin
Jules_Run.py   OpsScr_SetupMetDB          surf-printenv           SurfProg_ProcessLST.exe  SurfProg_SnowOI.exe       SurfScr_GetSatFileNames  SurfScr_RunJules        SurfScr_SnowAnalysis          SurfScr_UMtoJules
OpsFn_Fail     surf-env-init.sh           SurfProg_ASCAT.exe      SurfProg_SMC.exe         SurfProg_UMtoJules.exe    SurfScr_LinkJulesOutput  SurfScr_RunJules4       SurfScr_SnowOI
OpsFn_MakeDir  surf-platform-compiler.sh  SurfProg_EKF.exe        SurfProg_SMNudge.exe     SurfScr_ASCATsoilWetness  SurfScr_OSTIA2NWP        SurfScr_Setup           SurfScr_SoilMoistureAnalysis
OpsFn_Warn     surf-platform.sh           SurfProg_OSTIA2NWP.exe  SurfProg_Snow.exe        SurfScr_EKF               SurfScr_ProcessLST       SurfScr_SetupCycleTime  SurfScr_SoilMoistureNudge

There are seven such directories in /projects/access/NWP_SHARE/:

$ ls -lhd /projects/access/NWP_SHARE/surf-*/*/*
drwxr-s---+ 4 saw562 access.admin 4.0K Mar  3  2023 /projects/access/NWP_SHARE/surf-2018.02.0/1.0.0/intel1903-ompi401
drwxrws---+ 3 wml548 access.admin 4.0K Feb 26  2020 /projects/access/NWP_SHARE/surf-2019.02.0/1.0.0/intel1903-ompi401
drwxrws---+ 3 wml548 access.admin 4.0K Apr  1  2020 /projects/access/NWP_SHARE/surf-2020.01.0/1.0.0/intel1903-ompi401
drwxrws---+ 5 wml548 access.admin 4.0K Mar  3  2023 /projects/access/NWP_SHARE/surf-2021.03.0/1.0.0/intel-1903-ompi401
drwxr-s---+ 3 dl9118 access.admin 4.0K Aug 31  2023 /projects/access/NWP_SHARE/surf-2021.03.0_bom_deploy/1.0.0/intel2003-ompi402
drwxr-sr-x+ 3 dl9118 access.admin 4.0K Sep 20  2023 /projects/access/NWP_SHARE/surf-2021.03.0_bom_deploy/1.0.1/intel2003-ompi402
drwxr-sr-x+ 3 dl9118 access.admin 4.0K Aug 31  2023 /projects/access/NWP_SHARE/surf-2022.12.0/1.0.0/intel2003-ompi402

Two SURF scripts are currently used in the u-dg768 Regional Nesting Suite:

$ find . -type f | grep -v '/pristine/' | xargs grep SurfS
./app/surf_ostia2nwp/rose-app.conf:default=SurfScr_OSTIA2NWP
./app/surf_smc/rose-app.conf:default=SurfScr_SoilMoistureAnalysis

Each of these calls a series of scripts that includes surf-env-init.sh, which loads modules as follows:

$ grep module /projects/access/NWP_SHARE/surf-2020.01.0/1.0.0/intel1903-ompi401/build/bin/surf-env-init.sh 
module use ~access/modules
module del openmpi intel-compiler perl netcdf intel-mpi fcm
module load intel-compiler/2019.3.199
module load openmpi/4.0.1
module load netcdf/4.7.1
module load fcm/2019.09.0
module load hdf5/1.10.5
module load python2
module load python2-as-python
  module list -l 2>&1 | sort

See RMED ticket #249 for an example of the Regional Nesting Suite update process for SURF at the UK Met Office end.

SURF Project

SURF has its own MOSRS project.

For a list of SURF releases, see https://code.metoffice.gov.uk/trac/surf/wiki/ReleasedVersions

Note: The nci site within the rose-stem tests for the trunk includes the definition:

SURF_HOME = /g/data/dp9/ukmo_internal_dir/home/d04/frsurf

This will need to be changed if ACCESS-NRI takes charge of the rose stem tests of SURF at NCI.

@penguian penguian changed the title Add package for SURF Add a package for SURF Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

1 participant