/[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.17 - (show annotations) (download)
Mon Dec 10 02:34:45 2012 UTC (12 years, 7 months ago) by dgoldberg
Branch: MAIN
Changes since 1.16: +9 -4 lines
File MIME type: text/plain
various updates, mostly adding ifdefs to include statements

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

  ViewVC Help
Powered by ViewVC 1.1.22