Subversion Repositories lagranto.um

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 michaesp 1
#!/bin/csh
2
 
3
# -----------------------------------------------------------------------------
4
# Set some general parameters
5
# -----------------------------------------------------------------------------
6
 
7
# Usage
8
if ( $#argv == 0 ) then
9
  echo "install.sh [lib|core|goodies|links|all|sync] "
10
  exit 0
11
endif
12
 
13
# Set the mode
14
set mode = $1
15
 
16
# Set paths for development and for synchronisation (operational)
17
set path_devel = '/home/sprenger/lagranto.um/'
18
set path_sync  = '/usr/local/dyn_tools/laganto.um/'
19
 
20
# Init Fortran compiler and set netCDF acccordingly
21
setenv FORTRAN pgf90
22
 
23
# Init netCDF library depending on the Fortran compiler
24
if ( "${FORTRAN}" == "pgf90" ) then
25
  module load pgi/9.0-1
26
  module load netcdf/4.1.1-pgf90
27
 
28
else if ( "${FORTRAN}" == "gfortran" ) then
29
  module load gfortran
30
  module load netcdf/4.1.1
31
 
32
else if ( "${FORTRAN}" == "ifort" ) then
33
  module load ifort/10.1.017
34
  module load netcdf/4.1.1-ifort
35
 
36
else
37
  echo "Fortran Compiler ${FORTRAN} not supported... Exit"
38
  exit 1
39
 
40
endif
41
 
42
# Set Lagranto path
43
setenv LAGRANTO ${path_devel}
44
 
45
# -----------------------------------------------------------------------------
46
# Set internal parameters and detailed installation mode
47
# -----------------------------------------------------------------------------
48
 
49
# Set netCDF paths
50
setenv NETCDF_LIB ${NETCDF}/lib/ 
51
setenv NETCDF_INC ${NETCDF}/include/
52
 
53
# Set list of core programs
54
set core  = "create_startf caltra trace select density"
55
 
56
# Set list of goodies
57
set tools = "changecst changet extract getmima gettidiff getvars list2lsl lsl2list mergetra newtime reformat timeres trainfo difference datelist geo2rot rot2geo" 
58
 
59
# Set list of libraries
60
set libs  = "iotra ioinp inter times libcdfio libcdfplus rotate"
61
 
62
# Core programs
63
foreach prog ( $core )
64
   if ( "${prog}" == "${mode}" ) then
65
      set core  = ${prog}
66
      set mode  = "core"
67
   endif
68
end
69
 
70
# Goodies
71
foreach tool ( $tools )
72
   if ( "${tool}" == "${mode}" ) then
73
      set tools = ${tool}
74
      set mode  = "goodies"
75
   endif
76
end
77
 
78
# Libraries
79
foreach lib ( $libs )
80
   if ( "${lib}" == "${mode}" ) then
81
      set libs  = ${lib}
82
      set mode  = "lib"
83
   endif
84
end
85
 
86
 
87
# -----------------------------------------------------------------------------
88
# Install libraries 
89
# -----------------------------------------------------------------------------
90
 
91
if ( ("${mode}" == "lib") | ("${mode}" == "all" ) ) then
92
 
93
echo "-----------------------------------------------------------------"
94
echo "Installing libraries"
95
echo "-----------------------------------------------------------------"
96
echo
97
 
98
# Change to library directory
99
cd ${LAGRANTO}/lib
100
 
101
# Loop over all libraries - compile and make library
102
foreach lib ( $libs )
103
 
104
\rm -f ${lib}.a
105
\rm -f ${lib}.o
106
echo ${FORTRAN} -c -O ${lib}.f
107
${FORTRAN} -c -O -I ${NETCDF_INC} ${lib}.f
108
ar r ${lib}.a ${lib}.o
109
\rm -f ${lib}.l ${lib}.o
110
ranlib ${lib}.a
111
if ( ! -f ${lib}.a ) then
112
  echo "Problem in compiling ${lib} ... Stop"
113
  exit 1
114
endif
115
 
116
end
117
 
118
endif
119
 
120
 
121
# -----------------------------------------------------------------------------
122
# Check that libraries are ok
123
# -----------------------------------------------------------------------------
124
 
125
echo
126
echo "-----------------------------------------------------------------"
127
echo "Check that all libraries are available"
128
echo "-----------------------------------------------------------------"
129
echo
130
 
131
# Change to library directory
132
cd ${LAGRANTO}/lib
133
 
134
# Check whether all libraries are available
135
foreach lib ( $libs )
136
 
137
if ( ! -f ${lib}.a ) then
138
  echo "Library ${lib} missing... Stop"
139
  exit 1
140
else
141
  ls -l ${lib}.a    
142
endif
143
 
144
end
145
 
146
# Exit if only libraries shoudl be installed
147
if ( "${mode}" == "lib" ) exit 0
148
 
149
# -----------------------------------------------------------------------------
150
# Compile Lagrango core programs
151
# -----------------------------------------------------------------------------
152
 
153
if ( ("${mode}" == "all" ) | ("${mode}" == "core" ) ) then
154
 
155
echo
156
echo "-----------------------------------------------------------------"
157
echo "Installing Lagranto core programs"
158
echo "-----------------------------------------------------------------"
159
 
160
foreach prog ( $core )
161
 
162
echo
163
echo "----- $prog"
164
echo
165
cd ${LAGRANTO}/${prog}
166
\rm -f ${prog}.o 
167
\rm -f ${prog}
168
if ( "${prog}" == "trace"  ) \rm calvar.o
169
if ( "${prog}" == "select" ) \rm special.o
170
\rm -f ${prog}
171
make -f ${prog}.make
172
if ( ! -f ${prog} ) then
173
  echo "Problem in compiling ${prog} ... Stop"
174
  exit 1
175
endif
176
 
177
end
178
 
179
endif
180
 
181
# -----------------------------------------------------------------------------
182
# Check that all Lagranto core programs are available
183
# -----------------------------------------------------------------------------
184
 
185
echo
186
echo "-----------------------------------------------------------------"
187
echo "Check that all Lagranto core programs are available"
188
echo "-----------------------------------------------------------------"
189
echo
190
 
191
foreach prog ( $core )
192
 
193
  cd ${LAGRANTO}/${prog}
194
  if ( ! -f ${prog} ) then
195
    echo "${prog} is missing... Stop"
196
    exit 1
197
  else
198
    ls -l ${prog}    
199
  endif
200
 
201
end
202
 
203
# Exit if only core programs shoudl be installed
204
if ( "${mode}" == "core" ) exit 0
205
 
206
# -----------------------------------------------------------------------------
207
# Compile Lagrango goodies
208
# -----------------------------------------------------------------------------
209
 
210
if ( ("${mode}" == "all" ) | ("${mode}" == "goodies" ) ) then
211
 
212
echo
213
echo "-----------------------------------------------------------------"
214
echo "Installing Lagranto goodies"
215
echo "-----------------------------------------------------------------"
216
 
217
cd ${LAGRANTO}/goodies
218
 
219
foreach tool ( $tools )
220
 
221
echo
222
echo "----- ${tool}"
223
echo
224
\rm -f ${tool}.o
225
\rm -f ${tool}
226
make -f ${tool}.make
227
if ( ! -f ${tool} ) then
228
  echo "Problem in compiling ${tool} ... Stop"
229
  exit 1
230
endif
231
 
232
end
233
 
234
endif
235
 
236
# -----------------------------------------------------------------------------
237
# Check that all Lagranto goodies are available
238
# -----------------------------------------------------------------------------
239
 
240
echo
241
echo "-----------------------------------------------------------------"
242
echo "Check that all Lagranto goodies are available"
243
echo "-----------------------------------------------------------------"
244
echo
245
 
246
cd ${LAGRANTO}/goodies
247
 
248
foreach tool ( $tools )
249
 
250
if ( ! -f ${tool} ) then
251
  echo "${tool} is missing... Stop"
252
  exit 1
253
else
254
  ls -l ${tool} 
255
endif
256
 
257
end
258
 
259
endif
260
 
261
# Exit if only goodies should be installed
262
if ( "${mode}" == "goodies" ) exit 0
263
 
264
# -----------------------------------------------------------------------------
265
# Create links to programs
266
# -----------------------------------------------------------------------------
267
 
268
if ( ("${mode}" == "all" ) | ("${mode}" == "links" )  ) then
269
 
270
echo
271
echo "-----------------------------------------------------------------"
272
echo "Create links in ${LAGRANTO}/bin/"
273
echo "-----------------------------------------------------------------"
274
echo
275
 
276
cd ${LAGRANTO}/bin
277
 
278
ln -svf ${LAGRANTO}/bin/lagranto            lagranto.sh
279
ln -svf ${LAGRANTO}/bin/lagranto            lagranto.ecmwf  
280
ln -svf ${LAGRANTO}/bin/lagrantohelp        lagrantohelp.sh
281
ln -svf ${LAGRANTO}/bin/lagrantohelp        lagrantohelp.ecmwf
282
 
283
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra.sh
284
ln -svf ${LAGRANTO}/startf/create_startf.sh create_startf.sh
285
ln -svf ${LAGRANTO}/select/select.sh        select.sh
286
ln -svf ${LAGRANTO}/trace/trace.sh          trace.sh
287
ln -svf ${LAGRANTO}/density/density.sh      density.sh
288
 
289
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra
290
ln -svf ${LAGRANTO}/startf/create_startf.sh create_startf
291
ln -svf ${LAGRANTO}/select/select.sh        select
292
ln -svf ${LAGRANTO}/trace/trace.sh          trace
293
ln -svf ${LAGRANTO}/density/density.sh      density
294
 
295
ln -svf ${LAGRANTO}/startf/create_startf.sh startf.sh
296
ln -svf ${LAGRANTO}/startf/create_startf.sh startf
297
 
298
foreach tool ( $tools )
299
 
300
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool}.sh 
301
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool} 
302
 
