source: issm/oecreview/Archive/24684-25833/ISSM-25243-25244.diff@ 25834

Last change on this file since 25834 was 25834, checked in by Mathieu Morlighem, 4 years ago

CHG: added 24684-25833

File size: 18.4 KB
RevLine 
[25834]1Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries.sh
2===================================================================
3--- ../trunk-jpl/packagers/linux/package-issm-linux-binaries.sh (revision 25243)
4+++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries.sh (revision 25244)
5@@ -1,6 +1,11 @@
6 #!/bin/bash
7
8
9+# Script to test, package, and transfer distributable to ISSM Web site.
10+# Corresponds with build generated by configuration in
11+# $ISSM_DIR/jenkins/ross-debian_linux-binaries.
12+#
13+
14 ## Constants
15 #
16 LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself
17@@ -11,6 +16,10 @@
18 TARBALL_NAME="issm-linux"
19 TARBALL="${TARBALL_NAME}.tar.gz"
20
21+## Environment
22+#
23+export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
24+
25 # Check if MATLAB exists
26 if ! [ -d ${MATLAB_PATH} ]; then
27 echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again."
28@@ -58,7 +67,7 @@
29
30 # Check that MATLAB did not exit in error
31 matlabExitCode=`echo $?`
32-matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l`
33+matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l`
34
35 if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
36 echo "----------MATLAB exited in error!----------"
37Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh
38===================================================================
39--- ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25243)
40+++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25244)
41@@ -1,6 +1,11 @@
42 #!/bin/bash
43
44
45+# Script to test, package, and transfer distributable to ISSM Web site.
46+# Corresponds with build generated by configuration in
47+# $ISSM_DIR/jenkins/ross-debian_linux-binaries-solid_earth.
48+#
49+
50 ## Constants
51 #
52 LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself
53@@ -12,6 +17,10 @@
54 TARBALL_NAME="issm-linux-solid_earth"
55 TARBALL="${TARBALL_NAME}.tar.gz"
56
57+## Environment
58+#
59+export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
60+
61 # Check if MATLAB exists
62 if ! [ -d ${MATLAB_PATH} ]; then
63 echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again."
64@@ -87,7 +96,7 @@
65
66 # Check that MATLAB did not exit in error
67 matlabExitCode=`echo $?`
68-matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l`
69+matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l`
70
71 if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
72 echo "----------MATLAB exited in error!----------"
73Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries-with_dakota.sh
74===================================================================
75--- ../trunk-jpl/packagers/linux/package-issm-linux-binaries-with_dakota.sh (revision 25243)
76+++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries-with_dakota.sh (revision 25244)
77@@ -1,6 +1,11 @@
78 #!/bin/bash
79
80
81+# Script to test, package, and transfer distributable to ISSM Web site.
82+# Corresponds with build generated by configuration in
83+# $ISSM_DIR/jenkins/ross-debian_linux-binaries-with_dakota.
84+#
85+
86 ## Constants
87 #
88 LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself
89@@ -12,6 +17,10 @@
90 TARBALL_NAME="issm-linux-with_dakota"
91 TARBALL="${TARBALL_NAME}.tar.gz"
92
93+## Environment
94+#
95+export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
96+
97 # Check if MATLAB exists
98 if ! [ -d ${MATLAB_PATH} ]; then
99 echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again."
100@@ -61,7 +70,7 @@
101
102 # Check that MATLAB did not exit in error
103 matlabExitCode=`echo $?`
104-matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l`
105+matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l`
106
107 if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
108 echo "----------MATLAB exited in error!----------"
109Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh
110===================================================================
111--- ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (nonexistent)
112+++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (revision 25244)
113@@ -0,0 +1,175 @@
114+#!/bin/bash
115+
116+
117+# Script to test, package, and transfer distributable to ISSM Web site.
118+# Corresponds with build generated by configuration in
119+# $ISSM_DIR/jenkins/pine_island-mac-binaries-solid_earth.
120+#
121+
122+## Constants
123+#
124+MATLAB_NROPTIONS="'benchmark','slr'"
125+MATLAB_PATH="/Applications/MATLAB_R2018a.app"
126+PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to
127+PYTHON_NROPTIONS="--benchmark slr"
128+TARBALL_NAME="issm-linux-solid_earth"
129+TARBALL="${TARBALL_NAME}.tar.gz"
130+
131+## Environment
132+#
133+export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
134+
135+# Check if MATLAB exists
136+if ! [ -d ${MATLAB_PATH} ]; then
137+ echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again."
138+ exit 1
139+fi
140+
141+# Clean up from previous packaging
142+echo "Cleaning up existing assets"
143+cd ${ISSM_DIR}
144+rm -rf ${PACKAGE}
145+mkdir ${PACKAGE}
146+
147+# Add/modify required binaries
148+cd ${ISSM_DIR}/bin
149+
150+echo "Modifying generic"
151+cat generic_static.m | sed -e "s/generic_static/generic/g" > generic.m
152+cat generic_static.py | sed -e "s/generic_static/generic/g" > generic.py
153+
154+echo "Moving MPICH binaries to bin/"
155+if [ -f ${ISSM_DIR}/externalpackages/petsc/install/bin/mpiexec ]; then
156+ cp ${ISSM_DIR}/externalpackages/petsc/install/bin/mpiexec .
157+ cp ${ISSM_DIR}/externalpackages/petsc/install/bin/hydra_pmi_proxy .
158+elif [ -f ${ISSM_DIR}/externalpackages/mpich/install/bin/mpiexec ]; then
159+ cp ${ISSM_DIR}/externalpackages/mpich/install/bin/mpiexec .
160+ cp ${ISSM_DIR}/externalpackages/mpich/install/bin/hydra_pmi_proxy .
161+else
162+ echo "MPICH not found"
163+ exit 1
164+fi
165+
166+echo "Moving GDAL binaries to bin/"
167+if [ -f ${ISSM_DIR}/externalpackages/gdal/install/bin/gdal-config ]; then
168+ cp ${ISSM_DIR}/externalpackages/gdal/install/bin/gdalsrsinfo .
169+ cp ${ISSM_DIR}/externalpackages/gdal/install/bin/gdaltransform .
170+else
171+ echo "GDAL not found"
172+ exit 1
173+fi
174+
175+echo "Moving GMT binaries to bin/"
176+if [ -f ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt-config ]; then
177+ cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt .
178+ cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmtselect .
179+else
180+ echo "GMT not found"
181+ exit 1
182+fi
183+
184+echo "Moving Gmsh binaries to bin/"
185+if [ -f ${ISSM_DIR}/externalpackages/gmsh/install/bin/gmsh ]; then
186+ cp ${ISSM_DIR}/externalpackages/gmsh/install/bin/gmsh .
187+else
188+ echo "Gmsh not found"
189+ exit 1
190+fi
191+
192+# Run tests
193+echo "Running tests"
194+cd ${ISSM_DIR}/test/NightlyRun
195+
196+# Check that MATLAB tests run
197+echo "Running MATLAB tests"
198+
199+rm matlab.log 2> /dev/null
200+
201+# Run MATLAB tests redirecting output to logfile and suppressing output to console
202+${MATLAB_PATH}/bin/matlab -nojvm -nosplash -r "try, addpath ${ISSM_DIR}/bin ${ISSM_DIR}/lib; runme(${MATLAB_NROPTIONS}); exit; catch me,fprintf('%s',getReport(me)); exit; end" -logfile matlab.log &> /dev/null
203+
204+# Check that MATLAB did not exit in error
205+matlabExitCode=`echo $?`
206+matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l`
207+
208+if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
209+ echo "----------MATLAB exited in error!----------"
210+ cat matlab.log
211+ echo "-----------End of matlab.log-----------"
212+
213+ # Clean up execution directory
214+ rm -rf ${ISSM_DIR}/execution/*
215+
216+ exit 1
217+fi
218+
219+# Check that all MATLAB tests passed
220+numMatlabTestsFailed=`cat matlab.log | grep -c -e "FAILED|ERROR"`
221+
222+if [[ ${numMatlabTestsFailed} -ne 0 ]]; then
223+ echo "One or more MATLAB tests FAILED"
224+ exit 1;
225+else
226+ echo "All MATLAB tests PASSED"
227+fi
228+
229+# Check that Python tests run
230+echo "Running Python tests"
231+
232+export PATH="${PATH}:${ISSM_DIR}/bin"
233+export PYTHONPATH="${ISSM_DIR}/src/m/dev"
234+export PYTHONSTARTUP="${PYTHONPATH}/devpath.py"
235+export PYTHONUNBUFFERED=1 # We don't want Python to buffer output, otherwise issm.exe output is not captured
236+
237+rm python.log 2> /dev/null
238+./runme.py ${PYTHON_NROPTIONS} &> python.log 2>&1
239+
240+# Check that Python did not exit in error
241+pythonExitCode=`echo $?`
242+pythonExitedInError=`grep -E "Error|Traceback|bad interpreter" python.log | wc -l`
243+
244+if [[ ${pythonExitCode} -ne 0 || ${pythonExitedInError} -ne 0 ]]; then
245+ echo "----------Python exited in error!----------"
246+ cat python.log
247+ echo "-----------End of python.log-----------"
248+
249+ # Clean up execution directory
250+ rm -rf ${ISSM_DIR}/execution/*
251+
252+ exit 1
253+fi
254+
255+# Check that all Python tests passed
256+numPythonTestsFailed=`cat python.log | grep -c -e "FAILED|ERROR"`
257+
258+if [[ ${numPythonTestsFailed} -ne 0 ]]; then
259+ echo "One or more Python tests FAILED"
260+ exit 1
261+else
262+ echo "All Python tests PASSED"
263+fi
264+
265+# Create tarball
266+cd ${ISSM_DIR}
267+rm -f ${TARBALL}
268+svn cleanup --remove-ignored --remove-unversioned test # Clean up test directory (before copying to package)
269+echo "Copying assets to package: ${PACKAGE}"
270+cp -rf bin examples lib scripts test ${PACKAGE}/
271+echo "Cleaning up unneeded/unwanted files"
272+python -m compileall ${PACKAGE}/bin # Precompile all Python scripts to bytecode
273+rm -f ${PACKAGE}/bin/*.py # Remove all Python scripts
274+rm -f ${PACKAGE}/bin/generic_static.* # Remove static versions of generic cluster classes
275+rm -f ${PACKAGE}/lib/*.a # Remove static libraries from package
276+rm -f ${PACKAGE}/lib/*.la # Remove libtool libraries from package
277+rm -f ${PACKAGE}/test/SandBox # Remove testing sandbox from package
278+echo "Creating tarball: ${TARBALL_NAME}"
279+tar -czf ${TARBALL} ${PACKAGE}
280+ls -lah ${ISSM_DIR}/${TARBALL}
281+
282+echo "Transferring binaries to ISSM Web site"
283+scp -i ~/.ssh/pine_island_to_ross ${TARBALL} jenkins@ross.ics.uci.edu:/var/www/html/${TARBALL}
284+
285+if [ $? -ne 0 ]; then
286+ echo "FAILED: Manually check connection"
287+ exit 1
288+fi
289
290Property changes on: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh
291___________________________________________________________________
292Added: svn:executable
293## -0,0 +1 ##
294+*
295\ No newline at end of property
296Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-with_dakota.sh
297===================================================================
298--- ../trunk-jpl/packagers/mac/package-issm-mac-binaries-with_dakota.sh (revision 25243)
299+++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries-with_dakota.sh (revision 25244)
300@@ -1,6 +1,11 @@
301 #!/bin/bash
302
303
304+# Script to test, package, and transfer distributable to ISSM Web site.
305+# Corresponds with build generated by configuration in
306+# $ISSM_DIR/jenkins/pine_island-mac-binaries-with_dakota.
307+#
308+
309 ## Constants
310 #
311 MATLAB_NROPTIONS="'id',[IdFromString('Dakota')],'exclude',[234,235,418,420,444,445]"
312@@ -10,6 +15,10 @@
313 TARBALL_NAME="issm-mac-with_dakota"
314 TARBALL="${TARBALL_NAME}.tar.gz"
315
316+## Environment
317+#
318+export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
319+
320 # Check if MATLAB exists
321 if ! [ -d ${MATLAB_PATH} ]; then
322 echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again."
323@@ -55,7 +64,7 @@
324
325 # Check that MATLAB did not exit in error
326 matlabExitCode=`echo $?`
327-matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l`
328+matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l`
329
330 if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
331 echo "----------MATLAB exited in error!----------"
332Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries.sh
333===================================================================
334--- ../trunk-jpl/packagers/mac/package-issm-mac-binaries.sh (revision 25243)
335+++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries.sh (revision 25244)
336@@ -1,6 +1,11 @@
337 #!/bin/bash
338
339
340+# Script to test, package, and transfer distributable to ISSM Web site.
341+# Corresponds with build generated by configuration in
342+# $ISSM_DIR/jenkins/pine_island-mac-binaries.
343+#
344+
345 ## Constants
346 #
347 MATLAB_NROPTIONS="'exclude',[IdFromString('Dakota'),435,701,702,703]"
348@@ -9,6 +14,10 @@
349 TARBALL_NAME="issm-mac"
350 TARBALL="${TARBALL_NAME}.tar.gz"
351
352+## Environment
353+#
354+export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
355+
356 # Check if MATLAB exists
357 if ! [ -d ${MATLAB_PATH} ]; then
358 echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again."
359@@ -53,7 +62,7 @@
360
361 # Check that MATLAB did not exit in error
362 matlabExitCode=`echo $?`
363-matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l`
364+matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l`
365
366 if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then
367 echo "----------MATLAB exited in error!----------"
368Index: ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth
369===================================================================
370--- ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth (nonexistent)
371+++ ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth (revision 25244)
372@@ -0,0 +1,85 @@
373+#--------------------#
374+# ISSM Configuration #
375+#--------------------#
376+
377+# MATLAB path
378+MATLAB_PATH="/Applications/MATLAB_R2018a.app"
379+
380+# NOTE:
381+# - We can disable dependency tracking in the Autotools because the binaries
382+# should always be a one-time build.
383+#
384+
385+# ISSM CONFIGURATION
386+ISSM_CONFIG='\
387+ --prefix=${ISSM_DIR} \
388+ --enable-standalone-executables \
389+ --enable-standalone-modules \
390+ --enable-standalone-libraries \
391+ --disable-dependency-tracking \
392+ --with-matlab-dir=${MATLAB_PATH} \
393+ --with-python-dir=/System/Library/Frameworks/Python.framework/Versions/2.7 \
394+ --with-python-numpy-dir=/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy \
395+ --with-fortran-lib="/usr/local/Cellar/gcc/9.3.0/lib/gcc/9/libgfortran.a /usr/local/Cellar/gcc/9.3.0/lib/gcc/9/libquadmath.a /usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin15/9.3.0/libgcc.a" \
396+ --with-mpi-include=${ISSM_DIR}/externalpackages/petsc/install/include \
397+ --with-mpi-libflags="-L${ISSM_DIR}/externalpackages/petsc/install/lib -lmpi -lmpicxx -lmpifort" \
398+ --with-blas-lapack-dir=${ISSM_DIR}/externalpackages/petsc/install \
399+ --with-metis-dir=${ISSM_DIR}/externalpackages/petsc/install \
400+ --with-scalapack-dir=${ISSM_DIR}/externalpackages/petsc/install \
401+ --with-mumps-dir=${ISSM_DIR}/externalpackages/petsc/install \
402+ --with-hdf5-dir=${ISSM_DIR}/externalpackages/petsc/install \
403+ --with-petsc-dir=${ISSM_DIR}/externalpackages/petsc/install \
404+ --with-triangle-dir=${ISSM_DIR}/externalpackages/triangle/install \
405+ --with-boost-dir=${ISSM_DIR}/externalpackages/boost/install
406+'
407+
408+#-------------------#
409+# External Packages #
410+#-------------------#
411+
412+#List of external pakages to be installed and their installation scripts
413+EXTERNALPACKAGES="
414+ autotools install.sh
415+ cmake install.sh
416+ petsc install-3.12-mac-solid_earth-static.sh
417+ boost install-1.7-mac-static.sh
418+ triangle install-mac-static.sh
419+ chaco install.sh
420+ m1qn3 install.sh
421+ semic install.sh
422+ curl install-7.67-static.sh
423+ netcdf install-4.7-mac-parallel-static.sh
424+ proj install-6.2-static.sh
425+ gdal install-3-python-netcdf-static.sh
426+ gshhg install.sh
427+ gmt install-6.0-mac-static.sh
428+ gmsh install-4-static.sh
429+ shell2junit install.sh
430+"
431+
432+#---------#
433+# Testing #
434+#---------#
435+
436+# Test suites
437+MATLAB_TEST=0
438+PYTHON_TEST=0
439+JAVASCRIPT_TEST=0
440+EXAMPLES_TEST=0
441+
442+# Number of CPUs used in ISSM compilation
443+#
444+# NOTE: One is usually safer as some packages are very sensitive to parallel
445+# compilation
446+#
447+NUMCPUS_INSTALL=4
448+
449+# Number of CPUs used in the nightly runs
450+NUMCPUS_RUN=1
451+
452+# Nightly run options
453+#
454+# See documentation in test/NightlyRun/runme.* for more information.
455+#
456+MATLAB_NROPTIONS=""
457+PYTHON_NROPTIONS=""
458
459Property changes on: ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth
460___________________________________________________________________
461Added: svn:executable
462## -0,0 +1 ##
463+*
464\ No newline at end of property
465Index: ../trunk-jpl/externalpackages/boost/install-1.7-mac.sh
466===================================================================
467--- ../trunk-jpl/externalpackages/boost/install-1.7-mac.sh (revision 25243)
468+++ ../trunk-jpl/externalpackages/boost/install-1.7-mac.sh (revision 25244)
469@@ -38,7 +38,17 @@
470 ./b2 install link=shared runtime-link=shared
471
472 # Set install_name for all shared libraries
473+#
474+# NOTE: The install_name_tool prints an error message on some installations,
475+# but this is not a shell error, and it does not seem to affect the
476+# Boost libraries called by ISSM. For now, we are simply redirecting the
477+# error to null.
478+#
479+# TODO:
480+# - Modify the source to apply absolute paths to the library ids so that
481+# patching it after the fact with install_name_tool is not necessary.
482+#
483 cd ${BOOST_ROOT}/install/lib
484 for name in *.dylib; do
485- install_name_tool -id ${BOOST_ROOT}/install/lib/${name} ${name}
486+ install_name_tool -id ${BOOST_ROOT}/install/lib/${name} ${name} 2>/dev/null
487 done
488Index: ../trunk-jpl/src/m/boundaryconditions/getlovenumbers.m
489===================================================================
490--- ../trunk-jpl/src/m/boundaryconditions/getlovenumbers.m (revision 25243)
491+++ ../trunk-jpl/src/m/boundaryconditions/getlovenumbers.m (revision 25244)
492@@ -36,8 +36,8 @@
493 end
494
495 love_numbers=[...
496- 0 0 0 0 0 0 0
497- -1.28740059 -1.00000000 -0.89858519 1.28740059 0.42519882 0.89858519 0.00000000
498+ 0 0 0 0 0 0 0;
499+ -1.28740059 -1.00000000 -0.89858519 1.28740059 0.42519882 0.89858519 0.00000000;
500 -1.00025365 -0.30922675 0.02060926 1.69102690 0.46358648 0.67016399 0.61829668;
501 -1.06243501 -0.19927948 0.06801636 1.86315553 0.55741597 0.73270416 0.56270589;
502 -1.06779588 -0.13649834 0.05667027 1.93129754 0.63672498 0.80683140 0.51132745;
Note: See TracBrowser for help on using the repository browser.