/[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.6 - (hide annotations) (download)
Tue Sep 4 21:11:44 2012 UTC (12 years, 10 months ago) by dgoldberg
Branch: MAIN
Changes since 1.5: +8 -1 lines
File MIME type: text/plain
recent changes.. DNG

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

  ViewVC Help
Powered by ViewVC 1.1.22