Subversion Repositories lagranto.um

Rev

Rev 15 | Details | Compare with Previous | 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
16 michaesp 9
  echo "install.sh [lib|core|goodies|links|all|docu|clean|convert] "
3 michaesp 10
  exit 0
11
endif
12
 
13
# Set the mode
14
set mode = $1
15
 
5 michaesp 16
# Set path to SVN repository
17
set svnpath=https://svn.iac.ethz.ch/pub/lagranto.um/
18
 
3 michaesp 19
# Set paths for development and for synchronisation (operational)
15 michaesp 20
set path_devel = "${DYN_TOOLS}/lagranto.um/"
21
set path_sync  = "${DYN_TOOLS}/lagranto/"
3 michaesp 22
 
23
# Init Fortran compiler and set netCDF acccordingly
16 michaesp 24
setenv FORTRAN gfortran 
15 michaesp 25
 
26
# Init netCDF library depending on the Fortran compiler
27
if ( "${FORTRAN}" == "pgf90" ) then
28
  module load netcdf/4.2.1-pgf90
5 michaesp 29
  module list
3 michaesp 30
 
31
else if ( "${FORTRAN}" == "gfortran" ) then
32
  module load gfortran
16 michaesp 33
  module load netcdf/4.2.1
3 michaesp 34
 
35
else if ( "${FORTRAN}" == "ifort" ) then
36
  module load ifort/10.1.017
37
  module load netcdf/4.1.1-ifort
38
 
39
else
40
  echo "Fortran Compiler ${FORTRAN} not supported... Exit"
41
  exit 1
42
 
43
endif
44
 
45
# Set Lagranto path
46
setenv LAGRANTO ${path_devel}
47
 
48
# -----------------------------------------------------------------------------
5 michaesp 49
# Create a new tag in SVN repository
50
# -----------------------------------------------------------------------------
51
 
52
if ( "${mode}" == "tag" ) then
53
   svn info
54
   if ( "${#argv}" != 2 ) then
55
     echo "Usage: install.csh tag id <id=tag number>"
56
   else
57
     set tagnr = $2
58
   endif
59
   svn copy ${svnpath}/trunk ${svnpath}/tags/${tagnr} -m "Release ${tagnr}"
60
   exit 0
61
endif
62
 
63
# -----------------------------------------------------------------------------
3 michaesp 64
# Set internal parameters and detailed installation mode
65
# -----------------------------------------------------------------------------
66
 
5 michaesp 67
# Set Lagranto path
68
setenv LAGRANTO ${path_devel}
69
 
3 michaesp 70
# Set netCDF paths
5 michaesp 71
setenv NETCDF_LIB `nc-config --flibs`
72
setenv NETCDF_INC `nc-config --fflags`
3 michaesp 73
 
5 michaesp 74
echo $NETCDF_LIB
75
echo $NETCDF_INC
76
 
3 michaesp 77
# Set list of core programs
7 michaesp 78
set core  = "startf caltra trace select density"
3 michaesp 79
 
80
# Set list of goodies
9 michaesp 81
set tools = "changecst changet extract gettidiff getvars list2lsl lsl2list mergetra newtime reformat timeres trainfo difference datelist geo2rot rot2geo" 
3 michaesp 82
 
83
# Set list of libraries
84
set libs  = "iotra ioinp inter times libcdfio libcdfplus rotate"
85
 
86
# Core programs
87
foreach prog ( $core )
88
   if ( "${prog}" == "${mode}" ) then
89
      set core  = ${prog}
90
      set mode  = "core"
91
   endif
92
end
93
 
94
# Goodies
95
foreach tool ( $tools )
96
   if ( "${tool}" == "${mode}" ) then
97
      set tools = ${tool}
98
      set mode  = "goodies"
99
   endif
100
end
101
 
102
# Libraries
103
foreach lib ( $libs )
104
   if ( "${lib}" == "${mode}" ) then
105
      set libs  = ${lib}
106
      set mode  = "lib"
107
   endif
108
end
109
 
110
# Check that the mode is ok 
111
if ( "${mode}" == "all"     ) goto modeok
112
if ( "${mode}" == "lib"     ) goto modeok
113
if ( "${mode}" == "core"    ) goto modeok
114
if ( "${mode}" == "goodies" ) goto modeok
115
if ( "${mode}" == "links"   ) goto modeok
116
if ( "${mode}" == "clean"   ) goto modeok
117
if ( "${mode}" == "docu"    ) goto modeok
16 michaesp 118
if ( "${mode}" == "convert" ) goto modeok
3 michaesp 119
echo "Unsupported mode ${mode} ... Stop"
120
exit 1
121
 
122
modeok:
123
 
