1 | #!/bin/bash |
---|
2 | # script to download and install the latest version of IOIPSL on Occigen |
---|
3 | # |
---|
4 | |
---|
5 | #0. Preliminary stuff |
---|
6 | |
---|
7 | if (( $# == 0 )) |
---|
8 | then |
---|
9 | # default behavior: get latest version of IOIPSL |
---|
10 | rev="HEAD" |
---|
11 | else |
---|
12 | # but otherwise the first argument of the script can be the version to use |
---|
13 | if (( $# == 1 )) |
---|
14 | then |
---|
15 | rev=$1 |
---|
16 | else |
---|
17 | echo "Error, invalid script arguments" |
---|
18 | echo "Usage:" |
---|
19 | echo "$0 rev" |
---|
20 | echo " where optional rev is the IOIPSL revision number" |
---|
21 | exit |
---|
22 | fi |
---|
23 | fi |
---|
24 | |
---|
25 | # cleanup possible previous attempt: |
---|
26 | \rm -rf ../../IOIPSL modipsl |
---|
27 | |
---|
28 | # 1. Get IOIPSL |
---|
29 | # move up at same level as LMDZ.COMMON , etc. |
---|
30 | cd ../.. |
---|
31 | svn co --username icmc_users --password icmc2022 --non-interactive --revision $rev http://forge.ipsl.jussieu.fr/igcmg/svn/IOIPSL/trunk IOIPSL |
---|
32 | |
---|
33 | # 2. Set correct settings: copy over arch.* files |
---|
34 | cd IOIPSL |
---|
35 | cp -f ../LMDZ.COMMON/arch/arch-X64_OCCIGEN.env arch |
---|
36 | cp -f ../LMDZ.COMMON/arch/arch-X64_OCCIGEN.path arch |
---|
37 | cp -f ../LMDZ.COMMON/arch/arch-X64_OCCIGEN.fcm arch |
---|
38 | |
---|
39 | ## 3. build ioipsl: |
---|
40 | # but first make a small correction to makeioipsl_fcm |
---|
41 | sed -i -e s:'$HDF5_LIBDIR $HDF5_LIB':'':1 makeioipsl_fcm |
---|
42 | ./makeioipsl_fcm -arch X64_OCCIGEN -job 8 > makeioipsl.out 2>&1 |
---|
43 | |
---|
44 | ## 4. Check if the library was indeed built: |
---|
45 | whereami=`pwd -P` |
---|
46 | if [[ -f lib/libioipsl.a ]] |
---|
47 | then |
---|
48 | echo "OK: ioipsl library is in ${whereami}/lib" |
---|
49 | else |
---|
50 | echo "Something went wrong... check messages in ${whereami}/makeioipsl.out" |
---|
51 | exit |
---|
52 | fi |
---|
53 | |
---|
54 | ## 5. Comply with old setup and make appropriate links |
---|
55 | cd ../LMDZ.COMMON/ioipsl |
---|
56 | mkdir modipsl |
---|
57 | cd modipsl |
---|
58 | # lib + module files |
---|
59 | mkdir lib |
---|
60 | cd lib |
---|
61 | ln -s ../../../../IOIPSL/lib/libioipsl.a . |
---|
62 | ln -s ../../../../IOIPSL/inc/* . |
---|
63 | cd .. |
---|
64 | # rebuild utility |
---|
65 | mkdir bin |
---|
66 | cd bin |
---|
67 | ln -s ../../../../IOIPSL/bin/* . |
---|