| 1 | #!/bin/bash -x |
|---|
| 2 | # script to download and install the latest version of IOIPSL |
|---|
| 3 | # using gfortran |
|---|
| 4 | # You'll probably have to change paths to NetCDF library 'lib' and 'include' |
|---|
| 5 | # below to adapt this script to your computer. |
|---|
| 6 | |
|---|
| 7 | #setfolder="/cm/shared/apps/netcdf/gcc/64/4.1.1" |
|---|
| 8 | #setfolder="/donnees/emlmd/netcdf64-4.0.1_gfortran/" |
|---|
| 9 | setfolder="/usr/local/netcdf-4.0.1/" |
|---|
| 10 | |
|---|
| 11 | #0. Preliminary stuff |
|---|
| 12 | # netcdf include and lib dirs: |
|---|
| 13 | netcdf_include=$setfolder"/include" |
|---|
| 14 | netcdf_lib=$setfolder"/lib" |
|---|
| 15 | |
|---|
| 16 | whereami=`pwd -P` |
|---|
| 17 | |
|---|
| 18 | # 1. Get IOIPSL (via modipsl) |
|---|
| 19 | svn co http://forge.ipsl.jussieu.fr/igcmg/svn/modipsl/trunk modipsl |
|---|
| 20 | export MAKE=make |
|---|
| 21 | cd modipsl/util |
|---|
| 22 | |
|---|
| 23 | ./model IOIPSL_PLUS |
|---|
| 24 | |
|---|
| 25 | # 2. Set correct settings: |
|---|
| 26 | # Add a Darwin case in 'AA_make.gdef' |
|---|
| 27 | |
|---|
| 28 | echo '#-Q- Darwin #- Global definitions for gfortran on a Mac' >> AA_make.gdef |
|---|
| 29 | echo '#-Q- Darwin M_K = make' >> AA_make.gdef |
|---|
| 30 | echo '#-Q- Darwin P_C = cpp' >> AA_make.gdef |
|---|
| 31 | echo '#-Q- Darwin P_O = -P -C -traditional $(P_P)' >> AA_make.gdef |
|---|
| 32 | echo '#-Q- Darwin F_C = gfortran -c -cpp' >> AA_make.gdef |
|---|
| 33 | echo '#-Q- Darwin #-D- MD F_D = -g -Wall -fbounds-check -pedantic -finit-real=nan' >> AA_make.gdef |
|---|
| 34 | echo '#-Q- Darwin #-D- MN F_D =' >> AA_make.gdef |
|---|
| 35 | echo '#-Q- Darwin #-P- I4R4 F_P =' >> AA_make.gdef |
|---|
| 36 | echo '#-Q- Darwin #-P- I4R8 F_P = -fdefault-real-8' >> AA_make.gdef |
|---|
| 37 | echo '#-Q- Darwin #-P- I8R8 F_P = -fdefault-integer-8 -fdefault-real-8' >> AA_make.gdef |
|---|
| 38 | echo '#-Q- Darwin w_w = -O3 -funroll-all-loops $(F_D) $(F_P) -I$(MODDIR)' >> AA_make.gdef |
|---|
| 39 | echo '#-Q- Darwin F_O = $(w_w) -J$(MODDIR)' >> AA_make.gdef |
|---|
| 40 | echo '#-Q- Darwin F_L = gfortran' >> AA_make.gdef |
|---|
| 41 | echo '#-Q- Darwin M_M = 0' >> AA_make.gdef |
|---|
| 42 | echo '#-Q- Darwin L_X = 0' >> AA_make.gdef |
|---|
| 43 | echo '#-Q- Darwin L_O =' >> AA_make.gdef |
|---|
| 44 | echo '#-Q- Darwin A_C = ar -rs' >> AA_make.gdef |
|---|
| 45 | echo '#-Q- Darwin A_G = ar -x' >> AA_make.gdef |
|---|
| 46 | echo '#-Q- Darwin C_C = cc -c' >> AA_make.gdef |
|---|
| 47 | echo '#-Q- Darwin C_O =' >> AA_make.gdef |
|---|
| 48 | echo '#-Q- Darwin C_L = cc' >> AA_make.gdef |
|---|
| 49 | echo '#-Q- Darwin #-' >> AA_make.gdef |
|---|
| 50 | echo "#-Q- Darwin NCDF_INC = ${netcdf_include}" >> AA_make.gdef |
|---|
| 51 | echo "#-Q- Darwin NCDF_LIB = -L${netcdf_lib} -lnetcdf -lnetcdff" >> AA_make.gdef |
|---|
| 52 | echo '#-Q- Darwin #-' >> AA_make.gdef |
|---|
| 53 | |
|---|
| 54 | # set default working precision for IOIPSL: |
|---|
| 55 | ./ins_make -t Darwin -p I4R8 |
|---|
| 56 | |
|---|
| 57 | ## 3. build ioipsl: |
|---|
| 58 | cd ../modeles/IOIPSL/src |
|---|
| 59 | make |
|---|
| 60 | ## Compile the rebuild tool: |
|---|
| 61 | cd ../tools |
|---|
| 62 | make |
|---|
| 63 | |
|---|
| 64 | if [[ -f ${whereami}/modipsl/lib/libioipsl.a ]] |
|---|
| 65 | then |
|---|
| 66 | echo "OK: ioipsl library is in ${whereami}/modipsl/lib" |
|---|
| 67 | else |
|---|
| 68 | echo "Something went wrong..." |
|---|
| 69 | fi |
|---|
| 70 | |
|---|