#! /bin/bash -x

bpath=/mnt/beegfs/luiz.sapucci/SCANTEC/bin/periodo

DATAI=2024020100 
DATAF=2024022400

#Exps=(X666 X126ALEX XENMALEX T126OPER TENMOPER)
#Exps=(X666 DTC BAMH)
#Exps=(DTC BAMH)
#Exps=(X666 BHT0 DTC BAMH)
Exps=(EXP19 EXP20)
Regs=(GL GOES AS AKARA)

#REFMODELTABLE="Era5_gl_025dg_5levs"

for exp in ${Exps[@]}
do

  mkdir -p ${bpath}/${exp}

  EXP="${exp}"

  if [ ${exp} == "EXP19" ]
  then
    MODELTABLE="Bam"
    FILENAME="/mnt/beegfs/luiz.sapucci/SCANTEC/datain/Exp19/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0299L064.ctl"
    REFMODELTABLE="Bam20"
     ICNFILENAME="/mnt/beegfs/luiz.sapucci/SCANTEC/datain/Exp20/TQ0299L064/%y4%m2%d2%h2/GPOSCPT%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0299L064.ctl"

    FCTOTAL="120"
  fi

  if [ ${exp} == "EXP20" ]
  then
    MODELTABLE="Bam20"
    FILENAME="/mnt/beegfs/luiz.sapucci/SCANTEC/datain/Exp20/TQ0299L064/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0299L064.ctl"
    REFMODELTABLE="Bam20"
    ICNFILENAME="/mnt/beegfs/luiz.sapucci/SCANTEC/datain/Exp20/TQ0299L064/%y4%m2%d2%h2/GPOSCPT%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0299L064.ctl"
    
    FCTOTAL="120"
  fi

  if [ ${exp} == "DTC" ]
  then
    MODELTABLE="BAM_TQ0299L064_33levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/SMNA-Oper/SMG/datainout/bam/pos/dataout/TQ0299L064.fullobs_ncep-2023-11d/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0299L064.ctl"
    #ICNFILENAME="/mnt/beegfs/carlos.bastarz/SMNA-Oper/SMG/datainout/bam/pos/dataout/TQ0299L064.fullobs_ncep-2023-11d/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0299L064.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/Era5/Era5%iy4%im2%id2%ih2%iy4%im2%id2%ih2.icn.grib.ctl"
    FCTOTAL="264"
  fi

  if [ ${exp} == "BHT0" ]
  then
    MODELTABLE="BAM_TQ0299L064_33levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/SMNA-Oper/SMG/datainout/bam/pos/dataout/TQ0299L064.fullobs_bamh_T0-2023-11d/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0299L064.ctl"
    #ICNFILENAME="/mnt/beegfs/carlos.bastarz/SMNA-Oper/SMG/datainout/bam/pos/dataout/TQ0299L064.fullobs_bamh_GT4AT2-2023-11d/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0299L064.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/Era5/Era5%iy4%im2%id2%ih2%iy4%im2%id2%ih2.icn.grib.ctl"
    FCTOTAL="264"
  fi

  if [ ${exp} == "BAMH" ]
  then
    MODELTABLE="BAM_TQ0299L064_33levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/SMNA-Oper/SMG/datainout/bam/pos/dataout/TQ0299L064.fullobs_bamh_GT4AT2-2023-11d/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0299L064.ctl"
    #ICNFILENAME="/mnt/beegfs/carlos.bastarz/SMNA-Oper/SMG/datainout/bam/pos/dataout/TQ0299L064.fullobs_bamh_GT4AT2-2023-11d/%iy4%im2%id2%ih2/GPOSCPT%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0299L064.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/Era5/Era5%iy4%im2%id2%ih2%iy4%im2%id2%ih2.icn.grib.ctl"
    FCTOTAL="264"
  fi

  if [ ${exp} == "GFS" ]
  then
    MODELTABLE="GFS_0p25_5levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/GFS_subset/%iy4%im2%id2%ih2/gfs.t00z.pgrb2.0p25.f%h3.%iy4%im2%id2%ih2.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/GFS_subset/%iy4%im2%id2%ih2/gfs.t00z.pgrb2.0p25.f000.%iy4%im2%id2%ih2.ctl"
    FCTOTAL="168"
  fi

  if [ ${exp} == "X666" ]
  then
    MODELTABLE="BAM_TQ0666L064_33levs"
    #FILENAME="/modelo/bam/TQ0666L064/brutos/%y4/%m2/%d2/%h2/GPOSNMC%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0666L064.ctl"
    FILENAME="/mnt/beegfs/carlos.bastarz/BAMOPERXC50/XC50/TQ0666L064/%y4%m2%d2%h2/GPOSNMC%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0666L064.ctl"
    REFMODELTABLE="BAM_TQ0666L064_33levs"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/BAMOPERXC50/XC50/TQ0666L064/%y4%m2%d2%h2/GPOSNMC%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0666L064.ctl"
    #REFMODELTABLE="Era5_gl_025dg_10levs"
    #ICNFILENAME="/mnt/beegfs/carlos.bastarz/Era5/Era5%iy4%im2%id2%ih2%iy4%im2%id2%ih2.icn.grib.ctl"
    FCTOTAL="264"
  fi

  if [ ${exp} == "TEST" ]
  then
    MODELTABLE="BAM_TQ0126L028_9levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/oensMB09.svn/pos/dataout.exp_anlalex_choppsmt_018_100/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    FCTOTAL="360"
  fi
  
  if [ ${exp} == "X126ALEX" ]
  then
    MODELTABLE="BAM_TQ0126L028_9levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/oensMB09.svn/pos/dataout.exp_anlalex_choppsmt_018_100/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/oensMB09.svn/pos/dataout.exp_anlalex_choppsmt_018_100/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0126L028.ctl"
    FCTOTAL="360"
  fi
  
  if [ ${exp} == "XENMALEX" ]
  then
    MODELTABLE="BAM_TQ0126L028_9levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/oensMB09.svn/ensmed/dataout.exp_anlalex_choppsmt_018_100/TQ0126L028/%iy4%im2%id2%ih2/GPOSENM%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/oensMB09.svn/ensmed/dataout.exp_anlalex_choppsmt_018_100/TQ0126L028/%iy4%im2%id2%ih2/GPOSENM%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0126L028.ctl"
    FCTOTAL="360"
  fi
  
  if [ ${exp} == "X126" ]
  then
    MODELTABLE="BAM_TQ0126L028_9levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/oensMB09_test_preXC50/pos/dataout/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/oensMB09_test_preXC50/pos/dataout/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0126L028.ctl"
    FCTOTAL="360"
  fi

  if [ ${exp} == "XENM" ]
  then
    MODELTABLE="BAM_TQ0126L028_9levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/oensMB09_test_preXC50/ensmed/dataout/TQ0126L028/%iy4%im2%id2%ih2/GPOSENM%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/oensMB09_test_preXC50/ensmed/dataout/TQ0126L028/%iy4%im2%id2%ih2/GPOSENM%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0126L028.ctl"
    FCTOTAL="360"
  fi

  if [ ${exp} == "T126OPER" ]
  then
    MODELTABLE="AGCM_TQ0126L028_18levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/from_tupa/dados/ensemble/dsk001/oens_MB09_tupa/pos/dataout/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/from_tupa/dados/ensemble/dsk001/oens_MB09_tupa/pos/dataout/TQ0126L028/%iy4%im2%id2%ih2/NMC/GPOSNMC%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0126L028.ctl"
    FCTOTAL="360"
  fi

  if [ ${exp} == "TENMOPER" ]
  then
    MODELTABLE="AGCM_TQ0126L028_18levs"
    FILENAME="/mnt/beegfs/carlos.bastarz/from_tupa/dados/ensemble/dsk001/oens_MB09_tupa/ensmed/dataout/TQ0126L028/%iy4%im2%id2%ih2/GPOSENM%iy4%im2%id2%ih2%fy4%fm2%fd2%fh2P.fct.TQ0126L028.ctl"
    ICNFILENAME="/mnt/beegfs/carlos.bastarz/from_tupa/dados/ensemble/dsk001/oens_MB09_tupa/ensmed/dataout/TQ0126L028/%iy4%im2%id2%ih2/GPOSENM%iy4%im2%id2%ih2%iy4%im2%id2%ih2P.icn.TQ0126L028.ctl"
    FCTOTAL="360"
  fi

  SCANNAME="SCNTC_${EXP}"
  PATHBIN=${bpath}/${EXP}

  PBS_JARRAY=$(($(echo ${#Regs[@]})-1)) 

  if [ ${PBS_JARRAY} -eq 0 ]
  then

cat << EOF > ${bpath}/${exp}/scantec.sbt
#!/bin/bash -x 
#SBATCH --output=${bpath}/#EXP#/scantec.out
#SBATCH --error=${bpath}/#EXP#/scantec.err
#SBATCH --time=12:00:00
#SBATCH --tasks-per-node=1
#SBATCH --nodes=1
#SBATCH --job-name=#SCANNAME#
#SBATCH --partition=PESQ1

cd #PATHBIN#/${Regs}

mpirun -np 1 #PATHBIN#/${Regs}/scantec.x

touch #PATHBIN#/monitor.t
EOF

    sed -i "s,#SCANNAME#,${SCANNAME},g" ${bpath}/${exp}/scantec.sbt
    sed -i "s,#PBS_JARRAY#,${PBS_JARRAY},g" ${bpath}/${exp}/scantec.sbt
    sed -i "s,#PATHBIN#,${PATHBIN},g" ${bpath}/${exp}/scantec.sbt
    sed -i "s,#EXP#,${exp},g" ${bpath}/${exp}/scantec.sbt

  else

cat << EOF > ${bpath}/${exp}/scantec.sbt
#!/bin/bash -x
#SBATCH --output=${bpath}/#EXP#/scantec.out
#SBATCH --erro=${bpath}/#EXP#/scantec.err
#SBATCH --time=12:00:00
#SBATCH --tasks-per-node=1
#SBATCH --nodes=1
#SBATCH --job-name=#SCANNAME#
#SBATCH --partition=PESQ1
#SBATCH --array=0-#PBS_JARRAY#

$(for reg in ${!Regs[@]}; do echo "if [ \${SLURM_ARRAY_TASK_ID} -eq ${reg} ]; then reg=${Regs[$reg]}; fi"; done)

cd #PATHBIN#/\${reg}

source /home/carlos.bastarz/.conda/envs/SCANTEC/bin/activate
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH

mpirun -np 1 #PATHBIN#/\${reg}/scantec.x

touch #PATHBIN#/monitor.t
EOF

    sed -i "s,#SCANNAME#,${SCANNAME},g" ${bpath}/${exp}/scantec.sbt
    sed -i "s,#PBS_JARRAY#,${PBS_JARRAY},g" ${bpath}/${exp}/scantec.sbt
    sed -i "s,#PATHBIN#,${PATHBIN},g" ${bpath}/${exp}/scantec.sbt
    sed -i "s,#EXP#,${exp},g" ${bpath}/${exp}/scantec.sbt
  fi

  for reg in ${Regs[@]}
  do

    if [ ${reg} == "GL" ]; then lowletflat="-60    "; lowleftlon="  -0    "; uprightlat=" 60    "; uprightlon="360    "; fi
    if [ ${reg} == "GOES" ]; then lowletflat=" -60    "; lowleftlon="  180    "; uprightlat=" 60    "; uprightlon="360    "; fi
    if [ ${reg} == "AKARA" ]; then lowletflat="-60    "; lowleftlon="  -40    "; uprightlat=" -30    "; uprightlon="-20   "; fi
    if [ ${reg} == "AS" ]; then lowletflat="-49.875"; lowleftlon="-82.625"; uprightlat=" 11.375"; uprightlon="-30.375"; fi

    mkdir -p ${bpath}/${exp}/${reg}

    cat ${bpath}/scantec.conf.template | sed "s,#DATAI#,${DATAI},g" > ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#DATAI#,${DATAI},g" ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#DATAF#,${DATAF},g" ${bpath}/${exp}/${reg}/scantec.conf  

    sed -i "s,#lowletflat#,${lowletflat},g" ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#lowleftlon#,${lowleftlon},g" ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#uprightlat#,${uprightlat},g" ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#uprightlon#,${uprightlon},g" ${bpath}/${exp}/${reg}/scantec.conf

    sed -i "s,#MODELTABLE#,${MODELTABLE},g" ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#EXP#,${EXP},g" ${bpath}/${exp}/${reg}/scantec.conf
    sed -i "s,#ICNFILENAME#,${ICNFILENAME},g" ${bpath}/${exp}/${reg}/scantec.conf

    if [ ! -z ${REFMODELTABLE} ]; then sed -i "s,#REFMODELTABLE#,${REFMODELTABLE},g" ${bpath}/${exp}/${reg}/scantec.conf; fi

    sed -i "s,#FILENAME#,${FILENAME},g" ${bpath}/${exp}/${reg}/scantec.conf
  
    sed -i "s,#FCTOTAL#,${FCTOTAL},g" ${bpath}/${exp}/${reg}/scantec.conf

    PATHOUT=/mnt/beegfs/luiz.sapucci/SCANTEC/dataout/periodo/${reg}

    sed -i "s,#PATHOUT#,${PATHOUT},g" ${bpath}/${exp}/${reg}/scantec.conf  
 
    mkdir -p ${PATHOUT}

    cp ${bpath}/scantec.x ${bpath}/${exp}/${reg}/

  done 

  if [ ! -z ${scan_job_id} ]
  then
    scan_job=$(sbatch --dependency=afterok:${scan_job_id} ${bpath}/${exp}/scantec.sbt)
  else
    scan_job=$(sbatch ${bpath}/${exp}/scantec.sbt)
  fi
  scan_job_id=$(echo ${scan_job} | awk -F " " '{print $4}')
  echo "SCANTEC ${exp} ${DATAI} ${scan_job_id}"
  until [ -e ${bpath}/${exp}/monitor.t ]; do sleep 1s; done

done
