source: trunk/MESOSCALE/LMD_MM_MARS/SIMU/meso_install.sh @ 1704

Last change on this file since 1704 was 1631, checked in by aslmd, 8 years ago

amend previous commit. forgotten dummy exit.

File size: 6.3 KB
Line 
1#! /bin/bash
2
3################################
4# A. Spiga 09/06/2015
5# Install the LMD mesoscale model
6################################
7# prerequisite: NETCDF
8# -- NETCDF env variable
9################################
10## DEFAULT
11## name of the folder
12name="MESORUN"
13## SVN version
14version="HEAD"
15version="1520"
16################################
17
18meso="on"
19gcm=""
20while getopts "gn:hv:o" options; do
21  case $options in
22   n ) name="${OPTARG}";;
23   g ) meso="off";; 
24   v ) version="${OPTARG}";;
25   o ) gcm="old" ;;
26   h ) echo "
27# OPTIONS
28# -n [name]        --> name of the folder to be created
29# -g               --> only compile GCM (for tests)
30# -v [# (or) HEAD] --> svn version
31# -o               --> old GCM+meso version
32" ; exit ;;
33  esac
34done
35
36################################
37## machine on which you will compile
38machine="CICLAD"
39## fortran compiler used
40fortcom="ifort"
41## server for sources
42where_is_svn="http://svn.lmd.jussieu.fr/Planeto/trunk/"
43## grid definition for GCM
44dimgcm="64x48x29"
45## location of static data
46webrepo="http://data.spiga.fr/mesoscale_model/STATIC_DATA/"
47## TBD: datadir: http://www.lmd.jussieu.fr/~lmdz/planets/mars/datadir/
48################################
49
50## -----------------------------
51## import settings and structure
52## -----------------------------
53echo "*** get structure"
54rm -rf $name > /dev/null 2> /dev/null
55svn -q co $where_is_svn"/MESOSCALE/LMD_MM_MARS/SIMU/MESORUN"$gcm $name
56refrepo=$PWD/$name
57## fill here user input to obtain independent script
58case ${fortcom}$gcm in
59  "ifort")    echo 1 > $refrepo/wpsin ; echo 5 > $refrepo/mesoin ; echo 1 >> $refrepo/mesoin ;;
60  "ifortold") echo 1 > $refrepo/wpsin ; echo 5 > $refrepo/mesoin ; echo 1 >> $refrepo/mesoin ;
61              echo 61 >> $refrepo/mesoin ; echo 61 >> $refrepo/mesoin ; echo 61 >> $refrepo/mesoin ; 
62              echo 1 >> $refrepo/mesoin ; echo 1 >> $refrepo/mesoin ;;
63esac
64
65## ----------------
66## create code repo
67## ----------------
68echo "*** get SVN repository"
69\rm $refrepo/code
70svn -q co -N $where_is_svn $refrepo/code
71
72###################################
73################################### GCM
74###################################
75if [[ "${gcm}" == "old" ]]
76then
77
78 log=$refrepo/code/MESOSCALE/LMDZ.MARS/logcompile_gcm
79 echo "*** get and compile GCM code version "$version
80 cd $refrepo/code
81 svn update -r $version MESOSCALE > /dev/null
82 cd $refrepo/code/MESOSCALE/LMDZ.MARS
83 ln -sf makegcm_$fortcom makegcm
84 ./compile > $log 2> $log
85 
86else
87
88 ## ------------
89 ## get GCM code
90 ## ------------
91 echo "*** get GCM code version "$version
92 cd $refrepo/code
93 svn -q update -r $version LMDZ.MARS
94 svn -q update -r $version LMDZ.COMMON
95 cd $refrepo/code/LMDZ.COMMON
96 svn -q co http://forge.ipsl.jussieu.fr/fcm/svn/PATCHED/FCM_V1.2
97 ln -sf FCM_V1.2/bin/fcm .
98
99 ## --------------
100 ## compile IOIPSL
101 ## --------------
102 log=$refrepo/code/logcompile_ioipsl
103 echo "*** compile IOIPSL: check progress in "$log
104 rm -rf $log ; touch $log
105 cd $refrepo/code/LMDZ.COMMON/ioipsl
106 ./install_ioipsl_$fortcom".bash" > $log 2> $log
107
108 ## -----------
109 ## compile GCM
110 ## -----------
111 log=$refrepo/code/logcompile_gcm
112 echo "*** compile GCM: check progress in "$log
113 rm -rf $log ; touch $log
114 # make a re-usable command
115 echo "#! /bin/bash" > $refrepo/compile_gcm.sh
116 echo "cd $refrepo/code/LMDZ.COMMON" >> $refrepo/compile_gcm.sh
117 echo "./makelmdz_fcm -cpp MESOINI -j 8 -s 2 -d $dimgcm -arch $machine$fortcom -parallel mpi -p mars gcm" >> $refrepo/compile_gcm.sh
118 echo "./makelmdz_fcm              -j 8 -s 2 -d $dimgcm -arch $machine$fortcom               -p mars newstart" >> $refrepo/compile_gcm.sh
119 echo "cd $refrepo/gcm ; \rm gcm.e ; ln -sf $refrepo/code/LMDZ.COMMON/bin/gcm_${dimgcm}_phymars_para.e gcm.e" >> $refrepo/compile_gcm.sh
120 echo "cd $refrepo/gcm/newstart ; \rm newstart.e ; ln -sf $refrepo/code/LMDZ.COMMON/bin/newstart_${dimgcm}_phymars_seq.e newstart.e" >> $refrepo/compile_gcm.sh
121 chmod 755 $refrepo/compile_gcm.sh
122 # now execute command
123 $refrepo/compile_gcm.sh > $log 2> $log
124
125 ## ------------------------
126 ## make a minimal startbase
127 ## ------------------------
128 echo "*** make a minimal startbase"
129 cd $refrepo/gcm/newstart
130 ./mini_startbase.sh
131
132fi
133
134###################################
135################################### MESO
136###################################
137
138## START MESOSCALE PART
139if [[ "${meso}" == "on" ]]
140then
141
142## ----------------------
143## get and make mesoscale
144## ----------------------
145echo "*** get and compile mesoscale version "$version
146cd $refrepo/code
147svn update -r $version MESOSCALE > /dev/null
148cd $refrepo/code/MESOSCALE/LMD_MM_MARS
149#
150if [[ "${gcm}" == "old" ]]
151then
152  option=""
153else
154  option="-p mars_lmd_new"
155fi
156#
157ls $refrepo/mesoin
158if [[ "$?" == 0 ]] ; then
159  ./makemeso $option < $refrepo/mesoin
160else
161  ./makemeso $option
162fi
163rm -rf $refrepo/mesoin
164rm -rf $refrepo/code_compiled
165ln -sf $refrepo/code/MESOSCALE/LMD_MM_MARS/LATEST $refrepo/code_compiled
166
167## -------------------------------
168## make ini&bdy tools in mesoscale
169## -------------------------------
170echo "*** compile initialization tools"
171cd $refrepo/code_compiled
172ln -sf $refrepo/code/MESOSCALE/LMD_MM_MARS/SRC/SCRIPTS/prepare_ini .
173./prepare_ini > /dev/null
174##
175cd $refrepo/code_compiled/PREP_MARS
176./compile"_"$fortcom
177##
178cd $refrepo/code_compiled/WPS
179ls $refrepo/wpsin
180if [[ "$?" == 0 ]] ; then
181  ./configure < $refrepo/wpsin > /dev/null 2> /dev/null
182else
183  ./configure
184fi
185rm -rf $refrepo/wpsin
186rm -rf logcompile
187./compile > logcompile 2>&1
188
189## ------------------
190## import static data
191## ------------------
192echo "*** get static data"
193rm -rf $refrepo/data_static
194svn co -q $where_is_svn/MESOSCALE/LMD_MM_MARS/WPS_GEOG $refrepo/data_static
195cd $refrepo/data_static
196rm -rf logdown
197wget $webrepo"/albedo_TES.tar.gz" -a logdown
198wget $webrepo"/mola_topo64.tar.gz" -a logdown
199wget $webrepo"/thermal_TES.tar.gz" -a logdown
200for fff in *.tar.gz; do
201  tar xzvf $fff > /dev/null
202  rm -rf $fff
203done
204
205## ------------------------
206## get and compile postproc
207## ------------------------
208echo "*** get and compile post-processing tool"
209cd $refrepo
210svn co -q https://github.com/aymeric-spiga/api/trunk postproc
211cd $refrepo/postproc
212./compile
213
214fi
215## END MESOSCALE PART
216
217## -----
218## check
219## -----
220echo "*** CHECKLIST:"
221ls -lL $refrepo/gcm/gcm.e
222ls -lL $refrepo/geogrid/geogrid.exe
223ls -lL $refrepo/metgrid/metgrid.exe
224ls -lL $refrepo/prep/readmeteo.exe
225ls -lL $refrepo/data_static/albedo_TES
226ls -lL $refrepo/real.exe
227ls -lL $refrepo/wrf.exe
228ls -lL $refrepo/postproc/api
229
Note: See TracBrowser for help on using the repository browser.