#!/bin/bash SLURM_DIR=${1} RUN_DIR=${2} MODEL_NAME=${3} MODEL_EXPERIMENT=${4} MODEL_REALIZATION=${5} SCRIPT_SUFFIX=chelsa-run_${MODEL_NAME}_${MODEL_EXPERIMENT}_${MODEL_REALIZATION} # slurm settings GROUP=hiclap QOS=short PARTITION=standard NODES=1 NTASKS=1 CPUS_PER_TASK=4 NSYNC_JOBS=100 WALLTIME="24:00:00" ADD_SBATCH_DIRECTIVE="" #"#SBATCH --constraint=broadwell" if [ "${MODEL_EXPERIMENT}" == "historical" ];then if grep -q 'CNRM' <<< ${MODEL_NAME};then YEAR_START=1961 else YEAR_START=1961 fi YEAR_STOP=2014 else YEAR_START=2015 YEAR_STOP=2100 fi # globals settings SETTING_LIST=() for YEAR in $(seq ${YEAR_START} ${YEAR_STOP});do SETTING_LIST+=("./2_apply_chelsa.bash ${YEAR} ${YEAR}") done # create slurm script ######################################################### mkdir -p ${SLURM_DIR}/slurm_scripts mkdir -p ${SLURM_DIR}/slurm_protocols SLURM_SCRIPT_FILE=${SLURM_DIR}/slurm_scripts/script_calculate_${SCRIPT_SUFFIX}.slurm cat > ${SLURM_SCRIPT_FILE} << EOF #!/bin/bash #SBATCH -A ${GROUP} #SBATCH --qos=${QOS} #SBATCH --nodes=${NODES} #SBATCH --ntasks=${NTASKS} #SBATCH --cpus-per-task=${CPUS_PER_TASK} ${ADD_SBATCH_DIRECTIVE} ### #SBATCH --exclusive #SBATCH --partition=${PARTITION} #SBATCH --array=1-${#SETTING_LIST[@]}%${NSYNC_JOBS} #SBATCH -D ${RUN_DIR} #SBATCH --mail-type=NONE #SBATCH --mail-user=menz@pik-potsdam.de #SBATCH --export=NONE #SBATCH --time=${WALLTIME} #SBATCH -J "complement missing climate indices" #SBATCH --error=${SLURM_DIR}/slurm_protocols/protocol_${SCRIPT_SUFFIX}_%A_%a.log #SBATCH --output=${SLURM_DIR}/slurm_protocols/protocol_${SCRIPT_SUFFIX}_%A_%a.log # set environment ######################################### ulimit -s unlimited ulimit -c 0 module purge module load base-env module load ncurses module load cmake module load pango module load pdal module load glib module load gdal/3.9.2 module load cdo module load miniforge export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:'/home/menz/tools/saga/build/usr/lib64' export PYTHON_SAGA_API_LIBRARY='/home/menz/tools/saga/build/usr/lib64/saga' export LD_LIBRARY_PATH=\${LD_LIBRARY_PATH}:/home/menz/.conda/envs/chelsa/lib declare -A SETTING_LIST EOF for I in $(seq 0 $((${#SETTING_LIST[@]} - 1)));do cat >> ${SLURM_SCRIPT_FILE} << EOF SETTING_LIST[$((${I} + 1))]="${SETTING_LIST[${I}]}" EOF done cat >> ${SLURM_SCRIPT_FILE} << EOF echo "#######################" echo "starting calculation:" date \${SETTING_LIST[\${SLURM_ARRAY_TASK_ID}]} echo "#######################" echo "calculation finished:" date EOF unset SETTING_LIST