Merge branch 'development' into improved-HDF5
This commit is contained in:
commit
ba5b623f14
|
@ -7,7 +7,7 @@ stages:
|
||||||
- compilePETScGNU
|
- compilePETScGNU
|
||||||
- prepareSpectral
|
- prepareSpectral
|
||||||
- spectral
|
- spectral
|
||||||
- compileMarc2017
|
- compileMarc2018_1
|
||||||
- marc
|
- marc
|
||||||
- compileAbaqus2017
|
- compileAbaqus2017
|
||||||
- example
|
- example
|
||||||
|
@ -77,8 +77,8 @@ variables:
|
||||||
MSC2017: "FEM/MSC/2017"
|
MSC2017: "FEM/MSC/2017"
|
||||||
# ------------ Defaults ----------------------------------------------
|
# ------------ Defaults ----------------------------------------------
|
||||||
Abaqus: "$Abaqus2017"
|
Abaqus: "$Abaqus2017"
|
||||||
MSC: "$MSC2017"
|
MSC: "$MSC2018_1"
|
||||||
IntelMarc: "IntelCompiler16_4"
|
IntelMarc: "$IntelCompiler17_0"
|
||||||
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
# ++++++++++++ Documentation +++++++++++++++++++++++++++++++++++++++++
|
||||||
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
Doxygen1_8_13: "Documentation/Doxygen/1.8.13"
|
||||||
# ------------ Defaults ----------------------------------------------
|
# ------------ Defaults ----------------------------------------------
|
||||||
|
@ -358,27 +358,16 @@ TextureComponents:
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
Marc_compileIfort2017:
|
Marc_compileIfort2018_1:
|
||||||
stage: compileMarc2017
|
stage: compileMarc2018_1
|
||||||
script:
|
script:
|
||||||
- module load $IntelCompiler16_4 $MSC2017
|
- module load $IntelCompiler17_0 $MSC2018_1
|
||||||
- Marc_compileIfort/test.py -m 2017
|
- Marc_compileIfort/test.py -m 2018.1
|
||||||
except:
|
except:
|
||||||
- master
|
- master
|
||||||
- release
|
- release
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################
|
|
||||||
#Marc_compileIfort2018_1:
|
|
||||||
# stage: compileMarc2018_1
|
|
||||||
# script:
|
|
||||||
# - module load $IntelCompiler17_0 $MSC2018_1
|
|
||||||
# - Marc_compileIfort/test.py -m 2018.1
|
|
||||||
# except:
|
|
||||||
# - master
|
|
||||||
# - release
|
|
||||||
|
|
||||||
|
|
||||||
###################################################################################################
|
###################################################################################################
|
||||||
Hex_elastic:
|
Hex_elastic:
|
||||||
stage: marc
|
stage: marc
|
||||||
|
|
2
CONFIG
2
CONFIG
|
@ -8,6 +8,6 @@ set DAMASK_NUM_THREADS = 4
|
||||||
set MSC_ROOT = /opt/msc
|
set MSC_ROOT = /opt/msc
|
||||||
set MARC_VERSION = 2018.1
|
set MARC_VERSION = 2018.1
|
||||||
|
|
||||||
set ABAQUS_VERSION = 2017
|
set ABAQUS_VERSION = 2018.1
|
||||||
|
|
||||||
set DAMASK_HDF5 = OFF
|
set DAMASK_HDF5 = OFF
|
||||||
|
|
|
@ -78,7 +78,7 @@ echo PETSC_DIR: $PETSC_DIR
|
||||||
ls $PETSC_DIR/lib
|
ls $PETSC_DIR/lib
|
||||||
|
|
||||||
firstLevel "Python"
|
firstLevel "Python"
|
||||||
DEFAULT_PYTHON=python2.7
|
DEFAULT_PYTHON=python3
|
||||||
for executable in python python2 python3 python2.7; do
|
for executable in python python2 python3 python2.7; do
|
||||||
getDetails $executable '--version'
|
getDetails $executable '--version'
|
||||||
done
|
done
|
||||||
|
|
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
||||||
Subproject commit cd714a6a3d36d071d7a4e8676959964d88076dcf
|
Subproject commit ee5a63d34abbac295207354fddf30e6d7cc258cd
|
|
@ -1,52 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
usernoext=$user
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
|
||||||
|
|
||||||
# add BLAS options for linking
|
|
||||||
BLAS="%BLAS%"
|
|
||||||
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$DFORTHIGHMP $user || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$usernoext.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$BLAS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
||||||
/bin/rm $DIRJOB/*.mod
|
|
|
@ -1,52 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
usernoext=$user
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
|
||||||
|
|
||||||
# add BLAS options for linking
|
|
||||||
BLAS="%BLAS%"
|
|
||||||
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$DFORTRANLOWMP $user || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$usernoext.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$BLAS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
||||||
/bin/rm $DIRJOB/*.mod
|
|
|
@ -1,52 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
usernoext=$user
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
|
||||||
|
|
||||||
# add BLAS options for linking
|
|
||||||
BLAS="%BLAS%"
|
|
||||||
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$DFORTRANMP $user || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$usernoext.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$BLAS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
||||||
/bin/rm $DIRJOB/*.mod
|
|
|
@ -1,41 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user.f on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$FORTRAN $user.f || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user.f"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$user.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $user.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
|
@ -1,752 +0,0 @@
|
||||||
#
|
|
||||||
# General definitions for the Marc 2016 version
|
|
||||||
#
|
|
||||||
# EM64T
|
|
||||||
#
|
|
||||||
# Linux RedHat 6.3 / SuSE 11
|
|
||||||
#
|
|
||||||
# 64 bit MPI version
|
|
||||||
#
|
|
||||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
|
||||||
#
|
|
||||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
|
||||||
#
|
|
||||||
# To check the O/S level, type:
|
|
||||||
# uname -a
|
|
||||||
#
|
|
||||||
# Distributed parallel MPI libraries:
|
|
||||||
# 1) HP MPI 2.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpirun -version
|
|
||||||
# 2) Intel MPI 5.1.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpiexec.hydra -version
|
|
||||||
#
|
|
||||||
# To check the Compiler level, type using the compiler
|
|
||||||
# installation path:
|
|
||||||
# ifort -V
|
|
||||||
# icc -V
|
|
||||||
#
|
|
||||||
# REMARKS : This file contains the definitions of variables used during
|
|
||||||
# compilation loading and use of the MARC programmes . The
|
|
||||||
# current machine type is identified by means of the variable
|
|
||||||
# MACHINE , defined below.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# MPI_ROOT: root directory in which mpi shared libraries, etc. are located
|
|
||||||
# DIRJOB : directory in which spawned jobs should look for Marc input
|
|
||||||
# MPI_ARCH: system architecture
|
|
||||||
# MPI_EPATH: path where executable resides
|
|
||||||
#
|
|
||||||
REVISION="VERSION, BUILD"
|
|
||||||
HOSTNAME=`hostname`
|
|
||||||
|
|
||||||
# find available memory in Mbyte on the machine
|
|
||||||
# can be set explicitly
|
|
||||||
MEMLIMIT=`free -m | awk '/Mem:/ {print $2}'`
|
|
||||||
|
|
||||||
# set _OEM_NASTRAN to 1 for MD Nastran build
|
|
||||||
# override _OEM_NASTRAN setting with MARC_MD_NASTRAN environment variable
|
|
||||||
_OEM_NASTRAN="${MARC_MD_NASTRAN:-0}"
|
|
||||||
|
|
||||||
# uncomment the following line for an autoforge build
|
|
||||||
#AUTOFORGE=1
|
|
||||||
AUTOFORGE=0
|
|
||||||
export AUTOFORGE
|
|
||||||
|
|
||||||
# integer size
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "" ; then
|
|
||||||
INTEGER_PATH=
|
|
||||||
else
|
|
||||||
INTEGER_PATH=/$MARC_INTEGER_SIZE
|
|
||||||
fi
|
|
||||||
|
|
||||||
FCOMP=ifort
|
|
||||||
INTELPATH="/opt/intel/composer_xe_2015.0.090"
|
|
||||||
|
|
||||||
# find the root directory of the compiler installation:
|
|
||||||
# - if ifort is found in $PATH, then the root directory is derived
|
|
||||||
# from the path to ifort
|
|
||||||
# - if ifort is not found in $PATH, the root directory is assumed
|
|
||||||
# to be $INTELPATH and the directory in which ifort is found is
|
|
||||||
# added to $PATH
|
|
||||||
FCOMPPATH=`which "$FCOMP" 2>/dev/null`
|
|
||||||
if test -n "$FCOMPPATH"; then
|
|
||||||
# derive the root directory from $FCOMPPATH
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/intel64/$FCOMP}"
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/$FCOMP}"
|
|
||||||
fi
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
elif test -d "$INTELPATH"; then
|
|
||||||
# check for compiler in $INTELPATH
|
|
||||||
if test -d "$INTELPATH/bin/intel64" -a \
|
|
||||||
-x "$INTELPATH/bin/intel64/$FCOMP" ; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin/intel64:$PATH"
|
|
||||||
elif test -d "$INTELPATH/bin" -a \
|
|
||||||
-x "$INTELPATH/bin/$FCOMP"; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin:$PATH"
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
|
|
||||||
# settings for MKL
|
|
||||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for Metis
|
|
||||||
#
|
|
||||||
METIS="-I$METIS_SOURCE/include"
|
|
||||||
METISLIBS="$MARC_LIB/metis.a "
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
# RCP and RSH are used for parallel network runs
|
|
||||||
# replace with similar commands like rsh if needed
|
|
||||||
RCP=/usr/bin/scp
|
|
||||||
RSH=/usr/bin/ssh
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
MPI_DEFAULT=intelmpi
|
|
||||||
MPI_OTHER=hpmpi
|
|
||||||
|
|
||||||
MPITYPE=$MPI_DEFAULT
|
|
||||||
|
|
||||||
if test $AUTOFORGE
|
|
||||||
then
|
|
||||||
if test $AUTOFORGE = 1
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# overrule MPITYPE setting with environmental variable MARC_MPITYPE
|
|
||||||
if test $MARC_MPITYPE
|
|
||||||
then
|
|
||||||
MPITYPE=$MARC_MPITYPE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# always set MPITYPE to none for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following lines to build with GPGPU version of BCS Solver for
|
|
||||||
# NVIDIA platforms
|
|
||||||
#BCSGPUSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=BCSGPU
|
|
||||||
|
|
||||||
SOLVERFLAGS=
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
|
||||||
BCS_DIR=bcsgpusolver
|
|
||||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
|
||||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
|
||||||
else
|
|
||||||
BCS_DIR=bcssolver
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
DDM=
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
FCOMPMPI=mpif90
|
|
||||||
export MPI_ROOT=$MARC_HPMPI
|
|
||||||
export MPI_REMSH=$RSH
|
|
||||||
export MPI_F77=$FCOMP
|
|
||||||
ARCHITECTURE=linux_amd64
|
|
||||||
DDM="-I$MPI_ROOT/include/64 -DDDM -DHPMPI"
|
|
||||||
MPI_CLEAN=
|
|
||||||
export MPI_EPATH=$MARC_BIN
|
|
||||||
export LD_LIBRARY_PATH=$MPI_ROOT/lib/$ARCHITECTURE:$MARC_LIB:$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
|
||||||
export MPIHPSPECIAL="-e MPI_FLAGS=E,T,y1"
|
|
||||||
# Below line is moved in run_marc file
|
|
||||||
# export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e BINDIR=$MARC_BIN"
|
|
||||||
if test -n "$MSC_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MSC_LICENSE_FILE=$MSC_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
if test -n "$LM_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e LM_LICENSE_FILE=$LM_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MPI_LIC_CHECKER=$MPI_ROOT/bin/licensing/amd64_s8/lichk.x"
|
|
||||||
RUN_JOB2="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -f "
|
|
||||||
RUN_JOB1="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -w $MPIHPSPECIAL -np "
|
|
||||||
RUN_JOB0=
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
INTELMPI_VERSION=HYDRA
|
|
||||||
FCOMPMPI=mpiifort
|
|
||||||
MPI_ROOT=$MARC_INTELMPI
|
|
||||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
|
||||||
PATH=$MPI_ROOT/bin64:$PATH
|
|
||||||
export PATH
|
|
||||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
|
||||||
export LD_LIBRARY_PATH
|
|
||||||
if test $INTELMPI_VERSION = HYDRA
|
|
||||||
then
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
|
||||||
else
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
|
||||||
fi
|
|
||||||
RUN_JOB0=
|
|
||||||
MPI_CLEAN=
|
|
||||||
MPI_EPATH=$MARC_BIN
|
|
||||||
MPIR_HOME=$MPI_ROOT
|
|
||||||
MPICH_F77=$FCOMP
|
|
||||||
MPICH_F77LINKER=$FCOMP
|
|
||||||
export MPI_ROOT MPI_EPATH MPIR_HOME MPICH_F77 MPICH_F77LINKER
|
|
||||||
I_MPI_PIN_DOMAIN=node
|
|
||||||
export I_MPI_PIN_DOMAIN
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
export MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
DDM="-I$MPI_ROOT/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# variables for the "maintain" script
|
|
||||||
#
|
|
||||||
|
|
||||||
MACHINENAME=LINUX
|
|
||||||
MACHINE64BIT=yes
|
|
||||||
MACHINE=Linux_EM64T
|
|
||||||
DEV=/dev/tape
|
|
||||||
GETLOG="whoami"
|
|
||||||
CLEAR="clear"
|
|
||||||
MY_UNAME=`uname -a`
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with VKI Solver
|
|
||||||
#VKISOLVER=VKI
|
|
||||||
VKISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with CASI Solver
|
|
||||||
CASISOLVER=CASI
|
|
||||||
if test "$MARC_CASISOLVER" = "NONE" ; then
|
|
||||||
CASISOLVER=NONE
|
|
||||||
fi
|
|
||||||
#CASISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with MF2 Solver
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
#MF2SOLVER=SERIAL
|
|
||||||
#MF2SOLVER=MF2PARALLEL
|
|
||||||
|
|
||||||
# Edit following lines to build with Intel(c) Multithreaded solver (PARDISO)
|
|
||||||
#INTELSOLVER=NONE
|
|
||||||
INTELSOLVER=PARDISO
|
|
||||||
|
|
||||||
# Edit following lines to build with MUMPS
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
else
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following 2 lines to build MARC dynamic shared library
|
|
||||||
MARC_DLL=MARC_DLL
|
|
||||||
MARC_DLL=NONE
|
|
||||||
|
|
||||||
# always set VKISOLVER, CASISOLVER, BCSGPUSOLVER, and MARC_DLL to NONE for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
VKISOLVER=NONE
|
|
||||||
CASISOLVER=NONE
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
INTELSOLVER=NONE
|
|
||||||
MUMPSSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=NONE
|
|
||||||
MARC_DLL=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# define Fortran and C compile syntax
|
|
||||||
#
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DVKI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DCASI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2PARALLEL"
|
|
||||||
fi
|
|
||||||
if test "$MF2SOLVER" = MF2SERIAL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2SERIAL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$INTELSOLVER" = PARDISO
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DPARDISO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMUMPS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMARC_DLL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINK_OPT=
|
|
||||||
DEBUG_OPT=
|
|
||||||
C_DEBUG_OPT=
|
|
||||||
|
|
||||||
#Uncomment following line to build Marc in debuggable mode
|
|
||||||
MARCDEBUG=
|
|
||||||
#MARCDEBUG="ON"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
LINK_OPT="-debug -traceback"
|
|
||||||
DEBUG_OPT="-debug -traceback"
|
|
||||||
C_DEBUG_OPT="-debug -traceback"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
MARCCHECK=
|
|
||||||
#MARCCHECK="ON"
|
|
||||||
if test "$MARCCHECK" = "ON"
|
|
||||||
then
|
|
||||||
DEBUG_OPT="$DEBUG_OPT -fpe0 -fp-stack-check -check all -ftrapuv "
|
|
||||||
C_DEBUG_OPT="$C_DEBUG_OPT -fp-stack-check -check-uninit -Wformat -ftrapuv "
|
|
||||||
fi
|
|
||||||
|
|
||||||
MARCCODECOV=
|
|
||||||
#MARCCODECOV="ON"
|
|
||||||
|
|
||||||
MARCCODEPROF=
|
|
||||||
#MARCCODEPROF="ON"
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
I8FFLAGS="-real-size 64 -integer-size 32"
|
|
||||||
I8DEFINES="-DFLOAT=8 -DINT=4"
|
|
||||||
I8CDEFINES=
|
|
||||||
I8CASIDEFS=
|
|
||||||
else
|
|
||||||
I8FFLAGS="-i8 -real-size 64 -integer-size 64"
|
|
||||||
I8DEFINES="-DI64 -DFLOAT=8 -DINT=8"
|
|
||||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
|
||||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MTHREAD=OPENMP
|
|
||||||
if test "$MARC_OPENMP" = "NONE" ; then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
#MTHREAD=NONE
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
OMP_COMPAT=YES
|
|
||||||
if test "$MTHREAD" = "NONE"
|
|
||||||
then
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
fi
|
|
||||||
|
|
||||||
CDEFINES=
|
|
||||||
FDEFINES=
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CDEFINES="$CDEFINES -D_OEM_NASTRAN"
|
|
||||||
FDEFINES="$FDEFINES -D_OEM_NASTRAN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FDEFINES="$FDEFINES -D_IMPLICITNONE"
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -eq 0
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DMKL -DOPENMP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DOMP_COMPAT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# -D_MSCMARC
|
|
||||||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
|
||||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
|
||||||
|
|
||||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CINCL="$CINCL -I../../include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
|
||||||
CCT="$CC"
|
|
||||||
CCTLOW="$CCLOW"
|
|
||||||
CCTHIGH="$CCHIGH"
|
|
||||||
|
|
||||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
|
||||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
|
||||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
#PROFILE="-Mprof=func"
|
|
||||||
#PROFILE="-Mprof=lines"
|
|
||||||
#PROFILE="-Mprof=func,mpi"
|
|
||||||
PROFILE=
|
|
||||||
if test "$MARCCODECOV" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE="-prof-gen=srcpos"
|
|
||||||
fi
|
|
||||||
if test "$MARCCODEPROF" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE=" $PROFILE -pg"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORT_OPT="-c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr -mp1 -WB -fp-model source"
|
|
||||||
if test "$MTHREAD" = "OPENMP"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -qopenmp"
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -qopenmp-threadprivate=compat"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# FORT_OPT=" $FORT_OPT -auto "
|
|
||||||
FORT_OPT=" $FORT_OPT -save -zero"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
|
|
||||||
# determine DAMASK version
|
|
||||||
if test -n "$DAMASK_USER"; then
|
|
||||||
DAMASKROOT=`dirname $DAMASK_USER`/..
|
|
||||||
read DAMASKVERSION < $DAMASKROOT/VERSION
|
|
||||||
DAMASKVERSION="'"$DAMASKVERSION"'"
|
|
||||||
else
|
|
||||||
DAMASKVERSION="'N/A'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
|
||||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias -O2 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
|
|
||||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
|
||||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2016 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOWT="$FORTLOW"
|
|
||||||
FORTRANT="$FORTRAN"
|
|
||||||
FORTHIGHT="$FORTHIGH"
|
|
||||||
|
|
||||||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
|
||||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
|
||||||
|
|
||||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -nofor_main"
|
|
||||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
|
||||||
|
|
||||||
|
|
||||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
|
||||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
|
||||||
NVCCLIB="ar rvl"
|
|
||||||
NVCCLD=icc
|
|
||||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
BCSFORTRAN=$BCSFORTLOW
|
|
||||||
BCSFORTHIGH=$BCSFORTLOW
|
|
||||||
BCSFORT90HIGH=$BCSFORTLOW
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
LOAD="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
|
||||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
LOAD="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
LOAD="$FCOMP $LINK_OPT -o "
|
|
||||||
LOADT="$FCOMP $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
|
||||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
|
||||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
|
||||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
|
||||||
CC="$CC -fPIC"
|
|
||||||
CCMNF="$CCMNF -fPIC"
|
|
||||||
CC_CASI="$CC_CASI -fPIC"
|
|
||||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
|
||||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
|
||||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
|
||||||
LINK_MARC_DLL="-shared -fPIC"
|
|
||||||
LOAD_DLL=$LOAD
|
|
||||||
LOADT_DLL=$LOADT
|
|
||||||
EXT_DLL="so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
XLIBS="-L/usr/X11/lib -lX11 "
|
|
||||||
|
|
||||||
#
|
|
||||||
# define archive and ranlib syntax
|
|
||||||
#
|
|
||||||
|
|
||||||
ARC="ar rvl"
|
|
||||||
ARD="ar dvl"
|
|
||||||
ARX="ar xl"
|
|
||||||
RAN=""
|
|
||||||
|
|
||||||
#
|
|
||||||
# choose which libraries you want to use ( e.g. blas )
|
|
||||||
#
|
|
||||||
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
VKISOLVERLIBS="$MARC_LIB/vkisolver.a"
|
|
||||||
else
|
|
||||||
VKISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
|
||||||
else
|
|
||||||
CASISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
MF2SOLVERLIBS=
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
MF2SOLVERLIBS="$MARC_LIB/mf2parallel/libseq.a \
|
|
||||||
$MARC_LIB/mf2parallel/libsym.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmet.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libnum.a \
|
|
||||||
$MARC_LIB/mf2parallel/libutl.a \
|
|
||||||
$MARC_LIB/mf2parallel/libr8.a \
|
|
||||||
$MARC_LIB/mf2parallel/libz.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
|
||||||
if test $MPITYPE = none
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
echo hello > /dev/null
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a "
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a "
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS=
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
|
||||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
|
||||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
|
||||||
MARCCUDALIBS=$MARCCUDALIBS1
|
|
||||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
|
||||||
else
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_lp64.a -Wl,--end-group"
|
|
||||||
else
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a -Wl,--end-group"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SECLIBS="-L$MARC_LIB -llapi"
|
|
||||||
|
|
||||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} ${MUMPSSOLVERLIBS2} \
|
|
||||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
|
||||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a "
|
|
||||||
|
|
||||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
|
||||||
|
|
||||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
|
||||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
|
||||||
STUBS="$MARC_LIB/stubs.a "
|
|
||||||
MNFLIBS="$MARC_LIB/libmnf.a"
|
|
||||||
MDUSER="$MARC_LIB/md_user.a"
|
|
||||||
if test "X$MARC_SIMUFACT" != "X"
|
|
||||||
then
|
|
||||||
SFLIB="-L$SFMATDIR -lMBA_Grain $SFMATDIR/sfclib.a "
|
|
||||||
else
|
|
||||||
SFLIB=" "
|
|
||||||
fi
|
|
||||||
|
|
||||||
OPENMP="-qopenmp"
|
|
||||||
|
|
||||||
SYSLIBS=" $OPENMP -lpthread "
|
|
||||||
|
|
||||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# SYSLIBS="-L${VT_ROOT}/lib -lVT -ldwarf -lelf -lm -lpthread \
|
|
||||||
# -L${MPI_ROOT}/lib64 -lmpi -lmpiif -lmpigi -lrt"
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread "
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
SYSLIBSPAR=" "
|
|
||||||
|
|
||||||
MARC_DLL_CODES="runmarc.f"
|
|
||||||
|
|
||||||
|
|
||||||
BLAS_SRC="dzero.f icopy.f izero.f"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
BLAS_SRC="$BLAS_SRC dsctr.f zsctr.f dzasum.f daxpyi.f zaxpyi.f dgthr.f zgthr.f"
|
|
||||||
else
|
|
||||||
BLAS_SRC="ALL"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
|
||||||
omars.f fixbc.f triang.f bet049.f norst3.f eldata.f \
|
|
||||||
elec*.f elct*.f fmeig.f oada00.f ogeig.f updtrbe2.f cycrota.f \
|
|
||||||
cordef.f ogpk.f ogtan.f eldam.f formrbe3.f \
|
|
||||||
inertie.f em_sso072.f cn_fol3d_qpatch6.f cosim_begin.f"
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
|
||||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
|
||||||
fi
|
|
||||||
LOW_OPT_CODES_CASI=""
|
|
||||||
|
|
||||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
|
||||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
|
||||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
|
||||||
|
|
||||||
|
|
||||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
|
||||||
|
|
||||||
MAXNUM=1000000
|
|
|
@ -1,714 +0,0 @@
|
||||||
#
|
|
||||||
# General definitions for the Marc 2016 version
|
|
||||||
#
|
|
||||||
# EM64T
|
|
||||||
#
|
|
||||||
# Linux RedHat 6.3 / SuSE 11
|
|
||||||
#
|
|
||||||
# 64 bit MPI version
|
|
||||||
#
|
|
||||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
|
||||||
#
|
|
||||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 15.0.0.090 Build 20140723
|
|
||||||
#
|
|
||||||
# To check the O/S level, type:
|
|
||||||
# uname -a
|
|
||||||
#
|
|
||||||
# Distributed parallel MPI libraries:
|
|
||||||
# 1) HP MPI 2.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpirun -version
|
|
||||||
# 2) Intel MPI 5.1.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpiexec.hydra -version
|
|
||||||
#
|
|
||||||
# To check the Compiler level, type using the compiler
|
|
||||||
# installation path:
|
|
||||||
# ifort -V
|
|
||||||
# icc -V
|
|
||||||
#
|
|
||||||
# REMARKS : This file contains the definitions of variables used during
|
|
||||||
# compilation loading and use of the MARC programmes . The
|
|
||||||
# current machine type is identified by means of the variable
|
|
||||||
# MACHINE , defined below.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# MPI_ROOT: root directory in which mpi shared libraries, etc. are located
|
|
||||||
# DIRJOB : directory in which spawned jobs should look for Marc input
|
|
||||||
# MPI_ARCH: system architecture
|
|
||||||
# MPI_EPATH: path where executable resides
|
|
||||||
#
|
|
||||||
REVISION="VERSION, BUILD"
|
|
||||||
HOSTNAME=`hostname`
|
|
||||||
|
|
||||||
# find available memory in Mbyte on the machine
|
|
||||||
# can be set explicitly
|
|
||||||
MEMLIMIT=`free -m | awk '/Mem:/ {print $2}'`
|
|
||||||
|
|
||||||
# set _OEM_NASTRAN to 1 for MD Nastran build
|
|
||||||
# override _OEM_NASTRAN setting with MARC_MD_NASTRAN environment variable
|
|
||||||
_OEM_NASTRAN="${MARC_MD_NASTRAN:-0}"
|
|
||||||
|
|
||||||
# uncomment the following line for an autoforge build
|
|
||||||
#AUTOFORGE=1
|
|
||||||
AUTOFORGE=0
|
|
||||||
export AUTOFORGE
|
|
||||||
|
|
||||||
# integer size
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "" ; then
|
|
||||||
INTEGER_PATH=
|
|
||||||
else
|
|
||||||
INTEGER_PATH=/$MARC_INTEGER_SIZE
|
|
||||||
fi
|
|
||||||
|
|
||||||
FCOMP=ifort
|
|
||||||
INTELPATH="/opt/intel/composer_xe_2015.0.090"
|
|
||||||
|
|
||||||
# find the root directory of the compiler installation:
|
|
||||||
# - if ifort is found in $PATH, then the root directory is derived
|
|
||||||
# from the path to ifort
|
|
||||||
# - if ifort is not found in $PATH, the root directory is assumed
|
|
||||||
# to be $INTELPATH and the directory in which ifort is found is
|
|
||||||
# added to $PATH
|
|
||||||
FCOMPPATH=`which "$FCOMP" 2>/dev/null`
|
|
||||||
if test -n "$FCOMPPATH"; then
|
|
||||||
# derive the root directory from $FCOMPPATH
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/intel64/$FCOMP}"
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/$FCOMP}"
|
|
||||||
fi
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
elif test -d "$INTELPATH"; then
|
|
||||||
# check for compiler in $INTELPATH
|
|
||||||
if test -d "$INTELPATH/bin/intel64" -a \
|
|
||||||
-x "$INTELPATH/bin/intel64/$FCOMP" ; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin/intel64:$PATH"
|
|
||||||
elif test -d "$INTELPATH/bin" -a \
|
|
||||||
-x "$INTELPATH/bin/$FCOMP"; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin:$PATH"
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
|
|
||||||
# settings for MKL
|
|
||||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for Metis
|
|
||||||
#
|
|
||||||
METIS="-I$METIS_SOURCE/include"
|
|
||||||
METISLIBS="$MARC_LIB/metis.a "
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
# RCP and RSH are used for parallel network runs
|
|
||||||
# replace with similar commands like rsh if needed
|
|
||||||
RCP=/usr/bin/scp
|
|
||||||
RSH=/usr/bin/ssh
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
MPI_DEFAULT=intelmpi
|
|
||||||
MPI_OTHER=hpmpi
|
|
||||||
|
|
||||||
MPITYPE=$MPI_DEFAULT
|
|
||||||
|
|
||||||
if test $AUTOFORGE
|
|
||||||
then
|
|
||||||
if test $AUTOFORGE = 1
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# overrule MPITYPE setting with environmental variable MARC_MPITYPE
|
|
||||||
if test $MARC_MPITYPE
|
|
||||||
then
|
|
||||||
MPITYPE=$MARC_MPITYPE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# always set MPITYPE to none for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following lines to build with GPGPU version of BCS Solver for
|
|
||||||
# NVIDIA platforms
|
|
||||||
#BCSGPUSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=BCSGPU
|
|
||||||
|
|
||||||
SOLVERFLAGS=
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
|
||||||
BCS_DIR=bcsgpusolver
|
|
||||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
|
||||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
|
||||||
else
|
|
||||||
BCS_DIR=bcssolver
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
DDM=
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
FCOMPMPI=mpif90
|
|
||||||
export MPI_ROOT=$MARC_HPMPI
|
|
||||||
export MPI_REMSH=$RSH
|
|
||||||
export MPI_F77=$FCOMP
|
|
||||||
ARCHITECTURE=linux_amd64
|
|
||||||
DDM="-I$MPI_ROOT/include/64 -DDDM -DHPMPI"
|
|
||||||
MPI_CLEAN=
|
|
||||||
export MPI_EPATH=$MARC_BIN
|
|
||||||
export LD_LIBRARY_PATH=$MPI_ROOT/lib/$ARCHITECTURE:$MARC_LIB:$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
|
||||||
export MPIHPSPECIAL="-e MPI_FLAGS=E,T,y1"
|
|
||||||
# Below line is moved in run_marc file
|
|
||||||
# export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e BINDIR=$MARC_BIN"
|
|
||||||
if test -n "$MSC_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MSC_LICENSE_FILE=$MSC_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
if test -n "$LM_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e LM_LICENSE_FILE=$LM_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MPI_LIC_CHECKER=$MPI_ROOT/bin/licensing/amd64_s8/lichk.x"
|
|
||||||
RUN_JOB2="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -f "
|
|
||||||
RUN_JOB1="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -w $MPIHPSPECIAL -np "
|
|
||||||
RUN_JOB0=
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
INTELMPI_VERSION=HYDRA
|
|
||||||
FCOMPMPI=mpiifort
|
|
||||||
MPI_ROOT=$MARC_INTELMPI
|
|
||||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
|
||||||
PATH=$MPI_ROOT/bin64:$PATH
|
|
||||||
export PATH
|
|
||||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
|
||||||
export LD_LIBRARY_PATH
|
|
||||||
if test $INTELMPI_VERSION = HYDRA
|
|
||||||
then
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
|
||||||
else
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
|
||||||
fi
|
|
||||||
RUN_JOB0=
|
|
||||||
MPI_CLEAN=
|
|
||||||
MPI_EPATH=$MARC_BIN
|
|
||||||
MPIR_HOME=$MPI_ROOT
|
|
||||||
MPICH_F77=$FCOMP
|
|
||||||
MPICH_F77LINKER=$FCOMP
|
|
||||||
export MPI_ROOT MPI_EPATH MPIR_HOME MPICH_F77 MPICH_F77LINKER
|
|
||||||
I_MPI_PIN_DOMAIN=node
|
|
||||||
export I_MPI_PIN_DOMAIN
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
export MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
DDM="-I$MPI_ROOT/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# variables for the "maintain" script
|
|
||||||
#
|
|
||||||
|
|
||||||
MACHINENAME=LINUX
|
|
||||||
MACHINE64BIT=yes
|
|
||||||
MACHINE=Linux_EM64T
|
|
||||||
DEV=/dev/tape
|
|
||||||
GETLOG="whoami"
|
|
||||||
CLEAR="clear"
|
|
||||||
MY_UNAME=`uname -a`
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with VKI Solver
|
|
||||||
#VKISOLVER=VKI
|
|
||||||
VKISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with CASI Solver
|
|
||||||
CASISOLVER=CASI
|
|
||||||
if test "$MARC_CASISOLVER" = "NONE" ; then
|
|
||||||
CASISOLVER=NONE
|
|
||||||
fi
|
|
||||||
#CASISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with MF2 Solver
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
#MF2SOLVER=SERIAL
|
|
||||||
#MF2SOLVER=MF2PARALLEL
|
|
||||||
|
|
||||||
# Edit following lines to build with Intel(c) Multithreaded solver (PARDISO)
|
|
||||||
#INTELSOLVER=NONE
|
|
||||||
INTELSOLVER=PARDISO
|
|
||||||
|
|
||||||
# Edit following lines to build with MUMPS
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
else
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following 2 lines to build MARC dynamic shared library
|
|
||||||
MARC_DLL=MARC_DLL
|
|
||||||
MARC_DLL=NONE
|
|
||||||
|
|
||||||
# always set VKISOLVER, CASISOLVER, BCSGPUSOLVER, and MARC_DLL to NONE for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
VKISOLVER=NONE
|
|
||||||
CASISOLVER=NONE
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
INTELSOLVER=NONE
|
|
||||||
MUMPSSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=NONE
|
|
||||||
MARC_DLL=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# define Fortran and C compile syntax
|
|
||||||
#
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DVKI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DCASI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2PARALLEL"
|
|
||||||
fi
|
|
||||||
if test "$MF2SOLVER" = MF2SERIAL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2SERIAL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$INTELSOLVER" = PARDISO
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DPARDISO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMUMPS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMARC_DLL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINK_OPT=
|
|
||||||
DEBUG_OPT=
|
|
||||||
C_DEBUG_OPT=
|
|
||||||
|
|
||||||
#Uncomment following line to build Marc in debuggable mode
|
|
||||||
MARCDEBUG=
|
|
||||||
#MARCDEBUG="ON"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
LINK_OPT="-debug -traceback"
|
|
||||||
DEBUG_OPT="-debug -traceback"
|
|
||||||
C_DEBUG_OPT="-debug -traceback"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
MARCCHECK=
|
|
||||||
#MARCCHECK="ON"
|
|
||||||
if test "$MARCCHECK" = "ON"
|
|
||||||
then
|
|
||||||
DEBUG_OPT="$DEBUG_OPT -fpe0 -fp-stack-check -check all -ftrapuv "
|
|
||||||
C_DEBUG_OPT="$C_DEBUG_OPT -fp-stack-check -check-uninit -Wformat -ftrapuv "
|
|
||||||
fi
|
|
||||||
|
|
||||||
MARCCODECOV=
|
|
||||||
#MARCCODECOV="ON"
|
|
||||||
|
|
||||||
MARCCODEPROF=
|
|
||||||
#MARCCODEPROF="ON"
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
I8FFLAGS=
|
|
||||||
I8DEFINES=
|
|
||||||
I8CDEFINES=
|
|
||||||
I8CASIDEFS=
|
|
||||||
else
|
|
||||||
I8FFLAGS="-i8"
|
|
||||||
I8DEFINES="-DI64"
|
|
||||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
|
||||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MTHREAD=OPENMP
|
|
||||||
if test "$MARC_OPENMP" = "NONE" ; then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
#MTHREAD=NONE
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
OMP_COMPAT=YES
|
|
||||||
if test "$MTHREAD" = "NONE"
|
|
||||||
then
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
fi
|
|
||||||
|
|
||||||
CDEFINES=
|
|
||||||
FDEFINES=
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CDEFINES="$CDEFINES -D_OEM_NASTRAN"
|
|
||||||
FDEFINES="$FDEFINES -D_OEM_NASTRAN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FDEFINES="$FDEFINES -D_IMPLICITNONE"
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -eq 0
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DMKL -DOPENMP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DOMP_COMPAT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# -D_MSCMARC
|
|
||||||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
|
||||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
|
||||||
|
|
||||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CINCL="$CINCL -I../../include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS "
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
|
||||||
CCT="$CC"
|
|
||||||
CCTLOW="$CCLOW"
|
|
||||||
CCTHIGH="$CCHIGH"
|
|
||||||
|
|
||||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
|
||||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
|
||||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
#PROFILE="-Mprof=func"
|
|
||||||
#PROFILE="-Mprof=lines"
|
|
||||||
#PROFILE="-Mprof=func,mpi"
|
|
||||||
PROFILE=
|
|
||||||
if test "$MARCCODECOV" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE="-prof-gen=srcpos"
|
|
||||||
fi
|
|
||||||
if test "$MARCCODEPROF" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE=" $PROFILE -pg"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORT_OPT="-c -assume byterecl -safe_cray_ptr -mp1 -WB -fp-model source"
|
|
||||||
if test "$MTHREAD" = "OPENMP"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -openmp"
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -openmp-threadprivate=compat"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# FORT_OPT=" $FORT_OPT -auto "
|
|
||||||
FORT_OPT=" $FORT_OPT -save -zero"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOWT="$FORTLOW"
|
|
||||||
FORTRANT="$FORTRAN"
|
|
||||||
FORTHIGHT="$FORTHIGH"
|
|
||||||
|
|
||||||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
|
||||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
|
||||||
|
|
||||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -nofor_main"
|
|
||||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
|
||||||
|
|
||||||
|
|
||||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
|
||||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
|
||||||
NVCCLIB="ar rvl"
|
|
||||||
NVCCLD=icc
|
|
||||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
BCSFORTRAN=$BCSFORTLOW
|
|
||||||
BCSFORTHIGH=$BCSFORTLOW
|
|
||||||
BCSFORT90HIGH=$BCSFORTLOW
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
LOAD="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
|
||||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
LOAD="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
LOAD="$FCOMP $LINK_OPT -o "
|
|
||||||
LOADT="$FCOMP $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
|
||||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
|
||||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
|
||||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
|
||||||
CC="$CC -fPIC"
|
|
||||||
CCMNF="$CCMNF -fPIC"
|
|
||||||
CC_CASI="$CC_CASI -fPIC"
|
|
||||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
|
||||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
|
||||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
|
||||||
LINK_MARC_DLL="-shared -fPIC"
|
|
||||||
LOAD_DLL=$LOAD
|
|
||||||
LOADT_DLL=$LOADT
|
|
||||||
EXT_DLL="so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
XLIBS="-L/usr/X11/lib -lX11 "
|
|
||||||
|
|
||||||
#
|
|
||||||
# define archive and ranlib syntax
|
|
||||||
#
|
|
||||||
|
|
||||||
ARC="ar rvl"
|
|
||||||
ARD="ar dvl"
|
|
||||||
ARX="ar xl"
|
|
||||||
RAN=""
|
|
||||||
|
|
||||||
#
|
|
||||||
# choose which libraries you want to use ( e.g. blas )
|
|
||||||
#
|
|
||||||
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
VKISOLVERLIBS="$MARC_LIB/vkisolver.a"
|
|
||||||
else
|
|
||||||
VKISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
|
||||||
else
|
|
||||||
CASISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
MF2SOLVERLIBS=
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
MF2SOLVERLIBS="$MARC_LIB/mf2parallel/libseq.a \
|
|
||||||
$MARC_LIB/mf2parallel/libsym.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmet.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libnum.a \
|
|
||||||
$MARC_LIB/mf2parallel/libutl.a \
|
|
||||||
$MARC_LIB/mf2parallel/libr8.a \
|
|
||||||
$MARC_LIB/mf2parallel/libz.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
|
||||||
if test $MPITYPE = none
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
echo hello > /dev/null
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a "
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a "
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS=
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
|
||||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
|
||||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
|
||||||
MARCCUDALIBS=$MARCCUDALIBS1
|
|
||||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
|
||||||
else
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a $MARC_MKL/libmkl_blacs_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a -Wl,--end-group"
|
|
||||||
else
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a $MARC_MKL/libmkl_blacs_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a -Wl,--end-group"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SECLIBS="-L$MARC_LIB -llapi"
|
|
||||||
|
|
||||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} ${MUMPSSOLVERLIBS2} \
|
|
||||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
|
||||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a "
|
|
||||||
|
|
||||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
|
||||||
|
|
||||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
|
||||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
|
||||||
STUBS="$MARC_LIB/stubs.a "
|
|
||||||
MNFLIBS="$MARC_LIB/libmnf.a"
|
|
||||||
MDUSER="$MARC_LIB/md_user.a"
|
|
||||||
if test "X$MARC_SIMUFACT" != "X"
|
|
||||||
then
|
|
||||||
SFLIB="-L$SFMATDIR -lMBA_Grain $SFMATDIR/sfclib.a "
|
|
||||||
else
|
|
||||||
SFLIB=" "
|
|
||||||
fi
|
|
||||||
|
|
||||||
OPENMP="-openmp"
|
|
||||||
|
|
||||||
SYSLIBS=" $OPENMP -lpthread -shared-intel "
|
|
||||||
|
|
||||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# SYSLIBS="-L${VT_ROOT}/lib -lVT -ldwarf -lelf -lm -lpthread \
|
|
||||||
# -L${MPI_ROOT}/lib64 -lmpi -lmpiif -lmpigi -lrt"
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -shared-intel "
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
SYSLIBSPAR=" "
|
|
||||||
|
|
||||||
MARC_DLL_CODES="runmarc.f"
|
|
||||||
|
|
||||||
|
|
||||||
BLAS_SRC="dzero.f icopy.f izero.f"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
BLAS_SRC="$BLAS_SRC dsctr.f zsctr.f dzasum.f daxpyi.f zaxpyi.f dgthr.f zgthr.f"
|
|
||||||
else
|
|
||||||
BLAS_SRC="ALL"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
|
||||||
omars.f fixbc.f triang.f bet049.f norst3.f eldata.f \
|
|
||||||
elec*.f elct*.f fmeig.f oada00.f ogeig.f updtrbe2.f cycrota.f \
|
|
||||||
cordef.f ogpk.f ogtan.f eldam.f formrbe3.f \
|
|
||||||
inertie.f em_sso072.f cn_fol3d_qpatch6.f cosim_begin.f"
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
|
||||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
|
||||||
fi
|
|
||||||
LOW_OPT_CODES_CASI=""
|
|
||||||
|
|
||||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
|
||||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
|
||||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
|
||||||
|
|
||||||
|
|
||||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
|
||||||
|
|
||||||
MAXNUM=1000000
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# This script opens a window running an editor.
|
|
||||||
# The command to invoke the editor is specified during DAMASK installation
|
|
||||||
|
|
||||||
%EDITOR% $*
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# This script opens a window running an editor. The default window is an
|
|
||||||
# xterm, and the default editor is vi. These may be customized.
|
|
||||||
|
|
||||||
dir=
|
|
||||||
for d in /usr/bin /usr/bin/X11; do
|
|
||||||
if test -x "$d/xterm"; then
|
|
||||||
dir="$d"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$dir"; then
|
|
||||||
echo "$0: Could not find xterm"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
"$dir/xterm" -T "vi $*" -n "vi $*" -e vi $*
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,186 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=/msc/marc2016
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_marc" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
|
@ -1,187 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=%INSTALLDIR%/marc%VERSION%
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile=${srcfile%.*}".marc"
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_damask_hmp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
|
@ -1,187 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=%INSTALLDIR%/marc%VERSION%
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile=${srcfile%.*}".marc"
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_damask_mp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
|
@ -1,187 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=%INSTALLDIR%/marc%VERSION%
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile=${srcfile%.*}".marc"
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_damask_lmp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,52 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
usernoext=$user
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
|
||||||
|
|
||||||
# add BLAS options for linking
|
|
||||||
BLAS="%BLAS%"
|
|
||||||
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$DFORTHIGHMP $user || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$usernoext.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$BLAS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
||||||
/bin/rm $DIRJOB/*.mod
|
|
|
@ -1,52 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
usernoext=$user
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
|
||||||
|
|
||||||
# add BLAS options for linking
|
|
||||||
BLAS="%BLAS%"
|
|
||||||
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$DFORTRANLOWMP $user || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$usernoext.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$BLAS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
||||||
/bin/rm $DIRJOB/*.mod
|
|
|
@ -1,52 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
usernoext=$user
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .F`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .for`
|
|
||||||
usernoext=`dirname $usernoext`/`$BASENAME $usernoext .f90`
|
|
||||||
|
|
||||||
# add BLAS options for linking
|
|
||||||
BLAS="%BLAS%"
|
|
||||||
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$DFORTRANMP $user || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$usernoext.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$BLAS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $usernoext.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
||||||
/bin/rm $DIRJOB/*.mod
|
|
|
@ -1,41 +0,0 @@
|
||||||
#!/bin/ksh
|
|
||||||
# 1st arg: $DIR
|
|
||||||
# 2nd arg: $DIRJOB
|
|
||||||
# 3rd arg: $user
|
|
||||||
# 4th arg: $program
|
|
||||||
DIR=$1
|
|
||||||
user=$3
|
|
||||||
program=$4
|
|
||||||
. $DIR/tools/include
|
|
||||||
DIRJOB=$2
|
|
||||||
cd $DIRJOB
|
|
||||||
echo "Compiling and linking user subroutine $user.f on host `hostname`"
|
|
||||||
echo "program: $program"
|
|
||||||
$FORTRAN $user.f || \
|
|
||||||
{
|
|
||||||
echo "$0: compile failed for $user.f"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $program 2>/dev/null
|
|
||||||
userobj=$user.o
|
|
||||||
|
|
||||||
|
|
||||||
$LOAD ${program} $DIR/lib/main.o\
|
|
||||||
$DIR/lib/blkdta.o $DIR/lib/comm?.o \
|
|
||||||
${userobj-} \
|
|
||||||
$DIR/lib/srclib.a \
|
|
||||||
$MNFLIBS \
|
|
||||||
$MDUSER \
|
|
||||||
../lib/mdsrc.a \
|
|
||||||
../lib/mcvfit.a \
|
|
||||||
$STUBS \
|
|
||||||
${SOLVERLIBS} \
|
|
||||||
$TKLIBS \
|
|
||||||
$MRCLIBS \
|
|
||||||
$METISLIBS \
|
|
||||||
$SYSLIBS || \
|
|
||||||
{
|
|
||||||
echo "$0: link failed for $user.o on host `hostname`"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
/bin/rm $userobj
|
|
|
@ -1,765 +0,0 @@
|
||||||
#
|
|
||||||
# General definitions for the Marc 2017 version
|
|
||||||
#
|
|
||||||
# EM64T
|
|
||||||
#
|
|
||||||
# Linux RedHat 6.7 / RedHat 7.1 / SuSE 11 SP3
|
|
||||||
#
|
|
||||||
# 64 bit MPI version
|
|
||||||
#
|
|
||||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
|
||||||
#
|
|
||||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
|
||||||
#
|
|
||||||
# To check the O/S level, type:
|
|
||||||
# uname -a
|
|
||||||
#
|
|
||||||
# Distributed parallel MPI libraries:
|
|
||||||
# 1) HP MPI 2.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpirun -version
|
|
||||||
# 2) Intel MPI 5.1.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpiexec.hydra -version
|
|
||||||
#
|
|
||||||
# To check the Compiler level, type using the compiler
|
|
||||||
# installation path:
|
|
||||||
# ifort -V
|
|
||||||
# icc -V
|
|
||||||
#
|
|
||||||
# REMARKS : This file contains the definitions of variables used during
|
|
||||||
# compilation loading and use of the MARC programmes . The
|
|
||||||
# current machine type is identified by means of the variable
|
|
||||||
# MACHINE , defined below.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# MPI_ROOT: root directory in which mpi shared libraries, etc. are located
|
|
||||||
# DIRJOB : directory in which spawned jobs should look for Marc input
|
|
||||||
# MPI_ARCH: system architecture
|
|
||||||
# MPI_EPATH: path where executable resides
|
|
||||||
#
|
|
||||||
REVISION="VERSION, BUILD"
|
|
||||||
HOSTNAME=`hostname`
|
|
||||||
|
|
||||||
# find available memory in Mbyte on the machine
|
|
||||||
# can be set explicitly
|
|
||||||
MEMLIMIT=`free -m | awk '/Mem:/ {print $2}'`
|
|
||||||
|
|
||||||
# set _OEM_NASTRAN to 1 for MD Nastran build
|
|
||||||
# override _OEM_NASTRAN setting with MARC_MD_NASTRAN environment variable
|
|
||||||
_OEM_NASTRAN="${MARC_MD_NASTRAN:-0}"
|
|
||||||
|
|
||||||
# uncomment the following line for an autoforge build
|
|
||||||
#AUTOFORGE=1
|
|
||||||
AUTOFORGE=0
|
|
||||||
export AUTOFORGE
|
|
||||||
|
|
||||||
# integer size
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "" ; then
|
|
||||||
INTEGER_PATH=
|
|
||||||
else
|
|
||||||
INTEGER_PATH=/$MARC_INTEGER_SIZE
|
|
||||||
fi
|
|
||||||
|
|
||||||
FCOMP=ifort
|
|
||||||
INTELPATH="/opt/intel/compilers_and_libraries_2016/linux"
|
|
||||||
|
|
||||||
# find the root directory of the compiler installation:
|
|
||||||
# - if ifort is found in $PATH, then the root directory is derived
|
|
||||||
# from the path to ifort
|
|
||||||
# - if ifort is not found in $PATH, the root directory is assumed
|
|
||||||
# to be $INTELPATH and the directory in which ifort is found is
|
|
||||||
# added to $PATH
|
|
||||||
FCOMPPATH=`which "$FCOMP" 2>/dev/null`
|
|
||||||
if test -n "$FCOMPPATH"; then
|
|
||||||
# derive the root directory from $FCOMPPATH
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/intel64/$FCOMP}"
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/$FCOMP}"
|
|
||||||
fi
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
elif test -d "$INTELPATH"; then
|
|
||||||
# check for compiler in $INTELPATH
|
|
||||||
if test -d "$INTELPATH/bin/intel64" -a \
|
|
||||||
-x "$INTELPATH/bin/intel64/$FCOMP" ; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin/intel64:$PATH"
|
|
||||||
elif test -d "$INTELPATH/bin" -a \
|
|
||||||
-x "$INTELPATH/bin/$FCOMP"; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin:$PATH"
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
|
|
||||||
# settings for MKL
|
|
||||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for Metis
|
|
||||||
#
|
|
||||||
METIS="-I$METIS_SOURCE/include"
|
|
||||||
METISLIBS="$MARC_LIB/metis.a "
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
# RCP and RSH are used for parallel network runs
|
|
||||||
# replace with similar commands like rsh if needed
|
|
||||||
RCP=/usr/bin/scp
|
|
||||||
RSH=/usr/bin/ssh
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
MPI_DEFAULT=intelmpi
|
|
||||||
MPI_OTHER=hpmpi
|
|
||||||
|
|
||||||
MPITYPE=$MPI_DEFAULT
|
|
||||||
|
|
||||||
if test $AUTOFORGE
|
|
||||||
then
|
|
||||||
if test $AUTOFORGE = 1
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# overrule MPITYPE setting with environmental variable MARC_MPITYPE
|
|
||||||
if test $MARC_MPITYPE
|
|
||||||
then
|
|
||||||
MPITYPE=$MARC_MPITYPE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# always set MPITYPE to none for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following lines to build with GPGPU version of BCS Solver for
|
|
||||||
# NVIDIA platforms
|
|
||||||
#BCSGPUSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=BCSGPU
|
|
||||||
|
|
||||||
# Edit following lines to set the openssl library
|
|
||||||
if test "$OPENSSL" != "NONE"
|
|
||||||
then
|
|
||||||
OPENSSL_LIB="$MARC_LIB/libcrypto.a"
|
|
||||||
fi
|
|
||||||
OPENSSL_INCLUDE=-I"$MARC_OPENSSL/include/"
|
|
||||||
|
|
||||||
|
|
||||||
SOLVERFLAGS=
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
|
||||||
BCS_DIR=bcsgpusolver
|
|
||||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
|
||||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
|
||||||
else
|
|
||||||
BCS_DIR=bcssolver
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
DDM=
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
FCOMPMPI=mpif90
|
|
||||||
export MPI_ROOT=$MARC_HPMPI
|
|
||||||
export MPI_REMSH=$RSH
|
|
||||||
export MPI_F77=$FCOMP
|
|
||||||
ARCHITECTURE=linux_amd64
|
|
||||||
DDM="-I$MPI_ROOT/include/64 -DDDM -DHPMPI"
|
|
||||||
MPI_CLEAN=
|
|
||||||
export MPI_EPATH=$MARC_BIN
|
|
||||||
export LD_LIBRARY_PATH=$MPI_ROOT/lib/$ARCHITECTURE:$MARC_LIB:$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
|
||||||
export MPIHPSPECIAL="-e MPI_FLAGS=E,T,y1"
|
|
||||||
# Below line is moved in run_marc file
|
|
||||||
# export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e BINDIR=$MARC_BIN"
|
|
||||||
if test -n "$MSC_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MSC_LICENSE_FILE=$MSC_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
if test -n "$LM_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e LM_LICENSE_FILE=$LM_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MPI_LIC_CHECKER=$MPI_ROOT/bin/licensing/amd64_s8/lichk.x"
|
|
||||||
RUN_JOB2="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -f "
|
|
||||||
RUN_JOB1="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -w $MPIHPSPECIAL -np "
|
|
||||||
RUN_JOB0=
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
INTELMPI_VERSION=HYDRA
|
|
||||||
FCOMPMPI=mpiifort
|
|
||||||
MPI_ROOT=$MARC_INTELMPI
|
|
||||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
|
||||||
PATH=$MPI_ROOT/bin64:$PATH
|
|
||||||
export PATH
|
|
||||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
|
||||||
export LD_LIBRARY_PATH
|
|
||||||
if test $INTELMPI_VERSION = HYDRA
|
|
||||||
then
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
|
||||||
else
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
|
||||||
fi
|
|
||||||
RUN_JOB0=
|
|
||||||
MPI_CLEAN=
|
|
||||||
MPI_EPATH=$MARC_BIN
|
|
||||||
MPIR_HOME=$MPI_ROOT
|
|
||||||
MPICH_F77=$FCOMP
|
|
||||||
MPICH_F77LINKER=$FCOMP
|
|
||||||
export MPI_ROOT MPI_EPATH MPIR_HOME MPICH_F77 MPICH_F77LINKER
|
|
||||||
I_MPI_PIN_DOMAIN=node
|
|
||||||
export I_MPI_PIN_DOMAIN
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
export MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
DDM="-I$MPI_ROOT/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# variables for the "maintain" script
|
|
||||||
#
|
|
||||||
|
|
||||||
MACHINENAME=LINUX
|
|
||||||
MACHINE64BIT=yes
|
|
||||||
MACHINE=Linux_EM64T
|
|
||||||
DEV=/dev/tape
|
|
||||||
GETLOG="whoami"
|
|
||||||
CLEAR="clear"
|
|
||||||
MY_UNAME=`uname -a`
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with VKI Solver
|
|
||||||
#VKISOLVER=VKI
|
|
||||||
VKISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with CASI Solver
|
|
||||||
CASISOLVER=CASI
|
|
||||||
if test "$MARC_CASISOLVER" = "NONE" ; then
|
|
||||||
CASISOLVER=NONE
|
|
||||||
fi
|
|
||||||
#CASISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with MF2 Solver
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
#MF2SOLVER=SERIAL
|
|
||||||
#MF2SOLVER=MF2PARALLEL
|
|
||||||
|
|
||||||
# Edit following lines to build with Intel(c) Multithreaded solver (PARDISO)
|
|
||||||
#INTELSOLVER=NONE
|
|
||||||
INTELSOLVER=PARDISO
|
|
||||||
|
|
||||||
# Edit following lines to build with MUMPS
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
else
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following 2 lines to build MARC dynamic shared library
|
|
||||||
MARC_DLL=MARC_DLL
|
|
||||||
MARC_DLL=NONE
|
|
||||||
|
|
||||||
# always set VKISOLVER, CASISOLVER, BCSGPUSOLVER, and MARC_DLL to NONE for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
VKISOLVER=NONE
|
|
||||||
CASISOLVER=NONE
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
INTELSOLVER=NONE
|
|
||||||
MUMPSSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=NONE
|
|
||||||
MARC_DLL=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# define Fortran and C compile syntax
|
|
||||||
#
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DVKI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DCASI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2PARALLEL"
|
|
||||||
fi
|
|
||||||
if test "$MF2SOLVER" = MF2SERIAL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2SERIAL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$INTELSOLVER" = PARDISO
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DPARDISO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMUMPS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMARC_DLL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINK_OPT=
|
|
||||||
DEBUG_OPT=
|
|
||||||
C_DEBUG_OPT=
|
|
||||||
|
|
||||||
#Uncomment following line to build Marc in debuggable mode
|
|
||||||
MARCDEBUG=
|
|
||||||
#MARCDEBUG="ON"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
LINK_OPT="-debug -traceback"
|
|
||||||
DEBUG_OPT="-debug -traceback"
|
|
||||||
C_DEBUG_OPT="-debug -traceback"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
MARCCHECK=
|
|
||||||
#MARCCHECK="ON"
|
|
||||||
if test "$MARCCHECK" = "ON"
|
|
||||||
then
|
|
||||||
DEBUG_OPT="$DEBUG_OPT -fpe0 -fp-stack-check -check all -ftrapuv "
|
|
||||||
C_DEBUG_OPT="$C_DEBUG_OPT -fp-stack-check -check-uninit -Wformat -ftrapuv "
|
|
||||||
fi
|
|
||||||
|
|
||||||
MARCCODECOV=
|
|
||||||
#MARCCODECOV="ON"
|
|
||||||
|
|
||||||
MARCCODEPROF=
|
|
||||||
#MARCCODEPROF="ON"
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
I8FFLAGS="-real-size 64 -integer-size 32"
|
|
||||||
I8DEFINES="-DFLOAT=8 -DINT=4"
|
|
||||||
I8CDEFINES=
|
|
||||||
I8CASIDEFS=
|
|
||||||
else
|
|
||||||
I8FFLAGS="-i8 -real-size 64 -integer-size 64"
|
|
||||||
I8DEFINES="-DI64 -DFLOAT=8 -DINT=8"
|
|
||||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
|
||||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MTHREAD=OPENMP
|
|
||||||
if test "$MARC_OPENMP" = "NONE" ; then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
#MTHREAD=NONE
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
OMP_COMPAT=YES
|
|
||||||
if test "$MTHREAD" = "NONE"
|
|
||||||
then
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
fi
|
|
||||||
|
|
||||||
CDEFINES=
|
|
||||||
FDEFINES=
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CDEFINES="$CDEFINES -D_OEM_NASTRAN"
|
|
||||||
FDEFINES="$FDEFINES -D_OEM_NASTRAN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FDEFINES="$FDEFINES -D_IMPLICITNONE"
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -eq 0
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DMKL -DOPENMP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DOMP_COMPAT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# -D_MSCMARC
|
|
||||||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
|
||||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
|
||||||
|
|
||||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CINCL="$CINCL -I../../include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
|
||||||
CCT="$CC"
|
|
||||||
CCTLOW="$CCLOW"
|
|
||||||
CCTHIGH="$CCHIGH"
|
|
||||||
|
|
||||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
|
||||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
|
||||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
#PROFILE="-Mprof=func"
|
|
||||||
#PROFILE="-Mprof=lines"
|
|
||||||
#PROFILE="-Mprof=func,mpi"
|
|
||||||
PROFILE=
|
|
||||||
if test "$MARCCODECOV" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE="-prof-gen=srcpos"
|
|
||||||
fi
|
|
||||||
if test "$MARCCODEPROF" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE=" $PROFILE -pg"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORT_OPT="-c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr -mp1 -WB -fp-model source"
|
|
||||||
if test "$MTHREAD" = "OPENMP"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -qopenmp"
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -qopenmp-threadprivate=compat"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# FORT_OPT=" $FORT_OPT -auto "
|
|
||||||
FORT_OPT=" $FORT_OPT -save -zero"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
# for compiling free form f90 files. high opt, integer(4)
|
|
||||||
FORTF90="$FCOMP -c -O3"
|
|
||||||
|
|
||||||
# determine DAMASK version
|
|
||||||
if test -n "$DAMASK_USER"; then
|
|
||||||
DAMASKROOT=`dirname $DAMASK_USER`/..
|
|
||||||
read DAMASKVERSION < $DAMASKROOT/VERSION
|
|
||||||
DAMASKVERSION="'"$DAMASKVERSION"'"
|
|
||||||
else
|
|
||||||
DAMASKVERSION="'N/A'"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
|
||||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias -O2 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
|
|
||||||
# DAMASK compiler calls: additional flags are in line 2 OpenMP flags in line 3
|
|
||||||
DFORTLOWMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
DFORTRANMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
DFORTHIGHMP="$FCOMP -c -implicitnone -stand f08 -standard-semantics -assume nostd_mod_proc_name -safe_cray_ptr $PROFILE -zero -mp1 -WB -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-fpp -ftz -diag-disable 5268 -warn declarations -warn general -warn usage -warn interfaces -warn ignore_loc -warn alignments -DMarc4DAMASK=2017 -DDAMASKVERSION=$DAMASKVERSION \
|
|
||||||
-qopenmp -qopenmp-threadprivate=compat\
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOWT="$FORTLOW"
|
|
||||||
FORTRANT="$FORTRAN"
|
|
||||||
FORTHIGHT="$FORTHIGH"
|
|
||||||
|
|
||||||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
|
||||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
|
||||||
|
|
||||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -DMPI_I8 -nofor_main"
|
|
||||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
|
||||||
CCMUMPS="$CCMUMPS -DINTSIZE64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
|
||||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
|
||||||
NVCCLIB="ar rvl"
|
|
||||||
NVCCLD=icc
|
|
||||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
BCSFORTRAN=$BCSFORTLOW
|
|
||||||
BCSFORTHIGH=$BCSFORTLOW
|
|
||||||
BCSFORT90HIGH=$BCSFORTLOW
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
LOAD="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
|
||||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
LOAD="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
LOAD="$FCOMP $LINK_OPT -o "
|
|
||||||
LOADT="$FCOMP $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
|
||||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
|
||||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
|
||||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
|
||||||
CC="$CC -fPIC"
|
|
||||||
CCMNF="$CCMNF -fPIC"
|
|
||||||
CC_CASI="$CC_CASI -fPIC"
|
|
||||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
|
||||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
|
||||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
|
||||||
LINK_MARC_DLL="-shared -fPIC"
|
|
||||||
LOAD_DLL=$LOAD
|
|
||||||
LOADT_DLL=$LOADT
|
|
||||||
EXT_DLL="so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
XLIBS="-L/usr/X11/lib -lX11 "
|
|
||||||
|
|
||||||
#
|
|
||||||
# define archive and ranlib syntax
|
|
||||||
#
|
|
||||||
|
|
||||||
ARC="ar rvl"
|
|
||||||
ARD="ar dvl"
|
|
||||||
ARX="ar xl"
|
|
||||||
RAN=""
|
|
||||||
|
|
||||||
#
|
|
||||||
# choose which libraries you want to use ( e.g. blas )
|
|
||||||
#
|
|
||||||
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
VKISOLVERLIBS="$MARC_LIB/vkisolver.a"
|
|
||||||
else
|
|
||||||
VKISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
|
||||||
else
|
|
||||||
CASISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
MF2SOLVERLIBS=
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
MF2SOLVERLIBS="$MARC_LIB/mf2parallel/libseq.a \
|
|
||||||
$MARC_LIB/mf2parallel/libsym.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmet.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libnum.a \
|
|
||||||
$MARC_LIB/mf2parallel/libutl.a \
|
|
||||||
$MARC_LIB/mf2parallel/libr8.a \
|
|
||||||
$MARC_LIB/mf2parallel/libz.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
|
||||||
if test $MPITYPE = none
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
echo hello > /dev/null
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a "
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a "
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS=
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
|
||||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
|
||||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
|
||||||
MARCCUDALIBS=$MARCCUDALIBS1
|
|
||||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
|
||||||
else
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_lp64.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
|
||||||
else
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_core.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SECLIBS="-L$MARC_LIB -llapi"
|
|
||||||
|
|
||||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} \
|
|
||||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
|
||||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a $KDTREE2_LIB/kdtree2.a "
|
|
||||||
|
|
||||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
|
||||||
|
|
||||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
|
||||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
|
||||||
STUBS="$MARC_LIB/stubs.a "
|
|
||||||
MNFLIBS="$MARC_LIB/libmnf.a"
|
|
||||||
MDUSER="$MARC_LIB/md_user.a"
|
|
||||||
if test "X$MARC_SIMUFACT" != "X"
|
|
||||||
then
|
|
||||||
SFLIB="-L$SFMATDIR -lMBA_Grain $SFMATDIR/sfclib.a "
|
|
||||||
else
|
|
||||||
SFLIB=" "
|
|
||||||
fi
|
|
||||||
|
|
||||||
OPENMP="-qopenmp"
|
|
||||||
|
|
||||||
SYSLIBS=" $OPENMP -lpthread -cxxlib"
|
|
||||||
|
|
||||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# SYSLIBS="-L${VT_ROOT}/lib -lVT -ldwarf -lelf -lm -lpthread \
|
|
||||||
# -L${MPI_ROOT}/lib64 -lmpi -lmpiif -lmpigi -lrt"
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -cxxlib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
SYSLIBSPAR=" "
|
|
||||||
|
|
||||||
MARC_DLL_CODES="runmarc.f"
|
|
||||||
|
|
||||||
|
|
||||||
BLAS_SRC="dzero.f icopy.f izero.f"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
BLAS_SRC="$BLAS_SRC dsctr.f zsctr.f dzasum.f daxpyi.f zaxpyi.f dgthr.f zgthr.f"
|
|
||||||
else
|
|
||||||
BLAS_SRC="ALL"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
|
||||||
omars.f fixbc.f triang.f bet049.f norst3.f eldata.f \
|
|
||||||
elec*.f elct*.f fmeig.f oada00.f ogeig.f updtrbe2.f cycrota.f \
|
|
||||||
cordef.f ogpk.f ogtan.f eldam.f formrbe3.f \
|
|
||||||
inertie.f em_sso072.f cn_fol3d_qpatch6.f cosim_begin.f"
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
|
||||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
|
||||||
fi
|
|
||||||
LOW_OPT_CODES_CASI=""
|
|
||||||
|
|
||||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
|
||||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
|
||||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
|
||||||
|
|
||||||
|
|
||||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
|
||||||
|
|
||||||
MAXNUM=1000000
|
|
|
@ -1,726 +0,0 @@
|
||||||
#
|
|
||||||
# General definitions for the Marc 2017 version
|
|
||||||
#
|
|
||||||
# EM64T
|
|
||||||
#
|
|
||||||
# Linux RedHat 6.7 / RedHat 7.1 / SuSE 11 SP3
|
|
||||||
#
|
|
||||||
# 64 bit MPI version
|
|
||||||
#
|
|
||||||
# Intel(R) Fortran Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
|
||||||
#
|
|
||||||
# Intel(R) C Intel(R) 64 Compiler XE for applications
|
|
||||||
# running on Intel(R) 64, Version 16.0.2.181 Build 20160204
|
|
||||||
#
|
|
||||||
# To check the O/S level, type:
|
|
||||||
# uname -a
|
|
||||||
#
|
|
||||||
# Distributed parallel MPI libraries:
|
|
||||||
# 1) HP MPI 2.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpirun -version
|
|
||||||
# 2) Intel MPI 5.1.3
|
|
||||||
# To check the mpi version, type:
|
|
||||||
# mpiexec.hydra -version
|
|
||||||
#
|
|
||||||
# To check the Compiler level, type using the compiler
|
|
||||||
# installation path:
|
|
||||||
# ifort -V
|
|
||||||
# icc -V
|
|
||||||
#
|
|
||||||
# REMARKS : This file contains the definitions of variables used during
|
|
||||||
# compilation loading and use of the MARC programmes . The
|
|
||||||
# current machine type is identified by means of the variable
|
|
||||||
# MACHINE , defined below.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# MPI_ROOT: root directory in which mpi shared libraries, etc. are located
|
|
||||||
# DIRJOB : directory in which spawned jobs should look for Marc input
|
|
||||||
# MPI_ARCH: system architecture
|
|
||||||
# MPI_EPATH: path where executable resides
|
|
||||||
#
|
|
||||||
REVISION="VERSION, BUILD"
|
|
||||||
HOSTNAME=`hostname`
|
|
||||||
|
|
||||||
# find available memory in Mbyte on the machine
|
|
||||||
# can be set explicitly
|
|
||||||
MEMLIMIT=`free -m | awk '/Mem:/ {print $2}'`
|
|
||||||
|
|
||||||
# set _OEM_NASTRAN to 1 for MD Nastran build
|
|
||||||
# override _OEM_NASTRAN setting with MARC_MD_NASTRAN environment variable
|
|
||||||
_OEM_NASTRAN="${MARC_MD_NASTRAN:-0}"
|
|
||||||
|
|
||||||
# uncomment the following line for an autoforge build
|
|
||||||
#AUTOFORGE=1
|
|
||||||
AUTOFORGE=0
|
|
||||||
export AUTOFORGE
|
|
||||||
|
|
||||||
# integer size
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "" ; then
|
|
||||||
INTEGER_PATH=
|
|
||||||
else
|
|
||||||
INTEGER_PATH=/$MARC_INTEGER_SIZE
|
|
||||||
fi
|
|
||||||
|
|
||||||
FCOMP=ifort
|
|
||||||
INTELPATH="/opt/intel/compilers_and_libraries_2016/linux"
|
|
||||||
|
|
||||||
# find the root directory of the compiler installation:
|
|
||||||
# - if ifort is found in $PATH, then the root directory is derived
|
|
||||||
# from the path to ifort
|
|
||||||
# - if ifort is not found in $PATH, the root directory is assumed
|
|
||||||
# to be $INTELPATH and the directory in which ifort is found is
|
|
||||||
# added to $PATH
|
|
||||||
FCOMPPATH=`which "$FCOMP" 2>/dev/null`
|
|
||||||
if test -n "$FCOMPPATH"; then
|
|
||||||
# derive the root directory from $FCOMPPATH
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/intel64/$FCOMP}"
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT="${FCOMPPATH%/bin/$FCOMP}"
|
|
||||||
fi
|
|
||||||
if test "$FCOMPROOT" = "$FCOMPPATH"; then
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
elif test -d "$INTELPATH"; then
|
|
||||||
# check for compiler in $INTELPATH
|
|
||||||
if test -d "$INTELPATH/bin/intel64" -a \
|
|
||||||
-x "$INTELPATH/bin/intel64/$FCOMP" ; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin/intel64:$PATH"
|
|
||||||
elif test -d "$INTELPATH/bin" -a \
|
|
||||||
-x "$INTELPATH/bin/$FCOMP"; then
|
|
||||||
FCOMPROOT="$INTELPATH"
|
|
||||||
PATH="$INTELPATH/bin:$PATH"
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
FCOMPROOT=
|
|
||||||
fi
|
|
||||||
|
|
||||||
# settings for MKL
|
|
||||||
MARC_MKL="$FCOMPROOT/mkl/lib/intel64"
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for Metis
|
|
||||||
#
|
|
||||||
METIS="-I$METIS_SOURCE/include"
|
|
||||||
METISLIBS="$MARC_LIB/metis.a "
|
|
||||||
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
# RCP and RSH are used for parallel network runs
|
|
||||||
# replace with similar commands like rsh if needed
|
|
||||||
RCP=/usr/bin/scp
|
|
||||||
RSH=/usr/bin/ssh
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
MPI_DEFAULT=intelmpi
|
|
||||||
MPI_OTHER=hpmpi
|
|
||||||
|
|
||||||
MPITYPE=$MPI_DEFAULT
|
|
||||||
|
|
||||||
if test $AUTOFORGE
|
|
||||||
then
|
|
||||||
if test $AUTOFORGE = 1
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# overrule MPITYPE setting with environmental variable MARC_MPITYPE
|
|
||||||
if test $MARC_MPITYPE
|
|
||||||
then
|
|
||||||
MPITYPE=$MARC_MPITYPE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# always set MPITYPE to none for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MPITYPE=none
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following lines to build with GPGPU version of BCS Solver for
|
|
||||||
# NVIDIA platforms
|
|
||||||
#BCSGPUSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=BCSGPU
|
|
||||||
|
|
||||||
# Edit following lines to set the openssl library
|
|
||||||
if test "$OPENSSL" != "NONE"
|
|
||||||
then
|
|
||||||
OPENSSL_LIB="$MARC_LIB/libcrypto.a"
|
|
||||||
fi
|
|
||||||
OPENSSL_INCLUDE=-I"$MARC_OPENSSL/include/"
|
|
||||||
|
|
||||||
|
|
||||||
SOLVERFLAGS=
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DBCSGPU -DCUDA"
|
|
||||||
BCS_DIR=bcsgpusolver
|
|
||||||
export PATH=$MARC_CUDA/bin:$MARC_CUDA/nvvm:$PATH
|
|
||||||
export LD_LIBRARY_PATH=$MARC_CUDA/lib64:$LD_LIBRARY_PATH
|
|
||||||
else
|
|
||||||
BCS_DIR=bcssolver
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
# settings for MPI
|
|
||||||
#
|
|
||||||
DDM=
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
FCOMPMPI=mpif90
|
|
||||||
export MPI_ROOT=$MARC_HPMPI
|
|
||||||
export MPI_REMSH=$RSH
|
|
||||||
export MPI_F77=$FCOMP
|
|
||||||
ARCHITECTURE=linux_amd64
|
|
||||||
DDM="-I$MPI_ROOT/include/64 -DDDM -DHPMPI"
|
|
||||||
MPI_CLEAN=
|
|
||||||
export MPI_EPATH=$MARC_BIN
|
|
||||||
export LD_LIBRARY_PATH=$MPI_ROOT/lib/$ARCHITECTURE:$MARC_LIB:$MARC_LIB_SHARED:$LD_LIBRARY_PATH
|
|
||||||
export MPIHPSPECIAL="-e MPI_FLAGS=E,T,y1"
|
|
||||||
# Below line is moved in run_marc file
|
|
||||||
# export MPIHPSPECIAL="$MPIHPSPECIAL -e LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e BINDIR=$MARC_BIN"
|
|
||||||
if test -n "$MSC_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MSC_LICENSE_FILE=$MSC_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
if test -n "$LM_LICENSE_FILE"
|
|
||||||
then
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e LM_LICENSE_FILE=$LM_LICENSE_FILE"
|
|
||||||
fi
|
|
||||||
export MPIHPSPECIAL="$MPIHPSPECIAL -e MPI_LIC_CHECKER=$MPI_ROOT/bin/licensing/amd64_s8/lichk.x"
|
|
||||||
RUN_JOB2="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -f "
|
|
||||||
RUN_JOB1="$MPI_ROOT/bin/mpirun ${MPIRUNOPTIONS} -prot -w $MPIHPSPECIAL -np "
|
|
||||||
RUN_JOB0=
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
INTELMPI_VERSION=HYDRA
|
|
||||||
FCOMPMPI=mpiifort
|
|
||||||
MPI_ROOT=$MARC_INTELMPI
|
|
||||||
DDM="-I${MPI_ROOT}/include64 -DDDM"
|
|
||||||
PATH=$MPI_ROOT/bin64:$PATH
|
|
||||||
export PATH
|
|
||||||
LD_LIBRARY_PATH=$MPI_ROOT/lib64:$LD_LIBRARY_PATH
|
|
||||||
export LD_LIBRARY_PATH
|
|
||||||
if test $INTELMPI_VERSION = HYDRA
|
|
||||||
then
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec.hydra -genvall -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec.hydra -genvall"
|
|
||||||
else
|
|
||||||
RUN_JOB1="${MPI_ROOT}/bin64/mpiexec -n "
|
|
||||||
RUN_JOB2="${MPI_ROOT}/bin64/mpiexec -configfile "
|
|
||||||
fi
|
|
||||||
RUN_JOB0=
|
|
||||||
MPI_CLEAN=
|
|
||||||
MPI_EPATH=$MARC_BIN
|
|
||||||
MPIR_HOME=$MPI_ROOT
|
|
||||||
MPICH_F77=$FCOMP
|
|
||||||
MPICH_F77LINKER=$FCOMP
|
|
||||||
export MPI_ROOT MPI_EPATH MPIR_HOME MPICH_F77 MPICH_F77LINKER
|
|
||||||
I_MPI_PIN_DOMAIN=node
|
|
||||||
export I_MPI_PIN_DOMAIN
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
export MPI_ROOT=$MARC_DUMMYMPI
|
|
||||||
DDM="-I$MPI_ROOT/include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# variables for the "maintain" script
|
|
||||||
#
|
|
||||||
|
|
||||||
MACHINENAME=LINUX
|
|
||||||
MACHINE64BIT=yes
|
|
||||||
MACHINE=Linux_EM64T
|
|
||||||
DEV=/dev/tape
|
|
||||||
GETLOG="whoami"
|
|
||||||
CLEAR="clear"
|
|
||||||
MY_UNAME=`uname -a`
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with VKI Solver
|
|
||||||
#VKISOLVER=VKI
|
|
||||||
VKISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with CASI Solver
|
|
||||||
CASISOLVER=CASI
|
|
||||||
if test "$MARC_CASISOLVER" = "NONE" ; then
|
|
||||||
CASISOLVER=NONE
|
|
||||||
fi
|
|
||||||
#CASISOLVER=NONE
|
|
||||||
|
|
||||||
# Edit following 2 lines to build with MF2 Solver
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
#MF2SOLVER=SERIAL
|
|
||||||
#MF2SOLVER=MF2PARALLEL
|
|
||||||
|
|
||||||
# Edit following lines to build with Intel(c) Multithreaded solver (PARDISO)
|
|
||||||
#INTELSOLVER=NONE
|
|
||||||
INTELSOLVER=PARDISO
|
|
||||||
|
|
||||||
# Edit following lines to build with MUMPS
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
else
|
|
||||||
#MUMPSSOLVER=NONE
|
|
||||||
MUMPSSOLVER=MUMPS
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Edit following 2 lines to build MARC dynamic shared library
|
|
||||||
MARC_DLL=MARC_DLL
|
|
||||||
MARC_DLL=NONE
|
|
||||||
|
|
||||||
# always set VKISOLVER, CASISOLVER, BCSGPUSOLVER, and MARC_DLL to NONE for MD Nastran
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
VKISOLVER=NONE
|
|
||||||
CASISOLVER=NONE
|
|
||||||
MF2SOLVER=NONE
|
|
||||||
INTELSOLVER=NONE
|
|
||||||
MUMPSSOLVER=NONE
|
|
||||||
BCSGPUSOLVER=NONE
|
|
||||||
MARC_DLL=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# define Fortran and C compile syntax
|
|
||||||
#
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DVKI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DCASI"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2PARALLEL"
|
|
||||||
fi
|
|
||||||
if test "$MF2SOLVER" = MF2SERIAL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMF2SERIAL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$INTELSOLVER" = PARDISO
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DPARDISO"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMUMPS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
SOLVERFLAGS="$SOLVERFLAGS -DMARC_DLL"
|
|
||||||
fi
|
|
||||||
|
|
||||||
LINK_OPT=
|
|
||||||
DEBUG_OPT=
|
|
||||||
C_DEBUG_OPT=
|
|
||||||
|
|
||||||
#Uncomment following line to build Marc in debuggable mode
|
|
||||||
MARCDEBUG=
|
|
||||||
#MARCDEBUG="ON"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
LINK_OPT="-debug -traceback"
|
|
||||||
DEBUG_OPT="-debug -traceback"
|
|
||||||
C_DEBUG_OPT="-debug -traceback"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
MARCCHECK=
|
|
||||||
#MARCCHECK="ON"
|
|
||||||
if test "$MARCCHECK" = "ON"
|
|
||||||
then
|
|
||||||
DEBUG_OPT="$DEBUG_OPT -fpe0 -fp-stack-check -check all -ftrapuv "
|
|
||||||
C_DEBUG_OPT="$C_DEBUG_OPT -fp-stack-check -check-uninit -Wformat -ftrapuv "
|
|
||||||
fi
|
|
||||||
|
|
||||||
MARCCODECOV=
|
|
||||||
#MARCCODECOV="ON"
|
|
||||||
|
|
||||||
MARCCODEPROF=
|
|
||||||
#MARCCODEPROF="ON"
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
I8FFLAGS=
|
|
||||||
I8DEFINES=
|
|
||||||
I8CDEFINES=
|
|
||||||
I8CASIDEFS=
|
|
||||||
else
|
|
||||||
I8FFLAGS="-i8"
|
|
||||||
I8DEFINES="-DI64"
|
|
||||||
I8CDEFINES="-U_DOUBLE -D_SINGLE"
|
|
||||||
I8CASIDEFS="-DCASI_64BIT_INT=1"
|
|
||||||
fi
|
|
||||||
|
|
||||||
MTHREAD=OPENMP
|
|
||||||
if test "$MARC_OPENMP" = "NONE" ; then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
#MTHREAD=NONE
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
MTHREAD=NONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
OMP_COMPAT=YES
|
|
||||||
if test "$MTHREAD" = "NONE"
|
|
||||||
then
|
|
||||||
OMP_COMPAT=NO
|
|
||||||
fi
|
|
||||||
|
|
||||||
CDEFINES=
|
|
||||||
FDEFINES=
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CDEFINES="$CDEFINES -D_OEM_NASTRAN"
|
|
||||||
FDEFINES="$FDEFINES -D_OEM_NASTRAN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FDEFINES="$FDEFINES -D_IMPLICITNONE"
|
|
||||||
|
|
||||||
if test "$_OEM_NASTRAN" -eq 0
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DMKL -DOPENMP"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FDEFINES="$FDEFINES -DOMP_COMPAT"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# -D_MSCMARC
|
|
||||||
FDEFINES="$FDEFINES -D_MSCMARC $DEBUG_OPT $MARC_SIMUFACT"
|
|
||||||
CDEFINES="$CDEFINES -D_MSCMARC $C_DEBUG_OPT $I8CDEFINES"
|
|
||||||
|
|
||||||
CINCL="-I$MARC_SOURCE/mdsrc -I$MARC_SOURCE/csource $METIS"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
CINCL="$CINCL -I../../include"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CC="icc -c -O1 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCLOW="icc -c -O0 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCHIGH="icc -c -O3 $I8DEFINES -DLinux -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
CC="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCLOW="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
CCHIGH="icc -c -DLinux $I8DEFINES -DLINUX -DLinux_intel $CDEFINES $CINCL $SOLVERFLAGS $OPENSSL_INCLUDE "
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOAD_CC="icc -O1 -DLinux -DLINUX -DLinux_intel"
|
|
||||||
CCT="$CC"
|
|
||||||
CCTLOW="$CCLOW"
|
|
||||||
CCTHIGH="$CCHIGH"
|
|
||||||
|
|
||||||
CC_CASI="$CC -std=c99 $I8CASIDEFS"
|
|
||||||
CCLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
CCT_CASI="$CCT -std=c99 $I8CASIDEFS"
|
|
||||||
CCTLOW_CASI="$CCLOW -std=c99 $I8CASIDEFS"
|
|
||||||
CCTHIGH_CASI="$CCHIGH -std=c99 $I8CASIDEFS"
|
|
||||||
|
|
||||||
#PROFILE="-Mprof=func"
|
|
||||||
#PROFILE="-Mprof=lines"
|
|
||||||
#PROFILE="-Mprof=func,mpi"
|
|
||||||
PROFILE=
|
|
||||||
if test "$MARCCODECOV" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE="-prof-gen=srcpos"
|
|
||||||
fi
|
|
||||||
if test "$MARCCODEPROF" = "ON"
|
|
||||||
then
|
|
||||||
PROFILE=" $PROFILE -pg"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORT_OPT="-c -assume byterecl -safe_cray_ptr -mp1 -WB -fp-model source"
|
|
||||||
if test "$MTHREAD" = "OPENMP"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -qopenmp"
|
|
||||||
if test "$OMP_COMPAT" = "YES"
|
|
||||||
then
|
|
||||||
FORT_OPT=" $FORT_OPT -qopenmp-threadprivate=compat"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# FORT_OPT=" $FORT_OPT -auto "
|
|
||||||
FORT_OPT=" $FORT_OPT -save -zero"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE -O0 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE -O1 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias -O3 $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
# for compiling free form f90 files. high opt, integer(4)
|
|
||||||
FORTF90="$FCOMP -c -O3"
|
|
||||||
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
FORTLOW="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTRAN="$FCOMP $FORT_OPT $PROFILE $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTHIGH="$FCOMP $FORT_OPT $PROFILE -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM $SOLVERFLAGS -I$KDTREE2_MOD"
|
|
||||||
FORTNA="$FCOMP $FORT_OPT -fno-alias $I8FFLAGS -I$MARC_SOURCE/common \
|
|
||||||
-I$MARC_SOURCE/${BCS_DIR}/common -I$MARC_SOURCE/mumpssolver/include $I8DEFINES -DLinux -DLINUX -DLinux_intel $FDEFINES $DDM"
|
|
||||||
fi
|
|
||||||
|
|
||||||
FORTLOWT="$FORTLOW"
|
|
||||||
FORTRANT="$FORTRAN"
|
|
||||||
FORTHIGHT="$FORTHIGH"
|
|
||||||
|
|
||||||
FORTRANMNF="$FCOMP -c $FDEFINES "
|
|
||||||
CCMNF="icc -c -O1 -DLinux -DLINUX -DLinux_intel -Dport2egcs -I$MARC_SOURCE/marctoadams/mnf/include -D_LARGEFILE64_SOURCE"
|
|
||||||
|
|
||||||
FORTRANMUMPS="$FCOMP -fpp $FORT_OPT $PROFILE -fno-alias -O1 -fp-model precise $FDEFINES -D_IMPLICITNONE $I8FFLAGS $I8DEFINES $DDM -I$MARC_SOURCE/mumpssolver/include -Dintel_ -DALLOW_NON_INIT -Dmetis -DMPI_I8 -nofor_main"
|
|
||||||
CCMUMPS="icc -c -DAdd_ -Dmetis -I$MARC_SOURCE/mumpssolver/include"
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
|
||||||
CCMUMPS="$CCMUMPS -DINTSIZE64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
BCSCC="icc -c -O3 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_csrc $CDEFINES $CINCL"
|
|
||||||
NVCC="nvcc -c -O3 -arch sm_20 -DLOWERCASE_ -I${MARC_SOURCE}/${BCS_DIR}/bcslib_cuda/include -I${MARC_CUDA}/include -I$MARC_SOURCE/mdsrc $I8DEFINES -Xcompiler -fvisibility=hidden -Xcompiler -fPIC $I8DEFINES "
|
|
||||||
NVCCLIB="ar rvl"
|
|
||||||
NVCCLD=icc
|
|
||||||
BCSFORTLOW="$FORTLOW -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTRAN="$FORTRAN -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORTHIGH="$FORTHIGH -I${MARC_SOURCE}/${BCS_DIR}/common"
|
|
||||||
BCSFORT90HIGH="$BCSFORTHIGH"
|
|
||||||
if test "$MARCDEBUG" = "ON"
|
|
||||||
then
|
|
||||||
BCSFORTRAN=$BCSFORTLOW
|
|
||||||
BCSFORTHIGH=$BCSFORTLOW
|
|
||||||
BCSFORT90HIGH=$BCSFORTLOW
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test $MPITYPE != none
|
|
||||||
then
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
LOAD="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="$MPI_ROOT/bin/$FCOMPMPI ${LOADOPTIONS} -L$MPI_ROOT/lib/$ARCHITECTURE $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
# Uncomment the following lines to turn on the tracer and commnet out the next 5 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# INCLUDEMPI="-I$MPI_ROOT/include64 -I$VT_ROOT/include"
|
|
||||||
# LOAD="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# LOADT="$MPI_ROOT/bin64/$FCOMPMPI $PROFILE $INCLUDEMPI -g -t=log $LINK_OPT -o "
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
LOAD="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
LOADT="ifort $PROFILE $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
LOAD="$FCOMP $LINK_OPT -o "
|
|
||||||
LOADT="$FCOMP $LINK_OPT -o "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_DLL" = MARC_DLL
|
|
||||||
then
|
|
||||||
FORTLOW="$FORTLOW -fpp -fPIC"
|
|
||||||
FORTRAN="$FORTRAN -fpp -fPIC"
|
|
||||||
FORTHIGH="$FORTHIGH -fpp -fPIC"
|
|
||||||
FORTRANMNF="$FORTRANMNF -fpp -fPIC"
|
|
||||||
CC="$CC -fPIC"
|
|
||||||
CCMNF="$CCMNF -fPIC"
|
|
||||||
CC_CASI="$CC_CASI -fPIC"
|
|
||||||
CCLOW_CASI="$CCLOW_CASI -fPIC"
|
|
||||||
CCHIGH_CASI="$CCHIGH_CASI -fPIC"
|
|
||||||
LINK_EXE_MARC="-L$MARC_LIB -lmarc -L$MARC_LIB_SHARED -lguide -lpthread"
|
|
||||||
LINK_MARC_DLL="-shared -fPIC"
|
|
||||||
LOAD_DLL=$LOAD
|
|
||||||
LOADT_DLL=$LOADT
|
|
||||||
EXT_DLL="so"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
XLIBS="-L/usr/X11/lib -lX11 "
|
|
||||||
|
|
||||||
#
|
|
||||||
# define archive and ranlib syntax
|
|
||||||
#
|
|
||||||
|
|
||||||
ARC="ar rvl"
|
|
||||||
ARD="ar dvl"
|
|
||||||
ARX="ar xl"
|
|
||||||
RAN=""
|
|
||||||
|
|
||||||
#
|
|
||||||
# choose which libraries you want to use ( e.g. blas )
|
|
||||||
#
|
|
||||||
|
|
||||||
if test "$VKISOLVER" = VKI
|
|
||||||
then
|
|
||||||
VKISOLVERLIBS="$MARC_LIB/vkisolver.a"
|
|
||||||
else
|
|
||||||
VKISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$CASISOLVER" = CASI
|
|
||||||
then
|
|
||||||
CASISOLVERLIBS="$MARC_CASI/casilib.a"
|
|
||||||
else
|
|
||||||
CASISOLVERLIBS=
|
|
||||||
fi
|
|
||||||
|
|
||||||
MF2SOLVERLIBS=
|
|
||||||
if test "$MF2SOLVER" = MF2PARALLEL
|
|
||||||
then
|
|
||||||
MF2SOLVERLIBS="$MARC_LIB/mf2parallel/libseq.a \
|
|
||||||
$MARC_LIB/mf2parallel/libsym.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmet.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libmf2.a \
|
|
||||||
$MARC_LIB/mf2parallel/libgauss.a \
|
|
||||||
$MARC_LIB/mf2parallel/libnum.a \
|
|
||||||
$MARC_LIB/mf2parallel/libutl.a \
|
|
||||||
$MARC_LIB/mf2parallel/libr8.a \
|
|
||||||
$MARC_LIB/mf2parallel/libz.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MUMPSSOLVER" = MUMPS
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS="$MARC_LIB/libmumps.a"
|
|
||||||
if test $MPITYPE = none
|
|
||||||
then
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
echo hello > /dev/null
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_lp64.a "
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_intelmpi_ilp64.a "
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if test $MPITYPE = hpmpi
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_lp64.a"
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS2=" $MARC_MKL/libmkl_blacs_ilp64.a"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
MUMPSSOLVERLIBS=
|
|
||||||
MUMPSSOLVERLIBS2=
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$BCSGPUSOLVER" = BCSGPU
|
|
||||||
then
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcsgpulib.a "
|
|
||||||
MARCCUDALIBS1="-L${MARC_LIB}/cuda_dummy -lmarccuda "
|
|
||||||
MARCCUDALIBS2="-L${MARC_LIB}/cuda -lmarccuda "
|
|
||||||
MARCCUDALIBS=$MARCCUDALIBS1
|
|
||||||
CUDALIBS="-L$MARC_CUDA/lib64 -lcudart -lcublas -L/usr/lib64 -lcuda "
|
|
||||||
else
|
|
||||||
BCSSOLVERLIBS="${MARC_LIB}/bcslib.a "
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_lp64.a $MARC_MKL/libmkl_blacs_lp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_lp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
|
||||||
else
|
|
||||||
MKLLIB="$MARC_MKL/libmkl_scalapack_ilp64.a $MARC_MKL/libmkl_blacs_ilp64.a -Wl,--start-group $MARC_MKL/libmkl_intel_ilp64.a $MARC_MKL/libmkl_intel_thread.a $MARC_MKL/libmkl_core.a $MUMPSSOLVERLIBS2 -Wl,--end-group"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SECLIBS="-L$MARC_LIB -llapi"
|
|
||||||
|
|
||||||
SOLVERLIBS="${BCSSOLVERLIBS} ${VKISOLVERLIBS} ${CASISOLVERLIBS} ${MF2SOLVERLIBS} \
|
|
||||||
$MKLLIB -L$MARC_MKL -liomp5 \
|
|
||||||
$MARC_LIB/blas_src.a ${ACSI_LIB}/ACSI_MarcLib.a $KDTREE2_LIB/kdtree2.a "
|
|
||||||
|
|
||||||
SOLVERLIBS_DLL=${SOLVERLIBS}
|
|
||||||
|
|
||||||
MRCLIBS="$MARC_LIB/clib.a ${CASISOLVERLIBS}"
|
|
||||||
MRCLIBSPAR="$MARC_LIB/clib.a"
|
|
||||||
STUBS="$MARC_LIB/stubs.a "
|
|
||||||
MNFLIBS="$MARC_LIB/libmnf.a"
|
|
||||||
MDUSER="$MARC_LIB/md_user.a"
|
|
||||||
if test "X$MARC_SIMUFACT" != "X"
|
|
||||||
then
|
|
||||||
SFLIB="-L$SFMATDIR -lMBA_Grain $SFMATDIR/sfclib.a "
|
|
||||||
else
|
|
||||||
SFLIB=" "
|
|
||||||
fi
|
|
||||||
|
|
||||||
OPENMP="-qopenmp"
|
|
||||||
|
|
||||||
SYSLIBS=" $OPENMP -lpthread -shared-intel -cxxlib"
|
|
||||||
|
|
||||||
# Uncomment the following lines to turn on the trace and comment out the next 4 lines
|
|
||||||
# if test $MPITYPE = intelmpi
|
|
||||||
# then
|
|
||||||
# SYSLIBS="-L${VT_ROOT}/lib -lVT -ldwarf -lelf -lm -lpthread \
|
|
||||||
# -L${MPI_ROOT}/lib64 -lmpi -lmpiif -lmpigi -lrt"
|
|
||||||
# fi
|
|
||||||
if test $MPITYPE = intelmpi
|
|
||||||
then
|
|
||||||
SYSLIBS="-L${MPI_ROOT}/lib64 -lmpi_mt -lmpifort -lrt $OPENMP -threads -lpthread -shared-intel -cxxlib"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
SYSLIBSPAR=" "
|
|
||||||
|
|
||||||
MARC_DLL_CODES="runmarc.f"
|
|
||||||
|
|
||||||
|
|
||||||
BLAS_SRC="dzero.f icopy.f izero.f"
|
|
||||||
if test "$_OEM_NASTRAN" -ne 0
|
|
||||||
then
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i4" ; then
|
|
||||||
BLAS_SRC="$BLAS_SRC dsctr.f zsctr.f dzasum.f daxpyi.f zaxpyi.f dgthr.f zgthr.f"
|
|
||||||
else
|
|
||||||
BLAS_SRC="ALL"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
LOW_OPT_CODES="are163.f contro.f ndext.f omarc.f omarca.f omarcb.f omarcc.f \
|
|
||||||
omars.f fixbc.f triang.f bet049.f norst3.f eldata.f \
|
|
||||||
elec*.f elct*.f fmeig.f oada00.f ogeig.f updtrbe2.f cycrota.f \
|
|
||||||
cordef.f ogpk.f ogtan.f eldam.f formrbe3.f \
|
|
||||||
inertie.f em_sso072.f cn_fol3d_qpatch6.f cosim_begin.f"
|
|
||||||
if test "$MARC_INTEGER_SIZE" = "i8" ; then
|
|
||||||
LOW_OPT_CODES="$LOW_OPT_CODES bbcseg.f"
|
|
||||||
fi
|
|
||||||
LOW_OPT_CODES_CASI=""
|
|
||||||
|
|
||||||
HIGH_OPT_CODES="dpsmsa1.f dpsmsa2.f dpsmsa3.f dpsmsa4.f dpsmsa5.f dpsmsa6.f \
|
|
||||||
dpsmsa7.f dpsmsa8.f dpsmsa9.f dpsmsa10.f dpsmsa11.f dpsmsa12.f \
|
|
||||||
dpsmsa13.f dpsmsa14.f dpsmsa15.f dpsmsa16.f dpsmsah.f tpsmsah.f cn_qsort4_11.f "
|
|
||||||
|
|
||||||
|
|
||||||
HIGH_OPT_CODES_CASI="arithkernels.c blockedroutines.c blockedroutines_fd.c elemmatgenkernels.c longvecroutines.c sfmultutils.c solvewithbd.c"
|
|
||||||
|
|
||||||
MAXNUM=1000000
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# This script opens a window running an editor.
|
|
||||||
# The command to invoke the editor is specified during DAMASK installation
|
|
||||||
|
|
||||||
%EDITOR% $*
|
|
|
@ -1,18 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# This script opens a window running an editor. The default window is an
|
|
||||||
# xterm, and the default editor is vi. These may be customized.
|
|
||||||
|
|
||||||
dir=
|
|
||||||
for d in /usr/bin /usr/bin/X11; do
|
|
||||||
if test -x "$d/xterm"; then
|
|
||||||
dir="$d"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if test -z "$dir"; then
|
|
||||||
echo "$0: Could not find xterm"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
"$dir/xterm" -T "vi $*" -n "vi $*" -e vi $*
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "$1" = "" ]; then
|
|
||||||
echo "usage: $0 job_name"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo STOP > $1.cnt
|
|
|
@ -1,186 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=/opt/msc/marc2017
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_marc" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
|
@ -1,187 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=%INSTALLDIR%/marc%VERSION%
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile=${srcfile%.*}".marc"
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_damask_hmp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
|
@ -1,187 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=%INSTALLDIR%/marc%VERSION%
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile=${srcfile%.*}".marc"
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_damask_mp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
|
@ -1,187 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# The exit status of this script is read by Mentat.
|
|
||||||
# Normal exit status is 0.
|
|
||||||
#
|
|
||||||
|
|
||||||
DIR=%INSTALLDIR%/marc%VERSION%
|
|
||||||
if test $MARCDIR1
|
|
||||||
then
|
|
||||||
DIR=$MARCDIR1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -z "$DIR"; then
|
|
||||||
REALCOM="`ls -l $0 |awk '{ print $NF; }'`"
|
|
||||||
DIRSCRIPT=`dirname $REALCOM`
|
|
||||||
case $DIRSCRIPT in
|
|
||||||
\/*)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
DIRSCRIPT=`pwd`/$DIRSCRIPT
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
. $DIRSCRIPT/getarch
|
|
||||||
|
|
||||||
DIR="$MENTAT_MARCDIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
SRCEXT=.f
|
|
||||||
SRCEXTC=.F
|
|
||||||
RSTEXT=.t08
|
|
||||||
PSTEXT=.t19
|
|
||||||
PSTEXTB=.t16
|
|
||||||
VWFCEXT=.vfs
|
|
||||||
|
|
||||||
slv=$1
|
|
||||||
version=$2
|
|
||||||
ndom_fea_solver=$3
|
|
||||||
ndom_preprocessor=$4
|
|
||||||
hostfile=$5
|
|
||||||
compat=$6
|
|
||||||
job=$7
|
|
||||||
srcfile=$8
|
|
||||||
srcmeth=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
restart=$1
|
|
||||||
postfile=$2
|
|
||||||
viewfactorsfile=$3
|
|
||||||
autorst=$4
|
|
||||||
copy_datfile="-ci $5"
|
|
||||||
copy_postfile="-cr $6"
|
|
||||||
scr_dir=$7
|
|
||||||
dcoup=$8
|
|
||||||
assem_recov_nthread=$9
|
|
||||||
shift 9 # cannot use $10, $11, ...
|
|
||||||
nthread=$1
|
|
||||||
nsolver=$2
|
|
||||||
mode=$3
|
|
||||||
gpu=$4
|
|
||||||
|
|
||||||
if [ "$slv" != "" -a "$slv" != "marc" ]; then
|
|
||||||
slv="-iam sfm"
|
|
||||||
else
|
|
||||||
slv=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ndom_fea_solver" != "" -a "$ndom_fea_solver" != "1" ]; then
|
|
||||||
nprocds="-nprocds $ndom_fea_solver"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
if [ "$ndom_preprocessor" != "" -a "$ndom_preprocessor" != "1" ]; then
|
|
||||||
nprocd="-nprocd $ndom_preprocessor"
|
|
||||||
else
|
|
||||||
nprocd=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$srcfile" != "" -a "$srcfile" != "-" ]; then
|
|
||||||
srcfile=`echo $srcfile | sed "s/$SRCEXT$//" | sed "s/$SRCEXTC$//"`
|
|
||||||
case "$srcmeth" in
|
|
||||||
-)
|
|
||||||
srcfile="-u $srcfile"
|
|
||||||
;;
|
|
||||||
compsave)
|
|
||||||
srcfile="-u $srcfile -save y"
|
|
||||||
;;
|
|
||||||
runsaved)
|
|
||||||
srcfile=${srcfile%.*}".marc"
|
|
||||||
srcfile="-prog $srcfile"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
else
|
|
||||||
srcfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$restart" != "" -a "$restart" != "-" ]; then
|
|
||||||
restart=`echo $restart | sed "s/$RSTEXT$//"`
|
|
||||||
restart="-r $restart"
|
|
||||||
else
|
|
||||||
restart=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$postfile" != "" -a "$postfile" != "-" ]; then
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXT$//"`
|
|
||||||
postfile=`echo $postfile | sed "s/$PSTEXTB$//"`
|
|
||||||
postfile="-pid $postfile"
|
|
||||||
else
|
|
||||||
postfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$viewfactorsfile" != "" -a "$viewfactorsfile" != "-" ]; then
|
|
||||||
viewfactorsfile=`echo $viewfactorsfile | sed "s/$VWFCEXT$//"`
|
|
||||||
viewfactorsfile="-vf $viewfactorsfile"
|
|
||||||
else
|
|
||||||
viewfactorsfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$hostfile" != "" -a "$hostfile" != "-" ]; then
|
|
||||||
hostfile="-ho $hostfile"
|
|
||||||
else
|
|
||||||
hostfile=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$compat" != "" -a "$compat" != "-" ]; then
|
|
||||||
compat="-co $compat"
|
|
||||||
else
|
|
||||||
compat=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$scr_dir" != "" -a "$scr_dir" != "-" ]; then
|
|
||||||
scr_dir="-sd $scr_dir"
|
|
||||||
else
|
|
||||||
scr_dir=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$dcoup" != "" -a "$dcoup" != "0" ]; then
|
|
||||||
dcoup="-dcoup $dcoup"
|
|
||||||
else
|
|
||||||
dcoup=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$assem_recov_nthread" != "" -a "$assem_recov_nthread" != "1" ]; then
|
|
||||||
assem_recov_nthread="-nthread_elem $assem_recov_nthread"
|
|
||||||
else
|
|
||||||
assem_recov_nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nthread" != "" -a "$nthread" != "0" -a "$nthread" != "1" ]; then
|
|
||||||
nthread="-nthread $nthread"
|
|
||||||
else
|
|
||||||
nthread=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$nsolver" != "" -a "$nsolver" != "0" ]; then
|
|
||||||
nsolver="-nsolver $nsolver"
|
|
||||||
else
|
|
||||||
nsolver=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
case "$mode" in
|
|
||||||
4) mode="-mo i4" ;;
|
|
||||||
8) mode="-mo i8" ;;
|
|
||||||
*) mode= ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ "$gpu" != "" -a "$gpu" != "-" ]; then
|
|
||||||
gpu="-gpu $gpu"
|
|
||||||
else
|
|
||||||
gpu=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f $job.cnt
|
|
||||||
rm -f $job.sts
|
|
||||||
rm -f $job.out
|
|
||||||
rm -f $job.log
|
|
||||||
|
|
||||||
# To prevent a mismatch with the python version used by the solver
|
|
||||||
# do *not* prepend $MENTAT_INSTALL_DIR/python/bin to environment variable PATH
|
|
||||||
# unset environment variables PYTHONHOME and PYTHONPATH
|
|
||||||
unset PYTHONHOME
|
|
||||||
unset PYTHONPATH
|
|
||||||
|
|
||||||
"${DIR}/tools/run_damask_lmp" $slv -j $job -v n -b y $nprocds $nprocd -autorst $autorst \
|
|
||||||
$srcfile $restart $postfile $viewfactorsfile $hostfile \
|
|
||||||
$compat $copy_datfile $copy_postfile $scr_dir $dcoup \
|
|
||||||
$assem_recov_nthread $nthread $nsolver $mode $gpu > /dev/null 2>&1
|
|
||||||
sleep 1
|
|
||||||
exit 0
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,8 +1,8 @@
|
||||||
#! /usr/bin/env bash
|
#! /usr/bin/env bash
|
||||||
if [ $1x != 3to2x ]; then
|
if [ $1x != 3to2x ]; then
|
||||||
echo 'python2.7 to python'
|
echo 'python2.7 to python3'
|
||||||
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python2.7/usr\/bin\/env python/g'
|
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python2.7/usr\/bin\/env python3/g'
|
||||||
else
|
else
|
||||||
echo 'python to python2.7'
|
echo 'python3 to python2.7'
|
||||||
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python/usr\/bin\/env python2.7/g'
|
find . -name '*.py' -type f | xargs sed -i 's/usr\/bin\/env python3/usr\/bin\/env python2.7/g'
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
# Makes postprocessing routines acessible from everywhere.
|
# Makes postprocessing routines acessible from everywhere.
|
||||||
|
|
|
@ -8,57 +8,37 @@ class Marc(Solver):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.solver = 'Marc'
|
self.solver = 'Marc'
|
||||||
self.releases = { \
|
|
||||||
'2018.1': ['linux64',''],
|
|
||||||
'2018': ['linux64',''],
|
|
||||||
'2017': ['linux64',''],
|
|
||||||
'2016': ['linux64',''],
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#--------------------------
|
#--------------------------
|
||||||
def version(self):
|
def version(self):
|
||||||
import os,damask.environment
|
import damask.environment
|
||||||
|
|
||||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
return damask.environment.Environment().options['MARC_VERSION']
|
||||||
|
|
||||||
for release,subdirs in sorted(list(self.releases.items()),reverse=True):
|
|
||||||
for subdir in subdirs:
|
|
||||||
path = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir)
|
|
||||||
if os.path.exists(path): return release
|
|
||||||
else: continue
|
|
||||||
|
|
||||||
return ''
|
|
||||||
|
|
||||||
|
|
||||||
#--------------------------
|
#--------------------------
|
||||||
def libraryPath(self,releases = []):
|
def libraryPath(self,release = ''):
|
||||||
import os,damask.environment
|
import os,damask.environment
|
||||||
|
|
||||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
||||||
|
if len(release) == 0: release = self.version()
|
||||||
|
|
||||||
if len(releases) == 0: releases = list(self.releases.keys())
|
path = '{}/mentat{}/shlib/linux64'.format(MSCpath,release)
|
||||||
if type(releases) is not list: releases = [releases]
|
|
||||||
for release in sorted(releases,reverse=True):
|
return path if os.path.exists(path) else ''
|
||||||
if release not in self.releases: continue
|
|
||||||
for subdir in self.releases[release]:
|
|
||||||
libPath = '%s/mentat%s/shlib/%s'%(MSCpath,release,subdir)
|
|
||||||
if os.path.exists(libPath): return libPath
|
|
||||||
else: continue
|
|
||||||
|
|
||||||
return ''
|
|
||||||
|
|
||||||
|
|
||||||
#--------------------------
|
#--------------------------
|
||||||
def toolsPath(self,release = ''):
|
def toolsPath(self,release = ''):
|
||||||
import os,damask.environment
|
import os,damask.environment
|
||||||
|
|
||||||
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
MSCpath = damask.environment.Environment().options['MSC_ROOT']
|
||||||
|
|
||||||
if len(release) == 0: release = self.version()
|
if len(release) == 0: release = self.version()
|
||||||
|
|
||||||
path = '%s/marc%s/tools'%(MSCpath,release)
|
path = '%s/marc%s/tools'%(MSCpath,release)
|
||||||
if os.path.exists(path): return path
|
|
||||||
else: return ''
|
return path if os.path.exists(path) else ''
|
||||||
|
|
||||||
|
|
||||||
#--------------------------
|
#--------------------------
|
||||||
|
@ -75,23 +55,19 @@ class Marc(Solver):
|
||||||
import subprocess,shlex
|
import subprocess,shlex
|
||||||
|
|
||||||
if len(release) == 0: release = self.version()
|
if len(release) == 0: release = self.version()
|
||||||
|
|
||||||
if release not in self.releases:
|
|
||||||
raise Exception("Unknown MSC.Marc Version %s"%release)
|
|
||||||
|
|
||||||
|
|
||||||
damaskEnv = damask.environment.Environment()
|
damaskEnv = damask.environment.Environment()
|
||||||
|
|
||||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc') # might be updated if special version (symlink) is found
|
user = 'not found'
|
||||||
|
|
||||||
if compile:
|
if compile:
|
||||||
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s.f90'%release)):
|
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}.f90'.format(release))):
|
||||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s'%release)
|
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}'.format(release))
|
||||||
else:
|
else:
|
||||||
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s.marc'%release)):
|
if os.path.isfile(os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}.marc'.format(release))):
|
||||||
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc%s'%release)
|
user = os.path.join(damaskEnv.relPath('src/'),'DAMASK_marc{}'.format(release))
|
||||||
|
|
||||||
# Define options [see Marc Installation and Operation Guide, pp 23]
|
# Define options [see Marc Installation and Operation Guide, pp 23]
|
||||||
script = 'run_damask_%smp'%({False:'',True:optimization}[optimization!=''])
|
script = 'run_damask_{}mp'.format(optimization)
|
||||||
|
|
||||||
cmd = os.path.join(self.toolsPath(release),script) + \
|
cmd = os.path.join(self.toolsPath(release),script) + \
|
||||||
' -jid ' + model + '_' + job + \
|
' -jid ' + model + '_' + job + \
|
||||||
|
@ -100,24 +76,24 @@ class Marc(Solver):
|
||||||
if compile: cmd += ' -u ' + user+'.f90' + ' -save y'
|
if compile: cmd += ' -u ' + user+'.f90' + ' -save y'
|
||||||
else: cmd += ' -prog ' + user
|
else: cmd += ' -prog ' + user
|
||||||
|
|
||||||
print('job submission with%s compilation: %s'%({False:'out',True:''}[compile],user))
|
print('job submission with{} compilation: {}'.format({False:'out',True:''}[compile],user))
|
||||||
if logfile:
|
if logfile:
|
||||||
log = open(logfile, 'w')
|
log = open(logfile, 'w')
|
||||||
print(cmd)
|
print(cmd)
|
||||||
self.p = subprocess.Popen(shlex.split(cmd),stdout = log,stderr = subprocess.STDOUT)
|
process = subprocess.Popen(shlex.split(cmd),stdout = log,stderr = subprocess.STDOUT)
|
||||||
log.close()
|
log.close()
|
||||||
self.p.wait()
|
process.wait()
|
||||||
|
|
||||||
#--------------------------
|
#--------------------------
|
||||||
def exit_number_from_outFile(self,outFile=None):
|
def exit_number_from_outFile(self,outFile=None):
|
||||||
import string
|
import string
|
||||||
exitnumber = -1
|
exitnumber = -1
|
||||||
fid_out = open(outFile,'r')
|
fid_out = open(outFile,'r')
|
||||||
for ln in fid_out:
|
for line in fid_out:
|
||||||
if (string.find(ln,'tress iteration') is not -1):
|
if (string.find(line,'tress iteration') is not -1):
|
||||||
print(ln)
|
print(line)
|
||||||
elif (string.find(ln,'Exit number') is not -1):
|
elif (string.find(line,'Exit number') is not -1):
|
||||||
substr = ln[string.find(ln,'Exit number'):len(ln)]
|
substr = line[string.find(line,'Exit number'):len(line)]
|
||||||
exitnumber = int(substr[12:16])
|
exitnumber = int(substr[12:16])
|
||||||
|
|
||||||
fid_out.close()
|
fid_out.close()
|
||||||
|
|
|
@ -384,10 +384,10 @@ class Test():
|
||||||
while table0.data_read(): # read next data line of ASCII table
|
while table0.data_read(): # read next data line of ASCII table
|
||||||
if line0 not in skipLines:
|
if line0 not in skipLines:
|
||||||
for i in range(dataLength):
|
for i in range(dataLength):
|
||||||
myData = np.array(map(float,table0.data[column[0][i]:\
|
myData = np.array(list(map(float,table0.data[column[0][i]:\
|
||||||
column[0][i]+length[i]]),'d')
|
column[0][i]+length[i]])),'d')
|
||||||
normData = np.array(map(float,table0.data[normColumn[i]:\
|
normData = np.array(list(map(float,table0.data[normColumn[i]:\
|
||||||
normColumn[i]+normLength[i]]),'d')
|
normColumn[i]+normLength[i]])),'d')
|
||||||
data[i] = np.append(data[i],np.reshape(myData,shape[i]))
|
data[i] = np.append(data[i],np.reshape(myData,shape[i]))
|
||||||
if normType == 'pInf':
|
if normType == 'pInf':
|
||||||
norm[i] = np.append(norm[i],np.max(np.abs(normData)))
|
norm[i] = np.append(norm[i],np.max(np.abs(normData)))
|
||||||
|
@ -410,8 +410,8 @@ class Test():
|
||||||
while table1.data_read(): # read next data line of ASCII table
|
while table1.data_read(): # read next data line of ASCII table
|
||||||
if line1 not in skipLines:
|
if line1 not in skipLines:
|
||||||
for i in range(dataLength):
|
for i in range(dataLength):
|
||||||
myData = np.array(map(float,table1.data[column[1][i]:\
|
myData = np.array(list(map(float,table1.data[column[1][i]:\
|
||||||
column[1][i]+length[i]]),'d')
|
column[1][i]+length[i]])),'d')
|
||||||
maxError[i] = max(maxError[i],np.linalg.norm(np.reshape(myData-data[i][line1-len(skipLines),:],shape[i]))/
|
maxError[i] = max(maxError[i],np.linalg.norm(np.reshape(myData-data[i][line1-len(skipLines),:],shape[i]))/
|
||||||
norm[i][line1-len(skipLines)])
|
norm[i][line1-len(skipLines)])
|
||||||
line1 +=1
|
line1 +=1
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,re,sys,collections
|
import os,re,sys,collections
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -49,7 +49,7 @@ def curlFFT(geomdim,field):
|
||||||
|
|
||||||
curl_fourier = np.einsum(einsums[n],e,k_s,field_fourier)*TWOPIIMG
|
curl_fourier = np.einsum(einsums[n],e,k_s,field_fourier)*TWOPIIMG
|
||||||
|
|
||||||
return np.fft.irfftn(curl_fourier,axes=(0,1,2),s=shapeFFT).reshape([N,n])
|
return np.fft.irfftn(curl_fourier,s=shapeFFT,axes=(0,1,2)).reshape([N,n])
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -45,7 +45,7 @@ def divFFT(geomdim,field):
|
||||||
|
|
||||||
div_fourier = np.einsum(einsums[n],k_s,field_fourier)*TWOPIIMG
|
div_fourier = np.einsum(einsums[n],k_s,field_fourier)*TWOPIIMG
|
||||||
|
|
||||||
return np.fft.irfftn(div_fourier,axes=(0,1,2),s=shapeFFT).reshape([N,n/3])
|
return np.fft.irfftn(div_fourier,s=shapeFFT,axes=(0,1,2)).reshape([N,n//3])
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,itertools
|
import os,sys,itertools
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -45,7 +45,7 @@ def gradFFT(geomdim,field):
|
||||||
k_s = np.concatenate((ki[:,:,:,None],kj[:,:,:,None],kk[:,:,:,None]),axis = 3).astype('c16')
|
k_s = np.concatenate((ki[:,:,:,None],kj[:,:,:,None],kk[:,:,:,None]),axis = 3).astype('c16')
|
||||||
grad_fourier = np.einsum(einsums[n],field_fourier,k_s)*TWOPIIMG
|
grad_fourier = np.einsum(einsums[n],field_fourier,k_s)*TWOPIIMG
|
||||||
|
|
||||||
return np.fft.irfftn(grad_fourier,axes=(0,1,2),s=shapeFFT).reshape([N,3*n])
|
return np.fft.irfftn(grad_fourier,s=shapeFFT,axes=(0,1,2)).reshape([N,3*n])
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
@ -94,11 +94,9 @@ for name in filenames:
|
||||||
|
|
||||||
if (any(options.grid) == 0 or any(options.size) == 0.0):
|
if (any(options.grid) == 0 or any(options.size) == 0.0):
|
||||||
grid,size = damask.util.coordGridAndSize(table.data[:,table.label_indexrange(options.pos)])
|
grid,size = damask.util.coordGridAndSize(table.data[:,table.label_indexrange(options.pos)])
|
||||||
|
|
||||||
else:
|
else:
|
||||||
grid = np.array(options.grid,'i')
|
grid = np.array(options.grid,'i')
|
||||||
size = np.array(options.size,'d')
|
size = np.array(options.size,'d')
|
||||||
origin = np.zeros(3,'d')
|
|
||||||
|
|
||||||
packing = np.where(grid == 1,1,packing) # reset packing to 1 where grid==1
|
packing = np.where(grid == 1,1,packing) # reset packing to 1 where grid==1
|
||||||
shift = np.where(grid == 1,0,shift) # reset shift to 0 where grid==1
|
shift = np.where(grid == 1,0,shift) # reset shift to 0 where grid==1
|
||||||
|
@ -113,7 +111,7 @@ for name in filenames:
|
||||||
-shift[2],axis = 2),
|
-shift[2],axis = 2),
|
||||||
size = list(packing) + [1],
|
size = list(packing) + [1],
|
||||||
mode = 'wrap',
|
mode = 'wrap',
|
||||||
origin = list(-(packing/2)) + [0])\
|
origin = list(-(packing//2)) + [0])\
|
||||||
[::packing[0],::packing[1],::packing[2],:].reshape((packedGrid.prod(),table.data.shape[1]),order = 'F')
|
[::packing[0],::packing[1],::packing[2],:].reshape((packedGrid.prod(),table.data.shape[1]),order = 'F')
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,15 +119,15 @@ for name in filenames:
|
||||||
|
|
||||||
#--- generate grid --------------------------------------------------------------------------------
|
#--- generate grid --------------------------------------------------------------------------------
|
||||||
|
|
||||||
x = (0.5 + shift[0] + np.arange(packedGrid[0],dtype=float))/packedGrid[0]*size[0] + origin[0]
|
x = (0.5 + shift[0] + np.arange(packedGrid[0],dtype=float))/packedGrid[0]*size[0]
|
||||||
y = (0.5 + shift[1] + np.arange(packedGrid[1],dtype=float))/packedGrid[1]*size[1] + origin[1]
|
y = (0.5 + shift[1] + np.arange(packedGrid[1],dtype=float))/packedGrid[1]*size[1]
|
||||||
z = (0.5 + shift[2] + np.arange(packedGrid[2],dtype=float))/packedGrid[2]*size[2] + origin[2]
|
z = (0.5 + shift[2] + np.arange(packedGrid[2],dtype=float))/packedGrid[2]*size[2]
|
||||||
|
|
||||||
xx = np.tile( x, packedGrid[1]* packedGrid[2])
|
xx = np.tile( x, packedGrid[1]* packedGrid[2])
|
||||||
yy = np.tile(np.repeat(y,packedGrid[0] ),packedGrid[2])
|
yy = np.tile(np.repeat(y,packedGrid[0] ),packedGrid[2])
|
||||||
zz = np.repeat(z,packedGrid[0]*packedGrid[1])
|
zz = np.repeat(z,packedGrid[0]*packedGrid[1])
|
||||||
|
|
||||||
table.data[:,table.label_indexragen(options.pos)] = np.squeeze(np.dstack((xx,yy,zz)))
|
table.data[:,table.label_indexrange(options.pos)] = np.squeeze(np.dstack((xx,yy,zz)))
|
||||||
|
|
||||||
# ------------------------------------------ output result -----------------------------------------
|
# ------------------------------------------ output result -----------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,re,sys,fnmatch
|
import os,re,sys,fnmatch
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import sys,os
|
import sys,os
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math,re,time,struct
|
import os,sys,math,re,time,struct
|
||||||
|
@ -135,7 +135,7 @@ class MPIEspectral_result: # mimic py_post result object
|
||||||
if self.N_element_scalars is None:
|
if self.N_element_scalars is None:
|
||||||
self.N_element_scalars = self._keyedPackedArray('materialpoint_sizeResults',count=1,type='i')[0]
|
self.N_element_scalars = self._keyedPackedArray('materialpoint_sizeResults',count=1,type='i')[0]
|
||||||
|
|
||||||
self.N_positions = (self.filesize-self.dataOffset)/(self.N_elements*self.N_element_scalars*8)
|
self.N_positions = (self.filesize-self.dataOffset)//(self.N_elements*self.N_element_scalars*8)
|
||||||
self.N_increments = 1 # add zero'th entry
|
self.N_increments = 1 # add zero'th entry
|
||||||
for i in range(self.N_loadcases):
|
for i in range(self.N_loadcases):
|
||||||
self.N_increments += self._increments[i]//self._frequencies[i]
|
self.N_increments += self._increments[i]//self._frequencies[i]
|
||||||
|
@ -244,9 +244,9 @@ class MPIEspectral_result: # mimic py_post result object
|
||||||
a = self.grid[0]+1
|
a = self.grid[0]+1
|
||||||
b = self.grid[1]+1
|
b = self.grid[1]+1
|
||||||
c = self.grid[2]+1
|
c = self.grid[2]+1
|
||||||
return vector([self.size[0] * (n%a) / self.grid[0],
|
return vector([self.size[0] * (n%a) / self.grid[0],
|
||||||
self.size[1] * ((n/a)%b) / self.grid[1],
|
self.size[1] * ((n//a)%b) / self.grid[1],
|
||||||
self.size[2] * ((n/a/b)%c) / self.grid[2],
|
self.size[2] * ((n//a//b)%c) / self.grid[2],
|
||||||
])
|
])
|
||||||
|
|
||||||
def element_sequence(self,e):
|
def element_sequence(self,e):
|
||||||
|
@ -258,7 +258,7 @@ class MPIEspectral_result: # mimic py_post result object
|
||||||
def element(self,e):
|
def element(self,e):
|
||||||
a = self.grid[0]+1
|
a = self.grid[0]+1
|
||||||
b = self.grid[1]+1
|
b = self.grid[1]+1
|
||||||
basenode = 1 + e+e/self.grid[0] + e/self.grid[0]/self.grid[1]*a
|
basenode = 1 + e+e//self.grid[0] + e//self.grid[0]//self.grid[1]*a
|
||||||
basenode2 = basenode+a*b
|
basenode2 = basenode+a*b
|
||||||
return (element([basenode ,basenode +1,basenode +a+1,basenode +a,
|
return (element([basenode ,basenode +1,basenode +a+1,basenode +a,
|
||||||
basenode2 ,basenode2+1,basenode2+a+1,basenode2+a,
|
basenode2 ,basenode2+1,basenode2+a+1,basenode2+a,
|
||||||
|
@ -434,17 +434,17 @@ def mapIncremental(label, mapping, N, base, new):
|
||||||
'unique': lambda n,b,a: a if n==0 or b==a else 'nan'
|
'unique': lambda n,b,a: a if n==0 or b==a else 'nan'
|
||||||
}
|
}
|
||||||
if mapping in theMap:
|
if mapping in theMap:
|
||||||
mapped = map(theMap[mapping],[N]*len(base),base,new) # map one of the standard functions to data
|
mapped = list(map(theMap[mapping],[N for i in range(len(base))],base,new)) # map one of the standard functions to data
|
||||||
if label.lower() == 'orientation': # orientation is special case:...
|
if label.lower() == 'orientation': # orientation is special case:...
|
||||||
orientationNorm = math.sqrt(sum([q*q for q in mapped])) # ...calc norm of average quaternion
|
orientationNorm = math.sqrt(sum([q*q for q in mapped])) # ...calc norm of average quaternion
|
||||||
mapped = map(lambda x: x/orientationNorm, mapped) # ...renormalize quaternion
|
mapped = list(map(lambda x: x/orientationNorm, mapped)) # ...renormalize quaternion
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
mapped = eval('map(%s,[N]*len(base),base,new)'%mapping) # map user defined function to colums in chunks
|
mapped = list(eval('map(%s,[N for i in range(len(base))],base,new)'%mapping)) # map user defined function to colums in chunks
|
||||||
except:
|
except:
|
||||||
mapped = ['nan']*len(base)
|
mapped = ['nan' for i in range(len(base))]
|
||||||
|
|
||||||
return mapped
|
return list(mapped)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -674,6 +674,9 @@ parser.add_option('-p','--type', dest='filetype',
|
||||||
parser.add_option('-q','--quiet', dest='verbose',
|
parser.add_option('-q','--quiet', dest='verbose',
|
||||||
action = 'store_false',
|
action = 'store_false',
|
||||||
help = 'suppress verbose output')
|
help = 'suppress verbose output')
|
||||||
|
parser.add_option('--verbose', dest='verbose',
|
||||||
|
action = 'store_true',
|
||||||
|
help = 'enable verbose output')
|
||||||
|
|
||||||
group_material = OptionGroup(parser,'Material identifier')
|
group_material = OptionGroup(parser,'Material identifier')
|
||||||
|
|
||||||
|
@ -715,7 +718,7 @@ parser.add_option_group(group_general)
|
||||||
parser.add_option_group(group_special)
|
parser.add_option_group(group_special)
|
||||||
|
|
||||||
parser.set_defaults(info = False,
|
parser.set_defaults(info = False,
|
||||||
verbose = True,
|
verbose = False,
|
||||||
legacy = False,
|
legacy = False,
|
||||||
nodal = False,
|
nodal = False,
|
||||||
prefix = '',
|
prefix = '',
|
||||||
|
@ -1164,14 +1167,12 @@ for incCount,position in enumerate(locations): # walk through locations
|
||||||
file.write('\t'.join(standard + header) + '\n')
|
file.write('\t'.join(standard + header) + '\n')
|
||||||
headerWritten = True
|
headerWritten = True
|
||||||
|
|
||||||
file.write('\t'.join(map(str,[p.increment] + \
|
file.write('\t'.join(list(map(str,[p.increment] + \
|
||||||
{True:[p.time],False:[]}[options.time] + \
|
{True:[p.time],False:[]}[options.time] + \
|
||||||
group[0] + \
|
group[0] + \
|
||||||
mappedResult)
|
mappedResult)
|
||||||
) + '\n')
|
)) + '\n')
|
||||||
|
|
||||||
if fileOpen:
|
if fileOpen:
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
|
|
||||||
# --------------------------- DONE --------------------------------
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,re
|
import os,sys,re
|
||||||
|
@ -66,7 +66,7 @@ for name in filenames:
|
||||||
for i,index in enumerate(indices):
|
for i,index in enumerate(indices):
|
||||||
if index == -1: remarks.append('label "{}" not present...'.format(options.label[i]))
|
if index == -1: remarks.append('label "{}" not present...'.format(options.label[i]))
|
||||||
else:
|
else:
|
||||||
m = pattern[dimensions[i]>1].match(table.tags[index]) # isolate label name
|
m = pattern[int(dimensions[i]>1)].match(table.tags[index]) # isolate label name
|
||||||
for j in range(dimensions[i]):
|
for j in range(dimensions[i]):
|
||||||
table.tags[index+j] = table.tags[index+j].replace(m.group(2),options.substitute[i]) # replace name with substitute
|
table.tags[index+j] = table.tags[index+j].replace(m.group(2),options.substitute[i]) # replace name with substitute
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -63,7 +63,7 @@ parser.set_defaults(center = (.0,.0,.0),
|
||||||
if options.dimension is None:
|
if options.dimension is None:
|
||||||
parser.error('no dimension specified.')
|
parser.error('no dimension specified.')
|
||||||
if options.angleaxis is not None:
|
if options.angleaxis is not None:
|
||||||
options.angleaxis = map(float,options.angleaxis)
|
options.angleaxis = list(map(float,options.angleaxis))
|
||||||
rotation = damask.Quaternion().fromAngleAxis(np.radians(options.angleaxis[0]) if options.degrees else options.angleaxis[0],
|
rotation = damask.Quaternion().fromAngleAxis(np.radians(options.angleaxis[0]) if options.degrees else options.angleaxis[0],
|
||||||
options.angleaxis[1:4])
|
options.angleaxis[1:4])
|
||||||
elif options.quaternion is not None:
|
elif options.quaternion is not None:
|
||||||
|
@ -137,17 +137,17 @@ for name in filenames:
|
||||||
indexing='ij')
|
indexing='ij')
|
||||||
# Padding handling
|
# Padding handling
|
||||||
X = np.roll(np.roll(np.roll(X,
|
X = np.roll(np.roll(np.roll(X,
|
||||||
-grid[0]/2, axis=0),
|
-grid[0]//2, axis=0),
|
||||||
-grid[1]/2, axis=1),
|
-grid[1]//2, axis=1),
|
||||||
-grid[2]/2, axis=2)
|
-grid[2]//2, axis=2)
|
||||||
Y = np.roll(np.roll(np.roll(Y,
|
Y = np.roll(np.roll(np.roll(Y,
|
||||||
-grid[0]/2, axis=0),
|
-grid[0]//2, axis=0),
|
||||||
-grid[1]/2, axis=1),
|
-grid[1]//2, axis=1),
|
||||||
-grid[2]/2, axis=2)
|
-grid[2]//2, axis=2)
|
||||||
Z = np.roll(np.roll(np.roll(Z,
|
Z = np.roll(np.roll(np.roll(Z,
|
||||||
-grid[0]/2, axis=0),
|
-grid[0]//2, axis=0),
|
||||||
-grid[1]/2, axis=1),
|
-grid[1]//2, axis=1),
|
||||||
-grid[2]/2, axis=2)
|
-grid[2]//2, axis=2)
|
||||||
else: # nonperiodic, much lighter on resources
|
else: # nonperiodic, much lighter on resources
|
||||||
# change to coordinate space where the primitive is the unit sphere/cube/etc
|
# change to coordinate space where the primitive is the unit sphere/cube/etc
|
||||||
(X, Y, Z) = np.meshgrid(np.arange(0, grid[0], dtype=np.float32),
|
(X, Y, Z) = np.meshgrid(np.arange(0, grid[0], dtype=np.float32),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math,time
|
import os,sys,math,time
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -245,9 +245,9 @@ for name in filenames:
|
||||||
hasEulers = table.label_dimension(options.eulers) == 3
|
hasEulers = table.label_dimension(options.eulers) == 3
|
||||||
hasWeights = table.label_dimension(options.weight) == 1 and options.laguerre
|
hasWeights = table.label_dimension(options.weight) == 1 and options.laguerre
|
||||||
|
|
||||||
if np.any(info['grid'] < 1): errors.append('invalid grid a b c.')
|
if np.any(np.array(info['grid']) < 1): errors.append('invalid grid a b c.')
|
||||||
if np.any(info['size'] <= 0.0) \
|
if np.any(np.array(info['size']) <= 0.0) \
|
||||||
and np.all(info['grid'] < 1): errors.append('invalid size x y z.')
|
and np.all(np.array(info['grid']) < 1): errors.append('invalid size x y z.')
|
||||||
else:
|
else:
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
if info['size'][i] <= 0.0: # any invalid size?
|
if info['size'][i] <= 0.0: # any invalid size?
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys
|
import os,sys
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -82,11 +82,11 @@ for name in filenames:
|
||||||
'microstructures': 0,
|
'microstructures': 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
newInfo['grid'] = np.array([{True:round(o*float(n.translate(None,'xX'))),
|
newInfo['grid'] = np.array([{True: round(o*float(n.lower().replace('x',''))),
|
||||||
False: round(float(n.translate(None,'xX')))}[n[-1].lower() == 'x']
|
False: round(float(n.lower().replace('x','')))}[n[-1].lower() == 'x']
|
||||||
for o,n in zip(info['grid'],options.grid)],'i')
|
for o,n in zip(info['grid'],options.grid)],'i')
|
||||||
newInfo['size'] = np.array([{True: o*float(n.translate(None,'xX')) ,
|
newInfo['size'] = np.array([{True: o*float(n.lower().replace('x','')),
|
||||||
False: float(n.translate(None,'xX')) }[n[-1].lower() == 'x']
|
False: float(n.lower().replace('x',''))}[n[-1].lower() == 'x']
|
||||||
for o,n in zip(info['size'],options.size)],'d')
|
for o,n in zip(info['size'],options.size)],'d')
|
||||||
newInfo['grid'] = np.where(newInfo['grid'] <= 0 , info['grid'],newInfo['grid'])
|
newInfo['grid'] = np.where(newInfo['grid'] <= 0 , info['grid'],newInfo['grid'])
|
||||||
newInfo['size'] = np.where(newInfo['size'] <= 0.0, info['size'],newInfo['size'])
|
newInfo['size'] = np.where(newInfo['size'] <= 0.0, info['size'],newInfo['size'])
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
@ -46,7 +46,7 @@ parser.set_defaults(origin = (0.0,0.0,0.0),
|
||||||
datatype = 'f' if options.real else 'i'
|
datatype = 'f' if options.real else 'i'
|
||||||
|
|
||||||
sub = {}
|
sub = {}
|
||||||
for i in range(len(options.substitute)/2): # split substitution list into "from" -> "to"
|
for i in range(len(options.substitute)//2): # split substitution list into "from" -> "to"
|
||||||
sub[int(options.substitute[i*2])] = int(options.substitute[i*2+1])
|
sub[int(options.substitute[i*2])] = int(options.substitute[i*2+1])
|
||||||
|
|
||||||
# --- loop over input files ----------------------------------------------------------------------
|
# --- loop over input files ----------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
import os,sys,math
|
import os,sys,math
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/env python2.7
|
#!/usr/bin/env python3
|
||||||
# -*- coding: UTF-8 no BOM -*-
|
# -*- coding: UTF-8 no BOM -*-
|
||||||
|
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue