/[MITgcm]/MITgcm/pkg/streamice/STREAMICE.h
ViewVC logotype

Contents of /MITgcm/pkg/streamice/STREAMICE.h

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


Revision 1.2 - (show annotations) (download)
Fri Jun 21 19:59:36 2013 UTC (10 years, 11 months ago) by heimbach
Branch: MAIN
Changes since 1.1: +5 -4 lines
File MIME type: text/plain
OpenAD-compliant syntax

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 C & A_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
10 & B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
11 & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,
12 & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,
13 & streamice_nonlin_tol_fp,
14 & streamice_CFL_factor, streamice_adjDump,
15 & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
16 & streamice_kx_b_init, streamice_ky_b_init,
17 & streamice_wgt_drift, streamice_wgt_surf,
18 & streamice_wgt_avthick, streamice_wgt_vel,
19 & streamice_wgt_tikh,
20 & streamice_addl_backstress,
21 & streamice_smooth_gl_width,
22 & streamice_adot_uniform
23
24 _RL streamice_density, streamice_density_ocean_avg
25 C _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min
26 _RL B_glen_isothermal, n_glen, eps_glen_min, eps_u_min
27 _RL C_basal_fric_const
28 _RL n_basal_friction
29 _RL streamice_input_flux_unif
30 _RL streamice_vel_update
31 _RL streamice_cg_tol, streamice_nonlin_tol
32 _RL streamice_nonlin_tol_fp
33 _RL streamice_CFL_factor
34 _RL streamice_adjDump
35 _RL streamice_bg_surf_slope_x, streamice_bg_surf_slope_y
36 _RL streamice_kx_b_init, streamice_ky_b_init
37 _RL streamice_wgt_drift, streamice_wgt_surf
38 _RL streamice_wgt_avthick, streamice_wgt_vel
39 _RL streamice_wgt_tikh
40 _RL streamice_addl_backstress
41 _RL streamice_smooth_gl_width
42 _RL streamice_adot_uniform
43
44
45 C parms for parameterized initial thickness
46 C SHELF_MAX_DRAFT: max thickness of ice in m
47 C SHELF_MIN_DRAFT: min thickness of ice in m
48 C SHELF_EDGE_POS: extent of ice shelf in (km?)
49 C SHELF_SLOPE_SCALE: dist over which shelf slopes (km?)
50 C SHELF_FLAT_WIDTH: width of flat shelf (km?)
51 C also must be aware of units (m for cartesian, deg for curvilinear, m/deg for CYLINDRICAL POLAR)
52 C FLOW_DIR: 1.0=west, 2.0=east, 3.0=south, 4.0=north
53
54 COMMON /STREAMICE_H_INIT_R/
55 & shelf_max_draft,
56 & shelf_min_draft,
57 & shelf_edge_pos,
58 & shelf_slope_scale,
59 & shelf_flat_width,
60 & flow_dir
61 _RL shelf_max_draft
62 _RL shelf_min_draft
63 _RL shelf_edge_pos
64 _RL shelf_slope_scale
65 _RL shelf_flat_width
66 _RL flow_dir
67
68 C -------------------------- INT PARAMS ---------------------------------------------------
69
70 INTEGER streamice_max_nl
71 PARAMETER ( streamice_max_nl = 100 )
72
73 COMMON /STREAMICE_PARMS_I/
74 & streamice_max_cg_iter, streamice_max_nl_iter,
75 & streamice_vel_upd_counter, streamice_nstep_velocity,
76 & streamice_n_sub_regularize
77 INTEGER streamice_max_cg_iter, streamice_max_nl_iter
78 INTEGER streamice_vel_upd_counter, streamice_nstep_velocity
79 INTEGER streamice_n_sub_regularize
80
81 C -------------------------- CHAR PARAMS ---------------------------------------------------
82
83 CHARACTER*(MAX_LEN_FNAM) STREAMICEthickFile
84 CHARACTER*(MAX_LEN_FNAM) STREAMICEthickInit
85 CHARACTER*(MAX_LEN_FNAM) STREAMICEcalveMaskFile
86 CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordInit
87 CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordFile
88 CHARACTER*(MAX_LEN_FNAM) STREAMICEdelsigFile
89 CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracConfig
90 CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstConfig
91 CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracFile
92 CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstFile
93 CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile
94 CHARACTER*(MAX_LEN_FNAM) STREAMICEtopogFile
95 CHARACTER*(MAX_LEN_FNAM) STREAMICEcostMaskFile
96 CHARACTER*(MAX_LEN_FNAM) STREAMICE_ADV_SCHEME
97
98 ! THE FOLLOWING FILENAMES ARE FOR SPECIFYING IRREGULAR DOMAIN GEOMETRIES
99 ! (i.e. boundaries that do not conform with rectangular walls)
100 CHARACTER*(MAX_LEN_FNAM) STREAMICEhmaskFile
101 CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCxFile
102 CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCyFile
103 CHARACTER*(MAX_LEN_FNAM) STREAMICEuFaceBdryFile
104 CHARACTER*(MAX_LEN_FNAM) STREAMICEvFaceBdryFile
105 CHARACTER*(MAX_LEN_FNAM) STREAMICEuDirichValsFile
106 CHARACTER*(MAX_LEN_FNAM) STREAMICEvDirichValsFile
107
108 #ifdef ALLOW_PETSC
109 ! CHARACTER PARAMS FOR PETSC
110 CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE
111 CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TYPE
112 #endif
113
114 #ifdef ALLOW_STREAMICE_2DTRACER
115 ! CHARACTER PARAMS FOR TRACER
116 CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCxFile
117 CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCyFile
118 CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DinitFile
119 #endif
120
121 COMMON /STREAMICE_PARM_C/
122 & STREAMICEthickInit,
123 & STREAMICEthickFile,
124 & STREAMICEcalveMaskFile,
125 & STREAMICEsigcoordInit,
126 & STREAMICEsigcoordFile,
127 & STREAMICEdelsigFile,
128 & STREAMICEbasalTracConfig,
129 & STREAMICEbasalTracFile,
130 & STREAMICEvelOptimFile,
131 & STREAMICEtopogFile,
132 & STREAMICEhmaskFile,
133 & STREAMICEHBCxFile,
134 & STREAMICEHBCyFile,
135 & STREAMICEuFaceBdryFile,
136 & STREAMICEvFaceBdryFile,
137 & STREAMICEuDirichValsFile,
138 & STREAMICEvDirichValsFile,
139 & STREAMICEGlenConstFile,
140 & STREAMICEGlenConstConfig,
141 & STREAMICEcostMaskFile,
142 & STREAMICE_ADV_SCHEME
143
144 #ifdef ALLOW_PETSC
145 COMMON /PETSC_PARM_C/
146 & PETSC_SOLVER_TYPE,
147 & PETSC_PRECOND_TYPE
148 #endif
149
150 #ifdef ALLOW_STREAMICE_2DTRACER
151 COMMON /STREAMICE_TRAC2D_C/
152 & STREAMICETrac2DBCxFile,
153 & STREAMICETrac2DBCyFile,
154 & STREAMICETrac2DinitFile
155 #endif
156
157 C -------------------------- LOGICAL PARAMS ---------------------------------------------------
158
159 LOGICAL STREAMICEison
160 LOGICAL STREAMICE_dump_mdsio
161 LOGICAL STREAMICE_tave_mdsio
162 LOGICAL STREAMICE_dump_mnc
163 LOGICAL STREAMICE_tave_mnc
164 LOGICAL STREAMICE_GL_regularize, STREAMICE_move_front
165 LOGICAL STREAMICE_calve_to_mask
166 LOGICAL STREAMICE_construct_matrix
167 LOGICAL STREAMICE_lower_cg_tol
168 LOGICAL STREAMICE_diagnostic_only
169 LOGICAL STREAMICE_ppm_driving_stress
170 LOGICAL STREAMICE_h_ctrl_const_surf
171
172 C The following parameters specify periodic boundary conditions.
173 C For now this will completely override all other boundary conditions
174 C and apply to the entire boundary
175
176 LOGICAL STREAMICE_NS_periodic
177 LOGICAL STREAMICE_EW_periodic
178
179 C LOGICAL STREAMICE_hybrid_stress
180
181 COMMON /STREAMICE_PARM_L/
182 & STREAMICEison,
183 & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
184 & STREAMICE_dump_mnc, STREAMICE_tave_mnc,
185 & STREAMICE_GL_regularize, STREAMICE_move_front,
186 & STREAMICE_calve_to_mask,
187 & STREAMICE_construct_matrix,
188 & STREAMICE_lower_cg_tol,
189 & STREAMICE_NS_periodic, STREAMICE_EW_periodic,
190 & STREAMICE_diagnostic_only,
191 & STREAMICE_ppm_driving_stress,
192 & STREAMICE_h_ctrl_const_surf
193
194 C -------------------------- AND NOW ARRAYS ---------------------------------------------------
195
196 C EXPLANATION OF MASKS
197
198 C STREAMICE_hmask VALUES 1=ice-covered cell
199 C 2=partially ice-covered cell (no dynamics)
200 C 0=ice-free cell (for now, it means the cell
201 C is treated as an open-ocean cell
202 C that ice shelf can flow into)
203 C -1=outside computational domain; will not change
204 C
205 C STREAMICE_umask VALUES 1=degree of freedom;
206 C 0=homogeneous dirich condition
207 C 3=inhomogeneous dirich condition
208
209 C STREAMICE_vmask similar to umask
210
211 C STREAMICE_ufacemask VALUES -1=unset,
212 C 0=no-flow boundary,
213 C 1=no-stress bdry
214 C 2=stress bdry condition,
215 C 3=inhomogeneous dirichlet boundary,
216 C 4=flux boundary: at these faces a flux will be specified by u_flux_bdry_SI
217 C
218 C STREAMICE_vfacemask similar to ufacemask
219 C STREAMICE_ufacemask_bdry field initialized at the beginning of simulation
220 C specified all ufacemask values except for calving front
221 C CONSTANT FOR A SIMULATION (ie not changes after streamice_init_fixed)
222 C STREAMICE_vfacemask_bdry CONSTANT FOR A SIMULATION
223 C STREAMICE_calve_mask specified allowed extent of ice shelf
224 C (should be integer, but don't know howvi sre to read ints from file)
225 C not necessarily used, but CONSTANT FOR A SIMULATION
226 C STREAMICE_float_cond will only be used if partial floatation is implemented
227
228 C Short arrays (e.g. masks)
229 COMMON /STREAMICE_FIELDS_RS/
230 & STREAMICE_hmask,
231 & STREAMICE_umask,
232 & STREAMICE_vmask,
233 & STREAMICE_ufacemask,
234 & STREAMICE_vfacemask,
235 & STREAMICE_ufacemask_bdry,
236 & STREAMICE_vfacemask_bdry,
237 & STREAMICE_float_cond,
238 & STREAMICE_calve_mask,
239 & STREAMICE_ctrl_mask,
240 & STREAMICE_cost_mask
241 _RS STREAMICE_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
242 _RS STREAMICE_umask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
243 _RS STREAMICE_vmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
244 _RS STREAMICE_ufacemask
245 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
246 _RS STREAMICE_vfacemask
247 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
248 _RS STREAMICE_ufacemask_bdry
249 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
250 _RS STREAMICE_vfacemask_bdry
251 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
252 _RS STREAMICE_float_cond
253 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
254 _RS STREAMICE_calve_mask
255 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
256 _RS STREAMICE_ctrl_mask
257 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
258 _RS STREAMICE_cost_mask
259 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
260
261 C NOTES :
262 C STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)
263 C STREAMICE_hmask IS PART OF **STATE**
264 C All other masks are updated within a timestep BASED ON STREAMICE_hmask
265
266 C Number of quadrature points are hardcoded.. could turn into a CPP macro
267
268 C REAL ARRAYS
269
270 COMMON /STREAMICE_FIELDS_RL/
271 & H_streamice,
272 & U_streamice,
273 & V_streamice,
274 & visc_streamice,
275 & tau_beta_eff_streamice,
276 & float_frac_streamice,
277 & base_el_streamice,
278 & surf_el_streamice,
279 & area_shelf_streamice,
280 & mass_ice_streamice,
281 & u_flux_bdry_SI,
282 & v_flux_bdry_SI,
283 & h_ubdry_values_SI,
284 & h_vbdry_values_SI,
285 & u_bdry_values_SI,
286 & v_bdry_values_SI,
287 & STREAMICE_dummy_array,
288 & C_basal_friction,
289 C & A_glen,
290 & B_glen,
291 & BDOT_streamice, ADOT_streamice, ! mass balances in meters per year
292 & streamice_sigma_coord, streamice_delsigma,
293 & H_streamice_prev
294
295 #ifdef STREAMICE_HYBRID_STRESS
296 COMMON /STREAMICE_HYBRID/
297 & streamice_taubx, streamice_tauby,
298 & streamice_u_surf, streamice_v_surf,
299 & visc_streamice_full, streamice_omega, streamice_basal_geom,
300 & streamice_vert_shear_uz, streamice_vert_shear_vz
301 #endif
302
303 #ifdef ALLOW_STREAMICE_2DTRACER
304 COMMON /STREAMICE_TRAC2D_FIELDS_RL/
305 & trac2d_ubdry_values_SI,
306 & trac2d_vbdry_values_SI,
307 & trac2d
308 #ifdef STREAMICE_TRACER_AB
309 COMMON /STREAMICE_TRAC2D_AB_RL/
310 & GAD_trac_2d
311 #endif
312 #endif
313
314 #ifdef USE_ALT_RLOW
315 COMMON /STREAMICE_RLOW/
316 & R_low_si
317 #endif
318
319
320 _RL H_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
321 _RL U_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
322 _RL V_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
323 _RL visc_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
324 _RL tau_beta_eff_streamice(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
325 _RL float_frac_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
326 _RL surf_el_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
327 _RL base_el_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
328 _RL area_shelf_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
329 _RL mass_ice_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
330 _RL u_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
331 _RL v_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
332 _RL h_ubdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
333 _RL h_vbdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
334 _RL u_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
335 _RL v_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
336 _RL C_basal_friction (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
337 C _RL A_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
338 _RL B_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
339 _RL streamice_sigma_coord (Nr)
340 _RL streamice_delsigma (Nr)
341
342 #ifdef USE_ALT_RLOW
343 _RL R_low_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
344 #endif
345
346 C The following arrays are used for the hybrid stress balance
347 #ifdef STREAMICE_HYBRID_STRESS
348 _RL streamice_taubx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
349 _RL streamice_tauby (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
350 _RL streamice_u_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
351 _RL streamice_v_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
352 _RL streamice_omega (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
353 _RL streamice_basal_geom
354 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
355 _RL visc_streamice_full
356 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
357 _RL streamice_vert_shear_uz (Nr)
358 _RL streamice_vert_shear_vz (Nr)
359 #endif
360
361 #ifdef ALLOW_STREAMICE_2DTRACER
362 _RL trac2d_ubdry_values_SI
363 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
364 _RL trac2d_vbdry_values_SI
365 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
366 _RL trac2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
367 #ifdef STREAMICE_TRACER_AB
368 _RL GAD_trac_2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
369 #endif
370 #endif
371
372 _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
373 !! IMPORTANT: MELT RATE IN METERS PER YEAR
374 !! POSITIVE WHERE MELTING
375 _RL BDOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
376 _RL H_streamice_prev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
377 _RL STREAMICE_dummy_array (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
378
379
380
381 COMMON /STREAMICE_COST_RL/
382 & cost_func1_streamice
383 _RL cost_func1_streamice(nSx,nSy)
384
385 C NOTES :
386 C REAL ARRAYS THAT COMPRISE "STATE":
387 C H_streamice,
388 C U_streamice,
389 C V_streamice,
390 C visc_streamice,
391 C tau_beta_eff_streamice,
392 C area_shelf_streamice
393 C (and don't forget STREAMICE_hmask)
394 C
395 C visc & tau are now calculated based on U,V in streamice_vel_solve
396 C but with Hybdrid stress formulation they will become part of
397 C velocity initial guess, so they are kept
398
399 #ifdef ALLOW_PETSC
400 COMMON /STREAMICE_PETSC_DOFS_COMMON/
401 & streamice_petsc_dofs_u,
402 & streamice_petsc_dofs_v,
403 & n_dofs_process
404 _RS streamice_petsc_dofs_u
405 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
406 _RS streamice_petsc_dofs_v
407 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
408 INTEGER n_dofs_process (0:nPx*nPy-1)
409 #endif
410
411
412 #endif /* ALLOW_STREAMICE */
413
414 CEH3 ;;; Local Variables: ***
415 CEH3 ;;; mode:fortran ***
416 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22