From 59e7acdeae521df4a36065f9545d198f0e19ffd3 Mon Sep 17 00:00:00 2001 From: Guillaume S <gsamson@mercator-ocean.fr> Date: Thu, 23 Nov 2023 16:33:07 +0100 Subject: [PATCH] further simplification --- do_by_day.sh | 2 +- full_prod.sh | 10 +++++----- job_ablhpg.sbatch | 1 - job_cdomiss.sbatch | 9 ++------- job_cdosplit.sbatch | 11 ++--------- subjob_cdogrid.sh | 8 +++----- subjob_cdomiss.sh | 2 +- 7 files changed, 14 insertions(+), 29 deletions(-) diff --git a/do_by_day.sh b/do_by_day.sh index 8e8db61..338c001 100755 --- a/do_by_day.sh +++ b/do_by_day.sh @@ -30,7 +30,7 @@ fi nb_day=$(( ($(date --date="${date_end}H00 + 1 day" +%s) - $(date --date="${date_beg}H00" +%s) ) / (60*60*24) )) echo $date_beg $date_end $nb_day -for (( d=0; d<=$nb_day; d++ )); do +for (( d=0; d<$nb_day; d++ )); do date_day=$(date -d "$date_beg + $d days" +%Y%m%d) echo $script $date_day diff --git a/full_prod.sh b/full_prod.sh index c7e01f2..ee7fd6d 100755 --- a/full_prod.sh +++ b/full_prod.sh @@ -5,10 +5,10 @@ set +xv date_beg=$1 date_end=$2 -./do_by_day.sh ${date_beg} ${date_end} ./subjob_cdogrid.sh -./do_by_day.sh ${date_beg} ${date_end} ./subjob_ablhpg.sh -./do_by_day.sh ${date_beg} ${date_end} ./subjob_ablvint.sh -./do_by_day.sh ${date_beg} ${date_end} ./subjob_cdosplit.sh -./do_by_day.sh ${date_beg} ${date_end} ./subjob_cdomiss.sh +time ./do_by_day.sh ${date_beg} ${date_end} ./subjob_cdogrid.sh +time ./do_by_day.sh ${date_beg} ${date_end} ./subjob_ablhpg.sh +time ./do_by_day.sh ${date_beg} ${date_end} ./subjob_ablvint.sh +time ./do_by_day.sh ${date_beg} ${date_end} ./subjob_cdosplit.sh +time ./do_by_day.sh ${date_beg} ${date_end} ./subjob_cdomiss.sh exit 0 diff --git a/job_ablhpg.sbatch b/job_ablhpg.sbatch index 3721a35..2a0341d 100755 --- a/job_ablhpg.sbatch +++ b/job_ablhpg.sbatch @@ -14,7 +14,6 @@ set -xv if [ -n "$1" ]; then f2D=$(basename $1); d2D=$(dirname $1); else exit; fi if [ -n "$2" ]; then f3D=$(basename $2); d3D=$(dirname $2); else exit; fi if [ -n "$3" ]; then fmsk=$(basename $3); dmsk=$(dirname $3); else exit; fi -if [ -n "$4" ]; then v=$4; fi fhpg=${f3D/inst3D/hpg} fabl=${f3D/inst3D/abl}; fabl=${fabl/L107-137/L50Z10} diff --git a/job_cdomiss.sbatch b/job_cdomiss.sbatch index 908decd..1d563f3 100755 --- a/job_cdomiss.sbatch +++ b/job_cdomiss.sbatch @@ -6,19 +6,14 @@ #SBATCH --cpus-per-task=4 -cd /ec/res4/scratch/ar0s/ERA5; pwd - module purge module load cdo/2.2.0 module list set +xv -if [ -n "$1" ]; then f=$(basename $1); d=$(dirname $1); else exit; fi -if [ -n "$2" ]; then dd=$(dirname ${2%/*}/.); fi +if [[ -z "$1" || -z "$2" ]]; then exit 1; fi -if [ ! -s ${dd:-${d}}/${f%.nc}_misstodis.nc ]; then - cdo -v -P 4 -t ecmwf -z zip -k grid -f nc4 -pack -setmisstodis -setctomiss,9.9692e+36 ${d}/${f} ${dd:-${d}}/${f%.nc}_misstodis.nc -fi +cdo -v -P 4 -t ecmwf -z zip -k grid -f nc4 -pack -setmisstodis -setctomiss,9.9692e+36 $1 $2 exit 0 diff --git a/job_cdosplit.sbatch b/job_cdosplit.sbatch index 96424d1..c51dce0 100755 --- a/job_cdosplit.sbatch +++ b/job_cdosplit.sbatch @@ -10,17 +10,10 @@ module list set +xv -if [ -n "$1" ]; then f=$(basename $1); d=$(dirname $1); else exit; fi +if [ -n "$1" ]; then f=$(basename $1); d=$(dirname $1); else exit 1; fi cd ${d}; pwd -var_list=( $(cdo showname ${f}) ) -var_list=( ${var_list[*]/"lsm"} ) -var_nb=${#var_list[*]} -file_nb=$( eval "ls {$(tr ' ' ',' <<< ${var_list[*]/"lsm"})}_${f} 2>/dev/null" | wc -l ) - -if [ ${file_nb} -lt ${var_nb} ]; then - cdo -v splitname,swap ${f} _${f%.nc} -fi +cdo -v splitname,swap ${f} _${f%.nc} exit 0 diff --git a/subjob_cdogrid.sh b/subjob_cdogrid.sh index 0e17ff1..b775e41 100755 --- a/subjob_cdogrid.sh +++ b/subjob_cdogrid.sh @@ -20,10 +20,6 @@ if [ ! -s ${dout}/${f2D} ]; then while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -eq 100 ]; do echo "sleeping..."; sleep 10; done if [ ${date} -eq ${date_end} ]; then echo "wait..."; w="--wait"; fi sbatch ${w} --job-name=cdogrid2D_${date} /home/ar0s/PROD_ERA5_ABL/job_cdogrid.sbatch ${p2D} ${dout}/${f2D} - if [ -n "${w}" ]; then - file_nb=$( eval "ls ${dout}/${f2D/${date}/${ym}??} 2>/dev/null" | wc -l ) - if [ ${day_nb} -eq ${file_nb} ]; then echo "OK"; else echo "ERROR"; exit 1; fi - fi fi if [ ! -s ${dout}/${f3D} ]; then @@ -31,7 +27,9 @@ if [ ! -s ${dout}/${f3D} ]; then if [ ${date} -eq ${date_end} ]; then echo "wait..."; w="--wait"; fi sbatch ${w} --job-name=cdogrid3D_${date} /home/ar0s/PROD_ERA5_ABL/job_cdogrid.sbatch ${p3D} ${dout}/${f3D} if [ -n "${w}" ]; then + file_nb=$( eval "ls ${dout}/${f2D/${date}/${ym}??} 2>/dev/null" | wc -l ) + if [ ${day_nb} -eq ${file_nb} ]; then echo "OK"; else echo "ERROR 2D"; exit 1; fi file_nb=$( eval "ls ${dout}/${f3D/${date}/${ym}??} 2>/dev/null" | wc -l ) - if [ ${day_nb} -eq ${file_nb} ]; then echo "OK"; exit 0; else echo "ERROR"; exit 1; fi + if [ ${day_nb} -eq ${file_nb} ]; then echo "OK"; exit 0; else echo "ERROR 3D"; exit 1; fi fi fi diff --git a/subjob_cdomiss.sh b/subjob_cdomiss.sh index c1c9210..795f9c3 100755 --- a/subjob_cdomiss.sh +++ b/subjob_cdomiss.sh @@ -20,7 +20,7 @@ for v in ${var_list[@]}; do if [ ! -s ${d}/${fout} ]; then while [ $(squeue -u $USER -h -t pending,running -r | wc -l) -eq 100 ]; do echo "sleeping..."; sleep 10; done if [[ ${date} -eq ${date_end} && ${v} == "humi" ]]; then echo "wait..."; w="--wait"; fi - sbatch ${w} --job-name=cdomiss_${date} /home/ar0s/PROD_ERA5_ABL/job_cdomiss.sbatch ${d}/${f} + sbatch ${w} --job-name=cdomiss_${date} /home/ar0s/PROD_ERA5_ABL/job_cdomiss.sbatch ${d}/${finp} ${d}/${fout} if [ -n "${w}" ]; then file_nb=$( eval "ls ${d}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fabl/${date}/${ym}??} 2>/dev/null" | wc -l ) if [ $((day_nb*var_nb)) -eq ${file_nb} ]; then echo "OK"; exit 0; else echo "ERROR"; exit 1; fi -- GitLab