Subversion Repositories lagranto.um

Rev

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