Skip to content
Snippets Groups Projects
configure 12.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/ksh
    
    #MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
    #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
    #MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt  
    #MNH_LIC for details. version 1.
    
    #set -x
    #set -e
    if [ "x$XYZ" = "x" ]
    then
    #
    
    export VERSION_MASTER=${VERSION_MASTER:-MNH-V5-1}
    
    export VERSION_BUG=${VERSION_BUG:-2}
    
    export VERSION_XYZ=${VERSION_XYZ:-${VERSION_MASTER}-${VERSION_BUG}}
    export VERSION_DATE=${VERSION_DATE:-"11/12/2013"}
    export VERSION_CDF=${VERSION_CDF-"3.6.3"}
    export VERSION_GRIBAPI=${VERSION_GRIBAPI-"1.9.9"}
    export MNH_INT=${MNH_INT-"I4"}
    #
    export NEED_TOOLS=YES
    #
    export LOCAL=${PWD%/src}
    RACINE=$(basename $LOCAL )
    #
    cd ${LOCAL}/conf
    #
    TARG=$(uname -s -n)
    #
    case "$TARG" in
    'Linux service'*)
                    export     ARCH=${ARCH:-LXifort}
                    export  VER_MPI=${VER_MPI:-MPIICE}
    		export NEED_NCARG=${NEED_NCARG:-YES}
                    export MVWORK=${MVWORK:-NO}
    	        domain=$(grep .fr /etc/hosts | head -1 )
                    case "${domain}" in
    *cines*) # jade
                    export OPTLEVEL=${OPTLEVEL:-O2}
                    export MVWORK=${MVWORK:-NO}
    		export VER_CDF=${VER_CDF:-CDFICE}
    		export NEED_NCARG=${NEED_NCARG:-YES}
                    export MNHENV=${MNHENV:-"
    module rm netcdf ; module load netcdf/4.0
    module rm MPT    ; module load MPT/2.02
    module rm intel  ; module load intel/12.0.13
    export MPI_DSM_CPULIST=0-7:allhosts
    "}
    ;;
    *cict*)  # hyperion
                    export OPTLEVEL=${OPTLEVEL:-DEBUG}
    		export VER_CDF=${VER_CDF:-CDFAUTO}
                    export MNHENV=${MNHENV:-"
    . /usr/share/modules/init/bash
    module purge
    module load intel-fc-10/10.1.017
    module load sgi-mpt/1.26
    export MPI_DSM_CPULIST=0-7:allhosts
    "}
                  ;;
                    esac
                  ;;
    'Linux platine'*|'Linux titane'*|'Linux curie'*)
                    export     ARCH=${ARCH:-LXifort}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O2}
                    export MVWORK=${MVWORK:-NO}
    		export VER_CDF=${VER_CDF:-CDFAUTO}
                  ;;
    'Linux beaufix'*|'Linux compute'*)
                    export     ARCH=${ARCH:-LXifort}
                    export  VER_MPI=${VER_MPI:-MPIINTEL}
                    export OPTLEVEL=${OPTLEVEL:-O3}
                    export MVWORK=${MVWORK:-NO}
                    export MNH_NCWRIT=${MNH_NCWRIT:-MNH_NCWRIT}
    		export VER_CDF=${VER_CDF:-CDFBFIX}
                    export MNHENV=${MNHENV:-"
    module rm intel    ; module load intel/13.1.4.183 ;
    module rm intelmpi ; module load intelmpi/4.1.1.036 ;
    module rm netcdf ; module load netcdf/4.3.0 ;
    module load grib_api/1.9.16 ;
    export GRIBAPI_PATH=/opt/softs/libraries/ICC13.1.4.183/grib_api-1.9.16_libtool
    "}
                  ;;
    'Linux login0'*|'Linux compute'*)
                    export     ARCH=${ARCH:-LXifort}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O3}
                    export MVWORK=${MVWORK:-NO}
    		export VER_CDF=${VER_CDF:-CDFBULL}
                    export MNHENV=${MNHENV:-"
    module rm intel    ; module load intel/13.0.1.117 ;
    module rm intelmpi ; module load intelmpi/4.1.0 ;
    module rm intel-itac ; module load intel-itac/8.0.3
    "}
                  ;;
    'Linux brodie'*|'Linux mercure'*)
                    export     ARCH=${ARCH:-SX8}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O4}
                    export MVWORK=${MVWORK:-YES}
    		export VER_CDF=${VER_CDF:-CDFSX}
                    export MNHENV=${MNHENV:-"
    module rm sxf90  ; module load sxf90/400 ;
    module rm sxmpi  ; module load sxmpi/8.0.10 ;
    module rm netcdf ; module load netcdf/3.6.3
    "}
                  ;;
    'Linux tori'*|'Linux yuki'*)
                    export     ARCH=${ARCH:-SX8}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O4}
                    export MVWORK=${MVWORK:-NO}
                    export MNH_NCWRIT=${MNH_NCWRIT:-MNH_NCWRIT}
    		export VER_CDF=${VER_CDF:-CDFMFSX}
    		export NEED_NCARG=${NEED_NCARG:-NO}
    		export VERSION_GRIBAPI="1.9.9"
    export MNHENV=${MNHENV:-"
    export GRIBAPI_PATH=/usr/local/SX/grib_api/
    "}
                  ;;
    'Linux babel'*)
                    export     ARCH=${ARCH:-BGQ}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O2}
                    export MVWORK=${MVWORK:-YES}
                    export MNHENV=${MNHENV:-"
    module load netcdf/3.6.3
    "}
                   ;;
    'Linux turing'*)
                    export     ARCH=${ARCH:-BGQ}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O2NAN}
                    export MVWORK=${MVWORK:-YES}
    		export VER_CDF=${VER_CDF:-CDFBGQ}
                    export MNHENV=${MNHENV:-"
    source /bglocal/fe/pub/Modules/default/init/bash
    export MODULEPATH=/bghome/rech/mnh/rmnh007/my_modules:\$MODULEPATH
    module purge
    module load ibmcmp/V1R2M0/14.01.0000.0002/gcc.legacy
    export VER_GA=ga-mpi-5-0-3
    module load ga/\${VER_GA}
    "}
                  ;;
    'Linux ada'*)
                    export     ARCH=${ARCH:-LXifort}
                    export  VER_MPI=${VER_MPI:-MPIINTEL}
                    export OPTLEVEL=${OPTLEVEL:-O2}
                    export MVWORK=${MVWORK:-YES}
                    export MNHENV=${MNHENV:-"
    #export OBJDIR_PATH=$WORKDIR/DIR_OBJ_ADA
    export MP_MPILIB=pempi
    module load netcdf/seq/4.1.3
    "}
                  ;;
    AIX*)
                    export MNH_ARCH=`echo $ARCH | grep AIX`
                    export     ARCH=${MNH_ARCH:-AIX64}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-O2}
                    export MVWORK=${MVWORK:-NO}
    		export VER_CDF=${VER_CDF:-CDFAIX}
                    case "$(hostname)" in
                          vargas*)
                          export MNHENV=${MNHENV:-"
    module rm fortran ; module load fortran/13.1.0.7
    module rm netcdf  ; module load netcdf/3.6.3
    "}
                          ;;
                          c1a*)
    		      export VERSION_GRIBAPI="1.9.9"
                          export MNHENV=${MNHENV:-"
    . /usr/local/apps/module/init/sh.in
    module rm fortran ; module load fortran/xlf/13.1.0.7
    module rm netcdf  ; module load netcdf/3.6.3
    export CDF_PATH=/usr/local/apps/netcdf/3.6.3/LP64
    export GRIBAPI_PATH=/usr/local/lib/metaps/lib/grib_api/${VERSION_GRIBAPI}
    export LIB_GRIBAPI='${GRIB_API_LIB}'
    "}
                          ;;
                          c2a*)
    		      export VERSION_GRIBAPI="2.0.0"
                          export MNHENV=${MNHENV:-"
    . /usr/local/apps/module/init/sh.in
    module rm fortran ; module load fortran/xlf/13.1.0.9
    module rm netcdf  ; module load netcdf/3.6.3
    export CDF_PATH=/usr/local/apps/netcdf/3.6.3/LP64
    export GRIBAPI_PATH=/usr/local/lib/metaps/lib/grib_api/${VERSION_GRIBAPI}
    export LIB_GRIBAPI='${GRIB_API_LIB}'
    "}
                          ;;
                     esac
                  ;;
    'Linux sxmnh1') #CNRM ifort sur sxmnh1 (diff mandriva)
                    export    OMPI_FC=ifort
                    export       ARCH=${ARCH:-LXifort}
                    export    VER_MPI=${VER_MPI:-MPIAUTO}
                    export   OPTLEVEL=${OPTLEVEL:-DEBUG}
                    export     MVWORK=${MVWORK:-NO}
                    export    VER_CDF=${VER_CDF:-CDFCTI}
                    export NEED_NCARG=${NEED_NCARG:-NO}
                    export NEED_TOOLS=NO
                  ;;
    'Linux lx'*|'Linux sx'*|'Linux px'*) #CNRM
                    export MNH_ARCH=`echo $ARCH | grep LX`
                    export     ARCH=${MNH_ARCH:-LXgfortran}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-DEBUG}
                    export MVWORK=${MVWORK:-NO}
                    export VER_CDF=${VER_CDF:-CDFCTI}
    		export NEED_NCARG=${NEED_NCARG:-NO}
    		export NEED_TOOLS=NO
                  ;;
    'Linux nuwa'*)
                    export     ARCH=${ARCH:-LXifort}
                    export  VER_MPI=${VER_MPI:-MPIAUTO}
                    export OPTLEVEL=${OPTLEVEL:-DEBUG}
                    export MVWORK=${MVWORK:-NO}
    		export VER_CDF=${VER_CDF:-CDFAUTO}
    		export NEED_NCARG=${NEED_NCARG:-YES}
                          export MNHENV=${MNHENV:-"
    . /opt/intel/fce/10.1.021/bin/ifortvars.sh
    export MPI_ROOT=/usr/local/OpenMPI/1.6.3/ifort10.1.021
    export PATH=\$MPI_ROOT/bin:\$PATH
    export LD_LIBRARY_PATH=\$MPI_ROOT/lib64:\$LD_LIBRARY_PATH
    export MANPATH=\$MPI_ROOT/share/man:\$MANPATH
    "}
                  ;;
    Linux*)
                    export     ARCH=${ARCH:-LXgfortran}
                    export  VER_MPI=${VER_MPI:-MPIVIDE}
                    export OPTLEVEL=${OPTLEVEL:-DEBUG}
                    export MVWORK=${MVWORK:-NO}
    		#export VER_CDF=${VER_CDF:-CDFGFOR}
    		export VER_CDF=${VER_CDF:-CDFAUTO}
    		export NEED_NCARG=${NEED_NCARG:-YES}
                  ;;
    *)
                    echo "WARNING ; system not yet tested "
                    echo "WARNING ; edit profile_mesonh & set correct variables ARCH , VER_MPI & OPTLEVEL "
    
                    export     ARCH=${ARCH}
                    export  VER_MPI=${VER_MPI:-MPIVIDE}
                    export OPTLEVEL=${OPTLEVEL:-DEBUG}
                  ;;
    esac
    ##
    ## Environnement for scandollar
    ##
    
    if [ "x${CONF_DOLLAR}" = "x" ] ; then
    # set default value for CONF_DOLLAR file
    case "$(hostname)" in
      tori*|yuki*)
            export POSTCONF=confdollar_dsinec_default
            ;;
    
      lx*|px*|sx*)
            export POSTCONF=confdollar_cnrmpc_default
            ;;
    
      aeropc*)
            export POSTCONF=confdollar_aeropc_default
    
            ;;
    
      brodie*)
            export POSTCONF=confdollar_brodie_default
    
            ;;
    
      vargas*)
            export POSTCONF=confdollar_vargas_default
            ;;
    
      c1a*)
            export POSTCONF=confdollar_c1a_default
            ;;
    
      service*)
            export POSTCONF=confdollar_jade_default
            ;;
    
      babel*)
            export POSTCONF=confdollar_babel_default
            ;;
      turing*)
            export POSTCONF=confdollar_turing_default
            ;;
     titane*|curie*)
            export POSTCONF=confdollar_titane_default
            ;;
    
      *)
            export POSTCONF=confdollar_aeropc_default
            ;;
    esac
    
    export CONF_DOLLAR=${LOCAL}/conf/post/${POSTCONF}
    
    fi
    
    #
    #  Install 32/64 mesonh tools
    #
    if [ "x${NEED_TOOLS}" == "xYES" ] ; then
      case "$(uname -m)" in
      'x86_64')
    	  export BIN_TOOLS=${BIN_TOOLS:-X86_64}
    	   ;;
      'x86'|'i'*'86')
              export BIN_TOOLS=${BIN_TOOLS:-X86}
    	   ;;
      esac
    fi
    
    #
    # Generate profile_mesonh
    #
    ${LOCAL}/bin/eval_dollar  profile_mesonh.ihm > profile_mesonh
    chmod +x profile_mesonh
    XYZ=${ARCH}${MNH_REAL}${MNH_INT}-${VERSION_XYZ}${VER_USER:+-${VER_USER}}-${VER_MPI}-${OPTLEVEL}
    cp profile_mesonh profile_mesonh-${XYZ}
    #
    #  Do some post-install stuff
    #
    if [ ${MVWORK} == "YES" ] ; then
       if [ "x${WORKDIR}" == "x" ] ; then
         echo "ATTENTION :: configure !!!!!"
         echo
         echo '  ---> vous n avez pas initialiser la variable $WORKDIR '
         echo '  ---> ou seront stoké les binaires et cas tests '
         echo '  ---> initialisez la et relance "./configure"'
         exit 1
       fi
       if [ -d $WORKDIR ] && [ ${LOCAL} == ${LOCAL##/work} ] ; then
    #  if we are not allready in the workdir --> move stuff
          WORK=$WORKDIR/${RACINE}_WORKDIR
          mkdir -p ${WORK}
          for dir in MY_RUN exe pub
          do
             [ -d $LOCAL/${dir} ] && [ ! -L $LOCAL/${dir} ] \
              && mv $LOCAL/${dir} ${WORK}/. \
              && ln -s ${WORK}/${dir} $LOCAL/.
          done
       fi
    fi
    if [ "x${NEED_NCARG}" != "xNO" ] ; then
    ( cd $LOCAL/pub ; [ ! -d ncl_ncarg-5.2.1.Linux_x86_64 ] && tar xvfz ncl_ncarg-5.2.1.Linux_x86_64.tar.gz )
    fi
    
    #
    #  Install CDF if VER_CDF=CDFAUTO
    #
    if [ "x${VER_CDF}" == "xCDFAUTO" ] ;then
    ( cd $LOCAL/src/LIB ; [ ! -d netcdf-${VERSION_CDF} ] && tar xvfz netcdf-${VERSION_CDF}.tar.gz )
    fi
    #
    #  Install GRIBAPI
    #
    cd $LOCAL/src/LIB ; [ ! -d grib_api-${VERSION_GRIBAPI} ] && [ -f grib_api-${VERSION_GRIBAPI}.tar.gz ] && gunzip -c grib_api-${VERSION_GRIBAPI}.tar.gz |tar -xvf -
    ##########################################################
    #                                                        #
    #      RESUME                                            #
    #                                                        #
    ##########################################################
    
    echo  ARCH=${ARCH}
    echo  VER_MPI=${VER_MPI}
    echo  VER_USER=${VER_USER-" pas de version user ..."}
    echo  OPTLEVEL=${OPTLEVEL}
    echo  CONF_DOLLAR=${CONF_DOLLAR}
    echo  VER_CDF=${VER_CDF}
    echo  BIN_TOOLS=${BIN_TOOLS}
    echo
    echo  "---> XYZ=${XYZ}"
    echo
    echo "création du fichier -->  ../conf/profile_mesonh-${XYZ}"
    echo
    ##########################################################
    #                                                        #
    # ENVIRONEMENT MESONH ALLREADY SET                       #
    #                                                        #
    ##########################################################
    else
    clear
    echo
    echo "ATTENTION :: configure !!!!!"
    echo
    echo '  ---> vous avez déjà initialisé votre environnement MESONH sur cette version'
    echo '  ---> $XYZ="'$XYZ'"'
    echo
    echo "Vérifiez votre fichier '.profile'" ou "'.bashrc'"  !!!
    echo
    echo "  ---> mettez en commentaire la ligne '. ../profile_mesonh...' "
    echo "  ---> relogger vous sur une autre session et relancer ./configure "
    echo
    echo "Fichier 'profile_mesonh' non modifié !!! "
    echo
    exit 1
    fi