#!/bin/csh -f

if ( $#argv < 1 ) then
  echo "Usage: $0 num_cpus1 [num_cpus2 ...]"
  exit 1
endif

set numcpus="$*"

set files=`cat program.list`

#
# Compare local results to reference results
# by finding difference between corresponding result files
# excluding 2 first lines and 3 last lines
#

set curfile=current.$$
set reffile=reference.$$

foreach NUMCPUS ( $numcpus )

echo "Getting differences for $NUMCPUS processor run ..."

foreach FILE ( $files )
  if ( "$FILE" != "" && "$FILE" != "lib" ) then

  if ( -f $FILE/$FILE.ncpus$NUMCPUS ) then
  cat $FILE/$FILE.ncpus$NUMCPUS >! $curfile
  cat $FILE/results/$FILE.out >! $reffile
  
  set curlen=`cat $curfile | wc -l`
  set curlen1=`expr $curlen \- 2`
  set curlen2=`expr $curlen1 \- 3`

  set reflen=`cat $reffile | wc -l`
  set reflen1=`expr $reflen \- 2`
  set reflen2=`expr $reflen1 \- 3`

  tail -$curlen1 $curfile | head -$curlen2 >! _$curfile
  tail -$reflen1 $reffile | head -$reflen2 >! _$reffile

  echo "$FILE (NCPUS=${NUMCPUS}):"
  diff _$curfile _$reffile
  echo "--------"

  /bin/rm -f _$curfile _$reffile $curfile $reffile

  else

    echo "$FILE/$FILE.ncpus$NUMCPUS not found."

  endif

  endif

end

end



exit 0