303
end
304
 
305
endif
306
 
307
# -----------------------------------------------------------------------------
308
# Synchronise ( development -> operational ) 
309
# -----------------------------------------------------------------------------
310
 
311
if ( "${mode}" == "sync"  ) then
312
 
313
echo
314
echo "-----------------------------------------------------------------"
315
echo "Sync ( development -> operational )"
316
echo "-----------------------------------------------------------------"
317
echo
318
 
319
# Synchronize directories
320
rsync -avz ${path_devel} ${path_sync}
321
 
322
# Set the correct path 
323
setenv LAGRANTO ${path_sync}
324
 
325
# Set the correct links
326
cd ${LAGRANTO}/bin
327
 
328
ln -svf ${LAGRANTO}/bin/lagranto            lagranto.sh
329
ln -svf ${LAGRANTO}/bin/lagranto            lagranto.ecmwf  
330
ln -svf ${LAGRANTO}/bin/lagrantohelp        lagrantohelp.sh
331
ln -svf ${LAGRANTO}/bin/lagrantohelp        lagrantohelp.ecmwf
332
 
333
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra.sh
334
ln -svf ${LAGRANTO}/startf/create_startf.sh create_startf.sh
335
ln -svf ${LAGRANTO}/select/select.sh        select.sh
336
ln -svf ${LAGRANTO}/trace/trace.sh          trace.sh
337
ln -svf ${LAGRANTO}/density/density.sh      density.sh
338
 
339
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra
340
ln -svf ${LAGRANTO}/startf/create_startf.sh create_startf
341
ln -svf ${LAGRANTO}/select/select.sh        select
342
ln -svf ${LAGRANTO}/trace/trace.sh          trace
343
ln -svf ${LAGRANTO}/density/density.sh      density
344
 
345
ln -svf ${LAGRANTO}/startf/create_startf.sh startf.sh
346
ln -svf ${LAGRANTO}/startf/create_startf.sh startf
347
 
348
foreach tool ( $tools )
349
 
350
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool}.sh 
351
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool} 
352
 
353
end
354
 
355
endif
356
 
357
# -----------------------------------------------------------------------------
358
# Final tasks
359
# -----------------------------------------------------------------------------
360
 
361
echo
362
echo "-----------------------------------------------------------------"
363
echo "Installation complete"
364
echo "-----------------------------------------------------------------"
365
echo
366
echo "Please set the environmental variable LAGRANTO"
367
echo
368
echo "    setenv LAGRANTO ${LAGRANTO}"
369
echo
370
 
371
 
372
 
373
 
374