/[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.15 - (hide annotations) (download)
Wed Oct 10 02:26:48 2012 UTC (12 years, 9 months ago) by dgoldberg
Branch: MAIN
Changes since 1.14: +1 -1 lines
File MIME type: text/plain
remove comma

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

  ViewVC Help
Powered by ViewVC 1.1.22