#!/bin/ksh set -x mac=$(hostname | cut -c1-1) mac2=$(hostname | cut -c1-2) if [ $mac2 = cu ] ; then mac=g ; fi #mac=$(echo $HOSTNAME | cut -c1-1) # if [ $mac2 = ga ] ; then machine=gaea center=${center:-ncep} BASEDIR=/lustre/ltfs/scratch/$center/$LOGNAME ptmp=$BASEDIR/ptmp export LIBDIR=$BASEDIR/para/lib export ESMFDIR=$BASEDIR/ESMF/esmf elif [ $mac = z -o $mac = h -o $mac = f ] ; then machine=zeus ptmp=/scratch2/portfolios/NCEPDEV/ptmp/$LOGNAME #export LIBDIR=/scratch2/portfolios/BMC/nesccmgmt/Raghu.Reddy/NCEPLIBS export LIBDIR=/scratch2/portfolios/NCEPDEV/global/save/Shrinivas.Moorthi/para/lib_test2 export ESMFDIR=${ESMF_DIR:-$LIBDIR} elif [ $mac = t -o $mac = e -o $mac = g ] ; then machine=wcoss ptmp="/ptmp/$LOGNAME" export LIBDIR=/nwprod/lib export ESMFDIR=/usrx/local/esmf-3.1.0rp5 else machine=IBMP6 ptmp="/ptmp/$LOGNAME" export LIBDIR=/nwprod/lib #export ESMFDIR=/lustre/ltfs/scratch/Shrinivas.Moorthi/ESMF/esmf fi # # WARNING!!! The default endianness is local to the machine. # If your initial conditions are bigendian and want to compile on littleendian # machine, you must set NATIVE_ENDIAN=NO # if [ $machine = IBMP6 ] ; then NATIVE_ENDIAN=${NATIVE_ENDIAN:-YES} else NATIVE_ENDIAN=${NATIVE_ENDIAN:-NO} fi NATIVE_ENDIAN=${NATIVE_ENDIAN:-YES} # sorc_dir=$(pwd) exec_dir=$(pwd) mkdir -p $exec_dir # export LIBDIR=${LIBDIR:-../../lib} # make_dir=$ptmp/branch/sorc/$(basename $sorc_dir) ##################################################################### if [ $make_dir = $(pwd) ] ; then echo "The make_dir is the current directory - compilation aborted" echo "To continue compiling, comment out this if loop and rerun" exit fi ##################################################################### mkdir -p $make_dir cd $make_dir || exit 99 [ $? -ne 0 ] && exit 8 rm $make_dir/*.o rm $make_dir/*.mod tar -cf- -C$sorc_dir .|tar -xf- if [ $NATIVE_ENDIAN = YES ] ; then cp $sorc_dir/sigio_r_module_native.f sigio_r_module.f cp $sorc_dir/bafrio_native.f bafrio.f fi # #export EXECM=$exec_dir/cfs_cdas_atmos_fcst export EXECM=$exec_dir/cfs_cdas_atmos_fcst # if [ $machine = gaea -o $machine = zeus -o $machine = wcoss ] ; then export W3LIB=w3lib-2.0_d export CFLAGS="-DLINUX" export FINCM=-I$LIBDIR/incmod/w31ib-2.0_d #export FINCG=-I$LIBDIR/incmod/gfsio_d #export FINCG= export ARCHM= export PGSZM= export FRRM=-FR export FXXM= #export OPTSB="-g -O0 -check all -ftrapuv -convert big_endian -fp-stack-check -fstack-protector -heap-arrays -recursive -traceback" #raghu.reddy #export OPTSB="-g -O3 -xHost -convert big_endian -fp-model strict -fp-stack-check -fstack-protector -heap-arrays -recursive" #raghu.reddy #export OPTSB="-g -O3 -convert big_endian -fp-model strict -heap-arrays -xHost" #raghu.reddy:prod #export OPTSB="-O3 -convert big_endian -fp-model precise -xAVX -heap-arrays -xHost" export OPTSB="-O3 -convert big_endian -fp-model precise " #export OPTSB="-g -O3 -convert big_endian -fp-model strict -heap-arrays -xHost" # -check all -ftrapuv" # -fp-stack-check -fstack-protector" #raghu.reddy #export OPTSBT="$OPTSB -traceback" export OPTSBT=$OPTSB #export OPTSM="$OPTSBT -r8 # -openmp" # raghu.reddy export OPTSIOM="$OPTSBT -r8 " export OPTSM="$OPTSBT -r8 -openmp" #export OPTSIOM="-O2 -xHOST -convert big_endian -r8 -g" export OPTS_SERM="$OPTSBT -r8 $ARCHM" export OPTS90M="$OPTSBT -r8 " export OPTS90AM="$OPTSBT -r8 " export LDFLAGSM=$PGSZM if [ $machine = gaea ] ; then export F77M=ftn export F90M=ftn export F77B=$F77M export FCC=cc export LDRM=ftn export FINC=-I$ESMFDIR/mod/mod0/Unicos.intel.64.mpi.default #export LIBSM="/lustre/ltfs/scratch/Shrinivas.Moorthi/ESMF/esmf/lib/lib0/Unicos.intel.64.mpi.default/libesmf.a /lustre/ltfs/scratch/George.Vandenberghe/t/moorthi/para/lib/libbacio.intel_4.a -L$LIBDIR -l$W3LIB -lrt -lstdc++" export LIBSM="$ESMFDIR/lib/lib0/Unicos.intel.64.mpi.default/libesmf.a -L$LIBDIR -lbacio_4 -lsp_d -l$W3LIB -lrt -lstdc++" #export LIBSM="/lustre/ltfs/scratch/Shrinivas.Moorthi/ESMF/esmf/lib/lib0/Unicos.intel.64.mpi.default/libesmf.a -L$LIBDIR -lbacio_4 -l$W3LIB -lgfsio_d -lstd -lrt -lC" elif [ $machine = wcoss ] ; then # export F77M="mpfort -openmp -compiler ifort" # export F90M="mpfort -openmp -compiler ifort" # export F77M="mpfort -compiler ifort" # export F90M="mpfort -compiler ifort" # export F77M="mpiifort -g -traceback" # export F90M="mpiifort -g -traceback" export F77M=mpiifort export F90M=mpiifort export F77B=$F77M export FCC=mpcc # export LDRM="mpfort -compiler ifort" export LDRM=mpiifort export LDFLAGSM="$PGSZM -openmp -mkl" export FINC=-I$ESMFDIR/mod/modO/Linux.intel.64.intelmpi.default export FINCM="-I$LIBDIR/incmod/w3emc_v2.0.3_d -I$LIBDIR/incmod/w3nco_v2.0.3_d" # export FINC=-I$ESMFDIR/incmod/esmf_3_1_0rp5 # export LIBSM="-L$LIBDIR -lbacio_4 -lnemsio -lsp_d -l$W3LIB -lrt -lstdc++ -L/u/wx15gv/nwprod/api/esmf310rp5/lib/libg/Linux.intel.64.poe.default -lesmf_3_1_0rp5" # export LIBSM="-L$LIBDIR -lbacio_4 -lnemsio -lsp_d -l$W3LIB -lrt -lstdc++ -L$ESMFDIR -lesmf_3_1_0rp5" export LIBSM="-L$LIBDIR -lbacio_4 -lnemsio -lsp_d -lw3emc_v2.0.3_d -lw3nco_v2.0.3_d -lrt -lstdc++ -L$ESMFDIR/lib/libO/Linux.intel.64.intelmpi.default -lesmf" else export F77M="ifort -openmp" #-recursive" export F90M="ifort -openmp" #-recursive" export F77B="ifort " #-recursive" #-openmp" #-recursive" export F90B="ifort " #-recursive" #-openmp" #-recursive" export LDRM="ifort -lmpi" # export F77M=mpif90 # export F90M=mpif90 # export LDRM=mpif90 export FCC=cc export LDFLAGSM="$PGSZM -openmp -mkl" #raghu.reddy # export FINC=-I$LIBDIR/incmod/esmf_3_1_0rp5 export FINC=-I$ESMFDIR/incmod/esmf_3_1_0rp5 #raghu.reddy # export FINC=-I$ESMF_MOD # export FINC=-I$ESMFDIR/incmod/esmf310rp5 # export LIBSM=" -L$LIBDIR -lesmf_3_1_0rp5 -lbacio_4 -lsp_d -l$W3LIB -lrt -lstdc++" export LIBSM="-L$LIBDIR -lbacio_4 -lnemsio -lsp_d -l$W3LIB -lrt -lstdc++ -L$ESMFDIR -lesmf_3_1_0rp5" # export LIBSM="-L$LIBDIR -lbacio_4 -lsp_d -l$W3LIB -lrt -lstdc++ -L$ESMF_LIB -lesmf" #raghu.reddy # export LIBSM="-L$LIBDIR -lbacio_4 -lsp_d -l$W3LIB -lrt -lstdc++ -L$ESMFDIR -lesmf" fi elif [ $machine = IBMP6 ] ; then export F77M=mpxlf95_r export F90M=mpxlf95_r export F77B=$F77M export FCC=mpcc export CFLAGS= export LIBDIR=${LIBDIR:-/global/save/wx23sm/GFS/f2010/trunk/para/lib} #export ESMFDIR=$LIBDIR export FINC=-I$LIBDIR/incmod/esmf_3_1_0rp2 export FINCM=-I$LIBDIR/incmod/w3_d #export FINCM=-I/global/save/wx23sm/GFS/f2010/trunk/para/lib/incmod/w3_d #export ESMFLIBM=$ESMFDIR/lib/libO/AIX.default.64.mpi.default export ARCHM="-qarch=pwr6 -qtune=pwr6 -qcache=auto -qnohot" export PGSZM="-bdatapsize:64K -bstackpsize:64K -btextpsize:4K" export FRRM= export FXXM=-qfixed export OPTSB="-g -O3 -qsuffix=cpp=f -qstrict -qxlf77=leadzero -qmaxmem=-1 -qnolm -qsmp=noauto -qnosave $(ARCHM)" export OPTSBT=$OPTSB export OPTSM="$OPTSBT -qrealsize=8" export OPTSIOM="$OPTSBT -qrealsize=8" export OPTS_SERM="$OPTSBT -qrealsize=8 $ARCHM" export OPTS90M="$OPTSBT -qrealsize=8 $FRRM" export OPTS90AM="$OPTSBT -qrealsize=8 $FRRM" export LDRM=$F77M #export LDFLAGSM=$PGSZ #export LDFLAGSM="-lessl_r -lmass -qsmp=noauto $PGSZM" #export LDFLAGSM="-lessl_r -qsmp=noauto $PGSZM" #export LDFLAGSM="-lessl_r -qsmp=noauto $PGSZM -bloadmap:lmap -bmap:map" #export LDFLAGSM="-qsmp=noauto $PGSZM -bloadmap:lmap -bmap:map" export LDFLAGSM="-lessl_r -lmass -qsmp=noauto $PGSZM -bloadmap:lmap -bmap:map" export LIBSM="-lC -L $LIBDIR -lesmf_3_1_0rp2 -l bacio_4 -l w3_d -lsp_d" #export LIBSM="-L /global/save/wx23sm/GFS/f2010/trunk/para/lib -lesmf_3_1_0rp2 -l bacio_4 -l w3_d -lsp_d" else echo 'machine not supported at this time' exit fi echo $F77M make -f Makefile