#====================================================================== # 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 #===================================