Changeset 1708
- Timestamp:
- Jan 11, 2013, 2:45:05 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
BOL/script_install/install.sh
r1693 r1708 2 2 3 3 ########################################################################### 4 # Aut eur : Frédéric Hourdin/LMD/hourdin@lmd.jussieu.fr4 # Author : Frédéric Hourdin/LMD/hourdin@lmd.jussieu.fr 5 5 # Usage : install.sh 6 6 # 7 # Script bash d'installation du modele LMDZ sur un ordinateur PC/Linux 8 # en utilisant le compilateur g95. 9 # Le modele est récupéré dans une arborescence 7 # bash installation script of the LMDZ model on a Linux PC. 8 # the model is downloaded in the following direcory tree 10 9 # $MODEL/modipsl/modeles/... 11 # en utilisant l'infrastructure "modipsl" mise au point à l'"IPSL" pour12 # les besoins de la modélisation couplée du climat13 # (atmosphere/ocean/vegetation/chimie)14 # On ne récupère ici que les composantes atmosphériques (LMDZ4)15 # et végétation (ORCHIDEE).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. 16 15 # 17 # Sous le répertoire "modeles", on trouve en fait les sources de différents18 # modèles. Ici, LMDZ4, ORCHIDEEet IOIPSL, ensemble de programmes19 # d'entrée/sortie faisant appel à la librairie netcdf.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. 20 19 # 21 # Le script récupères les différents jeux de sources (y compris une 22 # version de netcdf) et utilitaires, compile le modèle, et lance une 23 # simulation de test dans une configuration très légère sur 24 # $MODEL/modipsl/modeles/LMDZ4/INI 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. 25 23 # 26 # Pr é-requis : g95/pgf90/gfortran, ksh, wget , gunzip, tar, ... (à compléter)24 # Prerequisites : g95/pgf90/gfortran, ksh, wget , gunzip, tar, ... 27 25 # 28 26 # Modif 18/11/2011 29 # change ment pour l'option real 8.30 # On compile avec -r8 (ou équivalent) et -DNC_DOUBLE pour le GCM31 # mais avec -r4 netcdf. La variable real est initialisée à32 # r4 o u r8 en début de script.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. 33 31 # 34 32 ########################################################################### 35 33 36 34 echo '################################################################' 37 echo Choi x des options d installation35 echo Choice of installation options 38 36 echo '################################################################' 39 37 … … 42 40 real=r8 43 41 44 # ATTENTION !!!! Pour des versions anterieures a octobre 2009, utiliser45 # install.v2.sh au lieu deinstall.sh46 47 version=20110921.trunk42 # WARNING !!!! For versions before october 2009, use 43 # install.v2.sh instead of install.sh 44 45 #version=20110921.trunk 48 46 version=testing 49 47 … … 61 59 bench=1 62 60 pclinux=1 63 compilo=gfortran # compilo=pgf90 o u g95 ou gfortran ouifort sur PC linux61 compilo=gfortran # compilo=pgf90 or g95 or gfortran or ifort sur PC linux 64 62 65 63 … … 70 68 head -1 | awk ' { print $NF } ' | awk -F. ' { print $1 * 10 + $2 } '` 71 69 if [ $gfortranv -le 43 ] ; then 72 echo ERROR : Your gfo tran compiler is too old70 echo ERROR : Your gfortran compiler is too old 73 71 echo 'Please choose a new one (g95, ifort) and change the line' 74 72 echo compilo=xxx … … 81 79 82 80 83 ## compile_with_fcm=1 : u tilise makelmdz_fcm, possible a partir de laversion 20111103.trunk (LMDZ5/trunk rev 1578)84 ## compile_with_fcm=0 : u tilise makegcm (default)81 ## compile_with_fcm=1 : use makelmdz_fcm, possible a of version 20111103.trunk (LMDZ5/trunk rev 1578) 82 ## compile_with_fcm=0 : use makegcm 85 83 compile_with_fcm=1 86 84 … … 110 108 OPTIMGCM="$OPTIM $OPTPREC" 111 109 112 # cho ix de la resolution pour le bench113 # grid_resolution= 32x24x11 for test(test without ORCHIDEE)110 # choose the resolution for the bench runs 111 # grid_resolution= 32x24x11 or 48x36x19 for tests (test without ORCHIDEE) 114 112 # 96x71x19 standard configuration 115 113 grid_resolution=48x36x19 … … 118 116 119 117 ########################################################################## 120 # Dans le cas où on installe sur des machines connues comme la NEC 121 # brodie 122 # de l'IDRIS, on ne verifie pas les logiciels existants et on n'installe 123 # pas netcdf. 118 # If installing on know machines such as NEC Brodie 119 # at IDRIS, don't check for available software and don"t install netcdf 124 120 if [ $hostname = brodie ] ; then 125 121 netcdf=0 … … 132 128 mkdir -p $MODEL 133 129 echo $MODEL 134 MODEL=`( cd $MODEL ; pwd )` # transformation en chemin absolu si necessaire 135 136 137 138 # Le -fendian=big n'est à utiliser vraiment utile que pour ARPEGE1D. 139 # Le -r8 doit sans doute être éviter si on veut tourner rapidement sur 140 # des machines 32 bits. 141 # L'option r8 n'est pas forcement indispensable et elle produit 142 # des executables plus gros. 143 # Elles est indispensable cependant pour ARPEGE1D 144 # On doit pouvoir aussi utiliser des optimisations plus fortes (-O3 par 145 # exemple). 130 MODEL=`( cd $MODEL ; pwd )` # to get absolute path, if necessary 131 132 133 134 # Option -fendian=big is only to be used with ARPEGE1D. 135 # The -r8 should probably be avoided if running on 32 bit machines 136 # Option r8 is not mandatory and generates larger executables. 137 # It is however mandatory if using ARPEGE1D 138 # Better optimization options might be a better choice (e.g. -O3) 146 139 147 140 148 141 echo '################################################################' 149 142 if [ "$check_linux" = 1 ] ; then 150 echo Test sur les logiciels requis143 echo Check if required software is available 151 144 echo '################################################################' 152 145 … … 154 147 use_shell="ksh" # default: use ksh 155 148 if [ "`which ksh`" = "" ] ; then 156 echo " pas de ksh ... on va utiliserbash"149 echo "no ksh ... we will use bash" 157 150 use_shell="bash" 158 151 if [ "`which bash`" = "" ] ; then 159 echo " Il faut d\'abord installer ksh (ou bash)"152 echo "ksh (or bash) needed!! Install it!" 160 153 fi 161 154 fi … … 164 157 for logiciel in csh wget tar gzip make $compilo gcc ; do 165 158 if [ "`which $logiciel`" = "" ] ; then 166 echo Il faut installer d\'abord $logiciel159 echo You must first install $logiciel on your system 167 160 exit 168 161 fi … … 175 168 end 176 169 eod 177 $compilo tt.f90 170 $compilo tt.f90 -o a.out 178 171 ./a.out >| tt 179 172 if [ "`cat tt | sed -e 's/ //g' `" != "coucou" ] ; then 180 echo problem e avec installation de$compilo ; exit ; fi173 echo problem installing with compiler $compilo ; exit ; fi 181 174 \rm tt a.out tt.f90 182 175 fi … … 189 182 if [ $getlmdzor = 1 ] ; then 190 183 echo '##########################################################' 191 echo On recupere une version un peu modifiee deLMDZ184 echo Download a slightly modified version of LMDZ 192 185 echo '##########################################################' 193 186 cd $MODEL … … 197 190 \rm modipsl.$version.tar 198 191 199 # On recupere en fait une version du 01 10 2006 obtenue 200 # Par un cvs get 201 # Puis modifiees pour etre compatible avec la compilation $compilo. 202 # et pour betoner ORCHIDEE 203 # Cette version est recuperable avec le script 192 # We download LMDZ and make some modifications to make it 193 #compatible with $compilo 194 # and we use an old stable but robust and well tested version of ORCHIDEE 195 # That version of ORCHIDEE can be obtained using 204 196 # wget http://www.lmd.jussieu.fr/~lmdz/DistribG95/getlmdzor.x 205 197 fi … … 209 201 if [ $netcdf = 1 ] ; then 210 202 echo '##########################################################' 211 echo Compil ation de netcdf203 echo Compiling the Netcdf library 212 204 echo '##########################################################' 213 205 cd $MODEL … … 221 213 OPTIMNC=$OPTIM 222 214 if [ $compilo = g95 ] ; then 223 # On modifie les options de compilation215 # Set the appropriate compilation options 224 216 export FC=g95 225 217 export F90=g95 … … 258 250 export CXXFLAGS="-O2 -ip -fpic -mcmodel=large" 259 251 else 260 echo Le compilateur $compilo pas prevu; exit252 echo unexpected compiler $compilo ; exit 261 253 fi 262 254 ## end of if [ $netcdf = 1 ] 263 cd src255 #cd src 264 256 265 257 ### Correction d'un petit probleme de netcdf … … 278 270 echo OK2 ioipsl=$ioipsl 279 271 echo '##########################################################' 280 echo Install ation de MODIPSL, la procedure d\'installation des281 echo modeles de l\'IPSL272 echo Installing MODIPSL, the installation package manager for the 273 echo IPSL models and tools 282 274 echo '##########################################################' 283 275 … … 316 308 if [ "$use_shell" = "ksh" ] ; then 317 309 if [ "$pclinux" = 1 ] ; then 318 ./ins_make -t g95 # On utilise les lignes g95 meme pour les autres compilo310 ./ins_make -t g95 # We use lines for g95 even for the other compilers 319 311 fi 320 312 else # bash … … 322 314 chmod u=rwx ins_make.bash 323 315 if [ "$pclinux" = 1 ] ; then 324 ./ins_make.bash -t g95 # On utilise les lignes g95 meme pour les autres compilo316 ./ins_make.bash -t g95 # We use lines for g95 even for the other compilers 325 317 else 326 318 ./ins_make.bash … … 329 321 330 322 echo '##########################################################' 331 echo Compil ation de IOIPSL, bibliotheque d\'interface avec Netcd323 echo Compiling IOIPSL, the interface library with Netcdf 332 324 echo '##########################################################' 333 325 … … 367 359 if [ "$veget" = 1 ] ; then 368 360 echo '########################################################' 369 echo Compil ation de ORCHIDEE, modele des surface continentales361 echo Compiling ORCHIDEE, the continental surfaces model 370 362 echo '########################################################' 371 363 cd $MODEL/modipsl/modeles/ORCHIDEE 372 364 cd src_parameters 373 # Une petite astuce pour ORCHIDEE suivant qu'on est en real*4 oureal*8365 # A trick to compile ORCHIDEE depending on if we are using real*4 or real*8 374 366 375 367 … … 402 394 if [[ -d $MODEL/modipsl/modeles/LMDZ5 ]] ; then 403 395 echo '##########################################################' 404 echo 'Compil ation deLMDZ5'396 echo 'Compiling LMDZ5' 405 397 echo '##########################################################' 406 398 cd $MODEL/modipsl/modeles/LMDZ5 … … 411 403 fi 412 404 405 ########################################################## 406 # Traitement momentanne a cause d'un bug dans makegcm 407 cp create_make_gcm create_make_gcm.orig 408 nl=`sed -n -e /PROGRAM/= create_make_gcm.orig | tail -1` 409 sed -e "$nl s/ PROGRA/PROGRA/" create_make_gcm.orig >| create_make_gcm 410 411 #mv -f tmp crea 413 412 if [ "$pclinux" = 1 ] ; then 414 413 if [ $compilo = gfortran ] ; then … … 423 422 -e 's/-fno-second-underscore//' -e 's/-fstatic//' \ 424 423 -e 's/-lparallel//' \ 424 -e 's/-lnetcdff//g' \ 425 425 -e 's/-lorglob//' \ 426 426 -e 's/-ffixed-form//' -e 's/-ffree-form//' \ … … 437 437 -e 's/-fno-second-underscore//' -e 's/-fstatic//' \ 438 438 -e 's/-lparallel//' \ 439 -e 's/-lnetcdff//g' \ 439 440 -e 's/-lorglob//' \ 440 441 -e 's/-ffixed-form//' -e 's/-ffree-form//' \ … … 449 450 -e 's/-fno-second-underscore//' -e 's/-fstatic//' \ 450 451 -e 's/-lparallel//' \ 452 -e 's/-lnetcdff//g' \ 451 453 -e 's/-lorglob//' \ 452 454 -e 's/-ffixed-form//' -e 's/-ffree-form//' \ … … 466 468 467 469 ########################################################### 468 # Pour ceux qui voudraient utiliser fcm et pouvoir faire:470 # For those who want to use fcm to compile via : 469 471 # makelmdz_fcm -arch local ..... 470 472 ############################################################ 471 473 472 474 if [ "$pclinux" = 1 ] ; then 473 # creat ion de fichiers 'arch' locaux (si sur PC Linx):475 # create local 'arch' files (if on Linux PC): 474 476 cd arch 475 # fichier arch-local.path477 # arch-local.path file 476 478 echo "NETCDF_LIBDIR=\"-L${ncdfdir}/lib -lnetcdf\"" > arch-local.path 477 479 echo "NETCDF_INCDIR=-I${ncdfdir}/include" >> arch-local.path … … 480 482 echo 'ORCH_INCDIR=$LMDGCM/../../lib' >> arch-local.path 481 483 echo 'ORCH_LIBDIR=$LMDGCM/../../lib' >> arch-local.path 482 # fichier arch-local.fcm (adaptation dearch-linux-32bit.fcm)484 # arch-local.fcm file (adapted from arch-linux-32bit.fcm) 483 485 if [ $compilo = g95 ] ; then 484 486 sed -e s:"%COMPILER pgf95":"%COMPILER g95":1 \ … … 527 529 fi 528 530 else 529 echo Le compilateur $compilo pas prevu; exit531 echo Unexpected compiler $compilo ; exit 530 532 fi # of if [ $compilo = g95 ] elif [ $compilo = pgf90 ] 531 533 cd .. 532 ### Adapt ation de "bld.cfg" (ajout dushell):534 ### Adapt "bld.cfg" (add the shell): 533 535 whereisthatshell=$(which ${use_shell}) 534 536 echo "bld::tool::SHELL $whereisthatshell" >> bld.cfg 535 537 536 ### Modif ication de makelmdz_fcm pour utilisation de ORCHIDEE dans cette bench:537 ### on enleve liborglob.a etlibparallel.a538 ### Modify makelmdz_fcm to use ORCHIDEE in the bench: 539 ### remove liborglob.a and libparallel.a 538 540 cp makelmdz_fcm makelmdz_fcm.orig 539 541 sed -e "s/-l\${LIBPREFIX}parallel//" \ … … 544 546 545 547 ################################################################## 546 # Lance compilation de LMDZ548 # Compile LMDZ 547 549 ################################################################## 548 550 ok_veget=false 549 if [ "$veget" = 1 ] ; then ok_veget = true; fi551 if [ "$veget" = 1 ] ; then $ok_veget = true; fi 550 552 if [ $compile_with_fcm = 1 ] ; then 551 # Compil ation avecmakelmdz_fcm553 # Compile with makelmdz_fcm 552 554 ./makelmdz_fcm -d ${grid_resolution} -arch local -v $ok_veget gcm 553 555 else 554 # Comp ilation avecmakegcm:556 # Comple with makegcm: 555 557 # 3 times! because some dependecies are not well resolved with makegcm 556 558 ./makegcm -d ${grid_resolution} -v $ok_veget gcm … … 561 563 if [ -f gcm.e ] || [ -f bin/gcm_${grid_resolution}_phylmd_seq_orch.e ] || [ -f bin/gcm_${grid_resolution}_phylmd_seq.e ] ; then 562 564 echo '##########################################################' 563 echo Compilation reussie564 echo '##########################################################' 565 else 566 echo Probleme de compilation565 echo Compilation successfull !! 566 echo '##########################################################' 567 else 568 echo Compilation failed !! 567 569 exit 568 570 fi 569 571 570 572 ################################################################## 571 # Ci dessous le lancement eventuel d'un cas test (sibench=0)573 # Below, we run a benchmark test (if bench=0) 572 574 ################################################################## 573 575 if [ $bench = 0 ] ; then … … 576 578 577 579 echo '##########################################################' 578 echo Lancement d\'une simulation de test580 echo Running a test run 579 581 echo '##########################################################' 580 582 … … 597 599 598 600 if [ $hostname = brodie ] ; then 599 echo POUR LANCER LE BENCH, IL FAUT SE LOGUER SUR BRODIE01600 echo puis aller sur`pwd`/BENCH${grid_resolution}601 echo et lancer le gcm601 echo to run the bench, you must log on to Brodie01 602 echo and then change directory to `pwd`/BENCH${grid_resolution} 603 echo and run the gcm 602 604 exit 603 605 fi … … 607 609 608 610 echo '##########################################################' 609 echo ' Resultat du bench'611 echo ' Bench results ' 610 612 echo '##########################################################' 611 613 … … 613 615 614 616 echo '##########################################################' 615 echo ' La simulation test est terminee sur' `pwd`616 echo ' vous pouvez la relancer: cd ' `pwd` ' ; gcm.e'617 echo 'o u./bench.sh'618 echo '##########################################################' 619 617 echo 'Simulation finished in' `pwd` 618 echo 'You may re-run it with : cd ' `pwd` ' ; gcm.e' 619 echo 'or ./bench.sh' 620 echo '##########################################################' 621
Note: See TracChangeset
for help on using the changeset viewer.