124
# -----------------------------------------------------------------------------
125
# Make clean 
126
# -----------------------------------------------------------------------------
127
 
128
if ( "${mode}" == "clean" ) then
129
 
130
cd ${LAGRANTO}/
131
 
132
foreach prog ( $core )
16 michaesp 133
  \rm -f ${prog}/${prog} ${prog}/${prog}.o
3 michaesp 134
end
135
\rm -f trace/calvar.o select/special.o
136
 
137
foreach tool ( $tools )
138
  \rm -f goodies/${tool} goodies/${tool}.o 
139
end
140
\rm -f goodies/*.mod goodies/*.o
141
 
142
\rm lib/*.a lib/*.o
143
 
144
foreach prog ( $core )
145
   \rm -f bin/${prog} bin/${prog}.sh  bin/${prog}.um
146
end
147
\rm -f bin/seltra bin/seltra.sh bin/seltra.um
148
foreach tool ( $tools )
149
  \rm -f bin/${tool} bin/${tool}.sh bin/${tool}.um
150
end
151
\rm -f bin/lagrantohelp.sh bin/lagrantohelp.um
152
\rm -f bin/startf bin/startf.sh bin/startf.um
153
\rm -f bin/lagranto.sh bin/lagranto.um
154
 
155
exit 0
156
 
157
endif
158
 
159
# -----------------------------------------------------------------------------
160
# Install reference 
161
# -----------------------------------------------------------------------------
162
 
163
if ( ("${mode}" == "docu") | ("${mode}" == "all" ) ) then
164
 
165
echo "-----------------------------------------------------------------"
166
echo "Installing documentation"
167
echo "-----------------------------------------------------------------"
168
echo
169
 
170
cd ${LAGRANTO}/docu/reference/
171
 
172
\rm -f reference.ps
173
\rm -f reference2.ps
174
groff -man ../man/*.0 > reference2.ps
175
ps2pdf reference2.ps
176
 
177
latex title
178
dvips title
179
ps2pdf title.ps
180
 
181
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=reference.pdf title.pdf reference2.pdf
182
 
183
\rm -f *.aux *.log *.dvi
184
\rm -f title.ps  reference2.ps
185
\rm -f title.pdf reference2.pdf
186
 
187
endif
188
 
189
if ( "${mode}" == "docu" ) exit 0
190
 
191
# -----------------------------------------------------------------------------
192
# Install libraries 
193
# -----------------------------------------------------------------------------
194
 
195
if ( ("${mode}" == "lib") | ("${mode}" == "all" ) ) then
196
 
197
echo "-----------------------------------------------------------------"
198
echo "Installing libraries"
199
echo "-----------------------------------------------------------------"
200
echo
201
 
202
# Change to library directory
203
cd ${LAGRANTO}/lib
204
 
205
# Loop over all libraries - compile and make library
206
foreach lib ( $libs )
207
 
208
\rm -f ${lib}.a
209
\rm -f ${lib}.o
210
echo ${FORTRAN} -c -O ${lib}.f
5 michaesp 211
${FORTRAN} -c -O ${NETCDF_INC} ${lib}.f
3 michaesp 212
ar r ${lib}.a ${lib}.o
213
\rm -f ${lib}.l ${lib}.o
214
ranlib ${lib}.a
215
if ( ! -f ${lib}.a ) then
216
  echo "Problem in compiling ${lib} ... Stop"
217
  exit 1
218
endif
219
 
220
end
221
 
222
endif
223
 
224
if ( "${mode}" == "lib" ) exit 0
225
 
226
# -----------------------------------------------------------------------------
227
# Check that libraries are ok
228
# -----------------------------------------------------------------------------
229
 
230
echo
231
echo "-----------------------------------------------------------------"
232
echo "Check that all libraries are available"
233
echo "-----------------------------------------------------------------"
234
echo
235
 
236
# Change to library directory
237
cd ${LAGRANTO}/lib
238
 
239
# Check whether all libraries are available
240
foreach lib ( $libs )
241
 
242
if ( ! -f ${lib}.a ) then
243
  echo "Library ${lib} missing... Stop"
244
  exit 1
245
else
246
  ls -l ${lib}.a    
247
endif
248
 
249
end
250
 
251
# Exit if only libraries shoudl be installed
252
if ( "${mode}" == "lib" ) exit 0
253
 
254
# -----------------------------------------------------------------------------
255
# Compile Lagrango core programs
256
# -----------------------------------------------------------------------------
257
 
258
if ( ("${mode}" == "all" ) | ("${mode}" == "core" ) ) then
259
 
260
echo
261
echo "-----------------------------------------------------------------"
262
echo "Installing Lagranto core programs"
263
echo "-----------------------------------------------------------------"
264
 
265
foreach prog ( $core )
266
 
267
echo
268
echo "----- $prog"
269
echo
270
cd ${LAGRANTO}/${prog}
271
\rm -f ${prog}.o 
272
\rm -f ${prog}
273
if ( "${prog}" == "trace"  ) \rm calvar.o
274
if ( "${prog}" == "select" ) \rm special.o
275
\rm -f ${prog}
276
make -f ${prog}.make
277
if ( ! -f ${prog} ) then
278
  echo "Problem in compiling ${prog} ... Stop"
279
  exit 1
280
endif
281
 
282
end
283
 
284
endif
285
 
286
if ( "${mode}" == "core" ) exit 0
287
 
288
# -----------------------------------------------------------------------------
289
# Check that all Lagranto core programs are available
290
# -----------------------------------------------------------------------------
291
 
292
echo
293
echo "-----------------------------------------------------------------"
294
echo "Check that all Lagranto core programs are available"
295
echo "-----------------------------------------------------------------"
296
echo
297
 
298
foreach prog ( $core )
299
 
300
  cd ${LAGRANTO}/${prog}
301
  if ( ! -f ${prog} ) then
302
    echo "${prog} is missing... Stop"
303
    exit 1
304
  else
305
    ls -l ${prog}    
306
  endif
307
 
308
end
309
 
310
# Exit if only core programs shoudl be installed
311
if ( "${mode}" == "core" ) exit 0
312
 
313
# -----------------------------------------------------------------------------
314
# Compile Lagrango goodies
315
# -----------------------------------------------------------------------------
316
 
317
if ( ("${mode}" == "all" ) | ("${mode}" == "goodies" ) ) then
318
 
319
echo
320
echo "-----------------------------------------------------------------"
321
echo "Installing Lagranto goodies"
322
echo "-----------------------------------------------------------------"
323
 
324
cd ${LAGRANTO}/goodies
325
 
326
foreach tool ( $tools )
327
 
328
echo
329
echo "----- ${tool}"
330
echo
331
\rm -f ${tool}.o
332
\rm -f ${tool}
333
make -f ${tool}.make
334
if ( ! -f ${tool} ) then
335
  echo "Problem in compiling ${tool} ... Stop"
336
  exit 1
337
endif
338
 
339
end
340
 
341
endif
342
 
343
if ( "${mode}" == "goodies" ) exit 0
344
 
345
# -----------------------------------------------------------------------------
346
# Check that all Lagranto goodies are available
347
# -----------------------------------------------------------------------------
348
 
349
echo
350
echo "-----------------------------------------------------------------"
351
echo "Check that all Lagranto goodies are available"
352
echo "-----------------------------------------------------------------"
353
echo
354
 
355
cd ${LAGRANTO}/goodies
356
 
357
foreach tool ( $tools )
358
 
359
if ( ! -f ${tool} ) then
360
  echo "${tool} is missing... Stop"
361
  exit 1
362
else
363
  ls -l ${tool} 
364
endif
365
 
366
end
367
 
368
endif
369
 
370
# Exit if only goodies should be installed
371
if ( "${mode}" == "goodies" ) exit 0
372
 
373
# -----------------------------------------------------------------------------
16 michaesp 374
# Compile conversion tool
375
# -----------------------------------------------------------------------------
376
 
377
if ( ("${mode}" == "all" ) | ("${mode}" == "convert" ) ) then
378
 
379
echo
380
echo "-----------------------------------------------------------------"
381
echo "Installing Lagranto conversion tool"
382
echo "-----------------------------------------------------------------"
383
 
384
cd ${LAGRANTO}/convert
385
 
386
foreach tool ( pp2cdf )
387
 
388
echo
389
echo "----- ${tool}"
390
echo
391
\rm -f ${tool}.o
392
\rm -f ${tool}
393
make -f ${tool}.make
394
if ( ! -f ${tool} ) then
395
  echo "Problem in compiling ${tool} ... Stop"
396
  exit 1
397
endif
398
 
399
end
400
 
401
endif
402
 
403
# Exit if only goodies should be installed
404
if ( "${mode}" == "convert" ) exit 0
405
 
406
# -----------------------------------------------------------------------------
407
# Check that all Lagranto conversion tool is available
408
# -----------------------------------------------------------------------------
409
 
410
echo
411
echo "-----------------------------------------------------------------"
412
echo "Check that all Lagranto conversion tool is available"
413
echo "-----------------------------------------------------------------"
414
echo
415
 
416
cd ${LAGRANTO}/convert
417
 
418
foreach tool ( pp2cdf  )
419
 
420
if ( ! -f ${tool} ) then
421
  echo "${tool} is missing... Stop"
422
  exit 1
423
else
424
  ls -l ${tool} 
425
endif
426
 
427
end
428
 
429
endif
430
 
431
# Exit if only conversion tool should be installed
432
if ( "${mode}" == "convert" ) exit 0
433
 
434
# -----------------------------------------------------------------------------
3 michaesp 435
# Create links to programs
436
# -----------------------------------------------------------------------------
437
 
438
if ( ("${mode}" == "all" ) | ("${mode}" == "links" )  ) then
439
 
440
echo
441
echo "-----------------------------------------------------------------"
442
echo "Create links in ${LAGRANTO}/bin/"
443
echo "-----------------------------------------------------------------"
444
echo
445
 
446
cd ${LAGRANTO}/bin
447
 
448
ln -svf ${LAGRANTO}/bin/lagranto            lagranto.sh
449
ln -svf ${LAGRANTO}/bin/lagranto            lagranto.um  
450
ln -svf ${LAGRANTO}/bin/lagrantohelp        lagrantohelp.sh
451
ln -svf ${LAGRANTO}/bin/lagrantohelp        lagrantohelp.um
452
 
453
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra.sh
7 michaesp 454
ln -svf ${LAGRANTO}/startf/startf.sh        startf.sh
3 michaesp 455
ln -svf ${LAGRANTO}/select/select.sh        select.sh
456
ln -svf ${LAGRANTO}/trace/trace.sh          trace.sh
457
ln -svf ${LAGRANTO}/density/density.sh      density.sh
458
 
459
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra
7 michaesp 460
ln -svf ${LAGRANTO}/startf/startf.sh        startf
3 michaesp 461
ln -svf ${LAGRANTO}/select/select.sh        select
462
ln -svf ${LAGRANTO}/trace/trace.sh          trace
463
ln -svf ${LAGRANTO}/density/density.sh      density
464
 
465
ln -svf ${LAGRANTO}/caltra/caltra.sh        caltra.um
7 michaesp 466
ln -svf ${LAGRANTO}/startf/startf.sh        startf.um
3 michaesp 467
ln -svf ${LAGRANTO}/select/select.sh        select.um
468
ln -svf ${LAGRANTO}/trace/trace.sh          trace.um
469
ln -svf ${LAGRANTO}/density/density.sh      density.um
470
 
471
foreach tool ( $tools )
472
 
473
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool}.sh 
474
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool} 
475
ln -svf ${LAGRANTO}/goodies/${tool}.sh     ${tool}.um
476
 
477
end
478
 
15 michaesp 479
# Set extra name for <select> to avoid conflict in BASH
480
ln -svf ${LAGRANTO}/select/select.sh        seltra
481
ln -svf ${LAGRANTO}/select/select.sh        seltra.sh
482
ln -svf ${LAGRANTO}/select/select.sh        seltra.um
483
 
484
 
3 michaesp 485
endif
486
 
487
# -----------------------------------------------------------------------------
15 michaesp 488
# Synchronise ( development -> operational ) 
489
# -----------------------------------------------------------------------------
490
 
491
if ( ("${mode}" == "all" ) | ("${mode}" == "sync" )  ) then
492
 
493
echo
494
echo "-----------------------------------------------------------------"
495
echo "Sync ( lagranto.um -> lagranto )"
496
echo "-----------------------------------------------------------------"
497
echo
498
 
499
cd ${path_sync}/bin/
500
 
501
ln -svf ${path_devel}/bin/lagrantohelp.sh        lagrantohelp.um
502
 
503
ln -svf ${path_devel}/caltra/caltra.sh           caltra.um
504
ln -svf ${path_devel}/select/select.sh           select.um
505
ln -svf ${path_devel}/trace/trace.sh             trace.um
506
ln -svf ${path_devel}/lidar/seltra.sh            seltra.um
507
 
508
foreach tool ( $tools )
509
 
510
ln -svf ${path_devel}/goodies/${tool}.sh      ${tool}.um
511
 
512
end
513
 
514
# Set all permissions
515
chmod -R og+rx ${path_sync}/bin/
516
 
517
endif
518
 
519
 
520
# -----------------------------------------------------------------------------
3 michaesp 521
# Final tasks
522
# -----------------------------------------------------------------------------
523
 
524
echo
525
echo "-----------------------------------------------------------------"
526
echo "Installation complete"
527
echo "-----------------------------------------------------------------"
528
echo
529
echo "Please set the environmental variable LAGRANTO"
530
echo
531
echo "    setenv LAGRANTO ${LAGRANTO}"
532
echo
533
 
534
 
535
 
536
 
537