# 0. This file version and full path ENV_SYS_VN=5.0.2 export ENV_SYS_VN ENV_SYS_HOST0=/home/ms/nl/nkg/Env_system_$ENV_SYS_VN # 1. Identify and describe your system export COMPCENTRE COMPCENTRE=ECMWF # computer centre # 1.0 define hosts and the location of this file on each host # lvfs: large volatile file system, should be fast if [ "$COMPCENTRE" = ECMWF ]; then HOST0=ecgate1 export HOST0 # at ECMWF, define additional hosts, vpp5 or vpp7 # MPPIINC_$HOST1 defines where to find the MPI include files for cross-compilations HOST1=vpp7 export HOST1 HOST2=vpp5 export HOST2 MPIINC_vpp7=/opt/FSGIvpp/mpi2/include export MPIINC_vpp7 MPIINC_vpp5=/opt/FSGIvpp5000/mpi2/include64 export MPIINC_vpp5 ENV_SYS_HOST1=/ws$ENV_SYS_HOST0 ENV_SYS_HOST2=$ENV_SYS_HOST1 # lvfs on the different hosts: replace 'home' in $HOME by ... see also below lvfshost0=`echo $HOME | sed "s.home.scratch."` if [ "$HOST1" = vpp5 ]; then lvfshost1=`echo $HOME | sed "s.home.vpp5000/tmp."` elif [ "$HOST1" = vpp7 ]; then lvfshost1=`echo $HOME | sed "s.home.vpp700/tmp."` fi if [ "$HOST2" = vpp5 ]; then lvfshost2=`echo $HOME | sed "s.home.vpp5000/tmp."` elif [ "$HOST2" = vpp7 ]; then lvfshost2=`echo $HOME | sed "s.home.vpp700/tmp."` fi else HOST0=void fi export ENV_SYS_HOST0 ENV_SYS_HOST1 ENV_SYS_HOST2 SMSNODE=${SMSNODE-$HOST0} # default is to run on HOST0 # at ECMWF, use NFS to access the HIRLAM system on ecgate1 when at HOST1 or 2 if [ $COMPCENTRE = ECMWF ]; then if [ $SMSNODE = ecgate1 ]; then ws_prefix= else ws_prefix=/ws fi fi # 1.1 Set system hard/software CS (Compiling system) and OS (operating system) export CS OS NBITS LSERIAL NHORPH ENDIAN if [ $COMPCENTRE = ECMWF ]; then if [ $SMSNODE = $HOST0 ]; then if [ "$TARGETNODE" = vpp7 ]; then CS=FUJITSU_CROSS elif [ "$TARGETNODE" = vpp5 ]; then CS=FUJITSU_CROSS else CS=SGI77 SGI_IP=IP19 export SGI_IP fi OS=SGI LSERIAL=.false. NHORPH= else CS=FUJITSU OS=$CS LSERIAL=.true. # tihs is a vector machine NHORPH=1024 # vector length fi else # some defaults for other installations than ECMWF CS=SGI77 # choose and implement your own. OS=$CS # operating system is defaulted from CS, except for GNU [ $CS = SGI77 -o $CS = SGI90 ] && OS=SGI [ $CS = G77 -a $OS = $CS ] && { echo Set and implement OS for G77; exit 1; } LSERIAL=.false. # .false. for non-vector machines, .true. for vector NHORPH= # vectorlength, don't use on non-vector machines fi NBITS=32 ENDIAN=BIG # set to LITTLE on little endian OS/CS but NOT on ALPHA # 1.2 Root directories of HIRLAM system if [ $COMPCENTRE = ECMWF ]; then fpfs=$ws_prefix/home/ms/nl/nkg lpfs=/nkg/hirlam2/member else lvfshost0=$SCRATCH # idem, on HOST0 but at ECMWF already defined above lvfshost1= # idem, on HOST1 but at ECMWF already defined above lpfs= # HIRLAM on Large Permanent File System (possibly slow) fpfs= # HIRLAM on Fast Permanent File System (possibly small) fi # 1.3 Root directories of HIRLAM experiments export HL_ARC if [ $COMPCENTRE = ECMWF ]; then if [ $SMSNODE = $HOST0 ]; then home=$HOME else home=/ws$HOME fi HL_ARC=/$USER/hirlam else HL_ARC= # Archive root, in LPFS home=$HOME # home of experiments runs, in FPFS fi # 2. Set HIRLAM variables, and, if for installation, extract export system # 2.1 HIRLAM system location export HL_REF_FS HL_REF_CP HL_UTIL HL_SCR HL_RESOURCES HL_SDOC HL_DOC HL_HTML HIRVDA_ROOT export BUFRTAB_DIR HL_REF_FS=$lpfs # HIRLAM root on large Permanent File System # HL_REF_CP= # copy of HL_REF_FS on large volatile file system # HL_REF_CP may coincide with HL_REF_FS if [ $COMPCENTRE = ECMWF ]; then HL_REF_CP=$ws_prefix/home/ms/nl/nkg/hl_ref_cp else if [ $SMSNODE = $HOST0 ]; then HL_REF_CP=$lvfshost0/hl_ref_cp elif [ $SMSNODE = "$HOST1" ]; then HL_REF_CP=$lvfshost1/hl_ref_cp elif [ $SMSNODE = "$HOST2" ]; then HL_REF_CP=$lvfshost2/hl_ref_cp fi fi if [ $COMPCENTRE = ECMWF ]; then HL_UTIL=/home/ms/nl/nkg/hl_util # on each host, no NFS because of binaries HL_SCR=$ws_prefix/home/ms/nl/nkg/hl_scr_5.0.2 HIRVDA_ROOT=$ws_prefix/home/ms/dk/nhc/hirvda/hirvda.4.4.2 else HL_UTIL=$fpfs/hl_util # directory with utilities HL_SCR=$fpfs/hl_scr_5.0.2 # directory with `Munchhausen' scripts HIRVDA_ROOT= # #DVAR root directory fi HL_RESOURCES=$fpfs/hl_resources # directory with resource files HL_SDOC=$HL_RESOURCES/doc # directory with (support) information HL_DOC=http://www.knmi.nl/hirlam/project/Documentation # HIRLAM documentation HL_HTML=$hl_home/hirlam-doc # directory for html documentation BUFRTAB_DIR=$HL_REF_CP # directory with BUFR tables but ... BUFRTAB_DIR=$BUFRTAB_DIR/dat/bufrtables # must end in dat/bufrtables # 2.3 Experiment identifier and directories export HL_WD HL_DATA HL_EXP HL_LIB export HL_DATA_HOST0 HL_DATA_HOST1 HL_DATA_HOST2 # not needed after 5.1.2 EXP=${EXP?"Give 'experiment' identifier EXP before running this script"} HL_WD=$home/$EXP # experiment, user's working directory in FPFS HL_DATA_HOST0=$lvfshost0/$EXP # HL_DATA on main HIRLAM host HL_DATA_HOST1=$lvfshost1/$EXP # idem on HOST1 HL_DATA_HOST2=$lvfshost2/$EXP # idem on HOST2 if [ $SMSNODE = $HOST0 ]; then HL_DATA=$HL_DATA_HOST0 elif [ $SMSNODE = "$HOST1" ]; then HL_DATA=$HL_DATA_HOST1 elif [ $SMSNODE = "$HOST2" ]; then HL_DATA=$HL_DATA_HOST2 fi HL_LIB=$HL_DATA # directory for scripts, compiled objects, executables HL_EXP=$HL_ARC/$EXP # experiment archive directory in LPFS hl_hs=$home/hirlam_scr # user's own scripts directory in FPFS # 2.4 Pseudo-environment file export SETENV SETENV=$HL_WD/ENVIRONMENT # 3. Path export PATH if [ $COMPCENTRE = ECMWF ]; then if [ $SMSNODE = $HOST0 ]; then PATH=/usr/bsd:/usr/bin:/bin:/etc:/usr/etc:/usr/sbin:/usr/local/bin:\ /usr/atria/bin:$HOME/bin:$HOME/bin/sgimips:.:/home/unix/sgimips/bin:\ $HL_WD/scripts:$hl_hs:$HL_LIB/scripts:$HL_UTIL/bin:$HL_SCR:/usr/bin/X11:/usr/local/share # for crosscompilations: if [ `hostname` = ecgate1 ]; then if [ "$TARGETNODE" = vpp7 ]; then . /usr/local/share/ecmwf/use/sh.sgi_vpp elif [ "$TARGETNODE" = vpp5 ]; then . /usr/local/share/ecmwf/use/sh.sgi_vpp5000 fi else PATH=/usr/bin:/usr/ccs/bin:/usr/uxp:/usr/ucb:/usr/lang/bin:/opt/tools/bin:/usr/local/bin:.:$HOME/bin:/home/ma/emos/bin:/home/rd/rdx/bin:$HL_WD/scripts:$hl_hs:$HL_LIB/scripts:/home/ms/nl/nkg/hl_util/bin:$HL_SCR fi else PATH=$PATH:$HL_WD/scripts:$hl_hs:$HL_LIB/scripts:$HL_UTIL/bin:$HL_SCR fi # 4. Utilities # 4.1 for the main unix platform export MAKE CO MKDIR WHENCE MAKE=gmake MAKE_COMPILE="-j 1" export MAKE_COMPILE # parallel compilations by $MAKE - but be cowardly CO=$HL_UTIL/bin/co MKDIR="mkdir -p" WHENCE=whence # 4.2 For (mini-)SMS export SMSMETER SMSMETER=$HL_LIB/scripts/smsmeter # 5. Preparative actions [ "$bvn" = 5.1.2 -o -d $HL_DATA ] || $MKDIR $HL_DATA # 6. Operating system dependants # 6.1 To run scripts export NAMLIS_E NAMLIS_E='&end' # string to end a namelist [ $CS = FUJITSU ] && NAMLIS_E='/' # 6.2 System libraries export ECLIB SCILIB ECLIB= # ${EMOSLIB-~emos/lib/libemos.R32.D64.I32.a} # probably never used! SCILIB= # /usr/lib/libveclib.a # libs with BLAS/EISPACK, white space separated # only used if relevant cpp define options are set # 6.3 HDF export HDFINCDIR HDFLIBDIR HDFLIBS if [ $COMPCENTRE = ECMWF ]; then if [ $SMSNODE = $HOST0 ]; then hdf=/home/unix/HDF4.1r2 HDFINCDIR=$hdf/include HDFLIBDIR=$hdf/lib HDFLIBS="-lmfhdf -ldf -lz" else HDFINCDIR=/usr/local/include/hdf HDFLIBDIR=/usr/local/lib/hdf HDFLIBS="-lmfhdf -ldf -ljpeg -lz -Wl,-dy -lnsl" fi else hdf= HDFINCDIR=$hdf/include HDFLIBDIR=$hdf/lib HDFLIBS="-lmfhdf -ldf -lz" fi # 6.4 MPI # export LAMHOME LAMHOSTS # LAMHOME=${LAMHOME-/usr/people/moene/lammpi} # PATH=$PATH:$LAMHOME/bin # LAMHOSTS=${LAMHOSTS-$LAMHOME/boot/bhost.def} # export MPILIB MPIINC # this line required for MPI if [ $COMPCENTRE = ECMWF ]; then # MPILIB="-Wl,-P -L/usr/lang/mpi/lib -lmpi -L/opt/tools/lib -lmp2x" if [ $SMSNODE = vpp7 ]; then MPILIB="-Wl,-P -L/usr/lang/mpi2/lib -lmpi -lmp -L/usr/lang/lib -l cvp" elif [ $SMSNODE = vpp5 ]; then MPILIB="-L/usr/lang/mpi2/lib64 -Wl,-P -lmpi -lmp" fi export MPILIB fi # 6.5 mini-SMS export PERLTKDIR # the perl-Tk toolkit if [ $COMPCENTRE = ECMWF ]; then PERLTKDIR=/home/ms/nl/nkg/hl_util/perltk else PERLTKDIR= fi # 8. Derived environment variables # 9. Obsolescing export HL_COMDAT HL_COMDAT=$HL_DATA/..