# Get some variables provided by autosubmit. # TODO: What do we do to ensure that these variables are defined in the proj file? WORKDIR=%HPCROOTDIR% ICON_VERSION=%ICON_VERSION% SPACK_URL=%spack.url% SPACK_BRANCH=%spack.branch% SPACK_COMPILER=%spack.compiler% # If the workdir directory does not exist create it if [ ! -d ${WORKDIR} ]; then mkdir -p ${WORKDIR} fi # Go to the working directory cd ${WORKDIR} . ${WORKDIR}/proj/platforms/common/spack_utils.sh load_spack if [ $( spack find icon-nwp@${ICON_VERSION} &>/dev/null echo $? ) -ne 0 ]; then echo "Installing icon-nwp@${ICON_VERSION}." if [[ $(spack compiler info ${SPACK_COMPILER}) ]]; then echo "Found Compiler" else echo "could not find compiler, try to install it... this may take a while" spack add ${SPACK_COMPILER} spack install spack compiler add $(spack location --install-dir $SPACK_COMPILER) fi spack add ucx%${SPACK_COMPILER}+dc+dm+ib_hw_tm+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs~cuda spack add openmpi%${SPACK_COMPILER}+pmi+legacylaunchers~cuda schedulers=slurm fabrics=ucx spack add icon-nwp@${ICON_VERSION}%${SPACK_COMPILER} ^openmpi%${SPACK_COMPILER} spack install else echo "icon-nwp@${ICON_VERSION} already installed!" fi # Need to get ECCODES DWD definitions: eccodes_version=$(spack find eccodes | grep eccodes@ | cut -d "@" -f 2) definitions_tar_file=eccodes_definitions.edzw-${eccodes_version}-1.tar.bz2 if [ ! -f ${definitions_tar_file} ]; then defs_url=https://opendata.dwd.de/weather/lib/grib/${definitions_tar_file} wget ${defs_url} # Decompress definitions file tar -xf ${definitions_tar_file} # Create a file containing the environment variable that needs to be set in order to use DWD's definitions: echo "export ECCODES_DEFINITION_PATH=${WORKDIR}/definitions.edzw-${eccodes_version}-1" >eccodes_defs.env fi