tREADME.md - pism-exp-gsw - ice stream and sediment transport experiments | |
git clone git://src.adamsgaard.dk/pism-exp-gsw | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
tREADME.md (6090B) | |
--- | |
1 MISMIP in PISM | |
2 ============== | |
3 | |
4 This directory contains scripts that can be used to run MISMIP experimen… | |
5 | |
6 Older PISM versions included C++ code managing MISMIP experiments. With … | |
7 | |
8 Step by step instructions | |
9 ------------------------- | |
10 | |
11 First of all, you will need to copy or symlink `util/PISMNC.py` into the | |
12 current directory to make sure that Python will be able to import it. | |
13 | |
14 The script `run.py` is used to generate a `bash` scripts performing MISM… | |
15 experiments. Running `run.py --help` produces the following: | |
16 | |
17 Usage: run.py [options] | |
18 | |
19 Creates a script running MISMIP experiments. | |
20 | |
21 Options: | |
22 -h, --help show this help message and exit | |
23 --initials=INITIALS Initials (3 letters) | |
24 -e EXPERIMENT, --experiment=EXPERIMENT | |
25 MISMIP experiments (one of '1a', '1b', '2a',… | |
26 '3a', '3b') | |
27 -s STEP, --step=STEP MISMIP step number | |
28 -u, --uniform_thickness | |
29 Use uniform 10 m ice thickness | |
30 -a, --all Run all experiments | |
31 -m MODE, --mode=MODE MISMIP grid mode | |
32 --Mx=MX Custom grid size; use with --mode=3 | |
33 --model=MODEL Models: 1 - SSA only; 2 - SIA+SSA | |
34 --executable=EXECUTABLE | |
35 Executable to run, e.g. 'mpiexec -n 4 pismr' | |
36 | |
37 For example, to set up MISMIP experiment `1a` using grid mode 1, a 12 km… | |
38 | |
39 ./run.py -e 1a --mode=1 > experiment-1a-mode-1.sh | |
40 | |
41 This will create `experiment-1a-mode-1.sh` as well as the bootstrapping … | |
42 `MISMIP_boot_1a_M1_A1.nc` and configuration files corresponding to each … | |
43 in the experiment. | |
44 | |
45 Run in the backround with 2 cores and saving output to a text file this … | |
46 | |
47 bash experiment-1a-mode-1.sh 2 >& out.1a-mode-1 & | |
48 | |
49 You can also copy the script (along with | |
50 `MISMIP_boot_1a_M1_A1.nc` and `MISMIP_conf_1a_A*.nc`) to a supercomputer… | |
51 do the run later. For such application, the script helpfully uses envir… | |
52 `PISM_BIN` and `PISM_MPIDO`. For example, on some Cray machines you migh… | |
53 | |
54 PISM_MPIDO="aprun -n " bash experiment-1a-mode-1.sh 32 | |
55 | |
56 will use `aprun` on 32 cores. Alternatively, you can use | |
57 | |
58 ./run.py -e 1a --mode=1 --executable="aprun -n 32 pismr" | |
59 | |
60 or similar to skip the "preamble" handling environment variables and get… | |
61 commands. | |
62 | |
63 | |
64 Refined grid runs | |
65 ----------------- | |
66 | |
67 The above "grid mode 1" runs use 150 grid spaces in the MISMIP modeling … | |
68 which is 301 grid points in PISM's (doubled) domain. The domain is doub… | |
69 PISM is easiest configure as a whole ice sheet model with ice free ocean… | |
70 edge of the computation domain. (Compare the example in `examples/jako/… | |
71 | |
72 To run a higher resolution 3 km grid, with somewhat-improved grounding l… | |
73 performance, ask the `run.py` script to put option `-Mx 1201` into the b… | |
74 script: | |
75 | |
76 ./run.py -e 1a --mode=3 --Mx=1201 > experiment-1a-mode-3.sh | |
77 | |
78 Then this is a 4 core run: | |
79 | |
80 bash experiment-1a-mode-3.sh 4 >& out.1a-mode-3 & | |
81 | |
82 | |
83 Technical details | |
84 ----------------- | |
85 | |
86 The script `MISMIP.py` contains MISMIP parameters and the code needed to | |
87 compute the semi-analytic grounding line location and the corresponding | |
88 thickness profile for each experiment. | |
89 | |
90 The script `prepare.py` contains functions using `MISMIP.py` to generate | |
91 PISM-readable NetCDF files with semi-analytic ice thickness profiles, and | |
92 the prescribed accumulation map. It can be imported as a module or run | |
93 as a script to generate PISM bootstrapping files. | |
94 | |
95 The script `run.py` generates `bash` scripts performing MISMIP runs using | |
96 `MISMIP.py` and `prepare.py`. | |
97 | |
98 Implementation details | |
99 ---------------------- | |
100 | |
101 We can turn PISM's default sliding law into MISMIP's power law by settin… | |
102 threshold speed to 1 meter per second, which will make it inactive. | |
103 | |
104 The `-pseudo_plastic_uthreshold` command-line option takes an argument i… | |
105 | |
106 The MISMIP parameter C corresponds to `tauc` in PISM. It can be set usin… | |
107 | |
108 The MISMIP power law exponent `m` corresponds to `-pseudo_plastic_q` in … | |
109 | |
110 We use the `-config_override` option to set other MISMIP-specific parame… | |
111 | |
112 Note that PISM does not at this time implement the stopping criteria des… | |
113 | |
114 Post-processing | |
115 --------------- | |
116 | |
117 Converting PISM output files to ASCII files following MISMIP | |
118 specifications is left as an exercise. | |
119 | |
120 However, we do provide the `plot.py` script for visualization. | |
121 | |
122 It plots modeled ice flux as a function of the distance from the divide … | |
123 | |
124 We see a discontinuity in the flux at the grounding | |
125 line. This is an issue in PISM that needs to be addressed to improve its | |
126 handling of the grounding line motion. For example, try | |
127 | |
128 ./plot.py ABC1_1a_M1_A1.nc -f -o flux.png | |
129 | |
130 Run `plot.py --help` for a list of command-line options. You can also pr… | |
131 | |
132 ./plot.py ABC*.nc | |
133 | |
134 will create geometry profile *and* ice flux plots for all matched files. | |
135 | |
136 Also, note that the variable `ice_area_glacierized_grounded` in `ts_ABC1… | |
137 allows one to see time-dependent changes in the grounding line location | |
138 because grounded ice area is proportional to the distance from the divid… | |
139 grounding line. |