From 88fa74c2db0a316c52df22d6ee407b658e3d26fd Mon Sep 17 00:00:00 2001
From: Guillaume S <gsamson@mercator-ocean.fr>
Date: Mon, 26 Aug 2024 15:46:18 +0200
Subject: [PATCH] fix for multi months

---
 full_prod.sh       | 2 +-
 move_to_perm.sh    | 2 +-
 subjob_ablhpg.sh   | 2 +-
 subjob_ablvint.sh  | 2 +-
 subjob_cdogrid.sh  | 4 ++--
 subjob_cdomiss.sh  | 4 ++--
 subjob_cdosplit.sh | 2 +-
 subjob_mars.sh     | 8 ++++----
 subjob_ncochunk.sh | 6 +++---
 9 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/full_prod.sh b/full_prod.sh
index 547d9bd..cc2f402 100755
--- a/full_prod.sh
+++ b/full_prod.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
-  
+
 set +xv
 
 
diff --git a/move_to_perm.sh b/move_to_perm.sh
index 5ceaebe..c980854 100755
--- a/move_to_perm.sh
+++ b/move_to_perm.sh
@@ -40,7 +40,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   
   if [ ${date} -eq ${date_end} ]; then
     if [ ${#var_list[@]} -gt 1 ]; then
-      file_nb=$( eval "ls ${DIR_SAVE}/{$(tr ' ' ',' <<< ${var_list[*]^^})}/ERA5_L50Z10_{$(tr ' ' ',' <<< ${var_list[*]^^})}_1H_extrap_y${date:0:4}m${date:4:2}d{${date_beg:6:2}..${date_end:6:2}}.nc 2>/dev/null" | wc -l )
+      file_nb=$( eval "ls ${DIR_SAVE}/{$(tr ' ' ',' <<< ${var_list[*]^^})}/ERA5_L50Z10_{$(tr ' ' ',' <<< ${var_list[*]^^})}_1H_extrap_y${date:0:4}m{${date_beg:4:2}..${date_end:4:2}}d{${date_beg:6:2}..${date_end:6:2}}.nc 2>/dev/null" | wc -l )
     else
       file_nb=$( eval "ls ${DIR_SAVE}/${var_list[*]^^}/ERA5_L50Z10_${var_list[*]^^}_1H_extrap_y${date:0:4}m${date:4:2}d{${date_beg:6:2}..${date_end:6:2}}.nc 2>/dev/null" | wc -l )
     fi
diff --git a/subjob_ablhpg.sh b/subjob_ablhpg.sh
index 17ca76c..9d60a49 100755
--- a/subjob_ablhpg.sh
+++ b/subjob_ablhpg.sh
@@ -37,7 +37,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   while [[ ${date} -eq ${date_end} && $(squeue -u $USER -h -t pending,running -r -o '%20j' | grep ablhpg_${ym} | wc -l) -gt 0 ]]; do echo "sleeping..."; sleep 10; done
   
   if [ ${date} -eq ${date_end} ]; then
-    file_nb=$( eval "ls ${d2D}/${fhpg/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    file_nb=$( eval "ls ${d2D%/*}/{${date_beg:0:6}..${date_end:0:6}}/${fhpg/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [ ${nbday} -eq ${file_nb} ]; then
       echo "-ABL_HPG: OK"
     else
diff --git a/subjob_ablvint.sh b/subjob_ablvint.sh
index cb652ca..c76f37e 100755
--- a/subjob_ablvint.sh
+++ b/subjob_ablvint.sh
@@ -40,7 +40,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   while [[ ${date} -eq ${date_end} && $(squeue -u $USER -h -t pending,running -r -o '%20j' | grep ablvint${var_name:+"_${var_name}"}_${ym} | wc -l) -gt 0 ]]; do echo "sleeping..."; sleep 10; done
   
   if [ ${date} -eq ${date_end} ]; then
-    file_nb=$( eval "ls ${d2D}/${var_name:+"${var_name}_"}${fabl/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    file_nb=$( eval "ls ${d2D%/*}/{${date_beg:0:6}..${date_end:0:6}}/${var_name:+"${var_name}_"}${fabl/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [ ${nbday} -eq ${file_nb} ]; then
       echo "-ABL_VINT: OK"
     else 
diff --git a/subjob_cdogrid.sh b/subjob_cdogrid.sh
index 64c3755..8a09069 100755
--- a/subjob_cdogrid.sh
+++ b/subjob_cdogrid.sh
@@ -51,13 +51,13 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   while [[ ${date} -eq ${date_end} && $(squeue -u $USER -h -t pending,running -r -o '%20j' | grep cdogrid.D_${ym} | wc -l) -gt 0 ]]; do echo "sleeping..."; sleep 10; done
   
   if [ ${date} -eq ${date_end} ]; then
-    file_nb=$( eval "ls ${dout}/${f2D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    file_nb=$( eval "ls ${dout%/*}/{${date_beg:0:6}..${date_end:0:6}}/${f2D/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [ ${nbday} -eq ${file_nb} ]; then
       echo "-CDO_GRID2D: OK"
     else
       echo "-CDO_GRID2D: ERROR"; exit 1
     fi
-    file_nb=$( eval "ls ${dout}/${f3D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    file_nb=$( eval "ls ${dout%/*}/{${date_beg:0:6}..${date_end:0:6}}/${f3D/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [ ${nbday} -eq ${file_nb} ]; then
       echo "-CDO_GRID3D: OK"
     else
diff --git a/subjob_cdomiss.sh b/subjob_cdomiss.sh
index 18ec82f..480a7fc 100755
--- a/subjob_cdomiss.sh
+++ b/subjob_cdomiss.sh
@@ -43,9 +43,9 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   
   if [ ${date} -eq ${date_end} ]; then
     if [ ${#var_list[@]} -gt 1 ]; then
-      file_nb=$( eval "ls ${d}/{$(tr ' ' ',' <<< ${var_list[*]})}_${f/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}_misstodis.nc 2>/dev/null" | wc -l )
+      file_nb=$( eval "ls ${d%/*}/{${date_beg:0:6}..${date_end:0:6}}/{$(tr ' ' ',' <<< ${var_list[*]})}_${f/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}_misstodis.nc 2>/dev/null" | wc -l )
     else
-      file_nb=$( eval "ls ${d}/${var_list[*]}_${f/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}_misstodis.nc 2>/dev/null" | wc -l )
+      file_nb=$( eval "ls ${d%/*}/{${date_beg:0:6}..${date_end:0:6}}/${var_list[*]}_${f/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}_misstodis.nc 2>/dev/null" | wc -l )
     fi
     if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
       echo "-CDO_MISS: OK"
diff --git a/subjob_cdosplit.sh b/subjob_cdosplit.sh
index feea2a9..5aac86e 100755
--- a/subjob_cdosplit.sh
+++ b/subjob_cdosplit.sh
@@ -43,7 +43,7 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   while [[ ${date} -eq ${date_end} && $(squeue -u $USER -h -t pending,running -r -o '%20j' | grep cdosplit_${ym} | wc -l) -gt 0 ]]; do echo "sleeping..."; sleep 10; done
   
   if [ ${date} -eq ${date_end} ]; then
-    file_nb=$( eval "ls ${dabl}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fabl/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    file_nb=$( eval "ls ${dabl%/*}/{${date_beg:0:6}..${date_end:0:6}}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fabl/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [ $((nbday*var_nb)) -eq ${file_nb} ]; then
       echo "-CDO_SPLIT: OK"
     else
diff --git a/subjob_mars.sh b/subjob_mars.sh
index 4692b9e..b131e05 100755
--- a/subjob_mars.sh
+++ b/subjob_mars.sh
@@ -39,12 +39,12 @@ for d in $(seq -f "%02g" 0 $((nbday-1))); do
   # TEST ALL FILES ARE PRODUCED
   if [ ${date} -eq ${date_end} ]; then
     
-    fnb=$( eval "ls ${dout}/${f3D/${date}.grib/${ym}{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l )
-    nnb=$( eval "ls ${dreg}/${n3D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    fnb=$( eval "ls ${dout%/*}/{${date_beg:0:6}..${date_end:0:6}}/${f3D/${date}.grib/*{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l )
+    nnb=$( eval "ls ${dreg%/*}/{${date_beg:0:6}..${date_end:0:6}}/${n3D/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [[ ${nbday} -eq ${fnb} || ${nbday} -eq ${nnb} ]]; then echo "-MARS_INST3D: OK"; else echo "-MARS_INST3D: ERROR"; exit 1; fi
 
-    fnb=$( eval "ls ${dout}/${f2D/${date}.grib/${ym}{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l )
-    nnb=$( eval "ls ${dreg}/${n2D/${date}.nc/${ym}{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
+    fnb=$( eval "ls ${dout%/*}/{${date_beg:0:6}..${date_end:0:6}}/${f2D/${date}.grib/*{${date_beg:6:2}..${date_end:6:2}}}.grib 2>/dev/null" | wc -l )
+    nnb=$( eval "ls ${dreg%/*}/{${date_beg:0:6}..${date_end:0:6}}/${n2D/${date}.nc/*{${date_beg:6:2}..${date_end:6:2}}}.nc 2>/dev/null" | wc -l )
     if [[ ${nbday} -eq ${fnb} || ${nbday} -eq ${nnb} ]]; then echo "-MARS_SURF2D: OK"; else echo "-MARS_SURF2D: ERROR"; exit 1; fi
 
   fi
diff --git a/subjob_ncochunk.sh b/subjob_ncochunk.sh
index 4f81fd7..6c526c0 100755
--- a/subjob_ncochunk.sh
+++ b/subjob_ncochunk.sh
@@ -42,11 +42,11 @@ 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/${ym}{${date_beg:6:2}..${date_end:6:2}}}_misstodis_cnk64.nc
+  fall=${f/${date}_misstodis.nc/*{${date_beg:6:2}..${date_end:6:2}}}_misstodis_cnk64.nc
   if [ ${#var_list[@]} -gt 1 ]; then
-    file_nb=$( eval "ls ${d}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fall} 2>/dev/null" | wc -l )
+    file_nb=$( eval "ls ${d%/*}/{${date_beg:0:6}..${date_end:0:6}}/{$(tr ' ' ',' <<< ${var_list[*]})}_${fall} 2>/dev/null" | wc -l )
   else
-    file_nb=$( eval "ls ${d}/${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 )
   fi
   if [ $((nbday*${#var_list[@]})) -eq ${file_nb} ]; then
     echo "-NCO_CHUNK: OK"
-- 
GitLab