source: BOL/script_install/install.sh @ 2142

Last change on this file since 2142 was 2127, checked in by Laurent Fairhead, 10 years ago

Modifications nécessaires pour les nouvelles révisions d'ORCHIDEE


Modifications needed for new revisions of ORCHIDEE

File size: 20.3 KB
RevLine 
[1588]1#!/bin/bash
2
3###########################################################################
[1708]4# Author : Frédéric Hourdin/LMD/hourdin@lmd.jussieu.fr
[1588]5# Usage  : install.sh
6#
[1708]7# bash installation script of the LMDZ model on a Linux PC.
8# the model is downloaded in the following direcory tree
[1588]9# $MODEL/modipsl/modeles/...
[1708]10# using the "modipsl" infrastructure created by the "IPSL"
11# for coupled (atmosphere/ocean/vegetation/chemistry) climate modeling
12# activities.
13# Here we only download atmospheric (LMDZ) and vegetation (ORCHIDEE)
14# components.
[1588]15#
[1708]16# The sources of the models can be found in the "modeles" directory.
17# In the present case, LMDZ5, ORCHIDEE and IOIPSL (handling of input-outputs
18# using the NetCDF library.
[1588]19#
[1708]20# The script downloads various source files (including a version of NetCDF)
21# and utilities, compiles the model, and runs a test simulation in a
22# munimal configuration.
[1588]23#
[1708]24# Prerequisites : g95/pgf90/gfortran, ksh, wget , gunzip, tar, ...
[1588]25#
[1589]26# Modif 18/11/2011
[1708]27#    changes for option real 8.
28#      We comopile with -r8 (or equivalent) and -DNC_DOUBLE for the GCM
29#      but with -r4 for netcdf. Variable real must be set to
30#      r4 or r8 at the beginning of the script below.
[1589]31#
[1588]32###########################################################################
33
[2030]34echo install.sh DEBUT `date`
[2031]35
[1911]36set -e
37
[1588]38echo '################################################################'
[1708]39echo  Choice of installation options
[1588]40echo '################################################################'
41
42
[1590]43#real=r4
[1589]44real=r8
45
[1708]46# WARNING !!!! For versions before october 2009, use
47# install.v2.sh instead of install.sh
[1588]48
[1800]49version=20130716.trunk
[1693]50version=testing
[2031]51compilo=gfortran # compilo=pgf90 or g95 or gfortran or ifort sur PC linux
[1693]52
[1588]53#Chemin pour placer le modele
54MODEL=./LMDZ$version
55
[2031]56
[1588]57getlmdzor=1
58netcdf=1   #  1 for automatic installation
59           #  0 for no installation
60           #  /.../../netcdf-4.0.1 if wanting to link with an already
61           #  compiled netcdf library (implies to check option compatibility)
62check_linux=1
63ioipsl=1
[1693]64veget=1
[1588]65bench=1
66pclinux=1
67
[2031]68# choose the resolution for the bench runs
69# grid_resolution= 32x24x11 or 48x36x19 for tests (test without ORCHIDEE)
70#                  96x71x19  standard configuration
71grid_resolution=48x36x19
[1693]72
[2031]73## compile_with_fcm=1 : use makelmdz_fcm, possible a of version 20111103.trunk (LMDZ5/trunk rev 1578)
74## compile_with_fcm=0 : use makelmdz
[2127]75compile_with_fcm=1
76arch=local
[2031]77
[2127]78sequential=1
[2031]79
[2127]80
[1693]81#####################################################################
82# Test for old gfortran compilers
[2030]83# If the compiler is too old (older than 4.3.x) we test if the
84# temporary gfortran44 patch is available on the computer in which
85# case the compiler is changed from gfortran to gfortran44
86# Must be aware than parallelism can not be activated in this case
87#####################################################################
88
[1693]89if [ $compilo = gfortran ] ; then
[2030]90   gfortran=gfortran
[1693]91   gfortranv=`gfortran --version | \
92   head -1 | awk ' { print $NF } ' | awk -F. ' { print $1 * 10 + $2 } '`
93   if [ $gfortranv -le 43 ] ; then
[1708]94       echo ERROR : Your gfortran compiler is too old
[1693]95       echo 'Please choose a new one (g95, ifort) and change the line'
96       echo compilo=xxx
97       echo in the install.sh script and rerun it
[2030]98       if [ `which gfortran44 | wc -w` -ne 0 ] ; then
99          gfortran=gfortran44
100       else
101          echo gfotran trop vieux ; exit
102       fi
[1693]103   fi
[2030]104   compilo=$gfortran
[1693]105fi
106#####################################################################
107
108
109
[1589]110OPTPREC=""
[1588]111echo '################################################################'
112echo  Choix des options de compilation
113echo '################################################################'
[1589]114
[2031]115OPTIMNC=$OPTIM
116export FC=$compilo
117export F90=$compilo
118export F77=$compilo
119export CPPFLAGS=
120BASE_LD=
[1588]121if [ $compilo = g95 ] ; then
[2031]122# Set the appropriate compilation options
123   OPTIM='-i4 -O3'
124   OPTDEB="-g -O0 -Wall -ftrace=full -fbounds-check -freal=nan"
125   OPTDEV="-g -O1 -Wall"
126   fmod='fmod='
127   BASE_LD=""
[1589]128   if [ $real = r8 ] ; then OPTPREC="-r8 -DNC_DOUBLE" ; fi
[2031]129   export F90FLAGS=" -cpp -ffree-form $OPTIMNC"
130   export FFLAGS=" -cpp $OPTIMNC"
131   export CPPFLAGS=-Df2cFortran
132   export CC=gcc
133   export CXX=g++
[2030]134elif [ $compilo = $gfortran ] ; then
[2031]135   OPTIM='-O3'
136   OPTDEB="-g3 -Wall -fbounds-check -ffpe-trap=invalid,zero,overflow -O0 -fstack-protector-all"
137   OPTDEV="-Wall -fbounds-check"
138   fmod='I '
[1589]139   if [ $real = r8 ] ; then OPTPREC="-fdefault-real-8 -DNC_DOUBLE" ; fi
[2031]140   export F90FLAGS=" -ffree-form $OPTIMNC"
141   export FFLAGS=" $OPTIMNC"
142   export CC=gcc
143   export CXX=g++
144elif [ $compilo = mpif90 ] ; then
[1589]145   OPTIM='-O3'
[2031]146   OPTDEB="-g3 -Wall -fbounds-check -ffpe-trap=invalid,zero,overflow -O0 -fstack-protector-all"
147   OPTDEV="-Wall -fbounds-check"
148   BASE_LD="-lblas"
149   fmod='I '
150   if [ $real = r8 ] ; then OPTPREC="-fdefault-real-8 -DNC_DOUBLE -fcray-pointer" ; fi
151   export F90FLAGS=" -ffree-form $OPTIMNC"
152   export FFLAGS=" $OPTIMNC"
153   export CC=gcc
154   export CXX=g++
[1590]155elif [ $compilo = pgf90 ] ; then
[2031]156   OPTIM='-O2 -Munroll -Mnoframe -Mautoinline -Mcache_align'
157   fmod='module '
[1590]158   if [ $real = r8 ] ; then OPTPREC="-r8 -DNC_DOUBLE" ; fi
[2031]159   export CPPFLAGS="-DNDEBUG -DpgiFortran"
160   export CC=pgcc
161   export CFLAGS="-Msignextend"
162   export CXX=pgCC
163   export CXXFLAGS="-Msignextend"
164   export FFLAGS="$OPTIMNC"
165   export F90FLAGS="$OPTIMNC"
[1590]166   compile_with_fcm=1
[2031]167elif [ $compilo = ifort ] ; then
168   OPTIM="-O2 -fp-model strict -ip -align all "
169   OPTDEV="-p -g -O2 -traceback -fp-stack-check -ftrapuv -check"
170   OPTDEB="-g -no-ftz -traceback -ftrapuv -fp-stack-check -check"
171   fmod='module '
[1590]172   if [ $real = r8 ] ; then OPTPREC="-real-size 64 -DNC_DOUBLE" ; fi
[2031]173   export CPP="icc -E"
174   export FFLAGS="-O2 -ip -fpic -mcmodel=large"
175   export FCFLAGS="-O2 -ip -fpic -mcmodel=large"
176   export CC=icc
177   export CFLAGS="-O2 -ip -fpic -mcmodel=large"
178   export CXX=icpc
179   export CXXFLAGS="-O2 -ip -fpic -mcmodel=large"
[1590]180   compile_with_fcm=1
[2031]181else
182   echo unexpected compiler $compilo ; exit
[1588]183fi
[2031]184
[1589]185OPTIMGCM="$OPTIM $OPTPREC"
[1588]186
187hostname=`hostname`
188
189##########################################################################
[1731]190# If installing on know machines such as IBM x3750 (Ada)
[1708]191# at IDRIS, don't check for available software and don"t install netcdf
[1777]192if [ ${hostname:0:5} = ada33 ] ; then
[1731]193  netcdf=0 # no need to recompile netcdf, alreday available
194  check_linux=0
195  pclinux=0
196  ioipsl=0 # no need to recompile ioipsl, already available
197  #netcdf="/smplocal/pub/NetCDF/4.1.3"
198  compilo="ifort"
199  fmod='module '
200  if [ $real = r8 ] ; then OPTPREC="-real-size 64 -DNC_DOUBLE" ; fi
201  OPTIM="-O2 -fp-model strict -ip -axAVX,SSE4.2 -align all "
202  OPTIMGCM="$OPTIM $OPTPREC"
[1588]203fi
204##########################################################################
205
206
207mkdir -p $MODEL
208echo $MODEL
[1708]209MODEL=`( cd $MODEL ; pwd )` # to get absolute path, if necessary
[1588]210
211
212
[1708]213# Option -fendian=big is only to be used with ARPEGE1D.
214# The -r8 should probably be avoided if running on 32 bit machines
215# Option r8 is not mandatory and generates larger executables.
216# It is however mandatory if using ARPEGE1D
217# Better optimization options might be a better choice (e.g. -O3)
[1588]218
219
220echo '################################################################'
221if [ "$check_linux" = 1 ] ; then
[1708]222echo   Check if required software is available
[1588]223echo '################################################################'
224
225#### Ehouarn: test if ksh and/or bash are available
226use_shell="ksh" # default: use ksh
227if [ "`which ksh`" = "" ] ; then
[1708]228  echo "no ksh ... we will use bash"
[1588]229  use_shell="bash"
230  if [ "`which bash`" = "" ] ; then
[1708]231    echo "ksh (or bash) needed!! Install it!"
[1588]232  fi
233fi
234
235
236for logiciel in csh wget tar gzip make $compilo gcc ; do
237if [ "`which $logiciel`" = "" ] ; then
[1708]238echo You must first install $logiciel on your system
[1588]239exit
240fi
241done
242
243if [ $pclinux = 1 ] ; then
244cd $MODEL
[2030]245cat <<eod > tt.f90
[1588]246print*,'coucou'
247end
248eod
[1708]249$compilo tt.f90 -o a.out
[1588]250./a.out >| tt
251if [ "`cat tt | sed -e 's/ //g' `" != "coucou" ] ; then
[1708]252echo problem installing with compiler $compilo ; exit ; fi
[1588]253\rm tt a.out tt.f90
254fi
255fi
256
257###########################################################################
258if [ $getlmdzor = 1 ] ; then
259echo '##########################################################'
[1708]260echo  Download a slightly modified version of  LMDZ
[1588]261echo '##########################################################'
262cd $MODEL
263wget http://www.lmd.jussieu.fr/~lmdz/DistribG95/modipsl.$version.tar.gz
[2030]264echo install.sh wget_OK `date`
[1588]265gunzip modipsl.$version.tar.gz
266tar xvf modipsl.$version.tar
267\rm modipsl.$version.tar
268
[1708]269# We download LMDZ and make some modifications to make it
270#compatible with $compilo
271# and we use an old stable but robust and well tested version of ORCHIDEE
272# That version of ORCHIDEE can be obtained using
[1588]273# wget http://www.lmd.jussieu.fr/~lmdz/DistribG95/getlmdzor.x
274fi
275
276echo OK1
277
278if [ $netcdf = 1 ] ; then
279echo '##########################################################'
[1708]280echo Compiling the Netcdf library
[1588]281echo '##########################################################'
282cd $MODEL
283wget http://www.lmd.jussieu.fr/~lmdz/DistribG95/netcdf-4.0.1.tar.gz
284gunzip netcdf-4.0.1.tar.gz
285tar xvf netcdf-4.0.1.tar
286\rm -f netcdf-4.0.1.tar
287
288cd netcdf-4.0.1
289
[2030]290sed -e 's/gfortran/'$gfortran'/g' configure >| tmp ; mv -f tmp configure ; chmod +x configure
[1588]291localdir=`pwd -P`
292./configure --prefix=$localdir
[2030]293sed -e 's/gfortran/'$gfortran'/g' Makefile >| tmp ; mv -f tmp Makefile
[1588]294make check
295make install
[2030]296echo install.sh netcdf_OK `date`
[1731]297fi # of if [ $netcdf = 1 ]
[1588]298
[2030]299
[1800]300#=======================================================================================
[1588]301echo OK2 ioipsl=$ioipsl
302echo '##########################################################'
[1731]303echo 'Installing MODIPSL, the installation package manager for the '
304echo 'IPSL models and tools'
[1588]305echo '##########################################################'
306
307if [ $netcdf = 0 -o $netcdf = 1 ] ; then
308ncdfdir=$MODEL/netcdf-4.0.1
309else
310ncdfdir=$netcdf
311fi
312
313if [ $ioipsl = 1 ] ; then
[1731]314  cd $MODEL/modipsl
[2030]315  \rm -rf lib/*
[2031]316
[1731]317  cd util
[1588]318
[1731]319  cp AA_make.gdef AA_make.orig
[2031]320  F_C="$compilo -c " ; if [ "$compilo" = "$gfortran" -o "$compilo" = "mpif90" ] ; then F_C="$compilo -c -cpp " ; fi
[1731]321  sed -e 's/^\#.*.g95.*.\#.*.$/\#/' AA_make.gdef > tmp
[1800]322  sed -e "s:F_L = g95:F_L = $compilo:" -e "s:F_C = g95 -c:F_C = $F_C": \
[1731]323  -e 's/g95.*.w_w.*.(F_D)/g95      w_w = '"$OPTIMGCM"'/' \
324  -e 's:g95.*.NCDF_INC.*.$:g95      NCDF_INC= '"$ncdfdir"'/include:' \
325  -e 's:g95.*.NCDF_LIB.*.$:g95      NCDF_LIB= -L'"$ncdfdir"'/lib -lnetcdf:' \
326  -e "s:-fmod=:-$fmod:" -e 's/-fno-second-underscore//' \
327  -e 's:#-Q- g95      M_K = gmake:#-Q- g95      M_K = make:' \
328  tmp >| AA_make.gdef
[1588]329
330
[1731]331  if [ "$use_shell" = "ksh" ] ; then
332    if [ "$pclinux" = 1 ] ; then
333       ./ins_make -t g95 # We use lines for g95 even for the other compilers
334    fi
335  else # bash
336    sed -e s:/bin/ksh:/bin/bash:g ins_make > ins_make.bash
337    chmod u=rwx ins_make.bash
338    if [ "$pclinux" = 1 ] ; then
339    ./ins_make.bash -t g95 # We use lines for g95 even for the other compilers
340    else
341    ./ins_make.bash
342    fi
343  fi # of if [ "$use_shell" = "ksh" ]
344
[2031]345#=======================================================================================
[1731]346  echo '##########################################################'
347  echo 'Compiling IOIPSL, the interface library with Netcdf'
348  echo '##########################################################'
349
350  cd $MODEL/modipsl/modeles/IOIPSL/src
351  if [ "$use_shell" = "bash" ] ; then
352    cp Makefile Makefile.ksh
353    sed -e s:/bin/ksh:/bin/bash:g Makefile.ksh > Makefile
[1588]354  fi
355  if [ "$pclinux" = 1 ] ; then
[1731]356    # Build IOIPSL modules and library
[1800]357    if [ $compilo = g95 ] ; then
358       cp restcom.f90 restcom.f90.orig
359       sed -e 's:cmode=or(NF90_NOCLOBBER,NF90_64BIT_OFFSET):cmode=NF90_NOCLOBBER:' restcom.f90.orig > restcom.f90 
360    fi
[1731]361    make clean
362    make
[2031]363    if [ "$compilo" = "$gfortran" -o "$compilo" = "mpif90" ] ; then # copy module files to lib
[1731]364      cp -f *.mod ../../../lib
365    fi
366    # Build IOIPSL tools (ie: "rebuild", if present)
367    if [ -f $MODEL/modipsl/modeles/IOIPSL/tools/rebuild ] ; then
368      cd $MODEL/modipsl/modeles/IOIPSL/tools
369      # adapt Makefile & rebuild script if in bash
370      if [ "$use_shell" = "bash" ] ; then
371        cp Makefile Makefile.ksh
372        sed -e s:/bin/ksh:/bin/bash:g Makefile.ksh > Makefile
373        cp rebuild rebuild.ksh
374        sed -e 's:/bin/ksh:/bin/bash:g' \
375            -e 's:print -u2:echo:g' \
376            -e 's:print:echo:g' rebuild.ksh > rebuild
377      fi
378      make clean
379      make
380    fi
381  fi # of if [ "$pclinux" = 1 ]
[1588]382
[1731]383else # of if [ $ioipsl = 1 ]
[1777]384  if [ ${hostname:0:5} = ada33 ] ; then
[1731]385    cd $MODEL/modipsl
386    cd util
[1588]387
[1731]388    cp AA_make.gdef AA_make.orig
389    sed -e 's/^\#.*.g95.*.\#.*.$/\#/' AA_make.gdef > tmp
390    sed -e "s:F_L = g95:F_L = $compilo:" -e "s:F_C = g95 -c:F_C = $compilo -c": \
391    -e 's/g95.*.w_w.*.(F_D)/g95      w_w = '"$OPTIMGCM"'/' \
392    -e 's:g95.*.NCDF_INC.*.$:g95      NCDF_INC= -I/smplocal/pub/HDF5/1.8.9/seq/include -I/smplocal/pub/NetCDF/4.1.3/include:' \
393    -e 's:g95.*.NCDF_LIB.*.$:g95      NCDF_LIB= -L/smplocal/pub/NetCDF/4.1.3/lib -lnetcdff -lnetcdf:' \
394    -e "s:-fmod=:-$fmod:" -e 's/-fno-second-underscore//' \
395    -e 's:#-Q- g95      M_K = gmake:#-Q- g95      M_K = make:' \
396    tmp >| AA_make.gdef
397
398    ./ins_make -t g95 # We use lines for g95 even for the other compilers
399
400    # on Ada, IOIPSL is already installed in ~rpsl035/IOIPSL_PLUS
401    # so link it to current settings
402    cd $MODEL/modipsl/modeles/
403    \rm -r -f IOIPSL
404    ln -s ~rpsl035/IOIPSL_PLUS IOIPSL
405    cd ..
406    ln -s ~rpsl035/IOIPSL_PLUS/modipsl/bin/* bin/
407    ln -s ~rpsl035/IOIPSL_PLUS/modipsl/lib/* lib/
408
[1777]409  fi # of if [ ${hostname:0:5} = ada33 ]
[2030]410  echo install.sh ioipsl_OK `date`
[1731]411fi # of if [ $ioipsl = 1 ]
412
[2030]413
[1800]414#============================================================================
[1837]415veget_version=false
[1731]416if [ "$veget" = 1 ] ; then
417  echo '########################################################'
418  echo 'Compiling ORCHIDEE, the continental surfaces model '
419  echo '########################################################'
420  cd $MODEL/modipsl/modeles/ORCHIDEE
[2127]421  export ORCHPATH=`pwd`
422  orchidee_rev=`svn info | grep '^Revision' | awk '{print $2}'`
423  echo '########################################################'
424  echo 'Orchidee revision: ', $orchidee_rev
425  echo '########################################################'
[1800]426  echo OKpwd ; pwd
[2127]427  if [ $orchidee_rev -ge 2247 ] ; then
[1837]428     veget_version=orchidee2.0
[2127]429       cd arch
430      sed -e s:"%COMPILER        .*.$":"%COMPILER            $compilo":1 \
431     -e s:"%LINK            .*.$":"%LINK                $compilo":1 \
432     -e s:"%PROD_FFLAGS     .*.$":"%PROD_FFLAGS         $OPTIM":1 \
433     -e s:"%DEV_FFLAGS      .*.$":"%DEV_FFLAGS          $OPTDEV":1 \
434     -e s:"%DEBUG_FFLAGS    .*.$":"%DEBUG_FFLAGS        $OPTDEB":1 \
435     -e s:"%BASE_FFLAGS     .*.$":"%BASE_FFLAGS         $OPTPREC":1 \
436     arch-gfortran.fcm > arch-local.fcm
437     echo "NETCDF_LIBDIR=\"-L${ncdfdir}/lib -lnetcdf\"" > arch-local.path
438     echo "NETCDF_INCDIR=${ncdfdir}/include" >> arch-local.path
439     echo "IOIPSL_INCDIR=$ORCHPATH/../../lib" >> arch-local.path
440     echo "IOIPSL_LIBDIR=$ORCHPATH/../../lib" >> arch-local.path
441     cd ../
442# compiling ORCHIDEE sequential mode
443     ./makeorchidee_fcm -noxios -prod -parallel none -arch local
[1800]444  else
[2127]445     if [ -d src_parallel ] ; then
446       liste_src="parallel parameters global stomate sechiba driver"
447       veget_version=orchidee2.0
448     else
449       # Obsolete, for ORCHIDEE_beton only
450       liste_src="parameters stomate sechiba "
451       # A trick to compile ORCHIDEE depending on if we are using real*4 or real*8
452       cd src_parameters ; \cp reqdprec.$real reqdprec.f90 ; cd ..
453       veget_version=orchidee1.9
454     fi
455     for d in $liste_src ; do src_d=src_$d
456        echo src_d $src_d
457        echo ls ; ls
458        if [ ! -d $src_d ] ; then echo Problem orchidee : no $src_d ; exit ; fi
459        cd $src_d ; \rm -f *.mod make ; make clean
460        make ; if [ "$compilo" = "$gfortran" -o "$compilo" = "mpif90" ] ; then cp -f *.mod ../../../lib ; fi
461        cd ..
462     done
[1800]463  fi
[2030]464  echo install.sh orchidee_OK `date`
[1731]465fi # of if [ "$veget" = 1 ]
[1588]466
[2030]467
[1800]468#============================================================================
[1588]469# Ehouarn: it may be directory LMDZ4 or LMDZ5 depending on tar file...
[1800]470if [ -d $MODEL/modipsl/modeles/LMDZ[45] ] ; then
[1588]471  echo '##########################################################'
[1800]472  echo 'Compiling LMDZ'
[1588]473  echo '##########################################################'
[1800]474  cd $MODEL/modipsl/modeles/LMDZ[45]
[1588]475else
[1800]476  echo "ERROR: No LMDZ4 (or LMDZ5) directory !!!"
477  exit
[1588]478fi
479
480###########################################################
[1708]481# For those who want to use fcm to compile via :
[1588]482#  makelmdz_fcm -arch local .....
483############################################################
484
[2031]485if [ "$pclinux" = "1" ] ; then
486
[1708]487# create local 'arch' files (if on Linux PC):
[1588]488cd arch
[1708]489# arch-local.path file
[1590]490echo "NETCDF_LIBDIR=\"-L${ncdfdir}/lib -lnetcdf\"" > arch-local.path
[2031]491echo OK3
[1590]492echo "NETCDF_INCDIR=-I${ncdfdir}/include" >> arch-local.path
[1588]493echo 'IOIPSL_INCDIR=$LMDGCM/../../lib' >> arch-local.path
494echo 'IOIPSL_LIBDIR=$LMDGCM/../../lib' >> arch-local.path
495echo 'ORCH_INCDIR=$LMDGCM/../../lib' >> arch-local.path
496echo 'ORCH_LIBDIR=$LMDGCM/../../lib' >> arch-local.path
[1708]497# arch-local.fcm file (adapted from arch-linux-32bit.fcm)
[2031]498
499if [ $real = r8 ] ; then FPP_DEF=NC_DOUBLE ; else FPP_DEF="" ; fi
500sed -e s:"%COMPILER        .*.$":"%COMPILER            $compilo":1 \
501    -e s:"%LINK            .*.$":"%LINK                $compilo":1 \
502    -e s:"%PROD_FFLAGS     .*.$":"%PROD_FFLAGS         $OPTIM":1 \
503    -e s:"%DEV_FFLAGS      .*.$":"%DEV_FFLAGS          $OPTDEV":1 \
504    -e s:"%DEBUG_FFLAGS    .*.$":"%DEBUG_FFLAGS        $OPTDEB":1 \
505    -e s:"%BASE_FFLAGS     .*.$":"%BASE_FFLAGS         $OPTPREC":1 \
506    arch-linux-32bit.fcm > arch-local.fcm
507
[1588]508cd ..
[1708]509### Adapt "bld.cfg" (add the shell):
[1588]510whereisthatshell=$(which ${use_shell})
511echo "bld::tool::SHELL   $whereisthatshell" >> bld.cfg
512
[1731]513fi # of if [ "$pclinux" = 1 ]
514
515
516cd $MODEL/modipsl/modeles/LMDZ?
517
[1588]518##################################################################
[1708]519# Compile LMDZ
[1588]520##################################################################
[2030]521echo install.sh avant_compilation `date`
[2127]522if [ $compile_with_fcm = 1 ] ; then makelmdz="makelmdz_fcm -arch $arch" ; else makelmdz=makelmdz ; fi
[2031]523
[2127]524if [ "$sequential" = 1 ] ; then
[2031]525./$makelmdz -d ${grid_resolution} -v $veget_version gcm
[2030]526echo install.sh apres_compilation `date`
[1588]527
[2030]528
[1731]529if [ -f gcm.e ] || [ -f bin/gcm_${grid_resolution}_phylmd_seq_orch.e ] || [ -f bin/gcm_${grid_resolution}_phylmd_seq.e ] ; then
[1588]530echo '##########################################################'
[1731]531echo 'Compilation successfull !! '
[1588]532echo '##########################################################'
533else
[1731]534echo 'Compilation failed !!'
[1588]535exit
536fi
537
538##################################################################
[1708]539# Below, we run a benchmark test (if bench=0)
[1588]540##################################################################
541if [ $bench = 0 ] ; then
542                exit
543fi
544
545echo '##########################################################'
[1731]546echo ' Running a test run '
[1588]547echo '##########################################################'
548
[2030]549\rm -rf BENCH${grid_resolution}
[1588]550bench=bench_lmdz_${grid_resolution}
[2030]551echo install.sh avant_chargement_bench  `date`
[1588]552wget http://www.lmd.jussieu.fr/~lmdz/DistribG95/$bench.tar.gz
[2030]553echo install.sh apres_chargement_bench  `date`
[1588]554gunzip $bench.tar.gz
555tar xvf $bench.tar
556
557if [ -f gcm.e ] ; then 
558    cp gcm.e BENCH${grid_resolution}/
559elif [ -f bin/gcm_${grid_resolution}_phylmd_seq_orch.e ] ; then
560    cp bin/gcm_${grid_resolution}_phylmd_seq_orch.e  BENCH${grid_resolution}/gcm.e
561elif [ -f bin/gcm_${grid_resolution}_phylmd_seq.e ] ; then
562    cp bin/gcm_${grid_resolution}_phylmd_seq.e  BENCH${grid_resolution}/gcm.e
563else
564    echo "No gcm.e found"
565    exit
566fi
567
[2030]568
[1588]569cd BENCH${grid_resolution}
570./bench.sh > bench.out  2>&1
571
[2030]572
[1588]573echo '##########################################################'
[1708]574echo ' Bench results '
[1588]575echo '##########################################################'
576
577cat ./bench.out
[2030]578echo install.sh FIN_du_BENCH  `date`
[1588]579
580echo '##########################################################'
[1708]581echo 'Simulation finished in' `pwd`
582echo 'You may re-run it with : cd ' `pwd` ' ; gcm.e'
583echo 'or ./bench.sh'
[1588]584echo '##########################################################'
[2030]585
[2127]586fi # fin sequential
587
[2031]588if [ "$gfortran" = "gfortran44" ] ; then
[2030]589    echo Your gfortran compiler was too old so that the model was automatically
590    echo compiled with gfortran44 instead. It can not be used in parallel mode.
591    echo You can change the compiler at the begining of the install.sh
592    echo script and reinstall.
593fi
Note: See TracBrowser for help on using the repository browser.