source: BOL/script_install/install.sh @ 2196

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

Rajout d'un test pour savoir si il faut faire un svn upgrade sur ORCHIDEE pour determiner
la release

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