1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
|
|
|
4 |
C this needs changes |
C this needs changes |
5 |
|
|
6 |
#include "STREAMICE_OPTIONS.h" |
#include "STREAMICE_OPTIONS.h" |
20 |
#include "STREAMICE.h" |
#include "STREAMICE.h" |
21 |
#include "STREAMICE_BDRY.h" |
#include "STREAMICE_BDRY.h" |
22 |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
23 |
#include "STREAMICE_CTRL_FLUX.h" |
#include "STREAMICE_CTRL_FLUX.h" |
24 |
#endif |
#endif |
25 |
|
|
26 |
C !INPUT PARAMETERS: |
C !INPUT PARAMETERS: |
38 |
NAMELIST /STREAMICE_PARM01/ |
NAMELIST /STREAMICE_PARM01/ |
39 |
& streamice_density, streamice_density_ocean_avg, |
& streamice_density, streamice_density_ocean_avg, |
40 |
& B_glen_isothermal, n_glen, eps_glen_min, eps_u_min, |
& B_glen_isothermal, n_glen, eps_glen_min, eps_u_min, |
41 |
& C_basal_fric_const, n_basal_friction, |
& C_basal_fric_const, n_basal_friction, |
42 |
& streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol, |
& streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol, |
43 |
& streamice_nonlin_tol_fp, |
& streamice_nonlin_tol_fp, |
44 |
& streamice_max_cg_iter, streamice_max_nl_iter, |
& streamice_max_cg_iter, streamice_max_nl_iter, |
72 |
& STREAMICEuFaceBdryFile, |
& STREAMICEuFaceBdryFile, |
73 |
& STREAMICEvFaceBdryFile, |
& STREAMICEvFaceBdryFile, |
74 |
& STREAMICEuDirichValsFile, |
& STREAMICEuDirichValsFile, |
75 |
& STREAMICEvDirichValsFile, |
& STREAMICEvDirichValsFile, |
76 |
& STREAMICEuMassFluxFile, |
& STREAMICEuMassFluxFile, |
77 |
& STREAMICEvMassFluxFile, |
& STREAMICEvMassFluxFile, |
78 |
& STREAMICEuNormalStressFile, |
& STREAMICEuNormalStressFile, |
79 |
& STREAMICEvNormalStressFile, |
& STREAMICEvNormalStressFile, |
80 |
& STREAMICEuShearStressFile, |
& STREAMICEuShearStressFile, |
83 |
& STREAMICE_ppm_driving_stress, |
& STREAMICE_ppm_driving_stress, |
84 |
& STREAMICE_h_ctrl_const_surf, |
& STREAMICE_h_ctrl_const_surf, |
85 |
& streamice_wgt_drift,streamice_wgt_surf,streamice_wgt_vel, |
& streamice_wgt_drift,streamice_wgt_surf,streamice_wgt_vel, |
86 |
& streamice_wgt_avthick, streamice_wgt_tikh, |
& streamice_wgt_avthick, streamice_wgt_tikh, |
87 |
& streamice_addl_backstress, |
& streamice_addl_backstress, |
88 |
& streamice_smooth_gl_width, |
& streamice_smooth_gl_width, |
89 |
& streamice_adot_uniform, |
& streamice_adot_uniform, |
108 |
& streamice_ctrl_flux_scaleVel |
& streamice_ctrl_flux_scaleVel |
109 |
#endif |
#endif |
110 |
|
|
|
|
|
111 |
NAMELIST /STREAMICE_PARM02/ |
NAMELIST /STREAMICE_PARM02/ |
112 |
& shelf_max_draft, |
& shelf_max_draft, |
113 |
& shelf_min_draft, |
& shelf_min_draft, |
141 |
& flux_bdry_val_WEST, flux_bdry_val_EAST, |
& flux_bdry_val_WEST, flux_bdry_val_EAST, |
142 |
& STREAMICE_NS_periodic, STREAMICE_EW_periodic |
& STREAMICE_NS_periodic, STREAMICE_EW_periodic |
143 |
|
|
144 |
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
145 |
|
|
146 |
|
IF ( .NOT.useStreamIce ) THEN |
147 |
|
C- pkg STREAMICE is not used |
148 |
|
_BEGIN_MASTER(myThid) |
149 |
|
C- Track pkg activation status: |
150 |
|
C print a (weak) warning if data.streamice is found |
151 |
|
CALL PACKAGES_UNUSED_MSG( 'useStreamIce', ' ', ' ' ) |
152 |
|
_END_MASTER(myThid) |
153 |
|
RETURN |
154 |
|
ENDIF |
155 |
|
|
156 |
_BEGIN_MASTER(myThid) |
_BEGIN_MASTER(myThid) |
157 |
|
|
158 |
C-- Default values for STREAMICE |
C-- Default values for STREAMICE |
159 |
|
|
160 |
streamice_density = 917. |
streamice_density = 917. |
161 |
streamice_density_ocean_avg = 1024. |
streamice_density_ocean_avg = 1024. |
162 |
B_glen_isothermal = 9.461e-18 ! Pa (-1/3) a |
B_glen_isothermal = 9.461e-18 ! Pa (-1/3) a |
163 |
n_glen = 3. |
n_glen = 3. |
180 |
streamice_ky_b_init = 1. |
streamice_ky_b_init = 1. |
181 |
streamice_wgt_drift = 0. |
streamice_wgt_drift = 0. |
182 |
streamice_wgt_tikh = 0. |
streamice_wgt_tikh = 0. |
183 |
streamice_wgt_surf = 0. |
streamice_wgt_surf = 0. |
184 |
streamice_wgt_vel = 0. |
streamice_wgt_vel = 0. |
185 |
streamice_wgt_avthick = 0. |
streamice_wgt_avthick = 0. |
186 |
streamice_addl_backstress = 0.0 |
streamice_addl_backstress = 0.0 |
187 |
streamice_smooth_gl_width = 0.0 |
streamice_smooth_gl_width = 0.0 |
240 |
STREAMICEison = .TRUE. |
STREAMICEison = .TRUE. |
241 |
STREAMICE_tave_mdsio = .TRUE. |
STREAMICE_tave_mdsio = .TRUE. |
242 |
STREAMICE_dump_mdsio = .TRUE. |
STREAMICE_dump_mdsio = .TRUE. |
243 |
STREAMICE_dump_mnc = .FALSE. |
STREAMICE_dump_mnc = .FALSE. |
244 |
STREAMICE_tave_mnc = .FALSE. |
STREAMICE_tave_mnc = .FALSE. |
245 |
STREAMICE_GL_regularize = .FALSE. |
STREAMICE_GL_regularize = .FALSE. |
246 |
STREAMICE_move_front = .FALSE. |
STREAMICE_move_front = .FALSE. |
295 |
flux_bdry_val_EAST = 0. |
flux_bdry_val_EAST = 0. |
296 |
|
|
297 |
STREAMICE_NS_periodic = .FALSE. |
STREAMICE_NS_periodic = .FALSE. |
298 |
STREAMICE_EW_periodic = .FALSE. |
STREAMICE_EW_periodic = .FALSE. |
299 |
|
|
300 |
WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice' |
WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice' |
301 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
336 |
& SQUEEZE_RIGHT , 1) |
& SQUEEZE_RIGHT , 1) |
337 |
#endif |
#endif |
338 |
|
|
|
|
|
339 |
READ(UNIT=iUnit,NML=STREAMICE_PARM03) |
READ(UNIT=iUnit,NML=STREAMICE_PARM03) |
340 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
341 |
& 'STREAMICE_READPARMS: read third param block' |
& 'STREAMICE_READPARMS: read third param block' |
343 |
& SQUEEZE_RIGHT , 1) |
& SQUEEZE_RIGHT , 1) |
344 |
CLOSE(iUnit) |
CLOSE(iUnit) |
345 |
|
|
|
|
|
346 |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
347 |
|
|
348 |
CALL OPEN_COPY_DATA_FILE( |
CALL OPEN_COPY_DATA_FILE( |
350 |
O iUnit, |
O iUnit, |
351 |
I myThid ) |
I myThid ) |
352 |
|
|
|
|
|
353 |
READ(UNIT=iUnit,NML=STREAMICE_PARMFLUXCTRL) |
READ(UNIT=iUnit,NML=STREAMICE_PARMFLUXCTRL) |
354 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
355 |
& 'STREAMICE_READPARMS: read flux_ctrl param block' |
& 'STREAMICE_READPARMS: read flux_ctrl param block' |
358 |
CLOSE(iUnit) |
CLOSE(iUnit) |
359 |
#endif |
#endif |
360 |
|
|
|
|
|
|
|
|
361 |
streamice_nstep_velocity = NINT (streamice_vel_update / deltaT) |
streamice_nstep_velocity = NINT (streamice_vel_update / deltaT) |
362 |
|
|
363 |
C- Set Output type flags : |
C- Set Output type flags : |
364 |
|
|
365 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
366 |
IF (useMNC) THEN |
IF (useMNC) THEN |
367 |
IF ( .NOT.outputTypesInclusive |
IF ( .NOT.outputTypesInclusive |