Skip to content

Commit

Permalink
iSnobal - CSU - Add slurm and first model day scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
jomey committed Jan 17, 2025
1 parent ef03f86 commit f4ea6ee
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 0 deletions.
14 changes: 14 additions & 0 deletions iSnobal/CSU/run_first_day.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
#
# Run for given day. Date format: 2017-10-01
#

module load mambaforge
mamba activate isnoda

INI_FILE_PREFIX="/projects/[email protected]/iSnobal-configs/CameronPass/CP_awsm"

# Initial run, no previous days
awsm_daily_airflow -c ${INI_FILE_PREFIX}_$(date -d "${1} + 1 year" +%Y).ini \
--no_previous \
--start_date $1
25 changes: 25 additions & 0 deletions iSnobal/CSU/slurm-scripts/iSnobal.slurm
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

#SBATCH --job-name=iSnobal
#SBATCH --account=csu-general
#SBATCH --partition=csu

#SBATCH --time=18:00:00
#SBATCH --ntasks=32
#SBATCH --mem=32G

#SBATCH --mail-type=FAIL,END
#SBATCH [email protected]

#SBATCH --chdir=/scratch/alpine/c837508519\@colostate.edu/
#SBATCH --output=slurm-%j.out-%N
#SBATCH --error=slurm-%j.err-%N

# Enable CPU Hyper-threading
export OMP_NUM_THREADS=${SLURM_NTASKS}

module load mambaforge
mamba activate isnoda

awsm_daily /projects/[email protected]/iSnobal-configs/CameronPass/CP_awsm_2021.ini

72 changes: 72 additions & 0 deletions iSnobal/CSU/slurm-scripts/katana.slurm
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/bash

#SBATCH --job-name=katana
#SBATCH --account=csu-general
#SBATCH --partition=csu

#SBATCH --time=4:00:00
#SBATCH --ntasks=24
#SBATCH --mem=16G

#SBATCH --mail-type=FAIL,END
#SBATCH [email protected]

#SBATCH --chdir=/scratch/alpine/c837508519\@colostate.edu/
#SBATCH --output=slurm-%j.out-%N
#SBATCH --error=slurm-%j.err-%N

module load singularity/3.7.4

export OMP_NUM_THREADS=${SLURM_NTASKS}

START_YEAR=2020
START_MONTH=10

## Configuration section ##
# Path to input, output, and config files
BASIN_SETUP=/projects/[email protected]/iSnobal-configs/CameronPass
INPUT_DIR=/pl/active/McGrath_Snow/HRRR
KATANA_OUTPUT_DIR=/pl/active/McGrath_Snow/iSnobal/CP_katana

KATANA_INI=${BASIN_SETUP}/CP_katana.ini
KATANA_IMAGE=/projects/[email protected]/iSnobal/katana/katana.sif

## -------------------------------------------- ##

for MONTH in {0..11}; do
START=($(date -d "${START_MONTH}/01/${START_YEAR} + ${MONTH} month" "+%m %Y"))
END=($(date -d "${START_MONTH}/01/${START_YEAR} + $((MONTH + 1)) month" "+%m %Y"))

MONTH=${START[0]}
YEAR=${START[1]}
MONTH_END=${END[0]}
YEAR_END=${END[1]}

echo "Processing: ${YEAR}-${MONTH}"

# Make copy of ini to edit and have as backup
MONTH_INI="${KATANA_OUTPUT_DIR}/katana_${YEAR}${MONTH}.ini"
cp ${KATANA_INI} ${MONTH_INI}

# Update the config to the month processed
sed -i -e "s/^start_date: .* UTC/start_date: ${YEAR}-${MONTH}-01 00:00:00 UTC/g" ${MONTH_INI}
sed -i -e "s/^end_date: .* UTC/end_date: ${YEAR_END}-${MONTH_END}-01 00:00:00 UTC/g" ${MONTH_INI}

# Map container file path to local
export SINGULARITY_BIND="${BASIN_SETUP}:/data/topo,${INPUT_DIR}:/data/input,${KATANA_OUTPUT_DIR}:/data/output"
# Run
singularity exec ${KATANA_IMAGE} run_katana ${MONTH_INI} 1>&2

if [ $? -ne 0 ]; then
>&2 echo "ERROR processing ${YEAR}${MONTH}"
continue
fi
done

# Unused katana output files by iSnobal
find ${KATANA_OUTPUT_DIR} -name *.prj -type f -delete
find ${KATANA_OUTPUT_DIR} -name *_cld.asc -type f -delete
## Unused temporary grib files created by katana
find ${KATANA_OUTPUT_DIR} -name *.grib2 -type f -delete
find ${KATANA_OUTPUT_DIR} -name hrrr.* -type d -empty -delete

0 comments on commit f4ea6ee

Please sign in to comment.