/[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.18 - (hide 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 dgoldberg 1.12 C---+----1--+-+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
2 heimbach 1.1
3     #ifdef ALLOW_STREAMICE
4    
5     C -------------------------- REAL PARAMS ---------------------------------------------------
6    
7     COMMON /STREAMICE_PARMS_R/
8     & streamice_density, streamice_density_ocean_avg,
9 dgoldberg 1.17 & A_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
10 heimbach 1.1 & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,
11     & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,
12 dgoldberg 1.5 & streamice_nonlin_tol_fp,
13 dgoldberg 1.7 & streamice_CFL_factor, streamice_adjDump,
14     & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
15 dgoldberg 1.14 & streamice_kx_b_init, streamice_ky_b_init,
16 dgoldberg 1.16 & streamice_wgt_drift, streamice_wgt_surf,
17 dgoldberg 1.17 & streamice_wgt_avthick, streamice_wgt_vel,
18 dgoldberg 1.18 & streamice_wgt_tikh,
19 dgoldberg 1.17 & streamice_addl_backstress
20 heimbach 1.1 _RL streamice_density, streamice_density_ocean_avg
21 dgoldberg 1.17 _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min
22 heimbach 1.1 _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 dgoldberg 1.5 _RL streamice_nonlin_tol_fp
28 heimbach 1.1 _RL streamice_CFL_factor
29 heimbach 1.4 _RL streamice_adjDump
30 dgoldberg 1.7 _RL streamice_bg_surf_slope_x, streamice_bg_surf_slope_y
31     _RL streamice_kx_b_init, streamice_ky_b_init
32 dgoldberg 1.16 _RL streamice_wgt_drift, streamice_wgt_surf
33     _RL streamice_wgt_avthick, streamice_wgt_vel
34 dgoldberg 1.18 _RL streamice_wgt_tikh
35 dgoldberg 1.17 _RL streamice_addl_backstress
36 dgoldberg 1.14
37 heimbach 1.1
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 heimbach 1.3 INTEGER streamice_max_nl
64     PARAMETER ( streamice_max_nl = 100 )
65    
66 heimbach 1.1 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 dgoldberg 1.7 CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordInit
80     CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordFile
81     CHARACTER*(MAX_LEN_FNAM) STREAMICEdelsigFile
82     CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracConfig
83 dgoldberg 1.18 CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstConfig
84 dgoldberg 1.7 CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracFile
85 dgoldberg 1.18 CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstFile
86 dgoldberg 1.7 CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile
87 dgoldberg 1.18
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 heimbach 1.1 COMMON /STREAMICE_PARM_C/
98     & STREAMICEthickInit,
99     & STREAMICEthickFile,
100 dgoldberg 1.7 & STREAMICEcalveMaskFile,
101     & STREAMICEsigcoordInit,
102     & STREAMICEsigcoordFile,
103     & STREAMICEdelsigFile,
104     & STREAMICEbasalTracConfig,
105     & STREAMICEbasalTracFile,
106 dgoldberg 1.18 & STREAMICEvelOptimFile,
107     & STREAMICEhmaskFile,
108     & STREAMICEuFaceBdryFile,
109     & STREAMICEvFaceBdryFile,
110     & STREAMICEuDirichValsFile,
111     & STREAMICEvDirichValsFile,
112     & STREAMICEGlenConstFile,
113     & STREAMICEGlenConstConfig
114 heimbach 1.1
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 heimbach 1.3 LOGICAL STREAMICE_construct_matrix
125 heimbach 1.1 LOGICAL STREAMICE_lower_cg_tol
126 dgoldberg 1.7 LOGICAL STREAMICE_diagnostic_only
127 dgoldberg 1.9 LOGICAL STREAMICE_ppm_driving_stress
128 dgoldberg 1.8 LOGICAL STREAMICE_h_ctrl_const_surf
129 dgoldberg 1.7
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 heimbach 1.1 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 heimbach 1.3 & STREAMICE_construct_matrix,
146 dgoldberg 1.7 & STREAMICE_lower_cg_tol,
147     & STREAMICE_NS_periodic, STREAMICE_EW_periodic,
148 dgoldberg 1.9 & STREAMICE_diagnostic_only,
149     & STREAMICE_ppm_driving_stress,
150     & STREAMICE_h_ctrl_const_surf
151 heimbach 1.1
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 dgoldberg 1.17 & STREAMICE_calve_mask,
197     & STREAMICE_ctrl_mask
198 heimbach 1.1 _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 dgoldberg 1.17 _RS STREAMICE_ctrl_mask
214     & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,Nr)
215 heimbach 1.1
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 dgoldberg 1.6 & C_basal_friction,
243     & A_glen,
244 dgoldberg 1.18 & BDOT_streamice, ADOT_streamice, ! mass balances in meters per year
245 dgoldberg 1.16 & streamice_sigma_coord, streamice_delsigma,
246     & H_streamice_prev
247    
248     #ifdef STREAMICE_HYBRID_STRESS
249     COMMON /STREAMICE_HYBRID/
250 dgoldberg 1.7 & streamice_taubx, streamice_tauby,
251     & streamice_u_surf, streamice_v_surf,
252     & visc_streamice_full, streamice_omega, streamice_basal_geom,
253 dgoldberg 1.16 & streamice_vert_shear_uz, streamice_vert_shear_vz
254     #endif
255 dgoldberg 1.14
256 dgoldberg 1.9 #ifdef USE_ALT_RLOW
257 dgoldberg 1.14 COMMON /STREAMICE_RLOW/
258 dgoldberg 1.15 & R_low_si
259 dgoldberg 1.9 #endif
260 heimbach 1.10
261 dgoldberg 1.11
262 heimbach 1.1 _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 dgoldberg 1.6 _RL A_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
279 dgoldberg 1.16 _RL streamice_sigma_coord (Nr)
280     _RL streamice_delsigma (Nr)
281    
282 dgoldberg 1.9 #ifdef USE_ALT_RLOW
283     _RL R_low_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
284     #endif
285    
286 dgoldberg 1.16 C The following arrays are used for the hybrid stress balance
287     #ifdef STREAMICE_HYBRID_STRESS
288 dgoldberg 1.7 _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 dgoldberg 1.16 #endif
300    
301 dgoldberg 1.7
302 dgoldberg 1.18 _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
303 dgoldberg 1.6 !! 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 dgoldberg 1.13 _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 heimbach 1.1
309    
310 dgoldberg 1.11
311     COMMON /STREAMICE_COST_RL/
312     & cost_func1_streamice
313     _RL cost_func1_streamice(nSx,nSy)
314    
315 heimbach 1.1 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