/[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.9 - (hide annotations) (download)
Thu Sep 27 20:29:00 2012 UTC (12 years, 9 months ago) by dgoldberg
Branch: MAIN
Changes since 1.8: +14 -2 lines
File MIME type: text/plain
various changes

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

  ViewVC Help
Powered by ViewVC 1.1.22