/[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.18 - (show annotations) (download)
Wed Jan 9 21:56:17 2013 UTC (12 years, 6 months ago) by dgoldberg
Branch: MAIN
Changes since 1.17: +24 -2 lines
File MIME type: text/plain
changes to accept real datasets

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

  ViewVC Help
Powered by ViewVC 1.1.22