/[MITgcm]/MITgcm_contrib/verification_other/shelfice_remeshing/code/STREAMICE.h
ViewVC logotype

Contents of /MITgcm_contrib/verification_other/shelfice_remeshing/code/STREAMICE.h

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


Revision 1.1 - (show annotations) (download)
Fri Jan 22 16:09:33 2016 UTC (9 years, 5 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint65u
File MIME type: text/plain
New verification now includes grounding line

1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/STREAMICE.h,v 1.18 2015/06/30 11:20:05 dgoldberg Exp $
2 C $Name: $
3
4 C---+----1--+-+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
5
6 #ifdef ALLOW_STREAMICE
7
8 C -------------------------- REAL PARAMS ---------------------------------------------------
9
10 COMMON /STREAMICE_PARMS_R/
11 & streamice_density, streamice_density_ocean_avg,
12 C & A_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
13 & B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
14 & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,
15 & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,
16 & streamice_nonlin_tol_fp,
17 #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP))
18 & streamice_nonlin_tol_adjoint,
19 #endif
20 & streamice_CFL_factor, streamice_adjDump,
21 & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
22 & streamice_kx_b_init, streamice_ky_b_init,
23 & streamice_wgt_drift, streamice_wgt_surf,
24 & streamice_wgt_avthick, streamice_wgt_vel,
25 & streamice_wgt_tikh,
26 & streamice_addl_backstress,
27 & streamice_smooth_gl_width,
28 & streamice_adot_uniform,
29 #ifdef STREAMICE_FLOWLINE_BUTTRESS
30 & streamice_buttr_width,
31 #endif
32 & streamice_firn_correction, streamice_density_firn,
33 & streamice_forcing_period
34
35 _RL streamice_density, streamice_density_ocean_avg
36 C _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min
37 _RL B_glen_isothermal, n_glen, eps_glen_min, eps_u_min
38 _RL C_basal_fric_const
39 _RL n_basal_friction
40 _RL streamice_input_flux_unif
41 _RL streamice_vel_update
42 _RL streamice_cg_tol, streamice_nonlin_tol
43 _RL streamice_nonlin_tol_fp
44 #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP))
45 _RL streamice_nonlin_tol_adjoint
46 #endif
47 _RL streamice_CFL_factor
48 _RL streamice_adjDump
49 _RL streamice_bg_surf_slope_x, streamice_bg_surf_slope_y
50 _RL streamice_kx_b_init, streamice_ky_b_init
51 _RL streamice_wgt_drift, streamice_wgt_surf
52 _RL streamice_wgt_avthick, streamice_wgt_vel
53 _RL streamice_wgt_tikh
54 _RL streamice_addl_backstress
55 _RL streamice_smooth_gl_width
56 _RL streamice_adot_uniform
57 _RL streamice_forcing_period
58 #ifdef STREAMICE_FLOWLINE_BUTTRESS
59 _RL streamice_buttr_width
60 #endif
61 _RL streamice_firn_correction
62 _RL streamice_density_firn
63
64 C parms for parameterized initial thickness
65 C SHELF_MAX_DRAFT: max thickness of ice in m
66 C SHELF_MIN_DRAFT: min thickness of ice in m
67 C SHELF_EDGE_POS: extent of ice shelf in (km?)
68 C SHELF_SLOPE_SCALE: dist over which shelf slopes (km?)
69 C SHELF_FLAT_WIDTH: width of flat shelf (km?)
70 C also must be aware of units (m for cartesian, deg for curvilinear, m/deg for CYLINDRICAL POLAR)
71 C FLOW_DIR: 1.0=west, 2.0=east, 3.0=south, 4.0=north
72
73 COMMON /STREAMICE_H_INIT_R/
74 & shelf_max_draft,
75 & shelf_min_draft,
76 & shelf_edge_pos,
77 & shelf_slope_scale,
78 & shelf_flat_width,
79 & flow_dir
80 _RL shelf_max_draft
81 _RL shelf_min_draft
82 _RL shelf_edge_pos
83 _RL shelf_slope_scale
84 _RL shelf_flat_width
85 _RL flow_dir
86
87 C -------------------------- INT PARAMS ---------------------------------------------------
88
89 INTEGER streamice_max_nl
90 PARAMETER ( streamice_max_nl = 100 )
91
92 COMMON /STREAMICE_PARMS_I/
93 & streamice_max_cg_iter, streamice_max_nl_iter,
94 & streamice_vel_upd_counter, streamice_nstep_velocity,
95 & streamice_maxcgiter_cpl, streamice_maxnliter_cpl
96 ! & streamice_n_sub_regularize
97
98 INTEGER streamice_max_cg_iter, streamice_max_nl_iter
99 INTEGER streamice_vel_upd_counter, streamice_nstep_velocity
100 INTEGER streamice_maxcgiter_cpl, streamice_maxnliter_cpl
101 ! INTEGER streamice_n_sub_regularize
102
103 #if (defined (ALLOW_STREAMICE_OAD_FP))
104 COMMON /STREAMICE_PARMS_I_OPENAD/
105 & isinloop0, isinloop1, isinloop2
106
107 INTEGER isinloop0, isinloop1, isinloop2
108
109 #endif
110
111 C -------------------------- CHAR PARAMS ---------------------------------------------------
112
113 CHARACTER*(MAX_LEN_FNAM) STREAMICEthickFile
114 CHARACTER*(MAX_LEN_FNAM) STREAMICEthickInit
115 CHARACTER*(MAX_LEN_FNAM) STREAMICEcalveMaskFile
116 CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordInit
117 CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordFile
118 CHARACTER*(MAX_LEN_FNAM) STREAMICEdelsigFile
119 CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracConfig
120 CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstConfig
121 CHARACTER*(MAX_LEN_FNAM) STREAMICEBdotConfig
122 CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracFile
123 CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstFile
124 CHARACTER*(MAX_LEN_FNAM) STREAMICEBdotFile
125 CHARACTER*(MAX_LEN_FNAM) STREAMICEBdotTimeDepFile
126 CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile
127 CHARACTER*(MAX_LEN_FNAM) STREAMICEtopogFile
128 CHARACTER*(MAX_LEN_FNAM) STREAMICEcostMaskFile
129 CHARACTER*(MAX_LEN_FNAM) STREAMICE_ADV_SCHEME
130
131 ! THE FOLLOWING FILENAMES ARE FOR SPECIFYING IRREGULAR DOMAIN GEOMETRIES
132 ! (i.e. boundaries that do not conform with rectangular walls)
133 CHARACTER*(MAX_LEN_FNAM) STREAMICEhmaskFile
134 CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCxFile
135 CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCyFile
136 CHARACTER*(MAX_LEN_FNAM) STREAMICEuFaceBdryFile
137 CHARACTER*(MAX_LEN_FNAM) STREAMICEvFaceBdryFile
138 CHARACTER*(MAX_LEN_FNAM) STREAMICEuDirichValsFile
139 CHARACTER*(MAX_LEN_FNAM) STREAMICEvDirichValsFile
140 CHARACTER*(MAX_LEN_FNAM) STREAMICEuMassFluxFile
141 CHARACTER*(MAX_LEN_FNAM) STREAMICEvMassFluxFile
142
143 ! THE FOLLOWING FILENAMES ARE FOR SPECIFYING buttressing along calving fronts
144 CHARACTER*(MAX_LEN_FNAM) STREAMICEuNormalStressFile
145 CHARACTER*(MAX_LEN_FNAM) STREAMICEvNormalStressFile
146 CHARACTER*(MAX_LEN_FNAM) STREAMICEuShearStressFile
147 CHARACTER*(MAX_LEN_FNAM) STREAMICEvShearStressFile
148 CHARACTER*(MAX_LEN_FNAM) STREAMICEuNormalTimeDepFile
149 CHARACTER*(MAX_LEN_FNAM) STREAMICEvNormalTimeDepFile
150 CHARACTER*(MAX_LEN_FNAM) STREAMICEuShearTimeDepFile
151 CHARACTER*(MAX_LEN_FNAM) STREAMICEvShearTimeDepFile
152
153 CHARACTER*(MAX_LEN_FNAM) STREAMICEuFluxTimeDepFile
154 CHARACTER*(MAX_LEN_FNAM) STREAMICEvFluxTimeDepFile
155
156
157 #ifdef ALLOW_PETSC
158 ! CHARACTER PARAMS FOR PETSC
159 CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE
160 CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TYPE
161 #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP))
162 CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TMP
163 CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_OAD
164 #endif
165 #endif
166
167 #ifdef ALLOW_STREAMICE_2DTRACER
168 ! CHARACTER PARAMS FOR TRACER
169 CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCxFile
170 CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCyFile
171 CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DinitFile
172 #endif
173
174 COMMON /STREAMICE_PARM_C/
175 & STREAMICEthickInit,
176 & STREAMICEthickFile,
177 & STREAMICEcalveMaskFile,
178 & STREAMICEsigcoordInit,
179 & STREAMICEsigcoordFile,
180 & STREAMICEdelsigFile,
181 & STREAMICEbasalTracConfig,
182 & STREAMICEBdotConfig,
183 & STREAMICEbasalTracFile,
184 & STREAMICEvelOptimFile,
185 & STREAMICEtopogFile,
186 & STREAMICEhmaskFile,
187 & STREAMICEHBCxFile,
188 & STREAMICEHBCyFile,
189 & STREAMICEuFaceBdryFile,
190 & STREAMICEvFaceBdryFile,
191 & STREAMICEuDirichValsFile,
192 & STREAMICEvDirichValsFile,
193 & STREAMICEuMassFluxFile,
194 & STREAMICEvMassFluxFile,
195 & STREAMICEuNormalStressFile,
196 & STREAMICEvNormalStressFile,
197 & STREAMICEuShearStressFile,
198 & STREAMICEvShearStressFile,
199 & STREAMICEuNormalTimeDepFile,
200 & STREAMICEvNormalTimeDepFile,
201 & STREAMICEuShearTimeDepFile,
202 & STREAMICEvShearTimeDepFile,
203 & STREAMICEGlenConstFile,
204 & STREAMICEBdotFile,
205 & STREAMICEBdotTimeDepFile,
206 & STREAMICEGlenConstConfig,
207 & STREAMICEcostMaskFile,
208 & STREAMICE_ADV_SCHEME
209
210 #ifdef ALLOW_PETSC
211 COMMON /PETSC_PARM_C/
212 & PETSC_SOLVER_TYPE,
213 & PETSC_PRECOND_TYPE
214 #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP))
215 & ,PETSC_PRECOND_TMP, PETSC_PRECOND_OAD
216 #endif
217 #endif
218
219 #ifdef ALLOW_STREAMICE_2DTRACER
220 COMMON /STREAMICE_TRAC2D_C/
221 & STREAMICETrac2DBCxFile,
222 & STREAMICETrac2DBCyFile,
223 & STREAMICETrac2DinitFile
224 #endif
225
226 C -------------------------- LOGICAL PARAMS ---------------------------------------------------
227
228 LOGICAL STREAMICEison
229 LOGICAL STREAMICE_dump_mdsio
230 LOGICAL STREAMICE_tave_mdsio
231 LOGICAL STREAMICE_dump_mnc
232 LOGICAL STREAMICE_tave_mnc
233 LOGICAL STREAMICE_move_front
234 LOGICAL STREAMICE_calve_to_mask
235 LOGICAL STREAMICE_construct_matrix
236 LOGICAL STREAMICE_lower_cg_tol
237 LOGICAL STREAMICE_diagnostic_only
238 LOGICAL STREAMICE_ppm_driving_stress
239 LOGICAL STREAMICE_h_ctrl_const_surf
240 LOGICAL STREAMICE_chkfixedptconvergence
241 LOGICAL STREAMICE_chkresidconvergence
242 LOGICAL STREAMICE_allow_cpl
243 LOGICAL STREAMICE_use_petsc
244 LOGICAL STREAMICE_apply_firn_correction
245 #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP) )
246 #ifdef ALLOW_PETSC
247 LOGICAL STREAMICE_need2createmat
248 LOGICAL STREAMICE_need2destroymat
249 LOGICAL STREAMICE_OAD_petsc_reuse
250 #endif
251 #endif
252 #ifdef STREAMICE_FLOWLINE_BUTTRESS
253 LOGICAL useStreamiceFlowlineButtr
254 #endif
255
256
257 C The following parameters specify periodic boundary conditions.
258 C For now this will completely override all other boundary conditions
259 C and apply to the entire boundary
260
261 LOGICAL STREAMICE_NS_periodic
262 LOGICAL STREAMICE_EW_periodic
263
264 C LOGICAL STREAMICE_hybrid_stress
265
266 COMMON /STREAMICE_PARM_L/
267 & STREAMICEison,
268 & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
269 & STREAMICE_dump_mnc, STREAMICE_tave_mnc,
270 & STREAMICE_move_front,
271 & STREAMICE_calve_to_mask,
272 & STREAMICE_construct_matrix,
273 & STREAMICE_lower_cg_tol,
274 & STREAMICE_NS_periodic, STREAMICE_EW_periodic,
275 & STREAMICE_diagnostic_only,
276 & STREAMICE_ppm_driving_stress,
277 & STREAMICE_h_ctrl_const_surf,
278 & STREAMICE_chkfixedptconvergence,
279 & STREAMICE_chkresidconvergence,
280 & STREAMICE_allow_cpl, streamice_use_petsc,
281 #ifdef STREAMICE_FLOWLINE_BUTTRESS
282 & useStreamiceFlowlineButtr,
283 #endif
284 & STREAMICE_apply_firn_correction
285
286 #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP) )
287 #ifdef ALLOW_PETSC
288 COMMON /STREAMICE_PERSIST_PETSC_L
289 & STREAMICE_need2createmat, STREAMICE_need2destroymat,
290 & STREAMICE_OAD_petsc_reuse
291 #endif
292 #endif
293
294 C -------------------------- AND NOW ARRAYS ---------------------------------------------------
295
296 C EXPLANATION OF MASKS
297
298 C STREAMICE_hmask VALUES 1=ice-covered cell
299 C 2=partially ice-covered cell (no dynamics)
300 C 0=ice-free cell (for now, it means the cell
301 C is treated as an open-ocean cell
302 C that ice shelf can flow into)
303 C -1=outside computational domain; will not change
304 C
305 C STREAMICE_umask VALUES 1=degree of freedom;
306 C 0=homogeneous dirich condition
307 C 3=inhomogeneous dirich condition
308
309 C STREAMICE_vmask similar to umask
310
311 C STREAMICE_ufacemask VALUES -1=unset,
312 C 0=no-flow boundary,
313 C 1=no-stress bdry
314 C 2=stress bdry condition,
315 C 3=inhomogeneous dirichlet boundary,
316 C 4=flux boundary: at these faces a flux will be specified by u_flux_bdry_SI
317 C
318 C STREAMICE_vfacemask similar to ufacemask
319 C STREAMICE_ufacemask_bdry field initialized at the beginning of simulation
320 C specified all ufacemask values except for calving front
321 C CONSTANT FOR A SIMULATION (ie not changes after streamice_init_fixed)
322 C STREAMICE_vfacemask_bdry CONSTANT FOR A SIMULATION
323 C STREAMICE_calve_mask specified allowed extent of ice shelf
324 C (should be integer, but do not know howvi sre to read ints from file)
325 C not necessarily used, but CONSTANT FOR A SIMULATION
326 C STREAMICE_float_cond will only be used if partial floatation is implemented
327
328 C Short arrays (e.g. masks)
329 COMMON /STREAMICE_FIELDS_RS/
330 & STREAMICE_hmask,
331 & STREAMICE_umask,
332 & STREAMICE_vmask,
333 & STREAMICE_ufacemask,
334 & STREAMICE_vfacemask,
335 & STREAMICE_ufacemask_bdry,
336 & STREAMICE_vfacemask_bdry,
337 & STREAMICE_float_cond,
338 & STREAMICE_calve_mask,
339 & STREAMICE_ctrl_mask,
340 & STREAMICE_cost_mask
341 _RS STREAMICE_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
342 _RS STREAMICE_umask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
343 _RS STREAMICE_vmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
344 _RS STREAMICE_ufacemask
345 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
346 _RS STREAMICE_vfacemask
347 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
348 _RS STREAMICE_ufacemask_bdry
349 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
350 _RS STREAMICE_vfacemask_bdry
351 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
352 _RS STREAMICE_float_cond
353 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
354 _RS STREAMICE_calve_mask
355 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
356 _RS STREAMICE_ctrl_mask
357 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
358 _RS STREAMICE_cost_mask
359 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
360
361 C NOTES :
362 C STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)
363 C STREAMICE_hmask IS PART OF **STATE**
364 C All other masks are updated within a timestep BASED ON STREAMICE_hmask
365
366 C Number of quadrature points are hardcoded.. could turn into a CPP macro
367
368 C REAL ARRAYS
369
370 COMMON /STREAMICE_FIELDS_RL/
371 & H_streamice,
372 & U_streamice,
373 & V_streamice,
374 & visc_streamice,
375 & tau_beta_eff_streamice,
376 & float_frac_streamice,
377 & base_el_streamice,
378 & surf_el_streamice,
379 & area_shelf_streamice,
380 & mass_ice_streamice,
381 & u_flux_bdry_SI,
382 & v_flux_bdry_SI,
383 & h_ubdry_values_SI,
384 & h_vbdry_values_SI,
385 & u_bdry_values_SI,
386 & v_bdry_values_SI,
387 & STREAMICE_dummy_array,
388 & C_basal_friction,
389 C & A_glen,
390 & B_glen,
391 & BDOT_streamice, ADOT_streamice, BDOT_pert,! mass balances in meters per year
392 & streamice_sigma_coord, streamice_delsigma,
393 & H_streamice_prev,
394 & u_new_si, v_new_si
395
396 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
397 COMMON /STREAMICE_FLUX_CONTROL/
398 & u_flux_bdry_pert,
399 & v_flux_bdry_pert
400 #endif
401
402
403 #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
404 COMMON /STREAMICE_STRESS_BOUNDARY/
405 & streamice_u_normal_pert,
406 & streamice_v_normal_pert,
407 & streamice_u_shear_pert,
408 & streamice_v_shear_pert,
409 & streamice_u_normal_stress,
410 & streamice_v_normal_stress,
411 & streamice_u_shear_stress,
412 & streamice_v_shear_stress
413 #endif
414
415 #ifdef STREAMICE_HYBRID_STRESS
416 COMMON /STREAMICE_HYBRID/
417 & streamice_taubx, streamice_tauby,
418 & streamice_u_surf, streamice_v_surf,
419 & streamice_u_bed, streamice_v_bed,
420 & visc_streamice_full, streamice_omega, streamice_basal_geom,
421 & streamice_vert_shear_uz, streamice_vert_shear_vz
422 #endif
423
424 #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
425 COMMON /STREAMICE_TIMEDEP_FORCE/
426 & bdot_streamice0,
427 & bdot_streamice1
428 #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
429 & ,streamice_u_normal_stress0,
430 & streamice_u_normal_stress1,
431 & streamice_v_normal_stress0,
432 & streamice_v_normal_stress1,
433 & streamice_u_shear_stress0,
434 & streamice_u_shear_stress1,
435 & streamice_v_shear_stress0,
436 & streamice_v_shear_stress1
437 #endif
438 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
439 & ,u_flux_bdry_SI_0,
440 & u_flux_bdry_SI_1,
441 & v_flux_bdry_SI_0,
442 & v_flux_bdry_SI_1
443 #endif
444 #endif
445
446 #ifdef ALLOW_STREAMICE_2DTRACER
447 COMMON /STREAMICE_TRAC2D_FIELDS_RL/
448 & trac2d_ubdry_values_SI,
449 & trac2d_vbdry_values_SI,
450 & trac2d
451 #ifdef STREAMICE_TRACER_AB
452 COMMON /STREAMICE_TRAC2D_AB_RL/
453 & GAD_trac_2d
454 #endif
455 #endif
456
457 #ifdef USE_ALT_RLOW
458 COMMON /STREAMICE_RLOW/
459 & R_low_si
460 #endif
461
462 _RL H_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
463 _RL U_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
464 _RL V_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
465 _RL visc_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
466 _RL tau_beta_eff_streamice(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
467 _RL float_frac_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
468 _RL surf_el_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
469 _RL base_el_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
470 _RL area_shelf_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
471 _RL mass_ice_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
472 _RL u_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
473 _RL v_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
474 _RL h_ubdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
475 _RL h_vbdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
476 _RL u_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
477 _RL v_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
478 _RL C_basal_friction (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
479 C _RL A_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
480 #ifdef STREAMICE_3D_GLEN_CONST
481 _RL B_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
482 #else
483 _RL B_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
484 #endif
485 _RL streamice_sigma_coord (Nr)
486 _RL streamice_delsigma (Nr)
487
488 #ifdef USE_ALT_RLOW
489 _RL R_low_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
490 #endif
491
492 C The following arrays are used for the hybrid stress balance
493 #ifdef STREAMICE_HYBRID_STRESS
494 _RL streamice_taubx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
495 _RL streamice_u_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
496 _RL streamice_v_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
497 _RL streamice_u_bed (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
498 _RL streamice_v_bed (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
499 _RL streamice_tauby (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
500 _RL streamice_omega (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
501 _RL streamice_basal_geom
502 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
503 _RL visc_streamice_full
504 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
505 _RL streamice_vert_shear_uz (Nr)
506 _RL streamice_vert_shear_vz (Nr)
507 #endif
508
509 #ifdef ALLOW_STREAMICE_2DTRACER
510 _RL trac2d_ubdry_values_SI
511 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
512 _RL trac2d_vbdry_values_SI
513 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
514 _RL trac2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
515 #ifdef STREAMICE_TRACER_AB
516 _RL GAD_trac_2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
517 #endif
518 #endif
519
520 #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
521 _RL streamice_u_normal_stress
522 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
523 _RL streamice_v_normal_stress
524 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
525 _RL streamice_u_shear_stress
526 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
527 _RL streamice_v_shear_stress
528 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
529 _RL streamice_u_normal_pert
530 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
531 _RL streamice_v_normal_pert
532 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
533 _RL streamice_u_shear_pert
534 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
535 _RL streamice_v_shear_pert
536 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
537 #endif
538
539 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
540 _RL u_flux_bdry_pert
541 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
542 _RL v_flux_bdry_pert
543 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
544 #endif
545
546 _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
547 !! IMPORTANT: MELT RATE IN METERS PER YEAR
548 !! POSITIVE WHERE MELTING
549 _RL BDOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
550 _RL BDOT_pert (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
551 _RL H_streamice_prev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
552 _RL v_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
553 _RL u_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
554 _RL STREAMICE_dummy_array (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
555
556 #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
557 #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
558 _RL streamice_u_normal_stress0
559 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
560 _RL streamice_u_normal_stress1
561 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
562 _RL streamice_v_normal_stress0
563 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
564 _RL streamice_v_normal_stress1
565 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
566 _RL streamice_u_shear_stress0
567 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
568 _RL streamice_u_shear_stress1
569 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
570 _RL streamice_v_shear_stress0
571 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
572 _RL streamice_v_shear_stress1
573 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
574 #endif
575 #ifdef ALLOW_STREAMICE_FLUX_CONTROL
576 _RL u_flux_bdry_SI_0
577 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
578 _RL v_flux_bdry_SI_0
579 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
580 _RL u_flux_bdry_SI_1
581 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
582 _RL v_flux_bdry_SI_1
583 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
584 #endif
585 _RL bdot_streamice0
586 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
587 _RL bdot_streamice1
588 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
589 #endif
590
591 COMMON /STREAMICE_COST_RL/
592 & cost_func1_streamice,
593 & cost_vel_streamice,
594 & cost_surf_streamice
595 _RL cost_func1_streamice(nSx,nSy)
596 _RL cost_vel_streamice(nSx,nSy)
597 _RL cost_surf_streamice(nSx,nSy)
598
599 C NOTES :
600 C REAL ARRAYS THAT COMPRISE "STATE":
601 C H_streamice,
602 C U_streamice,
603 C V_streamice,
604 C visc_streamice,
605 C tau_beta_eff_streamice,
606 C area_shelf_streamice
607 C (and do not forget STREAMICE_hmask)
608 C
609 C visc & tau are now calculated based on U,V in streamice_vel_solve
610 C but with Hybdrid stress formulation they will become part of
611 C velocity initial guess, so they are kept
612
613 #ifdef ALLOW_PETSC
614 COMMON /STREAMICE_PETSC_DOFS_COMMON/
615 & streamice_petsc_dofs_u,
616 & streamice_petsc_dofs_v,
617 & n_dofs_process
618 _RS streamice_petsc_dofs_u
619 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
620 _RS streamice_petsc_dofs_v
621 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
622 INTEGER n_dofs_process (0:nPx*nPy-1)
623 #endif
624
625 #if (defined (ALLOW_STREAMICE_OAD_FP))
626 COMMON /STREAMICE_OPENAD_PARMS/
627 & streamice_oad_nonlin_tol_fp
628 _RL streamice_oad_nonlin_tol_fp
629
630 COMMON /STREAMICE_PHISTAGE_ARRS/
631 & U_streamice_dvals,
632 & V_streamice_dvals
633 _RL U_streamice_dvals
634 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
635 _RL V_streamice_dvals
636 & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
637
638 #ifdef STREAMICE_HYBRID_STRESS
639 COMMON /STREAMICE_PHISTAGE_ARRS_HYBRID/
640 & taubx_dvals, tauby_dvals,
641 & visc_full_dvals,
642 & taubx_new_si, tauby_new_si,
643 & visc_full_new_si
644 _RL taubx_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
645 _RL taubx_dvals (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
646 _RL tauby_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
647 _RL tauby_dvals (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
648 _RL visc_full_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
649 _RL visc_full_dvals (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
650 #endif
651 #endif
652
653 #endif /* ALLOW_STREAMICE */
654
655 CEH3 ;;; Local Variables: ***
656 CEH3 ;;; mode:fortran ***
657 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22