#!/bin/ksh

# Note: When run by Workflow Manager, this script's output can be found in
# FIMwfm/logs/pop. Also see FIMwfm/logs/workflow for general WFM messages.

CONTEXT="batchTemplate-FIMY_ENKF-files"

# Source functions.ksh if needed.

if [[ -z "$functions_sourced" ]]
then
  test -n "$WFM" && prefix=$FIM_HOME/FIMrun || prefix=.
  . $prefix/functions.ksh # Most function definitions can be found here.
fi

ksh_insist # Ensure that we are running in ksh93

# Run batchTemplate-setup if it has not already been run.

test -z "$batchTemplate_setup_ran" && xsource ./batchTemplate-setup

# get files from run directory

FIM_POST_GRIB1_DIR=$POST/fim/NAT/grib1
print "in batchTemplate-FIMY_ENKF-files"
print "ENKF_DIR: $ENKF_DIR"
print "PREP: $PREP"
print "RUNDIR: $RUNDIR"
print "MEMBER_ID: $MEMBER_ID"
if [[ ! -d "$PREP" ]]
then
  mkdir -p "$PREP" || fail "Cannot make directory $PREP."
fi
if [[ ! -d $RUNDIR/fim_$MEMBER_ID ]]
then
  mkdir -p "$RUNDIR/fim_$MEMBER_ID" || fail "Cannot make directory $RUNDIR/fim_$MEMBER_ID."
fi

get_nl_value_unquoted $fimnamelist ISOBARICnamelist isobaric_levels_file ISOBARIC_LEVELS_FILE

cp "$ENKF_DIR/fim_C/$ISOBARIC_LEVELS_FILE" $RUNDIR/prep_$MEMBER_ID/$ISOBARIC_LEVELS_FILE || print "cannot copy $ENKF_DIR/prep_C/$ISOBARIC_LEVELS_FILE"
cp "$ENKF_DIR/fim_C/$ISOBARIC_LEVELS_FILE" $RUNDIR/fim_$MEMBER_ID/$ISOBARIC_LEVELS_FILE || print "cannot copy $ENKF_DIR/fim_C/$ISOBARIC_LEVELS_FILE"
cp "$ENKF_DIR/fim_C/FIMnamelist" $PREP/FIMnamelist || fail "cannot copy $ENKF_DIR/prep_C/FIMnamelist"
cp "$PREP/FIMnamelist" $RUNDIR/fim_$MEMBER_ID/FIMnamelist || fail "cannot copy $PREP/FIMnamelist $RUNDIR/fim_$MEMBER_ID/FIMnamelist"
cp "$ENKF_DIR/fim_C/fim_gribtable" $RUNDIR/fim_$MEMBER_ID/fim_gribtable || fail "cannot copy $ENKF_DIR/fim_C/fim_gribtable"
cp "$ENKF_DIR/prep_C/icos_grid_info_level.dat" $RUNDIR/prep_$MEMBER_ID/icos_grid_info_level.dat || fail "cannot copy $ENKF_DIR/prep_C/icos_grid_info_level.dat"
  # copy grib files
ENKF_FILE=$ENKF_DIR/fim_C/$ENKF_FILE_NAME
fcst=$T1
typeset -Z3 tmp_fcst
while [[ $fcst -le $T2 ]]
do
  tmp_fcst=$fcst
  print "in grib loop: after format fcst: $fcst tmp_fcst: $tmp_fcst"
  FILE_NAME=${ENKF_FILE}${tmp_fcst}
  OUT_FILE_NAME=${ENKF_FILE_NAME}${tmp_fcst}
  print "!!filename: $FILE_NAME out_file_name: $OUT_FILE_NAME"
  if [[ -s $FILE_NAME ]]
  then
    cp $FILE_NAME $FIM_POST_GRIB1_DIR/$OUT_FILE_NAME
  else
    print "error $FILE_NAME does not exist"
  fi
  fcst=$(expr ${fcst} + 6)
done

  # copy fim files
fcst=$T1
while [[ $fcst -le $T2 ]]
do
  tmp_fcst=$fcst
  print "after format fcst: $fcst tmp_fcst: $tmp_fcst"
  str=fim_out*${tmp_fcst}hr
    # find $ENKF_DIR/fim_C/ -name "fim_out*${tmp_fcst}hr" -exec cp {} $RUNDIR/fim_$MEMBER_ID \;
  find $ENKF_DIR/fim_C/ -name "$str" -exec cp {} $RUNDIR/fim_$MEMBER_ID \;
  fcst=$(expr ${fcst} + 6)
done

return 0