#!/bin/bash
# copia_todos.sh

SRC_BASE=/oper/dados/modelo/bam/TQ0666L064/brutos/2025
DEST=/mnt/beegfs/thaisa.lopes/SCANTEC/dataout/PRECIP/NCEP

cd "$DEST" || exit 1

total=0; ok=0; falta=0; erro=0

for day in 202510{20..31} 202511{01..15}; do
    mm=${day:4:2}; dd=${day:6:2}
    next=$(date -d "${day} +1 day" +%Y%m%d)
    dir="$SRC_BASE/${mm}/${dd}/00"

    for hh in ${day}06 ${day}12 ${day}18 ${next}00; do
        base="GPOSNMC${day}00${hh}P.fct.TQ0666L064"
        grb_in="$dir/${base}.grb"
        ctl_in="$dir/${base}.ctl"

        total=$((total+1))
        echo ">>> [$total] $base"

        if [[ ! -e "$grb_in" || ! -e "$ctl_in" ]]; then
            echo "    ⚠️  falta na origem: $grb_in"
            falta=$((falta+1))
            continue
        fi

        if ! cdo -s selname,var61 "$grb_in" "${base}.grb" 2>/dev/null; then
            echo "    ❌ erro no cdo"
            erro=$((erro+1))
            continue
        fi

        awk '
            /^vars/ { print "vars    1"; in_vars=1; next }
            /^endvars/ { print; in_vars=0; next }
            in_vars { if ($1 == "PREC") print; next }
            { print }
        ' "$ctl_in" > "${base}.ctl"

        if ! gribmap -i "${base}.ctl" > /dev/null 2>&1; then
            echo "    ❌ erro no gribmap"
            erro=$((erro+1))
            continue
        fi

        echo "    ✅ ok"
        ok=$((ok+1))
    done
done

echo ""
echo "===================================="
echo "Total : $total | OK: $ok | Falta: $falta | Erro: $erro"
echo "===================================="
