tspinup.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
---
tspinup.sh (2941B)
---
1 #!/bin/bash
2
3 # do a basic Jakoshavn spinup by:
4 # ./spinup NN Mx My >> out.spin &
5
6 # if user says "spinup.sh 8 620 425" then NN=8, Mx=620, My=425
7 NN="$1"
8 Mx="$2"
9 My="$3"
10
11 if [ $# -lt 3 ] ; then
12 echo "spinup.sh ERROR: needs three arguments"
13 exit
14 fi
15
16 # set MPIDO if using different MPI execution command, for example:
17 # $ export PISM_MPIDO="aprun -n "
18 if [ -n "${PISM_MPIDO:+1}" ] ; then # check if env var is already set
19 echo "$SCRIPTNAME PISM_MPIDO = $PISM_MPIDO (already set)"
20 else
21 PISM_MPIDO="mpiexec -n "
22 echo "$SCRIPTNAME PISM_MPIDO = $PISM_MPIDO"
23 fi
24
25 # check if env var PISM_DO was set (i.e. PISM_DO=echo for a 'dry' run)
26 if [ -n "${PISM_DO:+1}" ] ; then # check if env var DO is already set
27 echo "$SCRIPTNAME PISM_DO = $PISM_DO (already set)"
28 else
29 PISM_DO=""
30 fi
31
32 # prefix to pism (not to executables)
33 if [ -n "${PISM_BIN:+1}" ] ; then # check if env var is already set
34 echo "$SCRIPTNAME PISM_BIN = $PISM_BIN (already set)"
35 else
36 PISM_BIN="" # just a guess
37 echo "$SCRIPTNAME PISM_BIN = $PISM_BIN"
38 fi
39
40 # set PISM_EXEC if using different executables, for example:
41 # $ export PISM_EXEC="pismr -energy cold"
42 if [ -n "${PISM_EXEC:+1}" ] ; then # check if env var is already set
43 echo "$SCRIPTNAME PISM_EXEC = $PISM_EXEC (already set)"
44 else
45 PISM_EXEC="pismr -regional"
46 echo "$SCRIPTNAME PISM_EXEC = $PISM_EXEC"
47 fi
48
49 PISM=$PISM_EXEC
50
51 BOOT=jako.nc
52 CLIMATEFILE=g5km_climate.nc
53 BCFILE=g5km_bc.nc
54
55 CLIMATE="-surface given,forcing -surface_given_file $CLIMATEFILE -force_to_thickness_file $BOOT"
56
57 # regarding physics: '-till_effective_fraction_overburden 0.02' plus
58 # '-pseudo_plastic -pseudo_plastic_q 0.25' plus '-tauc_slippery_grounding_lines'
59 # matches default choices in spinup.sh in examples/std-greenland/
60 # but here we do not use -sia_e 3.0 but instead -sia_e 1.0
61 PHYS="-front_retreat_file $BOOT -pik -sia_e 1.0 -stress_balance ssa+sia -topg_to_phi 15.0,40.0,-300.0,700.0 -till_effective_fraction_overburden 0.02 -pseudo_plastic -pseudo_plastic_q 0.25 -tauc_slippery_grounding_lines"
62
63 SKIP=5
64
65 LENGTH=${SPINUP_LENGTH:-2000} # model years
66 EXDT=20 # 20 year between saves, thus 100 frames
67
68 cmd="$PISM_MPIDO $NN $PISM -i $BOOT -bootstrap -no_model_strip 10 \
69 -Mx $Mx -My $My -Lz 4000 -Lbz 1000 -Mz 201 -Mbz 51 -z_spacing equal \
70 -no_model_strip 10 $PHYS \
71 -regional.zero_gradient \
72 -extra_file ex_spunjako_0.nc -extra_times -$LENGTH:$EXDT:0 \
73 -extra_vars thk,velbase_mag,tillwat,tauc,dHdt,hardav,velsurf_mag,temppabase,diffusivity,bmelt,tempicethk_basal \
74 -ts_file ts_spunjako_0.nc -ts_times -$LENGTH:yearly:0 \
75 -ssa_dirichlet_bc -regrid_file $BCFILE -regrid_vars basal_melt_rate_grounded,tillwat,enthalpy,litho_temp,vel_ssa_bc \
76 $CLIMATE -ys -$LENGTH -ye 0 -skip -skip_max $SKIP -o spunjako_0.nc"
77 $PISM_DO $cmd
78
79 # NOTES:
80 # useful diagnostic: -ssa_view_nuh
81 # good postprocess:
82 #ncap -O -s "dtau=taud_mag-tauc" spunjako_0.nc spunjako_0.nc
83