#!/bin/bash
set -eua

EXPNAM=$1 CDATE=$2 ARCDIR=${ARCDIR:-$3} TMPDIR=${TMPDIR:-$4}

FITDIR=$(dirname $0); fitdir=$(cd $FITDIR/../batrun; pwd)
LOGDIR=${LOGDIR:-$COMROT/logs/$CDATE}

set +x
echo -------------------------------------------------------------------------------------------------------------------
echo Starting runfits: the following variables must be defined:
echo -------------------------------------------------------------------------------------------------------------------
echo "EXPNAM           " $EXPNAM            # argument 1 - experiment name    - required
echo "CDATE            " $CDATE             # argument 2 - date of validation - required
echo "ARCDIR           " $ARCDIR            # argument 4 - ARCDIR directory   - optional - defaults to $COMROT/archive
echo "TMPDIR           " $TMPDIR            # argument 5 - TMPDIR directory   - optional - defaults to /ptmp/$USER/tmpdir
echo "LOGDIR           " $LOGDIR            # inheirited - log directory      - optional - defaults to $COMROT/logs/$CDATE
echo "FITDIR           " $FITDIR            # inheirited - Fit2obs batrun dir - optional - defaults to $(dirname $0)
echo "ACCOUNT          " $ACCOUNT           # inheirited - project code       - required - defaults to nothing
echo "COMIN_ANALYSIS   " $COMIN_ANALYSIS    # inheirited - analysis input     - required - defaults to nothing
echo "COMIN_HISTORY    " $COMIN_HISTORY     # inheirited - forecast input     - required - defaults to nothing
echo "OUTPUT_FILETYPE  " $OUTPUT_FILETYPE   # inheirited - project code       - required - either nemsio or netcdf defaults to sigio
echo -------------------------------------------------------------------------------------------------------------------
set -x

mkdir -p $LOGDIR $TMPDIR

nproc=3

cat<<eof | qsub -
#!/bin/bash
#PBS -N FITS.$EXPNAM.$CDATE
#PBS -o $LOGDIR/FITS.$EXPNAM.$CDATE.$$
#PBS -A $ACCOUNT
#PBS -l select=1:ncpus=$nproc:mpiprocs=$nproc:mem=200GB
#PBS -l walltime=${TIMELIM:-02:00:00}
#PBS -q ${CUE2RUN:-dev}
#PBS -j oe
#PBS -V       

set -euax  

CDATE=$CDATE

cd $PWD

set +x
module reset
module load envvar/1.0
module load PrgEnv-intel/8.1.0
module load craype/2.7.8
module load intel/19.1.3.304
module load cray-mpich/8.1.7
module load cray-pals/1.0.17
module load libjpeg/9c
module load prod_util/2.0.5
module load grib_util/1.2.3
module load netcdf/4.7.4
module list
set -x

set +ux
echo
echo COMIN_OBS='$COMIN_OBS'
echo COMIN_ANALYSIS='$COMIN_ANALYSIS'
echo COMIN_HISTORY='$COMIN_HISTORY'
echo
set -ux

export OMP_NUM_THREADS=${FITOMP:-1}
export MPIRUN="mpiexec -n $nproc"

export ARCDIR=$ARCDIR
export TMPDIR=$TMPDIR
export fitdir=$fitdir

time $fitdir/runfits $EXPNAM $CDATE 

eof

