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

Annotation 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.2 - (hide annotations) (download)
Mon Mar 28 10:37:05 2016 UTC (9 years, 3 months ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines
File MIME type: text/plain
FILE REMOVED
files merged into main

1 dgoldberg 1.2 C $Header: /u/gcmpack/MITgcm_contrib/verification_other/shelfice_remeshing/code/STREAMICE.h,v 1.1 2016/01/22 16:09:33 dgoldberg Exp $
2 dgoldberg 1.1 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