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

Last change on this file since 2205 was 2205, checked in by aslmd, 5 years ago

adapted meso_install for ciclad following recent changes. 1) recreated link for static files. 2) use the latest IOIPSL script

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