#!/bin/bash -l
# ============================================================================
#  jobs/submit_gd3_2026091100.sh
#
#  Dong goi GD3 con THIEU cho chu ky 2026091100 (member 03): tao clWRF_03.nc
#  trong monthly/2026/09/ va daily/2026/09/. Cac san pham khac (RegCM_03,
#  clWRF_01/02, RegCM_01/02) DA co -> get_data_monthly.sh idempotent se GIU
#  nguyen, chi tao file con thieu.
#
#  TAI SAO KHONG dung run_rcms.sh (nhu helper 2026090100)?
#      Input CFS goc /home/nampq/data/CFS_Ope/00/2026091100 DA BI DON DEP, nen
#      run_rcms.sh se die o buoc validate_cycle_files TRUOC khi toi GD3. GD3
#      chi doc tu data/current/{CLWRF,RegCM} (deu da co) nen ta goi thang
#      get_data_monthly.sh cua he cu - dung y het cron 10:10 hang ngay.
#
#  TIEN DIEU KIEN (da kiem tra 2026-09-15):
#      - clWRF GD2: data/current/CLWRF/2026091100/u.nc          ✅ (14/9 20:18)
#      - RegCM GD2: data/current/RegCM/2026091100/daily/pr.nc    ✅ (13/9 08:16)
#
#  ⚠️  CANH BAO XUNG DOT (race): get_data_monthly.sh tao file .nc tam ngay tai
#      thu muc forecast/ (cwd) roi 'rm -fv *.nc'. Cron nghiep vu chay luc 10:10
#      cung script nay o cung thu muc. TUYET DOI KHONG chay helper nay khi cron
#      10:10 dang chay (hoac sap chay). An toan nhat:
#         - Cach 1 (khuyen nghi): DE cron 10:10 tu lam, roi kiem tra.
#         - Cach 2: chay helper nay NGOAI khung gio 10:10 va khi
#                   'squeue -u $USER -n do_tasks' TRONG.
#
#  CACH DUNG (chay bang user nampq):
#      bash /home/tanpv/Progs/claude/Auto_RCMs/jobs/submit_gd3_2026091100.sh
# ============================================================================
set -euo pipefail

FORECAST_DIR="${FORECAST_DIR:-/work/users/nampq/working/Proj_T.Tan/NCCB_562/forecast}"
CURRENT_ROOT="${CURRENT_ROOT:-/work/users/nampq/working/Proj_T.Tan/Operational/Seasonal_FC/data/current}"
S_DATE=2026091100

# --- 0. Neu da co san pham thi thoi -----------------------------------------
if [[ -s "$FORECAST_DIR/monthly/2026/09/clWRF_03.nc" \
   && -s "$FORECAST_DIR/daily/2026/09/clWRF_03.nc" ]]; then
    echo ">> clWRF_03.nc DA co (monthly + daily) -> khong can lam gi."
    exit 0
fi

# --- 1. Kiem tra tien dieu kien GD2 -----------------------------------------
cl="$CURRENT_ROOT/CLWRF/$S_DATE/u.nc"
rg="$CURRENT_ROOT/RegCM/$S_DATE/daily/pr.nc"
[[ -s "$cl" ]] || { echo "ERROR: thieu GD2 clWRF: $cl" >&2; exit 1; }
[[ -s "$rg" ]] || { echo "ERROR: thieu GD2 RegCM: $rg" >&2; exit 1; }

# --- 2. Tranh xung dot voi cron 10:10 (job ten 'do_tasks') ------------------
running=$(squeue -u "$USER" -h -n do_tasks -o '%i' 2>/dev/null | tr -d ' ' || true)
if [[ -n "$running" ]]; then
    echo "ERROR: dang co job do_tasks chay ($running) - co the la cron 10:10." >&2
    echo "       Cho no xong roi kiem tra clWRF_03.nc; KHONG chay chong len." >&2
    exit 1
fi
hm=$(date +%H%M)
if [[ "$hm" -ge 1000 && "$hm" -le 1030 ]]; then
    echo "ERROR: dang trong khung gio cron 10:10 ($hm) - hoan lai de tranh race." >&2
    exit 1
fi

# --- 3. Nop lai get_data_monthly.sh (idempotent, chi tao file con thieu) -----
echo ">> Nop GD3 (get_data_monthly.sh) tai $FORECAST_DIR de tao clWRF_03.nc ..."
cd "$FORECAST_DIR" || { echo "ERROR: khong cd duoc $FORECAST_DIR" >&2; exit 1; }
jid=$(sbatch --parsable get_data_monthly.sh)
echo ">> Da nop job $jid (output/error -> $FORECAST_DIR/task_out, task_err)."
echo
echo ">> Sau khi xong, kiem tra:"
echo "   ls -la $FORECAST_DIR/monthly/2026/09/clWRF_03.nc $FORECAST_DIR/daily/2026/09/clWRF_03.nc"
