/[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.2 - (hide annotations) (download)
Mon May 14 16:47:10 2012 UTC (13 years, 2 months ago) by dgoldberg
Branch: MAIN
Changes since 1.1: +2 -2 lines
File MIME type: text/plain
make construct matrix option a CPP option

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

  ViewVC Help
Powered by ViewVC 1.1.22