#! /bin/ksh

set -x 

set -u -e

function fail {
    sh ${utilscript}/setup.sh
    err=911
    err_exit "$*"
}

ymdh="$1"
wind="$2"
ocean="$3"

ymd=$( echo "$ymdh" | cut -c1-8 )

sf="${GFS_SF_SOURCE:-}"
year=$( echo $ymdh | cut -c1-4 )

# If the GFS source type is not specified, use defaults for the current year:
if [[ -z "$sf" ]] ; then
    case "$year" in
        2008|2009) sf=pre13d ;;
        2010) sf=pre13j ;;
        2011) sf=pre13hi ;;
        201[23]) sf=pre13i ;;
        *) fail "I do not know where to find data for year $year" ;;
    esac
fi

# Capitalize the source type:
SF=$( echo $sf | tr a-z A-Z )

# If this is a forecast run, replace it with "FORECAST":
if [[ "$CASE_ROOT" == FORECAST ]] ; then
    SF=FORECAST
fi

# If we have a $GFS_DIR then override the standard paths:
if [[ ! -z "$GFS_DIR" ]] ; then
    if [[ "$CASE_ROOT" == FORECAST ]] ; then
        exec $USHhwrf/hwrf_link_input.sh --wait-grib "$ymdh" "$wind" "$ocean" "$GFS_DIR"
    else
        exec $USHhwrf/hwrf_link_input.sh "$ymdh" "$wind" "$ocean" "$GFS_DIR"
    fi
fi

# Find the correct location to obtain the requested dataset for the
# current cluster:
MATCH=$WHERE_AM_I$SF
case "$MATCH" in
    *PRE13I)
        fail "FIXME: I don't know where to find PRE13I data on any cluster."
        ;;
    jetPRE13*)
        echo "USE LOCAL JET HISTORY FILES"
        $USHhwrf/hwrf_link_input.sh "$ymdh" "$wind" "$ocean" \
            /lfs1/projects/hwrf-vd/hwrf-input/GFS-$SF/GFS.$year/$ymdh
        ;;
    jetFORECAST)
        echo "USE LOCAL JET FORECAST FILES"
        $USHhwrf/hwrf_link_input.sh --wait-grib "$ymdh" "$wind" "$ocean" \
           ${GFS_COM_ROOT:-/lfs1/projects/hwrf-vd/hwrf-input/FORECAST/}gfs.$ymdh
        ;;
    zeusPRE13J|zeusPRE13HI)
        echo "USE LOCAL ZEUS HISTORY FILES"
        $USHhwrf/hwrf_link_input.sh "$ymdh" "$wind" "$ocean" \
           /scratch1/portfolios/NCEPDEV/hwrf/noscrub/input/GFS-$SF/GFS.$year/$ymdh
        ;;
    *FORECAST)
        echo "USE LOCAL FORECAST FILES"
        $USHhwrf/hwrf_link_input.sh --wait-grib "$ymdh" "$wind" "$ocean" \
           ${GFS_COM_ROOT:-/com/gfs/prod/}gfs.$ymd
        ;;
    *PRE13D)
        if [[ ! -z "$REMOTE_JET_USER" ]] ; then
            echo "USE REMOTE JET HISTORY FILES"
            $USHhwrf/hwrf_scp_input.sh "$ymdh" "$wind" "$ocean" \
                $REMOTE_JET_USER@jetscp.rdhpcs.noaa.gov:/lfs1/projects/hwrf-vd/hwrf-input/GFS-$SF/GFS.$year/$ymdh/\*
        else
            fail "Cannot obtain dataset $SF for CCS or Zeus unless \$REMOTE_JET_USER is specified."
        fi
        ;;
    *PRE13J|*PRE13HI)
        if [[ ! -z "$REMOTE_ZEUS_USER" ]] ; then
            echo "USE REMOTE ZEUS HISTORY FILES"
            $USHhwrf/hwrf_scp_input.sh "$ymdh" "$wind" "$ocean" \
                $REMOTE_ZEUS_USER@dtn-zeus.rdhpcs.noaa.gov:/scratch1/portfolios/NCEPDEV/hwrf/noscrub/input/GFS-$SF/GFS.$year/$ymdh/\*
        elif [[ ! -z "$REMOTE_JET_USER" ]] ; then
            echo "USE REMOTE JET HISTORY FILES"
            $USHhwrf/hwrf_scp_input.sh "$ymdh" "$wind" "$ocean" \
                $REMOTE_JET_USER@jetscp.rdhpcs.noaa.gov:/lfs1/projects/hwrf-vd/hwrf-input/GFS-$SF/GFS.$year/$ymdh/\*
        else
            fail "Cannot obtain dataset $SF for CCS unless \$REMOTE_ZEUS_USER or \$REMOTE_JET_USER are specified."
        fi
        ;;
    *) fail "Unknown cluster/dataset combination WHERE_AM_I=\"$WHERE_AM_I\" SF=\"$SF\"."
        ;;
esac
