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

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

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


Revision 1.25 - (hide annotations) (download)
Wed Aug 27 19:29:12 2014 UTC (10 years, 10 months ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.24: +194 -71 lines
File MIME type: text/plain
updating contrib streamice repo with latest files, and separated out convergence checks; and parameterised maximum iteration counts and interface w shelfice for coupling

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

  ViewVC Help
Powered by ViewVC 1.1.22