/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/STREAMICE.h
ViewVC logotype

Contents of /MITgcm_contrib/dgoldberg/streamice/STREAMICE.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.5 - (show annotations) (download)
Mon Jul 30 19:04:55 2012 UTC (12 years, 11 months ago) by dgoldberg
Branch: MAIN
Changes since 1.4: +2 -0 lines
File MIME type: text/plain
allow for fixed point iteration for nonlinear solve

1 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
2
3 #ifdef ALLOW_STREAMICE
4
5 C -------------------------- REAL PARAMS ---------------------------------------------------
6
7 COMMON /STREAMICE_PARMS_R/
8 & streamice_density, streamice_density_ocean_avg,
9 & A_glen_isothermal, n_glen, eps_glen_min,
10 & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,
11 & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,
12 & streamice_nonlin_tol_fp,
13 & streamice_CFL_factor, streamice_adjDump
14 _RL streamice_density, streamice_density_ocean_avg
15 _RL A_glen_isothermal, n_glen, eps_glen_min
16 _RL C_basal_fric_const
17 _RL n_basal_friction
18 _RL streamice_input_flux_unif
19 _RL streamice_vel_update
20 _RL streamice_cg_tol, streamice_nonlin_tol
21 _RL streamice_nonlin_tol_fp
22 _RL streamice_CFL_factor
23 _RL streamice_adjDump
24
25 C parms for parameterized initial thickness
26 C SHELF_MAX_DRAFT: max thickness of ice in m
27 C SHELF_MIN_DRAFT: min thickness of ice in m
28 C SHELF_EDGE_POS: extent of ice shelf in (km?)
29 C SHELF_SLOPE_SCALE: dist over which shelf slopes (km?)
30 C SHELF_FLAT_WIDTH: width of flat shelf (km?)
31 C also must be aware of units (m for cartesian, deg for curvilinear, m/deg for CYLINDRICAL POLAR)
32 C FLOW_DIR: 1.0=west, 2.0=east, 3.0=south, 4.0=north
33
34 COMMON /STREAMICE_H_INIT_R/
35 & shelf_max_draft,
36 & shelf_min_draft,
37 & shelf_edge_pos,
38 & shelf_slope_scale,
39 & shelf_flat_width,
40 & flow_dir
41 _RL shelf_max_draft
42 _RL shelf_min_draft
43 _RL shelf_edge_pos
44 _RL shelf_slope_scale
45 _RL shelf_flat_width
46 _RL flow_dir
47
48 C -------------------------- INT PARAMS ---------------------------------------------------
49
50 INTEGER streamice_max_nl
51 PARAMETER ( streamice_max_nl = 100 )
52
53 COMMON /STREAMICE_PARMS_I/
54 & streamice_max_cg_iter, streamice_max_nl_iter,
55 & streamice_vel_upd_counter, streamice_nstep_velocity,
56 & streamice_n_sub_regularize
57 INTEGER streamice_max_cg_iter, streamice_max_nl_iter
58 INTEGER streamice_vel_upd_counter, streamice_nstep_velocity
59 INTEGER streamice_n_sub_regularize
60
61 C -------------------------- CHAR PARAMS ---------------------------------------------------
62
63 CHARACTER*(MAX_LEN_FNAM) STREAMICEthickFile
64 CHARACTER*(MAX_LEN_FNAM) STREAMICEthickInit
65 CHARACTER*(MAX_LEN_FNAM) STREAMICEcalveMaskFile
66 COMMON /STREAMICE_PARM_C/
67 & STREAMICEthickInit,
68 & STREAMICEthickFile,
69 & STREAMICEcalveMaskFile
70
71 C -------------------------- LOGICAL PARAMS ---------------------------------------------------
72
73 LOGICAL STREAMICEison
74 LOGICAL STREAMICE_dump_mdsio
75 LOGICAL STREAMICE_tave_mdsio
76 LOGICAL STREAMICE_dump_mnc
77 LOGICAL STREAMICE_tave_mnc
78 LOGICAL STREAMICE_GL_regularize, STREAMICE_move_front
79 LOGICAL STREAMICE_calve_to_mask
80 LOGICAL STREAMICE_construct_matrix
81 LOGICAL STREAMICE_lower_cg_tol
82 COMMON /STREAMICE_PARM_L/
83 & STREAMICEison,
84 & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
85 & STREAMICE_dump_mnc, STREAMICE_tave_mnc,
86 & STREAMICE_GL_regularize, STREAMICE_move_front,
87 & STREAMICE_calve_to_mask,
88 & STREAMICE_construct_matrix,
89 & STREAMICE_lower_cg_tol
90
91 C -------------------------- AND NOW ARRAYS ---------------------------------------------------
92
93 C EXPLANATION OF MASKS
94
95 C STREAMICE_hmask VALUES 1=ice-covered cell
96 C 2=partially ice-covered cell (no dynamics)
97 C 0=ice-free cell (for now, it means the cell
98 C is treated as an open-ocean cell
99 C that ice shelf can flow into)
100 C -1=outside computational domain; will not change
101 C
102 C STREAMICE_umask VALUES 1=degree of freedom;
103 C 0=homogeneous dirich condition
104 C 3=inhomogeneous dirich condition
105
106 C STREAMICE_vmask similar to umask
107
108 C STREAMICE_ufacemask VALUES -1=unset,
109 C 0=no-flow boundary,
110 C 1=no-stress bdry
111 C 2=stress bdry condition,
112 C 3=inhomogeneous dirichlet boundary,
113 C 4=flux boundary: at these faces a flux will be specified by u_flux_bdry_SI
114 C
115 C STREAMICE_vfacemask similar to ufacemask
116 C STREAMICE_ufacemask_bdry field initialized at the beginning of simulation
117 C specified all ufacemask values except for calving front
118 C CONSTANT FOR A SIMULATION (ie not changes after streamice_init_fixed)
119 C STREAMICE_vfacemask_bdry CONSTANT FOR A SIMULATION
120 C STREAMICE_calve_mask specified allowed extent of ice shelf
121 C (should be integer, but don't know howvi sre to read ints from file)
122 C not necessarily used, but CONSTANT FOR A SIMULATION
123 C STREAMICE_float_cond will only be used if partial floatation is implemented
124
125 C Short arrays (e.g. masks)
126 COMMON /STREAMICE_FIELDS_RS/
127 & STREAMICE_hmask,
128 & STREAMICE_umask,
129 & STREAMICE_vmask,
130 & STREAMICE_ufacemask,
131 & STREAMICE_vfacemask,
132 & STREAMICE_ufacemask_bdry,
133 & STREAMICE_vfacemask_bdry,
134 & STREAMICE_float_cond,
135 & STREAMICE_calve_mask
136 _RS STREAMICE_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
137 _RS STREAMICE_umask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
138 _RS STREAMICE_vmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
139 _RS STREAMICE_ufacemask
140 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
141 _RS STREAMICE_vfacemask
142 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
143 _RS STREAMICE_ufacemask_bdry
144 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
145 _RS STREAMICE_vfacemask_bdry
146 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
147 _RS STREAMICE_float_cond
148 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
149 _RS STREAMICE_calve_mask
150 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
151
152 C NOTES :
153 C STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)
154 C STREAMICE_hmask IS PART OF **STATE**
155 C All other masks are updated within a timestep BASED ON STREAMICE_hmask
156
157 C Number of quadrature points are hardcoded.. could turn into a CPP macro
158
159 C REAL ARRAYS
160
161 COMMON /STREAMICE_FIELDS_RL/
162 & H_streamice,
163 & U_streamice,
164 & V_streamice,
165 & visc_streamice,
166 & tau_beta_eff_streamice,
167 & float_frac_streamice,
168 & base_el_streamice,
169 & surf_el_streamice,
170 & area_shelf_streamice,
171 & mass_ice_streamice,
172 & u_flux_bdry_SI,
173 & v_flux_bdry_SI,
174 & h_bdry_values_SI,
175 & u_bdry_values_SI,
176 & v_bdry_values_SI,
177 & STREAMICE_dummy_array,
178 & C_basal_friction
179 _RL H_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
180 _RL U_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
181 _RL V_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
182 _RL visc_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
183 _RL tau_beta_eff_streamice(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
184 _RL float_frac_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
185 _RL surf_el_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
186 _RL base_el_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
187 _RL area_shelf_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
188 _RL mass_ice_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
189 _RL u_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
190 _RL v_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
191 _RL h_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
192 _RL u_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
193 _RL v_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
194 _RL C_basal_friction (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
195
196 _RL STREAMICE_dummy_array (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
197
198 C NOTES :
199 C REAL ARRAYS THAT COMPRISE "STATE":
200 C H_streamice,
201 C U_streamice,
202 C V_streamice,
203 C visc_streamice,
204 C tau_beta_eff_streamice,
205 C area_shelf_streamice
206 C (and don't forget STREAMICE_hmask)
207 C
208 C visc & tau are now calculated based on U,V in streamice_vel_solve
209 C but with Hybdrid stress formulation they will become part of
210 C velocity initial guess, so they are kept
211
212
213 #endif /* ALLOW_STREAMICE */
214
215 CEH3 ;;; Local Variables: ***
216 CEH3 ;;; mode:fortran ***
217 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22