Merge branch 'Marc-fix-format-bugfix' into 'development'

Marc fix format bugfix

See merge request damask/DAMASK!188
This commit is contained in:
Franz Roters 2020-07-15 16:43:22 +02:00
commit c07efe8498
24 changed files with 986 additions and 941 deletions

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -63,7 +63,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -177,16 +177,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -203,7 +203,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -226,7 +226,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -246,7 +246,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -269,7 +269,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -333,7 +333,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -388,7 +388,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -498,7 +498,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -523,7 +523,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -543,7 +543,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -613,7 +613,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -624,7 +624,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -635,7 +635,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -651,7 +651,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -665,7 +665,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -676,7 +676,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -847,7 +847,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -898,7 +898,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -934,7 +934,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -943,7 +943,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -998,24 +998,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1030,7 +1030,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1059,7 +1059,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1093,14 +1093,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1108,7 +1108,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1222,11 +1222,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1291,7 +1291,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $nauto -gt 2 if test $nauto -gt 2
then then
error="$error error="$error
incorrect option for auto restart " incorrect option for auto restart "
fi fi
fi fi
@ -1299,7 +1299,7 @@ incorrect option for auto restart "
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1307,7 +1307,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1315,7 +1315,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1642,7 +1642,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1660,7 +1660,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1783,7 +1783,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1825,7 +1825,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1975,7 +1975,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2039,42 +2039,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2327,7 +2327,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2360,7 +2360,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2474,9 +2474,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2560,7 +2560,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2569,7 +2569,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2729,7 +2729,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2753,23 +2753,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2809,7 +2809,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2859,7 +2859,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2870,7 +2870,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2975,7 +2975,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3267,6 +3267,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3309,7 +3310,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3318,10 +3319,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3389,15 +3390,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3579,7 +3580,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3599,6 +3600,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3647,7 +3649,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3696,7 +3698,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3913,7 +3915,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3933,6 +3935,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3972,7 +3975,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4055,7 +4058,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -63,7 +63,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -177,16 +177,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -203,7 +203,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -226,7 +226,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -246,7 +246,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -269,7 +269,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -333,7 +333,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -388,7 +388,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -498,7 +498,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -523,7 +523,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -543,7 +543,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -613,7 +613,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -624,7 +624,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -635,7 +635,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -651,7 +651,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -665,7 +665,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -676,7 +676,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -847,7 +847,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -898,7 +898,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -934,7 +934,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -943,7 +943,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -998,24 +998,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1030,7 +1030,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1059,7 +1059,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1093,14 +1093,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1108,7 +1108,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1222,11 +1222,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1291,7 +1291,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $nauto -gt 2 if test $nauto -gt 2
then then
error="$error error="$error
incorrect option for auto restart " incorrect option for auto restart "
fi fi
fi fi
@ -1299,7 +1299,7 @@ incorrect option for auto restart "
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1307,7 +1307,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1315,7 +1315,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1642,7 +1642,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1660,7 +1660,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1783,7 +1783,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1825,7 +1825,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1975,7 +1975,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2039,42 +2039,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2327,7 +2327,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2360,7 +2360,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2474,9 +2474,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2560,7 +2560,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2569,7 +2569,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2729,7 +2729,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2753,23 +2753,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2809,7 +2809,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2859,7 +2859,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2870,7 +2870,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2975,7 +2975,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3267,6 +3267,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3309,7 +3310,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3318,10 +3319,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3389,15 +3390,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3579,7 +3580,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3599,6 +3600,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3647,7 +3649,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3696,7 +3698,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3913,7 +3915,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3933,6 +3935,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3972,7 +3975,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4055,7 +4058,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -63,7 +63,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -177,16 +177,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -203,7 +203,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -226,7 +226,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -246,7 +246,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -269,7 +269,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -333,7 +333,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -388,7 +388,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -498,7 +498,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -523,7 +523,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -543,7 +543,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -613,7 +613,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -624,7 +624,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -635,7 +635,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -651,7 +651,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -665,7 +665,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -676,7 +676,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -847,7 +847,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -898,7 +898,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -934,7 +934,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -943,7 +943,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -998,24 +998,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1030,7 +1030,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1059,7 +1059,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1093,14 +1093,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1108,7 +1108,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1222,11 +1222,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1291,7 +1291,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $nauto -gt 2 if test $nauto -gt 2
then then
error="$error error="$error
incorrect option for auto restart " incorrect option for auto restart "
fi fi
fi fi
@ -1299,7 +1299,7 @@ incorrect option for auto restart "
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1307,7 +1307,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1315,7 +1315,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1642,7 +1642,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1660,7 +1660,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1783,7 +1783,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1825,7 +1825,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1975,7 +1975,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2039,42 +2039,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2327,7 +2327,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2360,7 +2360,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2474,9 +2474,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2560,7 +2560,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2569,7 +2569,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2729,7 +2729,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2753,23 +2753,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2809,7 +2809,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2859,7 +2859,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2870,7 +2870,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2975,7 +2975,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3267,6 +3267,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3309,7 +3310,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3318,10 +3319,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3389,15 +3390,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3579,7 +3580,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3599,6 +3600,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3647,7 +3649,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3696,7 +3698,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3913,7 +3915,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3933,6 +3935,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3972,7 +3975,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4055,7 +4058,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -63,7 +63,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -177,16 +177,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -203,7 +203,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -226,7 +226,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -246,7 +246,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -269,7 +269,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -333,7 +333,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -388,7 +388,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -498,7 +498,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -523,7 +523,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -543,7 +543,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -613,7 +613,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -624,7 +624,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -635,7 +635,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -651,7 +651,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -665,7 +665,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -676,7 +676,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -847,7 +847,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -898,7 +898,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -934,7 +934,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -943,7 +943,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -998,24 +998,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1030,7 +1030,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1059,7 +1059,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1093,14 +1093,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1108,7 +1108,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1222,11 +1222,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1291,7 +1291,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $nauto -gt 2 if test $nauto -gt 2
then then
error="$error error="$error
incorrect option for auto restart " incorrect option for auto restart "
fi fi
fi fi
@ -1299,7 +1299,7 @@ incorrect option for auto restart "
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1307,7 +1307,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1315,7 +1315,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1642,7 +1642,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1660,7 +1660,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1783,7 +1783,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1825,7 +1825,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1975,7 +1975,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2039,42 +2039,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2327,7 +2327,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2360,7 +2360,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2474,9 +2474,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2560,7 +2560,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2569,7 +2569,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2729,7 +2729,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2753,23 +2753,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2809,7 +2809,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2859,7 +2859,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2870,7 +2870,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2975,7 +2975,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3267,6 +3267,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3309,7 +3310,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3318,10 +3319,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3389,15 +3390,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3579,7 +3580,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3599,6 +3600,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3647,7 +3649,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3696,7 +3698,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3913,7 +3915,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3933,6 +3935,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3972,7 +3975,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4055,7 +4058,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -63,7 +63,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -177,16 +177,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -203,7 +203,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -226,7 +226,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -246,7 +246,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -269,7 +269,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -333,7 +333,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -388,7 +388,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -498,7 +498,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -523,7 +523,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -543,7 +543,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -613,7 +613,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -624,7 +624,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -635,7 +635,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -651,7 +651,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -665,7 +665,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -676,7 +676,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -847,7 +847,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -898,7 +898,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -934,7 +934,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -943,7 +943,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -998,24 +998,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1030,7 +1030,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1059,7 +1059,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1093,14 +1093,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1108,7 +1108,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1222,11 +1222,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1291,7 +1291,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $nauto -gt 2 if test $nauto -gt 2
then then
error="$error error="$error
incorrect option for auto restart " incorrect option for auto restart "
fi fi
fi fi
@ -1299,7 +1299,7 @@ incorrect option for auto restart "
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1307,7 +1307,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1315,7 +1315,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1642,7 +1642,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1660,7 +1660,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1783,7 +1783,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1825,7 +1825,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1975,7 +1975,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2039,42 +2039,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2327,7 +2327,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2360,7 +2360,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2474,9 +2474,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2560,7 +2560,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2569,7 +2569,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2729,7 +2729,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2753,23 +2753,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2809,7 +2809,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2859,7 +2859,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2870,7 +2870,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2975,7 +2975,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3267,6 +3267,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3309,7 +3310,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3318,10 +3319,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3389,15 +3390,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3579,7 +3580,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3599,6 +3600,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3647,7 +3649,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3696,7 +3698,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3913,7 +3915,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3933,6 +3935,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3972,7 +3975,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4055,7 +4058,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -63,7 +63,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -177,16 +177,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -203,7 +203,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -226,7 +226,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -246,7 +246,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -269,7 +269,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -333,7 +333,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -388,7 +388,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -498,7 +498,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -523,7 +523,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -543,7 +543,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -613,7 +613,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -624,7 +624,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -635,7 +635,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -651,7 +651,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -665,7 +665,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -676,7 +676,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -847,7 +847,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -898,7 +898,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -934,7 +934,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -943,7 +943,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -998,24 +998,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1030,7 +1030,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1059,7 +1059,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1093,14 +1093,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1108,7 +1108,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1222,11 +1222,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1291,7 +1291,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $nauto -gt 2 if test $nauto -gt 2
then then
error="$error error="$error
incorrect option for auto restart " incorrect option for auto restart "
fi fi
fi fi
@ -1299,7 +1299,7 @@ incorrect option for auto restart "
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1307,7 +1307,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1315,7 +1315,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1642,7 +1642,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1660,7 +1660,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1783,7 +1783,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1825,7 +1825,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1975,7 +1975,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2039,42 +2039,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2327,7 +2327,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2360,7 +2360,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2474,9 +2474,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2560,7 +2560,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2569,7 +2569,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2729,7 +2729,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2753,23 +2753,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2809,7 +2809,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2859,7 +2859,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2870,7 +2870,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2975,7 +2975,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3267,6 +3267,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3309,7 +3310,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3318,10 +3319,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3389,15 +3390,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3579,7 +3580,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3599,6 +3600,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3647,7 +3649,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3696,7 +3698,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3913,7 +3915,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3933,6 +3935,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3972,7 +3975,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4055,7 +4058,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -49,4 +49,5 @@ echo "program: $program"
exit 1 exit 1
} }
/bin/rm $userobj /bin/rm $userobj
/bin/rm $DIRJOB/*.mod /bin/rm $DIRJOB/*.mod
/bin/rm $DIRJOB/*.smod

View File

@ -62,7 +62,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -176,16 +176,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -202,7 +202,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -225,7 +225,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -245,7 +245,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -268,7 +268,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -332,7 +332,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -387,7 +387,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -497,7 +497,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -522,7 +522,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -542,7 +542,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -612,7 +612,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -623,7 +623,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -634,7 +634,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -650,7 +650,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -664,7 +664,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -675,7 +675,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -777,7 +777,7 @@ do
;; ;;
-au* | -AU*) -au* | -AU*)
nauto=$value nauto=$value
echo echo
echo warning: the option -au is no longer supported and will be ignored echo warning: the option -au is no longer supported and will be ignored
echo echo
;; ;;
@ -849,7 +849,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -900,7 +900,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -936,7 +936,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -945,7 +945,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -1000,24 +1000,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1032,7 +1032,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1061,7 +1061,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1095,14 +1095,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1110,7 +1110,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1224,11 +1224,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1293,7 +1293,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1301,7 +1301,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1309,7 +1309,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1626,7 +1626,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1644,7 +1644,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1767,7 +1767,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1809,7 +1809,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1959,7 +1959,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2017,42 +2017,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2305,7 +2305,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2338,7 +2338,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2452,9 +2452,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2538,7 +2538,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2547,7 +2547,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2707,7 +2707,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2731,23 +2731,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2787,7 +2787,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2837,7 +2837,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2848,7 +2848,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2953,7 +2953,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3241,6 +3241,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3283,7 +3284,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3292,10 +3293,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3363,15 +3364,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3553,7 +3554,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3573,6 +3574,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3621,7 +3623,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3670,7 +3672,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3887,7 +3889,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3907,6 +3909,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3946,7 +3949,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4029,7 +4032,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -62,7 +62,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -176,16 +176,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -202,7 +202,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -225,7 +225,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -245,7 +245,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -268,7 +268,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -332,7 +332,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -387,7 +387,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -497,7 +497,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -522,7 +522,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -542,7 +542,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -612,7 +612,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -623,7 +623,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -634,7 +634,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -650,7 +650,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -664,7 +664,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -675,7 +675,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -777,7 +777,7 @@ do
;; ;;
-au* | -AU*) -au* | -AU*)
nauto=$value nauto=$value
echo echo
echo warning: the option -au is no longer supported and will be ignored echo warning: the option -au is no longer supported and will be ignored
echo echo
;; ;;
@ -849,7 +849,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -900,7 +900,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -936,7 +936,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -945,7 +945,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -1000,24 +1000,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1032,7 +1032,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1061,7 +1061,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1095,14 +1095,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1110,7 +1110,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1224,11 +1224,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1293,7 +1293,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1301,7 +1301,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1309,7 +1309,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1626,7 +1626,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1644,7 +1644,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1767,7 +1767,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1809,7 +1809,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1959,7 +1959,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2017,42 +2017,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2305,7 +2305,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2338,7 +2338,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2452,9 +2452,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2538,7 +2538,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2547,7 +2547,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2707,7 +2707,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2731,23 +2731,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2787,7 +2787,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2837,7 +2837,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2848,7 +2848,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2953,7 +2953,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3241,6 +3241,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3283,7 +3284,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3292,10 +3293,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3363,15 +3364,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3553,7 +3554,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3573,6 +3574,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3621,7 +3623,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3670,7 +3672,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3887,7 +3889,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3907,6 +3909,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3946,7 +3949,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4029,7 +4032,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -62,7 +62,7 @@
# =1, element storage out-of-core # # =1, element storage out-of-core #
# -dll run marc using shared library libmarc.so and exe_marc # # -dll run marc using shared library libmarc.so and exe_marc #
# =1, used # # =1, used #
# =2, do not free streaming input memory # # =2, do not free streaming input memory #
# =3, run with marc input deck # # =3, run with marc input deck #
# -trk run marc for post-tracking # # -trk run marc for post-tracking #
# -gpuid run marc using GPGPU capability # # -gpuid run marc using GPGPU capability #
@ -176,16 +176,16 @@ fi
# MARC_MODE i8 # MARC_MODE i8
# it can also be set by the environmental variable MARC_INTEGER_SIZE # it can also be set by the environmental variable MARC_INTEGER_SIZE
# and by the command line option "-mo" # and by the command line option "-mo"
# #
mode= mode=
modeerror= modeerror=
modeoption= modeoption=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $DIRSCRIPT/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
fi fi
line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $2}}' $DIRSCRIPT/run_marc_defaults`
@ -202,7 +202,7 @@ fi
if test -f $HOME/run_marc_defaults; then if test -f $HOME/run_marc_defaults; then
line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults` line=`$AWK '{if ($1 == "MARC_MODE") {print $1}}' $HOME/run_marc_defaults`
if test "$line" = "MARC_MODE"; then if test "$line" = "MARC_MODE"; then
echo echo
echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option MARC_MODE is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
line= line=
@ -225,7 +225,7 @@ if test -z "$mode" ; then
mode=i8 mode=i8
fi fi
case $mode in case $mode in
i4) i4)
modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported." modeerror="bad value for MARC_INTEGER_SIZE variable; only i8 is supported."
modeoption=error modeoption=error
echo $modeerror echo $modeerror
@ -245,7 +245,7 @@ for arg in $* ; do
if $setmode ; then if $setmode ; then
mode=$arg mode=$arg
case $mode in case $mode in
i4) i4)
modeerror="bad value for mode option; only i8 is supported." modeerror="bad value for mode option; only i8 is supported."
modeoption=error modeoption=error
echo echo
@ -268,7 +268,7 @@ for arg in $* ; do
setmode=false setmode=false
fi fi
if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then if [ ${arg}X = -moX -o ${arg}X = -MOX ] ; then
echo echo
echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available echo warning: the option -mo is deprecated, as of Marc 2015, only the integer*8 version is available
echo echo
setmode=true setmode=true
@ -332,7 +332,7 @@ case "`echo '\c'`" in
;; ;;
esac esac
# #
# Variables for the MARC environment # Variables for the MARC environment
# #
@ -387,7 +387,7 @@ LD_LIBRARYN32_PATH=$MARC_LIB:$LD_LIBRARYN32_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
export LD_LIBRARY64_PATH export LD_LIBRARY64_PATH
export LD_LIBRARYN32_PATH export LD_LIBRARYN32_PATH
atexit() { atexit() {
kill -15 $$ kill -15 $$
# #
@ -497,7 +497,7 @@ MDSRCLIB=$MARC_LIB/mdsrc.a
# or in the user's home directory # or in the user's home directory
# format: # format:
# MARC_MPI <mpiversion> # MARC_MPI <mpiversion>
# #
value= value=
file= file=
if test -f $DIRSCRIPT/run_marc_defaults; then if test -f $DIRSCRIPT/run_marc_defaults; then
@ -522,7 +522,7 @@ if test -n "$value"; then
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
@ -542,7 +542,7 @@ if test -n "$value"; then
fi fi
fi fi
fi fi
# #
# #
# allow scratch directory to be specified with environmental variable # allow scratch directory to be specified with environmental variable
# MARCSCRATCH # MARCSCRATCH
@ -612,7 +612,7 @@ do
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
;; ;;
-r* | -R*) -r* | -R*)
rid=`$BASENAME $value .t08` rid=`$BASENAME $value .t08`
@ -623,7 +623,7 @@ do
*) *)
DIRRID=`pwd`/$DIRRID DIRRID=`pwd`/$DIRRID
;; ;;
esac esac
;; ;;
-si* | -SI*) -si* | -SI*)
sid=$value sid=$value
@ -634,7 +634,7 @@ do
*) *)
DIRSID=`pwd`/$DIRSID DIRSID=`pwd`/$DIRSID
;; ;;
esac esac
;; ;;
-pi* | -PI*) -pi* | -PI*)
if test -f $value.t19 if test -f $value.t19
@ -650,7 +650,7 @@ do
*) *)
DIRPID=`pwd`/$DIRPID DIRPID=`pwd`/$DIRPID
;; ;;
esac esac
;; ;;
-bdf | -BDF) -bdf | -BDF)
makebdf=1 makebdf=1
@ -664,7 +664,7 @@ do
*) *)
DIRDID=`pwd`/$DIRDID DIRDID=`pwd`/$DIRDID
;; ;;
esac esac
;; ;;
-vf | -VF) -vf | -VF)
vid=`$BASENAME $value .vfs` vid=`$BASENAME $value .vfs`
@ -675,7 +675,7 @@ do
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
-u* | -U*) -u* | -U*)
user=$value user=$value
@ -777,7 +777,7 @@ do
;; ;;
-au* | -AU*) -au* | -AU*)
nauto=$value nauto=$value
echo echo
echo warning: the option -au is no longer supported and will be ignored echo warning: the option -au is no longer supported and will be ignored
echo echo
;; ;;
@ -849,7 +849,7 @@ do
*) *)
DIRSCR=`pwd`/$DIRSCR DIRSCR=`pwd`/$DIRSCR
;; ;;
esac esac
;; ;;
-ho* | -HO*) -ho* | -HO*)
host=$value host=$value
@ -900,7 +900,7 @@ fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -936,7 +936,7 @@ fi
ntprint=$nt ntprint=$nt
nteprint=$nte nteprint=$nte
# copy from -nprocd[s] # copy from -nprocd[s]
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
nteprint=$nprocdddm nteprint=$nprocdddm
fi fi
@ -945,7 +945,7 @@ if test $nte -ne 0
then then
nteprint=$nte nteprint=$nte
fi fi
# check for minimum 1 threads per processes for DDM # check for minimum 1 threads per processes for DDM
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
if test $nteprint -lt $nprocdddm if test $nteprint -lt $nprocdddm
@ -1000,24 +1000,24 @@ export OMP_STACKSIZE=7M
# deprecate -nthread option at arugment of marc # deprecate -nthread option at arugment of marc
nt=0 nt=0
# Reset nprocdddmm, nsolver and threads if not given. # Reset nprocdddmm, nsolver and threads if not given.
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdarg= nprocdarg=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddmprint= nprocdddmprint=
fi fi
if test $nprocdddm -eq 0 if test $nprocdddm -eq 0
then then
nprocdddm= nprocdddm=
fi fi
nsolverprint=$nsolver nsolverprint=$nsolver
if test $nsolver -eq 0 if test $nsolver -eq 0
then then
nsolverprint= nsolverprint=
fi fi
# end of threads setting. # end of threads setting.
gpuoption= gpuoption=
if test "$gpuids" = "" ; then if test "$gpuids" = "" ; then
@ -1032,7 +1032,7 @@ else
MARCCUDALIBS=$MARCCUDALIBS2 MARCCUDALIBS=$MARCCUDALIBS2
export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDALIB2:$LD_LIBRARY_PATH
fi fi
# Linux 64 + HPMPI, Below code is taken from include_linux64 # Linux 64 + HPMPI, Below code is taken from include_linux64
if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64" if test $MPITYPE = hpmpi -a "$ARCHITECTURE" = "linux_amd64"
then then
export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH" export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
@ -1061,7 +1061,7 @@ if test "$dllrun" -gt 0; then
fi fi
if test "$progdll"; then if test "$progdll"; then
/bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll /bin/cp ${progdll}_$marcdll $DIRJOB/$marcdll
rmdll=yes rmdll=yes
pathdll=yes pathdll=yes
progdll=${progdll}_$marcdll progdll=${progdll}_$marcdll
@ -1095,14 +1095,14 @@ while test forever; do
if test $nprocdddm -gt 1 -a $icreated -eq 0; then if test $nprocdddm -gt 1 -a $icreated -eq 0; then
if test ! -f $DIRJID/1$jid$dotdat; then if test ! -f $DIRJID/1$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/1$jid$dotdat not accessible" input file $DIRJID/1$jid$dotdat not accessible"
fi fi
fi fi
else else
if test ! -f $DIRJID/$jid$dotdat; then if test ! -f $DIRJID/$jid$dotdat; then
if test "$jid" != "" ; then if test "$jid" != "" ; then
error="$error error="$error
input file $DIRJID/$jid$dotdat not accessible" input file $DIRJID/$jid$dotdat not accessible"
fi fi
fi fi
@ -1110,7 +1110,7 @@ fi
if test $nprocd -gt 1; then if test $nprocd -gt 1; then
if test "$host" ; then if test "$host" ; then
if test ! -f $host; then if test ! -f $host; then
error="$error error="$error
host name file $host not accessible" host name file $host not accessible"
fi fi
fi fi
@ -1224,11 +1224,11 @@ view factor file $DIRVID/$vid.vfs not accessible"
notok=false notok=false
fi fi
done done
if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then if test "$MARC_MPITYPE" = "$MPI_DEFAULT"; then
notok=false notok=false
fi fi
if $notok; then if $notok; then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)" incorrect option for -mpi option: $MARC_MPITYPE (valid: $MPI_OTHER)"
fi fi
fi fi
@ -1293,7 +1293,7 @@ defaults file $DIRDID/$did$dotdat not accessible"
then then
if test $ndcoup -gt 3 if test $ndcoup -gt 3
then then
error="$error error="$error
incorrect option for contact decoupling " incorrect option for contact decoupling "
fi fi
fi fi
@ -1301,7 +1301,7 @@ incorrect option for contact decoupling "
then then
if test $ndytran -gt 1 if test $ndytran -gt 1
then then
error="$error error="$error
incorrect option for Marc-Dytran Switch " incorrect option for Marc-Dytran Switch "
fi fi
fi fi
@ -1309,7 +1309,7 @@ incorrect option for Marc-Dytran Switch "
then then
if test ! -x $MARC_BIN/$exefile if test ! -x $MARC_BIN/$exefile
then then
error="$error error="$error
incorrect option for -mpi option: $MARC_MPITYPE " incorrect option for -mpi option: $MARC_MPITYPE "
fi fi
fi fi
@ -1626,7 +1626,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRJID=`pwd`/$DIRJID DIRJID=`pwd`/$DIRJID
;; ;;
esac esac
fi fi
$ECHO "User subroutine name ($user)? $ECHOTXT" $ECHO "User subroutine name ($user)? $ECHOTXT"
read value read value
@ -1644,7 +1644,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
user=`pwd`/$user user=`pwd`/$user
;; ;;
esac esac
usernoext=$user usernoext=$user
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F` usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
@ -1767,7 +1767,7 @@ Program name ($prog)? $ECHOTXT"
*) *)
DIRVID=`pwd`/$DIRVID DIRVID=`pwd`/$DIRVID
;; ;;
esac esac
;; ;;
esac esac
fi fi
@ -1809,7 +1809,7 @@ Program name ($prog)? $ECHOTXT"
fi fi
if test $nsolver -gt 0 if test $nsolver -gt 0
then then
if test $nsolver -gt $nprocd if test $nsolver -gt $nprocd
then then
nprocd=$nsolver nprocd=$nsolver
fi fi
@ -1959,7 +1959,7 @@ Program name ($prog)? $ECHOTXT"
then then
qid=$value qid=$value
fi fi
case $qid in case $qid in
s* | S* | l* | L* | v* | V* ) s* | S* | l* | L* | v* | V* )
$ECHO "Queue priority ($priority)? $ECHOTXT" $ECHO "Queue priority ($priority)? $ECHOTXT"
read value read value
@ -2017,42 +2017,42 @@ esac
done done
# #
if test $nt -eq 0 if test $nt -eq 0
then then
ntarg= ntarg=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
ntprint= ntprint=
fi fi
if test $nt -eq 0 if test $nt -eq 0
then then
nt= nt=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
ntearg= ntearg=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nteprint= nteprint=
fi fi
if test $nte -eq 0 if test $nte -eq 0
then then
nte= nte=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsarg= ntsarg=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
ntsprint= ntsprint=
fi fi
if test $nts -eq 0 if test $nts -eq 0
then then
nts= nts=
fi fi
# #
@ -2305,7 +2305,7 @@ fi
execpath=$usernoext.marc execpath=$usernoext.marc
usersub=1 usersub=1
fi fi
export execpath export execpath
execname=`$BASENAME $execpath` execname=`$BASENAME $execpath`
if test "$host" if test "$host"
@ -2338,7 +2338,7 @@ fi
exit 1 exit 1
fi fi
# check for Myrinet that the number of processes per host is # check for Myrinet that the number of processes per host is
# less than number of available user ports, 5 # less than number of available user ports, 5
# .gmpi directory must exist in user's home directory # .gmpi directory must exist in user's home directory
# and must have write permission from remote hosts # and must have write permission from remote hosts
@ -2452,9 +2452,9 @@ fi
then then
# Intel MPI # Intel MPI
if test -f $jid.mfile if test -f $jid.mfile
then then
/bin/rm $jid.mfile 2> /dev/null /bin/rm $jid.mfile 2> /dev/null
fi fi
/bin/cp $host $jid.host /bin/cp $host $jid.host
grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile grep -v '^#' $host | $AWK '{host=$1;num=$2;for (i=1;i<=num;i++) print host}' > $jid.mfile
# end Intel MPI for DMP # end Intel MPI for DMP
@ -2538,7 +2538,7 @@ fi
else else
host=$jid.host host=$jid.host
host_filt=$host host_filt=$host
if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi" if test $MACHINENAME = "LINUX" -a $MPITYPE = "intelmpi"
then then
host_filt=$jid.mfile host_filt=$jid.mfile
fi fi
@ -2547,7 +2547,7 @@ fi
# or distributed and set the variable "dirstatus" accordingly. # or distributed and set the variable "dirstatus" accordingly.
# only perform the check if user subroutine is used # only perform the check if user subroutine is used
# or a user subroutine executable is used # or a user subroutine executable is used
numfield=1 numfield=1
if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware if test $MPITYPE = hpmpi -o $MACHINENAME = HP -a $MPITYPE = hardware
then then
@ -2707,7 +2707,7 @@ fi
fi fi
# modify new host file if NFS mounted heterogeneous machine # modify new host file if NFS mounted heterogeneous machine
doit= doit=
if test $program = $prog.marc if test $program = $prog.marc
then then
doit=yes doit=yes
fi fi
@ -2731,23 +2731,23 @@ if ($1 ~ hst) {if ( fnr == 1 ) printf("%s\n",$0); else \
printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$} printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
/bin/mv $jid.host{$$} $jid.host /bin/mv $jid.host{$$} $jid.host
host=$jid.host host=$jid.host
fi fi
fi fi
done done
fi fi
fi # if test $program = $prog.marc -o $user -o $obj fi # if test $program = $prog.marc -o $user -o $obj
else # if test $host else # if test $host
# assume shared memory machine if no hostfile given and # assume shared memory machine if no hostfile given and
# MPITYPE is set to mpich or Myrinet # MPITYPE is set to mpich or Myrinet
# check for Myrinet that the total number of processes is # check for Myrinet that the total number of processes is
# less than number of available user ports, 5 # less than number of available user ports, 5
if test $MPITYPE = "mpich" -o $MPITYPE = "scali" if test $MPITYPE = "mpich" -o $MPITYPE = "scali"
then then
numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'` numproc=`echo $nprocd | $AWK '{sum=$1-1}; {print sum}'`
echo `hostname` $numproc $execpath > $jid.host echo `hostname` $numproc $execpath > $jid.host
host=$jid.host host=$jid.host
elif test $MPITYPE = "myrinet" elif test $MPITYPE = "myrinet"
then then
if test $nprocd -gt 5 if test $nprocd -gt 5
then then
@ -2787,7 +2787,7 @@ printf("%s %s %s_%s\n",$1,$2,$3,$1) } else print}' $jid.host > $jid.host{$$}
fi # if test $host fi # if test $host
fi # if test $nprocd -gt 1 fi # if test $nprocd -gt 1
fi # if test $program = $exefile -o $program = $prog.marc fi # if test $program = $exefile -o $program = $prog.marc
############################################################################## ##############################################################################
@ -2837,7 +2837,7 @@ else
nsolverarg="$nsolverarg $nsolver" nsolverarg="$nsolverarg $nsolver"
fi fi
if test $nprocdddm -lt 2 -a $nsolver -eq 0 if test $nprocdddm -lt 2 -a $nsolver -eq 0
then then
nprocd=0 nprocd=0
fi fi
if test $nprocd -gt 0 if test $nprocd -gt 0
@ -2848,7 +2848,7 @@ then
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -2953,7 +2953,7 @@ $ntearg $nte $ntsarg $nts $gpuoption -dirjob $DIRJOB "
then then
echo " " echo " "
echo "error: parallel job attempted on non-parallel version," echo "error: parallel job attempted on non-parallel version,"
echo " or, if parallel version is installed, the include " echo " or, if parallel version is installed, the include "
echo " file is probably corrupted" echo " file is probably corrupted"
echo " " echo " "
if test "$deletelog" = no if test "$deletelog" = no
@ -3241,6 +3241,7 @@ else
fi fi
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3283,7 +3284,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
fi fi
else else
if test $cpdll = yes; then if test $cpdll = yes; then
@ -3292,10 +3293,10 @@ else
fi fi
if test $rmdll = yes if test $rmdll = yes
then then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
then then
numdom=$nprocdddm numdom=$nprocdddm
@ -3363,15 +3364,15 @@ else
# #
QUENAME=qsub QUENAME=qsub
SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid" SUBMCMD="-q $qid -o /dev/null -e $jid.batch_err_log -x -r $jid"
if test "$priority" if test "$priority"
then then
SUBMCMD=$SUBMCMD" -p $priority" SUBMCMD=$SUBMCMD" -p $priority"
fi fi
if test "$att" if test "$att"
then then
SUBMCMD=$SUBMCMD" -a $att" SUBMCMD=$SUBMCMD" -a $att"
fi fi
if test "$cpu" if test "$cpu"
then then
SUBMCMD=$SUBMCMD" -lt $cpu" SUBMCMD=$SUBMCMD" -lt $cpu"
fi fi
@ -3553,7 +3554,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3573,6 +3574,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# #
# run marc # run marc
@ -3621,7 +3623,7 @@ fi
if test $dllrun -eq 0; then if test $dllrun -eq 0; then
if test $prgsav = no if test $prgsav = no
then then
/bin/rm -f $bd$program 2>/dev/null /bin/rm -f $bd$program 2>/dev/null
# for network run, remove executable on remote machines # for network run, remove executable on remote machines
# and executables with modified name # and executables with modified name
if test $nprocd -gt 1 if test $nprocd -gt 1
@ -3670,7 +3672,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi
if test $nprocdddm -gt 1 if test $nprocdddm -gt 1
@ -3887,7 +3889,7 @@ then
then then
counter=$((counter+1)) counter=$((counter+1))
if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes" if test ${dirstatus[$counter]} = "local" -a ${compstatus[$counter]} = "yes"
then then
DIR1=$DIRJOB DIR1=$DIRJOB
line=`grep -v '^#' $userhost | grep "^$ibase "` line=`grep -v '^#' $userhost | grep "^$ibase "`
workdir=`echo $line | $AWK '{print $3}'` workdir=`echo $line | $AWK '{print $3}'`
@ -3907,6 +3909,7 @@ else # if test $link
fi # if test $link fi # if test $link
/bin/rm $userobj 2>/dev/null /bin/rm $userobj 2>/dev/null
/bin/rm $DIRJOB/*.mod 2>/dev/null /bin/rm $DIRJOB/*.mod 2>/dev/null
/bin/rm $DIRJOB/*.smod 2>/dev/null
# done if no job id given # done if no job id given
if test -z "$jid" if test -z "$jid"
then then
@ -3946,7 +3949,7 @@ if test $ddm_arc -gt 0; then
RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc " RUN_JOB="$MESHERDIR/sf_exeddm $RUN_JOB -ddm $ddm_arc "
fi fi
$RUN_JOB $RUN_JOB
if test $nprocd -gt 1 if test $nprocd -gt 1
then then
@ -4029,7 +4032,7 @@ else
/bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null /bin/cp $DIRJOB/$marcdll $DIRJOB/${filename}_$marcdll 2>/dev/null
fi fi
if test $rmdll = yes;then if test $rmdll = yes;then
/bin/rm -f $DIRJOB/$marcdll 2>/dev/null /bin/rm -f $DIRJOB/$marcdll 2>/dev/null
fi fi
fi fi

View File

@ -248,7 +248,7 @@ subroutine CPFEM_general(mode, ffn, ffn1, temperature_inp, dt, elFE, ip, cauchyS
endif validCalculation endif validCalculation
if (debugCPFEM%extensive & if (debugCPFEM%extensive &
.and. (debugCPFEM%element == elCP .and. debugCPFEM%ip == ip) .or. .not. debugCPFEM%selective) then .and. ((debugCPFEM%element == elCP .and. debugCPFEM%ip == ip) .or. .not. debugCPFEM%selective)) then
write(6,'(a,i8,1x,i2,/,12x,6(f10.3,1x)/)') & write(6,'(a,i8,1x,i2,/,12x,6(f10.3,1x)/)') &
'<< CPFEM >> stress/MPa at elFE ip ', elFE, ip, CPFEM_cs(1:6,ip,elCP)*1.0e-6_pReal '<< CPFEM >> stress/MPa at elFE ip ', elFE, ip, CPFEM_cs(1:6,ip,elCP)*1.0e-6_pReal
write(6,'(a,i8,1x,i2,/,6(12x,6(f10.3,1x)/))') & write(6,'(a,i8,1x,i2,/,6(12x,6(f10.3,1x)/))') &

View File

@ -529,6 +529,8 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
msg = 'unknown material parameter:' msg = 'unknown material parameter:'
case (211) case (211)
msg = 'material parameter out of bounds:' msg = 'material parameter out of bounds:'
case (212)
msg = 'nonlocal model not supported'
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! numerics error messages ! numerics error messages

View File

@ -15,7 +15,8 @@ module constitutive
use results use results
use lattice use lattice
use discretization use discretization
use geometry_plastic_nonlocal use geometry_plastic_nonlocal, only: &
geometry_plastic_nonlocal_disable
use source_thermal_dissipation use source_thermal_dissipation
use source_thermal_externalheat use source_thermal_externalheat
use source_damage_isoBrittle use source_damage_isoBrittle

View File

@ -386,7 +386,11 @@ module subroutine plastic_nonlocal_init
call material_allocateState(plasticState(p),NipcMyPhase,sizeState,sizeDotState,sizeDeltaState) call material_allocateState(plasticState(p),NipcMyPhase,sizeState,sizeDotState,sizeDeltaState)
plasticState(p)%nonlocal = config%KeyExists('/nonlocal/') plasticState(p)%nonlocal = config%KeyExists('/nonlocal/')
if(plasticState(p)%nonlocal .and. .not. allocated(IPneighborhood)) &
call IO_error(212,ext_msg='IPneighborhood does not exist')
plasticState(p)%offsetDeltaState = 0 ! ToDo: state structure does not follow convention plasticState(p)%offsetDeltaState = 0 ! ToDo: state structure does not follow convention
st0%rho => plasticState(p)%state0 (0*prm%sum_N_sl+1:10*prm%sum_N_sl,:) st0%rho => plasticState(p)%state0 (0*prm%sum_N_sl+1:10*prm%sum_N_sl,:)

View File

@ -118,6 +118,7 @@ subroutine discretization_grid_init(restart)
call results_addAttribute('origin',origin, 'geometry') call results_addAttribute('origin',origin, 'geometry')
call results_closeJobFile call results_closeJobFile
endif endif
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
! geometry information required by the nonlocal CP model ! geometry information required by the nonlocal CP model
call geometry_plastic_nonlocal_setIPvolume(reshape([(product(mySize/real(myGrid,pReal)),j=1,product(myGrid))], & call geometry_plastic_nonlocal_setIPvolume(reshape([(product(mySize/real(myGrid,pReal)),j=1,product(myGrid))], &

View File

@ -119,6 +119,7 @@ subroutine discretization_marc_init
unscaledNormals = IPareaNormal(elem,nElems,connectivity_cell,node0_cell) unscaledNormals = IPareaNormal(elem,nElems,connectivity_cell,node0_cell)
call geometry_plastic_nonlocal_setIParea(norm2(unscaledNormals,1)) call geometry_plastic_nonlocal_setIParea(norm2(unscaledNormals,1))
call geometry_plastic_nonlocal_setIPareaNormal(unscaledNormals/spread(norm2(unscaledNormals,1),1,3)) call geometry_plastic_nonlocal_setIPareaNormal(unscaledNormals/spread(norm2(unscaledNormals,1),1,3))
!call geometry_plastic_nonlocal_setIPneighborhood ToDo: Support nonlocal
call geometry_plastic_nonlocal_results call geometry_plastic_nonlocal_results
end subroutine discretization_marc_init end subroutine discretization_marc_init
@ -492,8 +493,8 @@ subroutine inputRead_mapNodes(FEM2DAMASK, &
chunkPos = IO_stringPos(fileContent(l)) chunkPos = IO_stringPos(fileContent(l))
if(chunkPos(1) < 1) cycle if(chunkPos(1) < 1) cycle
if(IO_lc(IO_stringValue(fileContent(l),chunkPos,1)) == 'coordinates') then if(IO_lc(IO_stringValue(fileContent(l),chunkPos,1)) == 'coordinates') then
chunkPos = [1,1,10]
do i = 1,nNodes do i = 1,nNodes
chunkPos = IO_stringPos(fileContent(l+1+i))
map_unsorted(:,i) = [IO_intValue(fileContent(l+1+i),chunkPos,1),i] map_unsorted(:,i) = [IO_intValue(fileContent(l+1+i),chunkPos,1),i]
enddo enddo
exit exit
@ -528,8 +529,8 @@ subroutine inputRead_elemNodes(nodes, &
chunkPos = IO_stringPos(fileContent(l)) chunkPos = IO_stringPos(fileContent(l))
if(chunkPos(1) < 1) cycle if(chunkPos(1) < 1) cycle
if(IO_lc(IO_stringValue(fileContent(l),chunkPos,1)) == 'coordinates') then if(IO_lc(IO_stringValue(fileContent(l),chunkPos,1)) == 'coordinates') then
chunkPos = [4,1,10,11,30,31,50,51,70]
do i=1,nNode do i=1,nNode
chunkPos = IO_stringPos(fileContent(l+1+i))
m = mesh_FEM2DAMASK_node(IO_intValue(fileContent(l+1+i),chunkPos,1)) m = mesh_FEM2DAMASK_node(IO_intValue(fileContent(l+1+i),chunkPos,1))
do j = 1,3 do j = 1,3
nodes(j,m) = mesh_unitlength * IO_floatValue(fileContent(l+1+i),chunkPos,j+1) nodes(j,m) = mesh_unitlength * IO_floatValue(fileContent(l+1+i),chunkPos,j+1)