Newer
Older
#!/bin/bash
set +xv
# ARGUMENTS
date_beg=$1
date_end=$2
nbday=$(( ($(date -d "${date_end}H00 + 1 day" +%s) - $(date -d "${date_beg}H00" +"%s") )/(60*60*24) ))
if [ -n "$3" ]; then
var_list=( $3 )
else
var_list=( uwnd vwnd uhpg vhpg tpot humi )
fi
for d in $(seq -f "%02g" 0 $((nbday-1))); do
# TIME
date=$(date -d "${date_beg}H00 + ${d} days" +"%C%y%m%d")
ym=${date:0:6}
# DIRECTORIES & FILES
d="${SCRATCH_DIR}/NC_${GRID/N/F}/${ym}"
f="abl_L50Z10_${BASE_NAME}_${date}_misstodis.nc"
for v in ${var_list[@]}; do
finp=${v}_${f}
fout=${finp%.nc}_cnk64.nc
if [ ! -s ${d}/${fout} ]; then
if [ -s ${d}/${finp} ]; then
while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -ge 90 ]; do echo "sleeping..."; sleep 10; done
sbatch --job-name=ncochunk_${date} --export=SCRATCH_DIR=${SCRATCH_DIR},BASE_NAME=${BASE_NAME},GRID=${GRID} ${DIR_SRC}/job_ncochunk.sbatch ${date} ${v}
fi
fi
done
while [[ ${date} -eq ${date_end} && $(squeue -u $USER -h -t pending,running -r -o '%20j' | grep ncochunk_${ym} | wc -l) -gt 0 ]]; do echo "sleeping..."; sleep 10; done
if [ ${date} -eq ${date_end} ]; then
fall=${f/${date}_misstodis.nc/*{${date_beg:6:2}..${date_end:6:2}}}_misstodis_cnk64.nc
file_nb=$( eval "ls ${d%/*}/{${date_beg:0:6}..${date_end:0:6}}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fall} 2>/dev/null" | wc -l )
file_nb=$( eval "ls ${d%/*}/{${date_beg:0:6}..${date_end:0:6}}/${var_list[*]}_${fall} 2>/dev/null" | wc -l )
if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
exit 1
fi
fi
done
exit 0