/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/STREAMICE.h
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/streamice/STREAMICE.h

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.24 by dgoldberg, Wed Jun 12 21:16:25 2013 UTC revision 1.25 by dgoldberg, Wed Aug 27 19:29:12 2014 UTC
# Line 1  Line 1 
1    C $Header$
2    C $Name$
3    
4  C---+----1--+-+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1--+-+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
5    
6  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
7    
8  C     -------------------------- REAL PARAMS ---------------------------------------------------  C     -------------------------- REAL PARAMS ---------------------------------------------------
9    
10        COMMON /STREAMICE_PARMS_R/        COMMON /STREAMICE_PARMS_R/
11       & streamice_density, streamice_density_ocean_avg,       & streamice_density, streamice_density_ocean_avg,
12  !     & A_glen_isothermal, n_glen, eps_glen_min, eps_u_min,  C     & A_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
13       & B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,       & B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
14       & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,       & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,
15       & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,       & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,
16       & streamice_nonlin_tol_fp,       & streamice_nonlin_tol_fp,
17       & streamice_CFL_factor, streamice_adjDump,       & streamice_CFL_factor, streamice_adjDump,
18       & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,       & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
19       & streamice_kx_b_init, streamice_ky_b_init,       & streamice_kx_b_init, streamice_ky_b_init,
20       & streamice_wgt_drift, streamice_wgt_surf,       & streamice_wgt_drift, streamice_wgt_surf,
21       & streamice_wgt_avthick, streamice_wgt_vel,       & streamice_wgt_avthick, streamice_wgt_vel,
22       & streamice_wgt_tikh,       & streamice_wgt_tikh,
23       & streamice_addl_backstress,       & streamice_addl_backstress,
24       & streamice_smooth_gl_width,       & streamice_smooth_gl_width,
25       & streamice_adot_uniform       & streamice_adot_uniform,
26         & streamice_forcing_period
27    
28        _RL streamice_density, streamice_density_ocean_avg        _RL streamice_density, streamice_density_ocean_avg
29  !      _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min  C      _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min
30        _RL B_glen_isothermal, n_glen, eps_glen_min, eps_u_min        _RL B_glen_isothermal, n_glen, eps_glen_min, eps_u_min
31        _RL C_basal_fric_const        _RL C_basal_fric_const
32        _RL n_basal_friction        _RL n_basal_friction
33        _RL streamice_input_flux_unif        _RL streamice_input_flux_unif
34        _RL streamice_vel_update        _RL streamice_vel_update
35        _RL streamice_cg_tol, streamice_nonlin_tol        _RL streamice_cg_tol, streamice_nonlin_tol
36        _RL streamice_nonlin_tol_fp        _RL streamice_nonlin_tol_fp
37        _RL streamice_CFL_factor        _RL streamice_CFL_factor
# Line 39  C     -------------------------- REAL PA Line 44  C     -------------------------- REAL PA
44        _RL streamice_addl_backstress        _RL streamice_addl_backstress
45        _RL streamice_smooth_gl_width        _RL streamice_smooth_gl_width
46        _RL streamice_adot_uniform        _RL streamice_adot_uniform
47                _RL streamice_forcing_period
48          
49  C     parms for parameterized initial thickness  C     parms for parameterized initial thickness
50  C     SHELF_MAX_DRAFT: max thickness of ice in m  C     SHELF_MAX_DRAFT: max thickness of ice in m
51  C     SHELF_MIN_DRAFT: min thickness of ice in m  C     SHELF_MIN_DRAFT: min thickness of ice in m
# Line 72  C     -------------------------- INT PAR Line 77  C     -------------------------- INT PAR
77        COMMON /STREAMICE_PARMS_I/        COMMON /STREAMICE_PARMS_I/
78       &     streamice_max_cg_iter, streamice_max_nl_iter,       &     streamice_max_cg_iter, streamice_max_nl_iter,
79       &     streamice_vel_upd_counter, streamice_nstep_velocity,       &     streamice_vel_upd_counter, streamice_nstep_velocity,
80       &     streamice_n_sub_regularize       &     streamice_maxcgiter_cpl, streamice_maxnliter_cpl
81    !     &     streamice_n_sub_regularize
82    
83        INTEGER streamice_max_cg_iter, streamice_max_nl_iter        INTEGER streamice_max_cg_iter, streamice_max_nl_iter
84        INTEGER streamice_vel_upd_counter, streamice_nstep_velocity        INTEGER streamice_vel_upd_counter, streamice_nstep_velocity
85        INTEGER streamice_n_sub_regularize        INTEGER streamice_maxcgiter_cpl, streamice_maxnliter_cpl
86    !      INTEGER streamice_n_sub_regularize
87    
88  C     -------------------------- CHAR PARAMS ---------------------------------------------------  C     -------------------------- CHAR PARAMS ---------------------------------------------------
89    
# Line 87  C     -------------------------- CHAR PA Line 95  C     -------------------------- CHAR PA
95        CHARACTER*(MAX_LEN_FNAM) STREAMICEdelsigFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEdelsigFile
96        CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracConfig        CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracConfig
97        CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstConfig        CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstConfig
98          CHARACTER*(MAX_LEN_FNAM) STREAMICEBdotConfig
99        CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracFile
100        CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstFile
101          CHARACTER*(MAX_LEN_FNAM) STREAMICEBdotFile
102          CHARACTER*(MAX_LEN_FNAM) STREAMICEBdotTimeDepFile
103        CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile
104        CHARACTER*(MAX_LEN_FNAM) STREAMICEtopogFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEtopogFile
105        CHARACTER*(MAX_LEN_FNAM) STREAMICEcostMaskFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEcostMaskFile
106        CHARACTER*(MAX_LEN_FNAM) STREAMICE_ADV_SCHEME        CHARACTER*(MAX_LEN_FNAM) STREAMICE_ADV_SCHEME
107          
108  !     THE FOLLOWING FILENAMES ARE FOR SPECIFYING IRREGULAR DOMAIN GEOMETRIES  !     THE FOLLOWING FILENAMES ARE FOR SPECIFYING IRREGULAR DOMAIN GEOMETRIES
109  !     (i.e. boundaries that do not conform with rectangular walls)  !     (i.e. boundaries that do not conform with rectangular walls)
110        CHARACTER*(MAX_LEN_FNAM) STREAMICEhmaskFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEhmaskFile
111        CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCxFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCxFile
# Line 103  C     -------------------------- CHAR PA Line 114  C     -------------------------- CHAR PA
114        CHARACTER*(MAX_LEN_FNAM) STREAMICEvFaceBdryFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEvFaceBdryFile
115        CHARACTER*(MAX_LEN_FNAM) STREAMICEuDirichValsFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEuDirichValsFile
116        CHARACTER*(MAX_LEN_FNAM) STREAMICEvDirichValsFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEvDirichValsFile
117          CHARACTER*(MAX_LEN_FNAM) STREAMICEuMassFluxFile
118          CHARACTER*(MAX_LEN_FNAM) STREAMICEvMassFluxFile
119    
120    !     THE FOLLOWING FILENAMES ARE FOR SPECIFYING buttressing along calving fronts
121          CHARACTER*(MAX_LEN_FNAM) STREAMICEuNormalStressFile
122          CHARACTER*(MAX_LEN_FNAM) STREAMICEvNormalStressFile
123          CHARACTER*(MAX_LEN_FNAM) STREAMICEuShearStressFile
124          CHARACTER*(MAX_LEN_FNAM) STREAMICEvShearStressFile
125          CHARACTER*(MAX_LEN_FNAM) STREAMICEuNormalTimeDepFile
126          CHARACTER*(MAX_LEN_FNAM) STREAMICEvNormalTimeDepFile
127          CHARACTER*(MAX_LEN_FNAM) STREAMICEuShearTimeDepFile
128          CHARACTER*(MAX_LEN_FNAM) STREAMICEvShearTimeDepFile
129    
130  #ifdef ALLOW_PETSC  #ifdef ALLOW_PETSC
131  !     CHARACTER PARAMS FOR PETSC  !     CHARACTER PARAMS FOR PETSC
132        CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE        CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE
133        CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TYPE        CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TYPE
134  #endif  #endif
135        
136  #ifdef ALLOW_STREAMICE_2DTRACER  #ifdef ALLOW_STREAMICE_2DTRACER
137  !     CHARACTER PARAMS FOR TRACER  !     CHARACTER PARAMS FOR TRACER
138        CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCxFile        CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCxFile
139        CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCyFile        CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCyFile
140        CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DinitFile        CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DinitFile
141  #endif  #endif
142        
143        COMMON /STREAMICE_PARM_C/        COMMON /STREAMICE_PARM_C/
144       &     STREAMICEthickInit,       &     STREAMICEthickInit,
145       &     STREAMICEthickFile,       &     STREAMICEthickFile,
146       &     STREAMICEcalveMaskFile,       &     STREAMICEcalveMaskFile,
# Line 125  C     -------------------------- CHAR PA Line 148  C     -------------------------- CHAR PA
148       &     STREAMICEsigcoordFile,       &     STREAMICEsigcoordFile,
149       &     STREAMICEdelsigFile,       &     STREAMICEdelsigFile,
150       &     STREAMICEbasalTracConfig,       &     STREAMICEbasalTracConfig,
151         &     STREAMICEBdotConfig,
152       &     STREAMICEbasalTracFile,       &     STREAMICEbasalTracFile,
153       &     STREAMICEvelOptimFile,       &     STREAMICEvelOptimFile,
154       &     STREAMICEtopogFile,       &     STREAMICEtopogFile,
# Line 135  C     -------------------------- CHAR PA Line 159  C     -------------------------- CHAR PA
159       &     STREAMICEvFaceBdryFile,       &     STREAMICEvFaceBdryFile,
160       &     STREAMICEuDirichValsFile,       &     STREAMICEuDirichValsFile,
161       &     STREAMICEvDirichValsFile,       &     STREAMICEvDirichValsFile,
162         &     STREAMICEuMassFluxFile,
163         &     STREAMICEvMassFluxFile,
164         &     STREAMICEuNormalStressFile,
165         &     STREAMICEvNormalStressFile,
166         &     STREAMICEuShearStressFile,
167         &     STREAMICEvShearStressFile,
168         &     STREAMICEuNormalTimeDepFile,
169         &     STREAMICEvNormalTimeDepFile,
170         &     STREAMICEuShearTimeDepFile,
171         &     STREAMICEvShearTimeDepFile,
172       &     STREAMICEGlenConstFile,       &     STREAMICEGlenConstFile,
173         &     STREAMICEBdotFile,
174         &     STREAMICEBdotTimeDepFile,
175       &     STREAMICEGlenConstConfig,       &     STREAMICEGlenConstConfig,
176       &     STREAMICEcostMaskFile,       &     STREAMICEcostMaskFile,
177       &     STREAMICE_ADV_SCHEME       &     STREAMICE_ADV_SCHEME
# Line 152  C     -------------------------- CHAR PA Line 188  C     -------------------------- CHAR PA
188       &     STREAMICETrac2DBCyFile,       &     STREAMICETrac2DBCyFile,
189       &     STREAMICETrac2DinitFile       &     STREAMICETrac2DinitFile
190  #endif  #endif
191        
192  C     -------------------------- LOGICAL PARAMS ---------------------------------------------------  C     -------------------------- LOGICAL PARAMS ---------------------------------------------------
193    
194        LOGICAL STREAMICEison        LOGICAL STREAMICEison
# Line 160  C     -------------------------- LOGICAL Line 196  C     -------------------------- LOGICAL
196        LOGICAL STREAMICE_tave_mdsio        LOGICAL STREAMICE_tave_mdsio
197        LOGICAL STREAMICE_dump_mnc        LOGICAL STREAMICE_dump_mnc
198        LOGICAL STREAMICE_tave_mnc        LOGICAL STREAMICE_tave_mnc
199        LOGICAL STREAMICE_GL_regularize, STREAMICE_move_front        LOGICAL STREAMICE_move_front
200        LOGICAL STREAMICE_calve_to_mask        LOGICAL STREAMICE_calve_to_mask
201        LOGICAL STREAMICE_construct_matrix        LOGICAL STREAMICE_construct_matrix
202        LOGICAL STREAMICE_lower_cg_tol        LOGICAL STREAMICE_lower_cg_tol
203        LOGICAL STREAMICE_diagnostic_only        LOGICAL STREAMICE_diagnostic_only
204        LOGICAL STREAMICE_ppm_driving_stress        LOGICAL STREAMICE_ppm_driving_stress
205        LOGICAL STREAMICE_h_ctrl_const_surf        LOGICAL STREAMICE_h_ctrl_const_surf
206          LOGICAL STREAMICE_chkfixedptconvergence
207          LOGICAL STREAMICE_chkresidconvergence
208          LOGICAL STREAMICE_allow_cpl
209                
210  C     The following parameters specify periodic boundary conditions.  
211    C     The following parameters specify periodic boundary conditions.
212  C     For now this will completely override all other boundary conditions  C     For now this will completely override all other boundary conditions
213  C     and apply to the entire boundary  C     and apply to the entire boundary
214    
215        LOGICAL STREAMICE_NS_periodic        LOGICAL STREAMICE_NS_periodic
216        LOGICAL STREAMICE_EW_periodic        LOGICAL STREAMICE_EW_periodic
217          
218  C      LOGICAL STREAMICE_hybrid_stress  C      LOGICAL STREAMICE_hybrid_stress
219          
220        COMMON /STREAMICE_PARM_L/        COMMON /STREAMICE_PARM_L/
221       & STREAMICEison,       & STREAMICEison,
222       & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,       & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
223       & STREAMICE_dump_mnc, STREAMICE_tave_mnc,       & STREAMICE_dump_mnc, STREAMICE_tave_mnc,
224       & STREAMICE_GL_regularize, STREAMICE_move_front,       & STREAMICE_move_front,
225       & STREAMICE_calve_to_mask,       & STREAMICE_calve_to_mask,
226       & STREAMICE_construct_matrix,       & STREAMICE_construct_matrix,
227       & STREAMICE_lower_cg_tol,       & STREAMICE_lower_cg_tol,
228       & STREAMICE_NS_periodic, STREAMICE_EW_periodic,       & STREAMICE_NS_periodic, STREAMICE_EW_periodic,
229       & STREAMICE_diagnostic_only,       & STREAMICE_diagnostic_only,
230       & STREAMICE_ppm_driving_stress,       & STREAMICE_ppm_driving_stress,
231       & STREAMICE_h_ctrl_const_surf       & STREAMICE_h_ctrl_const_surf,
232         & STREAMICE_chkfixedptconvergence,
233         & STREAMICE_chkresidconvergence,
234         & STREAMICE_allow_cpl
235    
236  C     -------------------------- AND NOW ARRAYS ---------------------------------------------------  C     -------------------------- AND NOW ARRAYS ---------------------------------------------------
237    
238  C     EXPLANATION OF MASKS  C     EXPLANATION OF MASKS
239    
240  C     STREAMICE_hmask           VALUES  1=ice-covered cell  C     STREAMICE_hmask           VALUES  1=ice-covered cell
241  C                                       2=partially ice-covered cell (no dynamics)  C                                       2=partially ice-covered cell (no dynamics)
242  C                                       0=ice-free cell (for now, it means the cell  C                                       0=ice-free cell (for now, it means the cell
243  C                                                           is treated as an open-ocean cell  C                                                           is treated as an open-ocean cell
244  C                                                           that ice shelf can flow into)  C                                                           that ice shelf can flow into)
245  C                                       -1=outside computational domain; will not change  C                                       -1=outside computational domain; will not change
246  C  C
247  C     STREAMICE_umask           VALUES  1=degree of freedom;  C     STREAMICE_umask           VALUES  1=degree of freedom;
248  C                                       0=homogeneous dirich condition  C                                       0=homogeneous dirich condition
249  C                                       3=inhomogeneous dirich condition  C                                       3=inhomogeneous dirich condition
250    
251  C     STREAMICE_vmask           similar to umask  C     STREAMICE_vmask           similar to umask
252    
253  C     STREAMICE_ufacemask       VALUES  -1=unset,  C     STREAMICE_ufacemask       VALUES  -1=unset,
254  C                                       0=no-flow boundary,  C                                       0=no-flow boundary,
255  C                                       1=no-stress bdry  C                                       1=no-stress bdry
256  C                                       2=stress bdry condition,  C                                       2=stress bdry condition,
257  C                                       3=inhomogeneous dirichlet boundary,  C                                       3=inhomogeneous dirichlet boundary,
258  C                                       4=flux boundary: at these faces a flux will be specified by u_flux_bdry_SI  C                                       4=flux boundary: at these faces a flux will be specified by u_flux_bdry_SI
259  C                                        C
260  C     STREAMICE_vfacemask       similar to ufacemask  C     STREAMICE_vfacemask       similar to ufacemask
261  C     STREAMICE_ufacemask_bdry  field initialized at the beginning of simulation  C     STREAMICE_ufacemask_bdry  field initialized at the beginning of simulation
262  C                               specified all ufacemask values except for calving front  C                               specified all ufacemask values except for calving front
263  C                               CONSTANT FOR A SIMULATION (ie not changes after streamice_init_fixed)  C                               CONSTANT FOR A SIMULATION (ie not changes after streamice_init_fixed)
264  C     STREAMICE_vfacemask_bdry  CONSTANT FOR A SIMULATION  C     STREAMICE_vfacemask_bdry  CONSTANT FOR A SIMULATION
265  C     STREAMICE_calve_mask      specified allowed extent of ice shelf  C     STREAMICE_calve_mask      specified allowed extent of ice shelf
266  C                                (should be integer, but don't know howvi sre to read ints from file)  C                                (should be integer, but do not know howvi sre to read ints from file)
267  C                               not necessarily used, but CONSTANT FOR A SIMULATION  C                               not necessarily used, but CONSTANT FOR A SIMULATION
268  C     STREAMICE_float_cond      will only be used if partial floatation is implemented  C     STREAMICE_float_cond      will only be used if partial floatation is implemented
269    
# Line 240  C     Short arrays (e.g. masks) Line 283  C     Short arrays (e.g. masks)
283        _RS STREAMICE_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS STREAMICE_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
284        _RS STREAMICE_umask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS STREAMICE_umask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
285        _RS STREAMICE_vmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RS STREAMICE_vmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
286        _RS STREAMICE_ufacemask        _RS STREAMICE_ufacemask
287       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
288        _RS STREAMICE_vfacemask        _RS STREAMICE_vfacemask
289       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
290        _RS STREAMICE_ufacemask_bdry        _RS STREAMICE_ufacemask_bdry
291       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
292        _RS STREAMICE_vfacemask_bdry        _RS STREAMICE_vfacemask_bdry
293       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
294        _RS STREAMICE_float_cond        _RS STREAMICE_float_cond
295       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
296        _RS STREAMICE_calve_mask        _RS STREAMICE_calve_mask
297       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
298        _RS STREAMICE_ctrl_mask        _RS STREAMICE_ctrl_mask
299       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
300        _RS STREAMICE_cost_mask        _RS STREAMICE_cost_mask
301       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
302        
303  C    NOTES :  C    NOTES :
304  C     STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)  C     STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)
305  C     STREAMICE_hmask IS PART OF **STATE**  C     STREAMICE_hmask IS PART OF **STATE**
306  C     All other masks are updated within a timestep BASED ON STREAMICE_hmask  C     All other masks are updated within a timestep BASED ON STREAMICE_hmask
307    
308  C    Number of quadrature points are hardcoded.. could turn into a CPP macro      C    Number of quadrature points are hardcoded.. could turn into a CPP macro
309    
310  C    REAL ARRAYS  C    REAL ARRAYS
311    
312        COMMON /STREAMICE_FIELDS_RL/        COMMON /STREAMICE_FIELDS_RL/
313       &     H_streamice,       &     H_streamice,
314       &     U_streamice,       &     U_streamice,
315       &     V_streamice,       &     V_streamice,
# Line 285  C    REAL ARRAYS Line 328  C    REAL ARRAYS
328       &     v_bdry_values_SI,       &     v_bdry_values_SI,
329       &     STREAMICE_dummy_array,       &     STREAMICE_dummy_array,
330       &     C_basal_friction,       &     C_basal_friction,
331  !     &     A_glen,  C     &     A_glen,
332       &     B_glen,       &     B_glen,
333       &     BDOT_streamice, ADOT_streamice,  ! mass balances in meters per year       &     BDOT_streamice, ADOT_streamice,  BDOT_pert,! mass balances in meters per year
334       &     streamice_sigma_coord, streamice_delsigma,       &     streamice_sigma_coord, streamice_delsigma,
335       &     H_streamice_prev       &     H_streamice_prev
336    
337    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
338          COMMON /STREAMICE_STRESS_BOUNDARY/
339         &      streamice_u_normal_pert,
340         &      streamice_v_normal_pert,
341         &      streamice_u_shear_pert,
342         &      streamice_v_shear_pert,
343         &      streamice_u_normal_stress,
344         &      streamice_v_normal_stress,
345         &      streamice_u_shear_stress,
346         &      streamice_v_shear_stress
347    #endif
348    
349  #ifdef STREAMICE_HYBRID_STRESS  #ifdef STREAMICE_HYBRID_STRESS
350        COMMON /STREAMICE_HYBRID/        COMMON /STREAMICE_HYBRID/
351       &     streamice_taubx, streamice_tauby,       &     streamice_taubx, streamice_tauby,
352       &     streamice_u_surf, streamice_v_surf,       &     streamice_u_surf, streamice_v_surf,
353         &     streamice_u_bed, streamice_v_bed,
354       &     visc_streamice_full, streamice_omega, streamice_basal_geom,       &     visc_streamice_full, streamice_omega, streamice_basal_geom,
355       &     streamice_vert_shear_uz, streamice_vert_shear_vz           &     streamice_vert_shear_uz, streamice_vert_shear_vz
356    #endif
357    
358    #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
359          COMMON /STREAMICE_TIMEDEP_FORCE/
360         &      bdot_streamice0,
361         &      bdot_streamice1
362    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
363         &      ,streamice_u_normal_stress0,
364         &      streamice_u_normal_stress1,
365         &      streamice_v_normal_stress0,
366         &      streamice_v_normal_stress1,
367         &      streamice_u_shear_stress0,
368         &      streamice_u_shear_stress1,
369         &      streamice_v_shear_stress0,
370         &      streamice_v_shear_stress1
371    #endif
372  #endif  #endif
373    
374  #ifdef ALLOW_STREAMICE_2DTRACER  #ifdef ALLOW_STREAMICE_2DTRACER
# Line 311  C    REAL ARRAYS Line 383  C    REAL ARRAYS
383  #endif  #endif
384    
385  #ifdef USE_ALT_RLOW  #ifdef USE_ALT_RLOW
386        COMMON /STREAMICE_RLOW/        COMMON /STREAMICE_RLOW/
387       &     R_low_si       &     R_low_si
388  #endif  #endif
389    
   
