#!/bin/bash
###############################################################################
# Pruebas con MARS para clientes.
#
# Marcos Molina Cano - 10/11/2017
###############################################################################

# Útil para detectar bugs.
set -x

mkdir -p /home/marcos/mars/fclima
cd /home/marcos/mars/fclima



for anno in 2010; do
  for mes in 01; do
    # Get the number of days for this particular month/year
    days_per_month=$(cal ${mes} ${anno} | awk 'NF {DAYS = $NF}; END {print DAYS}')

    for dia in $(seq -w 1 ${days_per_month}); do

      for pasada in 00; do
        target=${anno}${mes}${dia}${pasada}
        marsRequest=${anno}${mes}${dia}${pasada}.mars
        marsLog=${anno}${mes}${dia}${pasada}.mars.log

        cat > ${marsRequest} << EOF
# Miembro de control.
retrieve,
  class=od,
  type=cf,
  stream=enfo,
  expver=1,
  levtype=pl,
  levelist=1000/850/700/250,
  param=U/V/Q/R,
# area=North/West/South/East
  area=34./-119./6.2/-73.6,
#  grid=0.2/0.2,
  grid=320,
  date=${anno}${mes}${dia},
  time=${pasada},
  step=all,
  target="${target}"
#retrieve,
#  levelist=1000/850,
#  param=157.128
retrieve,
  levtype=sfc,
  param=2T/TP

# Miembros perturbados.
retrieve,
  type=pf,
  number=1/to/50,
  levtype=pl,
  levelist=1000/850/700/250,
  param=U/V/Q/R
#retrieve,
#  levelist=1000/850,
#  param=157.128
retrieve,
  levtype=sfc,
  param=2T/TP

EOF
        if test -e "${marsRequest}.ok" ; then
          continue
        else
          echo "rm -f ${marsLog} && mars ${marsRequest} >> ${marsLog} && touch ${marsRequest}.ok"
        fi

      done
    done
  done
done | parallel -j 6 --ungroup

exit
