/[MITgcm]/MITgcm/verification/testreport
ViewVC logotype

Diff of /MITgcm/verification/testreport

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.26 by edhill, Fri Dec 5 14:56:45 2003 UTC revision 1.30 by edhill, Fri Dec 5 17:46:32 2003 UTC
# Line 319  makemodel() Line 319  makemodel()
319      )      )
320  }  }
321    
322    symlink_mpifiles()
323    {
324        # Put special links so that MPI specific files are used
325        # This MUST be invoked between makeclean and makelinks because
326        # the Makefile will link to non-mpi files by default
327    
328        dir=$1
329        code_dir=$2
330        BUILD_DIR=$dir/$3
331        CODE_DIR=$dir/$code_dir
332    
333        # These are files that should replace their counter-part when using -mpi
334        MPI_FILES=`(cd $CODE_DIR; find . -name "*_mpi")`
335    
336        #  Is this an MPI run?
337        if test "x$MPI" = xt ; then
338            # YES: We symbolically link these files to the build
339            # dir so long as there is no real file in place
340            for ii in $MPI_FILES ; do
341                i=`echo $ii | sed 's:^\./::'`
342                name=`echo $i | sed 's:_mpi::' `
343                cmp $CODE_DIR/$i $BUILD_DIR/$name > /dev/null 2>&1
344                RETVAL=$?
345                if test "x$RETVAL" != x0 ; then
346                    if ! test -f $BUILD_DIR/$i ; then
347                    #echo Linking $name to $i
348                        (cd $BUILD_DIR; ln -sf ../$code_dir/$i $name)
349                    fi
350                fi
351            done
352        else
353        # NO: We undo any _mpi symbolically linked files
354            for ii in $MPI_FILES ; do
355                i=`echo $ii | sed 's:^\./::'`
356                name=`echo $i | sed 's:_mpi::' `
357                if test -L $BUILD_DIR/$name ; then
358                    linktarg=`(cd $BUILD_DIR; readlink $name)`
359                    if test $linktarg = "../$code_dir/$name"_mpi ; then
360                    #echo Un-linking $name from $linktarg
361                        rm -f $BUILD_DIR/$name
362                    fi
363                fi
364            done
365        fi
366        
367    }
368    
369  linkdata()  linkdata()
370  {  {
371      # linkdata flag      # linkdata flag
# Line 727  for dir in $TESTDIRS ; do Line 774  for dir in $TESTDIRS ; do
774          continue          continue
775      fi      fi
776    
     echo "-------------------------------------------------------------------------------"  
     echo  
     echo "Experiment:  $dir"  
     echo  
     unset genmake makedepend make run  
     results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'  
   
777      builddir="input"      builddir="input"
778      rundir="input"      rundir="input"
779      use_seperate_build=0      use_seperate_build=0
# Line 745  for dir in $TESTDIRS ; do Line 785  for dir in $TESTDIRS ; do
785      fi      fi
786            
787      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
788            code_dir=code
789          CODE_DIR=$dir/code          CODE_DIR=$dir/code
790      else      else
791            code_dir=code_ad
792          CODE_DIR=$dir/code_ad          CODE_DIR=$dir/code_ad
793      fi      fi
794      BUILD_DIR=$dir/$builddir      BUILD_DIR=$dir/$builddir
     MPI_FILES="CPP_EEOPTIONS.h_mpi SIZE.h_mpi"  
     NOMPI_FILES="CPP_EEOPTIONS.h_nompi SIZE.h_nompi"  
795    
796      #  Is this an MPI run?      if test ! -r $CODE_DIR"/SIZE.h_mpi" -a "x$MPI" = "xt" ; then
797      if test "x$MPI" = xt ; then          echo "can't find \"$CODE_DIR/SIZE.h_mpi\" -- skipping $dir"
         FILES=$MPI_FILES  
         endings="_mpi"  
     else  
         FILES=$NOMPI_FILES  
         endings="_nompi"  
     fi  
       
     #  Check to see that we have the files  
     have_files=t  
     for i in $FILES ; do  
         if test ! -r $CODE_DIR/$i ; then  
             echo "Warning: can't read file $CODE_DIR/$i"  
             have_files=f  
         fi  
     done  
     if test "x$have_files" != xt -a "x$MPI" = xt ; then  
         echo "Skipping $dir due to lack of input files (see above warning)"  
798          continue          continue
799      fi      fi
800        
801      #  If we have the $FILES and they differ, copy the $FILES to $BUILD_DIR      echo "-------------------------------------------------------------------------------"
802      if test "x$have_files" = xt ; then      echo
803          for i in $FILES ; do      echo "Experiment:  $dir"
804              sstr="s|$endings||"      echo
805              name=`echo $i | sed -e $sstr `      unset genmake makedepend make run
806              cmp $CODE_DIR/$i $BUILD_DIR/$name > /dev/null 2>&1      results='-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --'
807              RETVAL=$?  
             if test "x$RETVAL" != x0 ; then  
                 cp $CODE_DIR/$i $BUILD_DIR/$name  
             fi  
         done  
     fi  
       
808      #  Create an output dir for each OPTFILE/tdir combination      #  Create an output dir for each OPTFILE/tdir combination
809      rel_CDIR=$DRESULTS"/"$dir      rel_CDIR=$DRESULTS"/"$dir
810      mkdir $rel_CDIR      mkdir $rel_CDIR
# Line 798  for dir in $TESTDIRS ; do Line 815  for dir in $TESTDIRS ; do
815      else      else
816          genmakemodel $dir/$builddir && genmake=Y \          genmakemodel $dir/$builddir && genmake=Y \
817              && makeclean $dir/$builddir \              && makeclean $dir/$builddir \
818                && symlink_mpifiles $dir $code_dir $builddir \
819              && makedependmodel $dir/$builddir && makedepend=Y \              && makedependmodel $dir/$builddir && makedepend=Y \
820              && makemodel $dir/$builddir && make=Y \              && makemodel $dir/$builddir && make=Y \
821              && linkdata $use_seperate_build $dir/$rundir \              && linkdata $use_seperate_build $dir/$rundir \

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.30

  ViewVC Help
Powered by ViewVC 1.1.22