ttest_13.sh - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
ttest_13.sh (1497B)
---
1 #!/bin/bash
2
3 PISM_PATH=$1
4 MPIEXEC=$2
5
6 # Test name:
7 echo "Test #13: enthalpy symmetry near the base (pisms -energy enthalpy)."
8 # The list of files to delete when done.
9 files="simp_exper-13.nc"
10
11 rm -f $files
12 # run pisms
13 $MPIEXEC -n 2 $PISM_PATH/pisms -y 10e3 -Lz 5000 -Mx 12 -My 12 -o_size big -energy enthalpy -o simp_exper-13.nc
14
15 ncpdq -a z,y,x -O simp_exper-13.nc simp_exper-13.nc
16
17 /usr/bin/env python3 <<EOF
18 from netCDF4 import Dataset as NC
19 from numpy import abs, arange
20 from sys import exit
21
22 nc = NC("simp_exper-13.nc", 'r')
23 var = nc.variables['enthalpy']
24 n = 12; m = 12; tol = 1e-3
25
26 for k in [0, 1, 2]:
27 v = var[0,k,:,:] # time,z,y,x
28 for i in arange((n-1)/2, dtype=int):
29 for j in arange((m-1)/2, dtype=int):
30 ii = (n-1) - i
31 jj = (m-1) - j
32
33 delta = abs(v[i,j] - v[ii,j])
34 if (delta >= tol):
35 print("X-symmetry failure at (%d,%d),(%d,%d) level %d (delta = %2.2e)" % (i,j,ii,j,k,delta))
36 exit(1)
37
38 delta = abs(v[i,j] - v[i,jj])
39 if (delta >= tol):
40 print("Y-symmetry failure at (%d,%d),(%d,%d) level %d (delta = %2.2e)" % (i,j,i,jj,k,delta))
41 exit(1)
42
43 delta = abs(v[i,j] - v[ii,jj])
44 if (delta >= tol):
45 print("Radial symmetry failure at (%d,%d),(%d,%d) level %d (delta = %2.2e)" % (i,j,ii,jj,k,delta))
46 exit(1)
47 exit(0)
48 EOF
49
50 if [ $? != 0 ];
51 then
52 exit 1
53 fi
54
55 rm -f $files; exit 0
56