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