
#======================================================================
# Clear coupler log files for comparison tests
#======================================================================
unsetenv CPLLOG_INIT
unsetenv CPLLOG_REST

#======================================================================
# do a run on 1 pe with mpi, with length taken from compset default
#======================================================================
cd $CASEROOT
echo "doing a test on 1 pe with mpi, with length taken from compset default" >>& $TESTSTATUS_LOG 

./xmlchange -file env_run.xml -id CONTINUE_RUN -val FALSE
./xmlchange -file env_run.xml -id REST_OPTION  -val never
./xmlchange -file env_run.xml -id HIST_OPTION  -val '$STOP_OPTION'
./xmlchange -file env_run.xml -id HIST_N       -val '$STOP_N'

rm $EXEROOT/cesm.exe >& /dev/null
cp -f $EXEROOT/cesm.exe.mpi $EXEROOT/cesm.exe || exit -9
cp -f env_build.xml.mpi env_build.xml
cp -f env_build.xml LockedFiles/env_build.xml.locked

./$CASE.run

gunzip $RUNDIR/cpl.log*.gz
set CplLogFile = `ls -1t $RUNDIR/cpl.log* | head -1`
set cplhist_init = `ls -1t $RUNDIR/*.cpl.hi.*.nc | head -1`
mv ${cplhist_init} ${cplhist_init}.base
set cplhist_init = ${cplhist_init}.base
setenv CPLLOG_INIT $CplLogFile
setenv BASEGEN_FILE01 $CplLogFile
set cplprof_init = `ls -1t $CASEROOT/timing/ccsm_timing.$CASE* | head -1`
setenv CPLPROF_GENCMP $cplprof_init

#======================================================================
# do another run on 1 pe with mpiserial
#======================================================================
cd $CASEROOT
echo "doing a second test on 1 pe with mpiserial" >>& $TESTSTATUS_LOG 

rm $EXEROOT/cesm.exe >& /dev/null
cp -f $EXEROOT/cesm.exe.mpi-serial $EXEROOT/cesm.exe || exit -9
cp -f env_build.xml.mpi-serial env_build.xml
cp -f env_build.xml LockedFiles/env_build.xml.locked

./$CASE.run

gunzip $RUNDIR/cpl.log*.gz
set CplLogFile = `ls -1t $RUNDIR/cpl.log* | head -1`
set cplhist_rest = `ls -1t $RUNDIR/*.cpl.hi.*.nc | head -1`
setenv CPLLOG_REST $CplLogFile
setenv BASEGEN_FILE02 $CplLogFile

#===============================
# restore original settings
#===============================
cp -f env_build.xml.mpi env_build.xml

#===============================
setenv CPLLOG_GENCMP $CPLLOG_REST
echo "Initial Test log is $CPLLOG_INIT" >>& $TESTSTATUS_LOG 
echo "Restart Test log is $CPLLOG_REST" >>& $TESTSTATUS_LOG 
echo "Initial hist file is $cplhist_init" >>& $TESTSTATUS_LOG 
echo "Restart hist file is $cplhist_rest" >>& $TESTSTATUS_LOG 

set basestatus = "FAIL "
if ( $?CPLLOG_INIT ) then
  echo "Checking successful completion in init cpl log file" >>& $TESTSTATUS_LOG
  set pass = `grep "SUCCESSFUL TERM" $CPLLOG_INIT | wc -l`
  if ( $pass != 0 ) then
    set basestatus = "PASS "
  else
    set basestatus = "FAIL "
  endif
endif
echo "$basestatus ${CASEBASEID}.mpi1 " >>& $TESTSTATUS_LOG

set basestatus = "FAIL "
if ( $?CPLLOG_REST ) then
  echo "Checking successful completion in init cpl log file" >>& $TESTSTATUS_LOG
  set pass = `grep "SUCCESSFUL TERM" $CPLLOG_REST | wc -l`
  if ( $pass != 0 ) then
    set basestatus = "PASS "
  else
    set basestatus = "FAIL "
  endif
endif
echo "$basestatus ${CASEBASEID}.mpiserial " >>& $TESTSTATUS_LOG

if ( $?CPLLOG_INIT ) then
  if ( $?CPLLOG_REST ) then

    echo "Comparing initial log file with second log file" >>& $TESTSTATUS_LOG
    $CASETOOLS/check_exactrestart.pl $CPLLOG_INIT $CPLLOG_REST >>& $TESTSTATUS_LOG
    set pass = `tail -1 $TESTSTATUS_LOG | grep PASS | wc -l`
    if ( $pass != 0 ) then
      set basestatus = "PASS "
    else
      set basestatus = "FAIL "
    endif
  else
    echo "ERROR in ${0}:  restart coupler log file NOT set" >>& $TESTSTATUS_LOG
    set basestatus = "ERROR"
  endif
else
  echo "ERROR in ${0}:  initial coupler log file NOT set" >>& $TESTSTATUS_LOG
  set basestatus = "ERROR"
endif

echo "$basestatus ${CASEBASEID}.logbfb " >>& $TESTSTATUS_LOG

set basestatus = "UNDEF"
if ( $?cplhist_init ) then
  if ( $?cplhist_rest ) then
    echo "Comparing initial hist file with second hist file" >>& $TESTSTATUS_LOG
    cd $RUNDIR
    $CASETOOLS/hist_compare.csh $cplhist_init $cplhist_rest >>& $TESTSTATUS_LOG
    cd $CASEROOT
    set pass = `tail -1 $TESTSTATUS_LOG | grep PASS | wc -l`
    if ( $pass != 0 ) then
      set basestatus = "PASS "
    else
      set basestatus = "FAIL "
    endif
  else
    echo "ERROR in ${0}:  restart coupler hist file NOT set" >>& $TESTSTATUS_LOG
    set basestatus = "ERROR"
  endif
else
  echo "ERROR in ${0}:  initial coupler hist file NOT set" >>& $TESTSTATUS_LOG
  set basestatus = "ERROR"
endif

echo "$basestatus ${CASEBASEID}.histbfb " >>& $TESTSTATUS_LOG
echo "$basestatus ${CASEBASEID} " >&! $TESTSTATUS_OUT

#===================================

