--- MITgcm_contrib/dgoldberg/streamice/STREAMICE.h 2013/03/07 15:23:19 1.19 +++ MITgcm_contrib/dgoldberg/streamice/STREAMICE.h 2013/06/12 21:16:25 1.24 @@ -18,7 +18,8 @@ & streamice_wgt_avthick, streamice_wgt_vel, & streamice_wgt_tikh, & streamice_addl_backstress, - & streamice_smooth_gl_width + & streamice_smooth_gl_width, + & streamice_adot_uniform _RL streamice_density, streamice_density_ocean_avg ! _RL A_glen_isothermal, n_glen, eps_glen_min, eps_u_min _RL B_glen_isothermal, n_glen, eps_glen_min, eps_u_min @@ -37,6 +38,7 @@ _RL streamice_wgt_tikh _RL streamice_addl_backstress _RL streamice_smooth_gl_width + _RL streamice_adot_uniform C parms for parameterized initial thickness @@ -90,16 +92,31 @@ CHARACTER*(MAX_LEN_FNAM) STREAMICEvelOptimFile CHARACTER*(MAX_LEN_FNAM) STREAMICEtopogFile CHARACTER*(MAX_LEN_FNAM) STREAMICEcostMaskFile + CHARACTER*(MAX_LEN_FNAM) STREAMICE_ADV_SCHEME ! THE FOLLOWING FILENAMES ARE FOR SPECIFYING IRREGULAR DOMAIN GEOMETRIES ! (i.e. boundaries that do not conform with rectangular walls) CHARACTER*(MAX_LEN_FNAM) STREAMICEhmaskFile + CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCxFile + CHARACTER*(MAX_LEN_FNAM) STREAMICEHBCyFile CHARACTER*(MAX_LEN_FNAM) STREAMICEuFaceBdryFile CHARACTER*(MAX_LEN_FNAM) STREAMICEvFaceBdryFile CHARACTER*(MAX_LEN_FNAM) STREAMICEuDirichValsFile CHARACTER*(MAX_LEN_FNAM) STREAMICEvDirichValsFile - - + +#ifdef ALLOW_PETSC +! CHARACTER PARAMS FOR PETSC + CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE + CHARACTER*(MAX_LEN_FNAM) PETSC_PRECOND_TYPE +#endif + +#ifdef ALLOW_STREAMICE_2DTRACER +! CHARACTER PARAMS FOR TRACER + CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCxFile + CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DBCyFile + CHARACTER*(MAX_LEN_FNAM) STREAMICETrac2DinitFile +#endif + COMMON /STREAMICE_PARM_C/ & STREAMICEthickInit, & STREAMICEthickFile, @@ -112,13 +129,29 @@ & STREAMICEvelOptimFile, & STREAMICEtopogFile, & STREAMICEhmaskFile, + & STREAMICEHBCxFile, + & STREAMICEHBCyFile, & STREAMICEuFaceBdryFile, & STREAMICEvFaceBdryFile, & STREAMICEuDirichValsFile, & STREAMICEvDirichValsFile, & STREAMICEGlenConstFile, & STREAMICEGlenConstConfig, - & STREAMICEcostMaskFile + & STREAMICEcostMaskFile, + & STREAMICE_ADV_SCHEME + +#ifdef ALLOW_PETSC + COMMON /PETSC_PARM_C/ + & PETSC_SOLVER_TYPE, + & PETSC_PRECOND_TYPE +#endif + +#ifdef ALLOW_STREAMICE_2DTRACER + COMMON /STREAMICE_TRAC2D_C/ + & STREAMICETrac2DBCxFile, + & STREAMICETrac2DBCyFile, + & STREAMICETrac2DinitFile +#endif C -------------------------- LOGICAL PARAMS --------------------------------------------------- @@ -161,7 +194,7 @@ C EXPLANATION OF MASKS -C STREAMICE_hmask VALUES 1=ice-covered cell +C STREAMICE_hmask VALUES 1=ice-covered cell C 2=partially ice-covered cell (no dynamics) C 0=ice-free cell (for now, it means the cell C is treated as an open-ocean cell @@ -246,7 +279,8 @@ & mass_ice_streamice, & u_flux_bdry_SI, & v_flux_bdry_SI, - & h_bdry_values_SI, + & h_ubdry_values_SI, + & h_vbdry_values_SI, & u_bdry_values_SI, & v_bdry_values_SI, & STREAMICE_dummy_array, @@ -265,6 +299,17 @@ & streamice_vert_shear_uz, streamice_vert_shear_vz #endif +#ifdef ALLOW_STREAMICE_2DTRACER + COMMON /STREAMICE_TRAC2D_FIELDS_RL/ + & trac2d_ubdry_values_SI, + & trac2d_vbdry_values_SI, + & trac2d +#ifdef STREAMICE_TRACER_AB + COMMON /STREAMICE_TRAC2D_AB_RL/ + & GAD_trac_2d +#endif +#endif + #ifdef USE_ALT_RLOW COMMON /STREAMICE_RLOW/ & R_low_si @@ -283,7 +328,8 @@ _RL mass_ice_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL u_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL v_flux_bdry_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL h_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL h_ubdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL h_vbdry_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) _RL v_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL C_basal_friction (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -310,7 +356,17 @@ _RL streamice_vert_shear_uz (Nr) _RL streamice_vert_shear_vz (Nr) #endif - + +#ifdef ALLOW_STREAMICE_2DTRACER + _RL trac2d_ubdry_values_SI + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL trac2d_vbdry_values_SI + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL trac2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef STREAMICE_TRACER_AB + _RL GAD_trac_2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif +#endif _RL ADOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) !! IMPORTANT: MELT RATE IN METERS PER YEAR @@ -338,6 +394,18 @@ C visc & tau are now calculated based on U,V in streamice_vel_solve C but with Hybdrid stress formulation they will become part of C velocity initial guess, so they are kept + +#ifdef ALLOW_PETSC + COMMON /STREAMICE_PETSC_DOFS_COMMON/ + & streamice_petsc_dofs_u, + & streamice_petsc_dofs_v, + & n_dofs_process + _RS streamice_petsc_dofs_u + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS streamice_petsc_dofs_v + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER n_dofs_process (0:nPx*nPy-1) +#endif #endif /* ALLOW_STREAMICE */