More by way of documenting somewhere what I’ve been doing, I thought I’d continue to update, despite not really getting anywhere!
Following the advice here: Debug Spack "Error: failed to concretize", I’ve looked into the concretize error by trying individual components. Consistently I get issues with netcdf-fortran and netcdf-c.
[ACCESS-OM2] munday@archer2 >> spack solve cice5
==> Error: failed to concretize `cice5` for the following reasons:
1. cannot satisfy a requirement for package 'netcdf-fortran'.
2. cannot satisfy a requirement for package 'netcdf-c'.
To try and obtain more information, I deactivated the spack env and tried to install netcdf-fortran. This causes a conflict with an external module:
munday@archer2 >> spack install netcdf-fortran
==> netcdf-fortran@4.9.0.7 : has external module in ['cray-hdf5-parallel/1.12.2.7', 'cray-netcdf-hdf5parallel']
[+] /opt/cray/pe/netcdf-hdf5parallel/4.9.0.7/gnu/9.1 (external netcdf-fortran-4.9.0.7-5ls7gh4entsmweu3fuk577s5ystzn5wt)
A curious thing here is that I didn’t have the cray-hd5-parallel or cray-netcdf-hdf5parallel modules loaded. I use MITgcm the most and so my default modules are the ones I use for its compilation: cray-netcdf/4.9.0.7 and cray-hdf5/1.12.2.7.
munday@archer2 >> module list
Currently Loaded Modules:
1) craype-x86-rome 5) xpmem/0.2.119-1.3_0_gnoinfo 9) cray-mpich/8.1.27 13) epcc-setup-env 17) cray-python/3.10.10 21) spack/1.0.2
2) libfabric/1.12.1.2.2.0.0 6) cce/16.0.1 10) cray-libsci/23.09.1.1 14) load-epcc-module 18) nco/5.1.6
3) craype-network-ofi 7) craype/2.7.23 11) PrgEnv-cray/8.4.0 15) cray-hdf5/1.12.2.7 19) ncview/2.1.11
4) perftools-base/23.09.0 8) cray-dsmml/0.2.2 12) bolt/0.8 16) cray-netcdf/4.9.0.7 20) other-software/1.0
If I try to install a specific netcdf-fortran or netcdf-c version I get a much longer error message:
munday@archer2 >> spack install netcdf-fortran@=4.6.2
==> Error: failed to concretize `netcdf-fortran@=4.6.2` for the following reasons:
1. Cannot satisfy 'netcdf-fortran@=4.6.2'
required because netcdf-fortran@=4.6.2 requested explicitly
2. Cannot satisfy 'netcdf-fortran@=4.6.2'
3. Cannot satisfy 'netcdf-fortran@=4.9.0.7' and 'netcdf-fortran@=4.6.2
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %aocc
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %gcc
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %cce
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %cce
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran@=4.6.2 requested explicitly
4. Cannot satisfy 'netcdf-fortran@=4.9.0.7' and 'netcdf-fortran@=4.6.2
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %cce
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %gcc
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %aocc
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %aocc
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran@=4.6.2 requested explicitly
5. Cannot satisfy 'netcdf-fortran@=4.9.0.7' and 'netcdf-fortran@=4.6.2
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %gcc
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %cce
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %aocc
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran@=4.6.2 requested explicitly
required because netcdf-fortran available as external when satisfying netcdf-fortran@=4.9.0.7 %aocc
required because netcdf-fortran@=4.6.2 requested explicitly
It doesn’t matter whether the cray-netcdf module is loaded, or not.