/[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.2 by dgoldberg, Mon May 14 16:47:10 2012 UTC revision 1.20 by dgoldberg, Sat Apr 6 17:43:41 2013 UTC
# Line 1  Line 1 
1  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1--+-+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
2    
3  #ifdef ALLOW_STREAMICE  #ifdef ALLOW_STREAMICE
4    
# Line 6  C     -------------------------- REAL PA Line 6  C     -------------------------- REAL PA
6    
7        COMMON /STREAMICE_PARMS_R/        COMMON /STREAMICE_PARMS_R/
8       & streamice_density, streamice_density_ocean_avg,       & streamice_density, streamice_density_ocean_avg,
9       & A_glen_isothermal, n_glen, eps_glen_min,  !     & A_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
10         & B_glen_isothermal, n_glen, eps_glen_min, eps_u_min,
11       & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,       & C_basal_fric_const, n_basal_friction, streamice_input_flux_unif,
12       & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,       & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol,
13       & streamice_CFL_factor       & streamice_nonlin_tol_fp,
14         & streamice_CFL_factor, streamice_adjDump,
15         & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y,
16         & streamice_kx_b_init, streamice_ky_b_init,
17         & streamice_wgt_drift, streamice_wgt_surf,
18         & streamice_wgt_avthick, streamice_wgt_vel,
19         & streamice_wgt_tikh,
20         & streamice_addl_backstress,
21         & streamice_smooth_gl_width
22        _RL streamice_density, streamice_density_ocean_avg        _RL streamice_density, streamice_density_ocean_avg
23        _RL A_glen_isothermal, n_glen, eps_glen_min  !      _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min
24          _RL B_glen_isothermal, n_glen, eps_glen_min, eps_u_min
25        _RL C_basal_fric_const        _RL C_basal_fric_const
26        _RL n_basal_friction        _RL n_basal_friction
27        _RL streamice_input_flux_unif        _RL streamice_input_flux_unif
28        _RL streamice_vel_update        _RL streamice_vel_update
29        _RL streamice_cg_tol, streamice_nonlin_tol        _RL streamice_cg_tol, streamice_nonlin_tol
30          _RL streamice_nonlin_tol_fp
31        _RL streamice_CFL_factor        _RL streamice_CFL_factor
32          _RL streamice_adjDump
33          _RL streamice_bg_surf_slope_x, streamice_bg_surf_slope_y
34          _RL streamice_kx_b_init, streamice_ky_b_init
35          _RL streamice_wgt_drift, streamice_wgt_surf
36          _RL streamice_wgt_avthick, streamice_wgt_vel
37          _RL streamice_wgt_tikh
38          _RL streamice_addl_backstress
39          _RL streamice_smooth_gl_width
40          
41                
42  C     parms for parameterized initial thickness  C     parms for parameterized initial thickness
43  C     SHELF_MAX_DRAFT: max thickness of ice in m  C     SHELF_MAX_DRAFT: max thickness of ice in m
# Line 44  C     FLOW_DIR: 1.0=west, 2.0=east, 3.0= Line 64  C     FLOW_DIR: 1.0=west, 2.0=east, 3.0=
64    
65  C     -------------------------- INT PARAMS ---------------------------------------------------  C     -------------------------- INT PARAMS ---------------------------------------------------
66    
67          INTEGER streamice_max_nl
68          PARAMETER ( streamice_max_nl = 100 )
69    
70        COMMON /STREAMICE_PARMS_I/        COMMON /STREAMICE_PARMS_I/
71       &     streamice_max_cg_iter, streamice_max_nl_iter,       &     streamice_max_cg_iter, streamice_max_nl_iter,
72       &     streamice_vel_upd_counter, streamice_nstep_velocity,       &     streamice_vel_upd_counter, streamice_nstep_velocity,
# Line 57  C     -------------------------- CHAR PA Line 80  C     -------------------------- CHAR PA
80        CHARACTER*(MAX_LEN_FNAM) STREAMICEthickFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEthickFile
81        CHARACTER*(MAX_LEN_FNAM) STREAMICEthickInit        CHARACTER*(MAX_LEN_FNAM) STREAMICEthickInit
82        CHARACTER*(MAX_LEN_FNAM) STREAMICEcalveMaskFile        CHARACTER*(MAX_LEN_FNAM) STREAMICEcalveMaskFile
83          CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordInit
84          CHARACTER*(MAX_LEN_FNAM) STREAMICEsigcoordFile
85          CHARACTER*(MAX_LEN_FNAM) STREAMICEdelsigFile
86          CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracConfig
87          CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstConfig
88          CHARACTER*(MAX_LEN_FNAM) STREAMICEbasalTracFile
89          CHARACTER*(MAX_LEN_FNAM) STREAMICEGlenConstFile
90          CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile
91          CHARACTER*(MAX_LEN_FNAM) STREAMICEtopogFile
92          CHARACTER*(MAX_LEN_FNAM) STREAMICEcostMaskFile
93          
94    !     THE FOLLOWING FILENAMES ARE FOR SPECIFYING IRREGULAR DOMAIN GEOMETRIES
95    !     (i.e. boundaries that do not conform with rectangular walls)
96          CHARACTER*(MAX_LEN_FNAM) STREAMICEhmaskFile
97          CHARACTER*(MAX_LEN_FNAM) STREAMICEuFaceBdryFile
98          CHARACTER*(MAX_LEN_FNAM) STREAMICEvFaceBdryFile
99          CHARACTER*(MAX_LEN_FNAM) STREAMICEuDirichValsFile
100          CHARACTER*(MAX_LEN_FNAM) STREAMICEvDirichValsFile
101    
102    !     CHARACTER PARAMS FOR PETSC
103          CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE
104          CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TYPE
105          
106          
107        COMMON /STREAMICE_PARM_C/        COMMON /STREAMICE_PARM_C/
108       &     STREAMICEthickInit,       &     STREAMICEthickInit,
109       &     STREAMICEthickFile,       &     STREAMICEthickFile,
110       &     STREAMICEcalveMaskFile       &     STREAMICEcalveMaskFile,
111         &     STREAMICEsigcoordInit,
112         &     STREAMICEsigcoordFile,
113         &     STREAMICEdelsigFile,
114         &     STREAMICEbasalTracConfig,
115         &     STREAMICEbasalTracFile,
116         &     STREAMICEvelOptimFile,
117         &     STREAMICEtopogFile,
118         &     STREAMICEhmaskFile,
119         &     STREAMICEuFaceBdryFile,
120         &     STREAMICEvFaceBdryFile,
121         &     STREAMICEuDirichValsFile,
122         &     STREAMICEvDirichValsFile,
123         &     STREAMICEGlenConstFile,
124         &     STREAMICEGlenConstConfig,
125         &     STREAMICEcostMaskFile
126    
127          COMMON /PETSC_PARM_C/
128         &     PETSC_SOLVER_TYPE,
129         &     PETSC_PRECOND_TYPE
130            
131  C     -------------------------- LOGICAL PARAMS ---------------------------------------------------  C     -------------------------- LOGICAL PARAMS ---------------------------------------------------
132    
# Line 71  C     -------------------------- LOGICAL Line 137  C     -------------------------- LOGICAL
137        LOGICAL STREAMICE_tave_mnc        LOGICAL STREAMICE_tave_mnc
138        LOGICAL STREAMICE_GL_regularize, STREAMICE_move_front        LOGICAL STREAMICE_GL_regularize, STREAMICE_move_front
139        LOGICAL STREAMICE_calve_to_mask        LOGICAL STREAMICE_calve_to_mask
140  !       LOGICAL STREAMICE_construct_matrix        LOGICAL STREAMICE_construct_matrix
141        LOGICAL STREAMICE_lower_cg_tol        LOGICAL STREAMICE_lower_cg_tol
142          LOGICAL STREAMICE_diagnostic_only
143          LOGICAL STREAMICE_ppm_driving_stress
144          LOGICAL STREAMICE_h_ctrl_const_surf
145          
146    C     The following parameters specify periodic boundary conditions.
147    C     For now this will completely override all other boundary conditions
148    C     and apply to the entire boundary
149    
150          LOGICAL STREAMICE_NS_periodic
151          LOGICAL STREAMICE_EW_periodic
152          
153    C      LOGICAL STREAMICE_hybrid_stress
154          
155        COMMON /STREAMICE_PARM_L/        COMMON /STREAMICE_PARM_L/
156       & STREAMICEison,       & STREAMICEison,
157       & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,       & STREAMICE_dump_mdsio, STREAMICE_tave_mdsio,
158       & STREAMICE_dump_mnc, STREAMICE_tave_mnc,       & STREAMICE_dump_mnc, STREAMICE_tave_mnc,
159       & STREAMICE_GL_regularize, STREAMICE_move_front,       & STREAMICE_GL_regularize, STREAMICE_move_front,
160       & STREAMICE_calve_to_mask,       & STREAMICE_calve_to_mask,
161  !     & STREAMICE_construct_matrix,       & STREAMICE_construct_matrix,
162       & STREAMICE_lower_cg_tol       & STREAMICE_lower_cg_tol,
163         & STREAMICE_NS_periodic, STREAMICE_EW_periodic,
164         & STREAMICE_diagnostic_only,
165         & STREAMICE_ppm_driving_stress,
166         & STREAMICE_h_ctrl_const_surf
167    
168  C     -------------------------- AND NOW ARRAYS ---------------------------------------------------  C     -------------------------- AND NOW ARRAYS ---------------------------------------------------
169    
# Line 126  C     Short arrays (e.g. masks) Line 209  C     Short arrays (e.g. masks)
209       &     STREAMICE_ufacemask_bdry,       &     STREAMICE_ufacemask_bdry,
210       &     STREAMICE_vfacemask_bdry,       &     STREAMICE_vfacemask_bdry,
211       &     STREAMICE_float_cond,       &     STREAMICE_float_cond,
212       &     STREAMICE_calve_mask       &     STREAMICE_calve_mask,
213         &     STREAMICE_ctrl_mask,
214         &     STREAMICE_cost_mask
215        _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)
216        _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)
217        _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)
# Line 142  C     Short arrays (e.g. masks) Line 227  C     Short arrays (e.g. masks)
227       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       &  (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
228        _RS STREAMICE_calve_mask        _RS STREAMICE_calve_mask
229       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)       & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
230          _RS STREAMICE_ctrl_mask
231         & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
232          _RS STREAMICE_cost_mask
233         & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
234            
235  C    NOTES :  C    NOTES :
236  C     STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)  C     STREAMICE_ufacemask_bdry, STREAMICE_vfacemask_bdry ARE CONSTANT (FIXED)
# Line 169  C    REAL ARRAYS Line 258  C    REAL ARRAYS
258       &     u_bdry_values_SI,       &     u_bdry_values_SI,
259       &     v_bdry_values_SI,       &     v_bdry_values_SI,
260       &     STREAMICE_dummy_array,       &     STREAMICE_dummy_array,
261       &     C_basal_friction       &     C_basal_friction,
262    !     &     A_glen,
263         &     B_glen,
264         &     BDOT_streamice, ADOT_streamice,  ! mass balances in meters per year
265         &     streamice_sigma_coord, streamice_delsigma,
266         &     H_streamice_prev
267    
268    #ifdef STREAMICE_HYBRID_STRESS
269          COMMON /STREAMICE_HYBRID/
270         &     streamice_taubx, streamice_tauby,
271         &     streamice_u_surf, streamice_v_surf,
272         &     visc_streamice_full, streamice_omega, streamice_basal_geom,
273         &     streamice_vert_shear_uz, streamice_vert_shear_vz    
274    #endif
275    
276    #ifdef USE_ALT_RLOW
277          COMMON /STREAMICE_RLOW/
278         &     R_low_si
279    #endif
280    
281    
282        _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)
283        _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)
284        _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 186  C    REAL ARRAYS Line 295  C    REAL ARRAYS
295        _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)
296        _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)
297        _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)
298    !      _RL A_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
299          _RL B_glen    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
300          _RL streamice_sigma_coord (Nr)
301          _RL streamice_delsigma (Nr)      
302    
303    #ifdef USE_ALT_RLOW
304          _RL R_low_si    (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
305    #endif
306    
307    C     The following arrays are used for the hybrid stress balance            
308    #ifdef STREAMICE_HYBRID_STRESS      
309          _RL streamice_taubx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
310          _RL streamice_tauby (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
311          _RL streamice_u_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
312          _RL streamice_v_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
313          _RL streamice_omega (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
314          _RL streamice_basal_geom
315         & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
316          _RL visc_streamice_full
317         & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
318          _RL streamice_vert_shear_uz (Nr)
319          _RL streamice_vert_shear_vz (Nr)
320    #endif      
321                
322          
323          _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
324    !! IMPORTANT: MELT RATE IN METERS PER YEAR
325    !! POSITIVE WHERE MELTING
326          _RL BDOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
327          _RL H_streamice_prev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
328        _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)
329                
330          
331              
332          COMMON /STREAMICE_COST_RL/
333         &       cost_func1_streamice
334          _RL cost_func1_streamice(nSx,nSy)
335          
336  C    NOTES :  C    NOTES :
337  C      REAL ARRAYS THAT COMPRISE "STATE":  C      REAL ARRAYS THAT COMPRISE "STATE":
338  C       H_streamice,  C       H_streamice,
# Line 202  C Line 346  C
346  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
347  C        but with Hybdrid stress formulation they will become part of  C        but with Hybdrid stress formulation they will become part of
348  C        velocity initial guess, so they are kept  C        velocity initial guess, so they are kept
349    
350    #ifdef ALLOW_PETSC
351          COMMON /STREAMICE_PETSC_DOFS_COMMON/
352         &      streamice_petsc_dofs_u,
353         &      streamice_petsc_dofs_v,
354         &      n_dofs_process
355          _RS streamice_petsc_dofs_u
356         & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
357          _RS streamice_petsc_dofs_v
358         & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
359          INTEGER n_dofs_process (0:nPx*nPy-1)
360    #endif
361                
362                
363  #endif /* ALLOW_STREAMICE */  #endif /* ALLOW_STREAMICE */

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.20

  ViewVC Help
Powered by ViewVC 1.1.22