/[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.27 by edhill, Fri Dec 5 16:21:40 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 745  for dir in $TESTDIRS ; do Line 792  for dir in $TESTDIRS ; do
792      fi      fi
793            
794      if test "x$ADM" = x ; then      if test "x$ADM" = x ; then
795            code_dir=code
796          CODE_DIR=$dir/code          CODE_DIR=$dir/code
797      else      else
798            code_dir=code_ad
799          CODE_DIR=$dir/code_ad          CODE_DIR=$dir/code_ad
800      fi      fi
801      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"  
802    
     #  Is this an MPI run?  
     if test "x$MPI" = xt ; then  
         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)"  
         continue  
     fi  
       
     #  If we have the $FILES and they differ, copy the $FILES to $BUILD_DIR  
     if test "x$have_files" = xt ; then  
         for i in $FILES ; do  
             sstr="s|$endings||"  
             name=`echo $i | sed -e $sstr `  
             cmp $CODE_DIR/$i $BUILD_DIR/$name > /dev/null 2>&1  
             RETVAL=$?  
             if test "x$RETVAL" != x0 ; then  
                 cp $CODE_DIR/$i $BUILD_DIR/$name  
             fi  
         done  
     fi  
       
803      #  Create an output dir for each OPTFILE/tdir combination      #  Create an output dir for each OPTFILE/tdir combination
804      rel_CDIR=$DRESULTS"/"$dir      rel_CDIR=$DRESULTS"/"$dir
805      mkdir $rel_CDIR      mkdir $rel_CDIR
# Line 798  for dir in $TESTDIRS ; do Line 810  for dir in $TESTDIRS ; do
810      else      else
811          genmakemodel $dir/$builddir && genmake=Y \          genmakemodel $dir/$builddir && genmake=Y \
812              && makeclean $dir/$builddir \              && makeclean $dir/$builddir \
813                && symlink_mpifiles $dir $code_dir $builddir \
814              && makedependmodel $dir/$builddir && makedepend=Y \              && makedependmodel $dir/$builddir && makedepend=Y \
815              && makemodel $dir/$builddir && make=Y \              && makemodel $dir/$builddir && make=Y \
816              && linkdata $use_seperate_build $dir/$rundir \              && linkdata $use_seperate_build $dir/$rundir \

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

  ViewVC Help
Powered by ViewVC 1.1.22