390        _RL H_streamice           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL H_streamice           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
391        _RL U_streamice           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL U_streamice           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
392        _RL V_streamice           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL V_streamice           (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
# Line 333  C    REAL ARRAYS Line 404  C    REAL ARRAYS
404        _RL u_bdry_values_SI    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL u_bdry_values_SI    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
405        _RL v_bdry_values_SI    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL v_bdry_values_SI    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
406        _RL C_basal_friction    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL C_basal_friction    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
407  !      _RL A_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  C      _RL A_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
408    #ifdef STREAMICE_3D_GLEN_CONST
409          _RL B_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
410    #else
411        _RL B_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL B_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
412    #endif
413        _RL streamice_sigma_coord (Nr)        _RL streamice_sigma_coord (Nr)
414        _RL streamice_delsigma (Nr)              _RL streamice_delsigma (Nr)
415    
416  #ifdef USE_ALT_RLOW  #ifdef USE_ALT_RLOW
417        _RL R_low_si    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL R_low_si    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
418  #endif  #endif
419    
420  C     The following arrays are used for the hybrid stress balance              C     The following arrays are used for the hybrid stress balance
421  #ifdef STREAMICE_HYBRID_STRESS        #ifdef STREAMICE_HYBRID_STRESS
422        _RL streamice_taubx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL streamice_taubx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
       _RL streamice_tauby (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)  
423        _RL streamice_u_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL streamice_u_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
424        _RL streamice_v_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL streamice_v_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
425          _RL streamice_u_bed (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
426          _RL streamice_v_bed (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
427          _RL streamice_tauby (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
428        _RL streamice_omega (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL streamice_omega (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
429        _RL streamice_basal_geom        _RL streamice_basal_geom
430       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
431        _RL visc_streamice_full        _RL visc_streamice_full
432       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
433        _RL streamice_vert_shear_uz (Nr)        _RL streamice_vert_shear_uz (Nr)
434        _RL streamice_vert_shear_vz (Nr)        _RL streamice_vert_shear_vz (Nr)
435  #endif        #endif
436        
437  #ifdef ALLOW_STREAMICE_2DTRACER  #ifdef ALLOW_STREAMICE_2DTRACER
438        _RL trac2d_ubdry_values_SI        _RL trac2d_ubdry_values_SI
439       &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
440        _RL trac2d_vbdry_values_SI        _RL trac2d_vbdry_values_SI
441       &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
442        _RL trac2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL trac2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
443  #ifdef STREAMICE_TRACER_AB  #ifdef STREAMICE_TRACER_AB
444        _RL GAD_trac_2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL GAD_trac_2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
445  #endif  #endif
446  #endif  #endif
447          
448    #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
449          _RL streamice_u_normal_stress
450         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
451          _RL streamice_v_normal_stress
452         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
453          _RL streamice_u_shear_stress
454         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
455          _RL streamice_v_shear_stress
456         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
457          _RL streamice_u_normal_pert
458         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
459          _RL streamice_v_normal_pert
460         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
461          _RL streamice_u_shear_pert
462         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
463          _RL streamice_v_shear_pert
464         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
465    #endif
466    
467        _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
468  !! IMPORTANT: MELT RATE IN METERS PER YEAR  !! IMPORTANT: MELT RATE IN METERS PER YEAR
469  !! POSITIVE WHERE MELTING  !! POSITIVE WHERE MELTING
470        _RL BDOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL BDOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
471          _RL BDOT_pert (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
472        _RL H_streamice_prev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL H_streamice_prev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
473        _RL STREAMICE_dummy_array (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL STREAMICE_dummy_array (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
474          
475          #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING
476              #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL
477          _RL streamice_u_normal_stress0
478         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
479          _RL streamice_u_normal_stress1
480         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
481          _RL streamice_v_normal_stress0
482         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
483          _RL streamice_v_normal_stress1
484         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
485          _RL streamice_u_shear_stress0
486         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
487          _RL streamice_u_shear_stress1
488         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
489          _RL streamice_v_shear_stress0
490         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
491          _RL streamice_v_shear_stress1
492         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
493    #endif
494          _RL bdot_streamice0
495         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
496          _RL bdot_streamice1
497         &   (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
498    #endif
499    
500        COMMON /STREAMICE_COST_RL/        COMMON /STREAMICE_COST_RL/
501       &       cost_func1_streamice       &       cost_func1_streamice,
502         &       cost_vel_streamice,
503         &       cost_surf_streamice
504        _RL cost_func1_streamice(nSx,nSy)        _RL cost_func1_streamice(nSx,nSy)
505                _RL cost_vel_streamice(nSx,nSy)
506          _RL cost_surf_streamice(nSx,nSy)
507    
508  C    NOTES :  C    NOTES :
509  C      REAL ARRAYS THAT COMPRISE "STATE":  C      REAL ARRAYS THAT COMPRISE "STATE":
510  C       H_streamice,  C       H_streamice,
# Line 389  C       V_streamice, Line 513  C       V_streamice,
513  C       visc_streamice,  C       visc_streamice,
514  C       tau_beta_eff_streamice,  C       tau_beta_eff_streamice,
515  C       area_shelf_streamice  C       area_shelf_streamice
516  C       (and don't forget STREAMICE_hmask)  C       (and do not forget STREAMICE_hmask)
517  C        C
518  C       visc & tau are now calculated based on U,V in streamice_vel_solve  C       visc & tau are now calculated based on U,V in streamice_vel_solve
519  C        but with Hybdrid stress formulation they will become part of  C        but with Hybdrid stress formulation they will become part of
520  C        velocity initial guess, so they are kept  C        velocity initial guess, so they are kept
521    
522  #ifdef ALLOW_PETSC  #ifdef ALLOW_PETSC
# Line 406  C        velocity initial guess, so they Line 530  C        velocity initial guess, so they
530       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
531        INTEGER n_dofs_process (0:nPx*nPy-1)        INTEGER n_dofs_process (0:nPx*nPy-1)
532  #endif  #endif
533          
         
534  #endif /* ALLOW_STREAMICE */  #endif /* ALLOW_STREAMICE */
535    
536  CEH3 ;;; Local Variables: ***  CEH3 ;;; Local Variables: ***

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

  ViewVC Help
Powered by ViewVC 1.1.22