1 |
C $Header$ |
C $Header$ |
2 |
C $Name$ |
C $Name$ |
3 |
|
|
4 |
|
|
5 |
C this needs changes |
C this needs changes |
6 |
|
|
7 |
#include "STREAMICE_OPTIONS.h" |
#include "STREAMICE_OPTIONS.h" |
21 |
#include "STREAMICE.h" |
#include "STREAMICE.h" |
22 |
#include "STREAMICE_BDRY.h" |
#include "STREAMICE_BDRY.h" |
23 |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
24 |
#include "STREAMICE_CTRL_FLUX.h" |
#include "STREAMICE_CTRL_FLUX.h" |
25 |
#endif |
#endif |
26 |
|
|
27 |
C !INPUT PARAMETERS: |
C !INPUT PARAMETERS: |
39 |
NAMELIST /STREAMICE_PARM01/ |
NAMELIST /STREAMICE_PARM01/ |
40 |
& streamice_density, streamice_density_ocean_avg, |
& streamice_density, streamice_density_ocean_avg, |
41 |
& B_glen_isothermal, n_glen, eps_glen_min, eps_u_min, |
& B_glen_isothermal, n_glen, eps_glen_min, eps_u_min, |
42 |
& C_basal_fric_const, n_basal_friction, |
& C_basal_fric_const, n_basal_friction, |
43 |
& streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol, |
& streamice_vel_update,streamice_cg_tol,streamice_nonlin_tol, |
44 |
& streamice_nonlin_tol_fp, |
& streamice_nonlin_tol_fp, |
45 |
& streamice_max_cg_iter, streamice_max_nl_iter, |
& streamice_max_cg_iter, streamice_max_nl_iter, |
65 |
& STREAMICEBdotConfig, |
& STREAMICEBdotConfig, |
66 |
& STREAMICEbasalTracFile, |
& STREAMICEbasalTracFile, |
67 |
& STREAMICEBdotFile, |
& STREAMICEBdotFile, |
68 |
|
& STREAMICEBdotTimeDepFile, |
69 |
& STREAMICEvelOptimFile, |
& STREAMICEvelOptimFile, |
70 |
& STREAMICEtopogFile, |
& STREAMICEtopogFile, |
71 |
& STREAMICEhmaskFile, |
& STREAMICEhmaskFile, |
74 |
& STREAMICEuFaceBdryFile, |
& STREAMICEuFaceBdryFile, |
75 |
& STREAMICEvFaceBdryFile, |
& STREAMICEvFaceBdryFile, |
76 |
& STREAMICEuDirichValsFile, |
& STREAMICEuDirichValsFile, |
77 |
& STREAMICEvDirichValsFile, |
& STREAMICEvDirichValsFile, |
78 |
& STREAMICEuMassFluxFile, |
& STREAMICEuMassFluxFile, |
79 |
& STREAMICEvMassFluxFile, |
& STREAMICEvMassFluxFile, |
80 |
& STREAMICEuNormalStressFile, |
& STREAMICEuNormalStressFile, |
81 |
& STREAMICEvNormalStressFile, |
& STREAMICEvNormalStressFile, |
82 |
& STREAMICEuShearStressFile, |
& STREAMICEuShearStressFile, |
83 |
& STREAMICEvShearStressFile, |
& STREAMICEvShearStressFile, |
84 |
|
& STREAMICEuNormalTimeDepFile, |
85 |
|
& STREAMICEvNormalTimeDepFile, |
86 |
|
& STREAMICEuShearTimeDepFile, |
87 |
|
& STREAMICEvShearTimeDepFile, |
88 |
& STREAMICEGlenConstFile, STREAMICEGlenConstConfig, |
& STREAMICEGlenConstFile, STREAMICEGlenConstConfig, |
89 |
& STREAMICE_ppm_driving_stress, |
& STREAMICE_ppm_driving_stress, |
90 |
& STREAMICE_h_ctrl_const_surf, |
& STREAMICE_h_ctrl_const_surf, |
91 |
& streamice_wgt_drift,streamice_wgt_surf,streamice_wgt_vel, |
& streamice_wgt_drift,streamice_wgt_surf,streamice_wgt_vel, |
92 |
& streamice_wgt_avthick, streamice_wgt_tikh, |
& streamice_wgt_avthick, streamice_wgt_tikh, |
93 |
& streamice_addl_backstress, |
& streamice_addl_backstress, |
94 |
& streamice_smooth_gl_width, |
& streamice_smooth_gl_width, |
95 |
& streamice_adot_uniform, |
& streamice_adot_uniform, |
96 |
& STREAMICE_ADV_SCHEME |
& STREAMICE_ADV_SCHEME, streamice_forcing_period |
97 |
|
|
98 |
#ifdef ALLOW_STREAMICE_2DTRACER |
#ifdef ALLOW_STREAMICE_2DTRACER |
99 |
NAMELIST /STREAMICE_PARMTRACER/ |
NAMELIST /STREAMICE_PARMTRACER/ |
114 |
& streamice_ctrl_flux_scaleVel |
& streamice_ctrl_flux_scaleVel |
115 |
#endif |
#endif |
116 |
|
|
117 |
|
|
118 |
NAMELIST /STREAMICE_PARM02/ |
NAMELIST /STREAMICE_PARM02/ |
119 |
& shelf_max_draft, |
& shelf_max_draft, |
120 |
& shelf_min_draft, |
& shelf_min_draft, |
148 |
& flux_bdry_val_WEST, flux_bdry_val_EAST, |
& flux_bdry_val_WEST, flux_bdry_val_EAST, |
149 |
& STREAMICE_NS_periodic, STREAMICE_EW_periodic |
& STREAMICE_NS_periodic, STREAMICE_EW_periodic |
150 |
|
|
|
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
|
|
|
|
|
IF ( .NOT.useStreamIce ) THEN |
|
|
C- pkg STREAMICE is not used |
|
|
_BEGIN_MASTER(myThid) |
|
|
C- Track pkg activation status: |
|
|
C print a (weak) warning if data.streamice is found |
|
|
CALL PACKAGES_UNUSED_MSG( 'useStreamIce', ' ', ' ' ) |
|
|
_END_MASTER(myThid) |
|
|
RETURN |
|
|
ENDIF |
|
|
|
|
151 |
_BEGIN_MASTER(myThid) |
_BEGIN_MASTER(myThid) |
152 |
|
|
153 |
C-- Default values for STREAMICE |
C-- Default values for STREAMICE |
154 |
|
|
155 |
streamice_density = 917. |
streamice_density = 917. |
156 |
streamice_density_ocean_avg = 1024. |
streamice_density_ocean_avg = 1024. |
157 |
B_glen_isothermal = 9.461e-18 ! Pa (-1/3) a |
B_glen_isothermal = 9.461e-18 ! Pa (-1/3) a |
158 |
n_glen = 3. |
n_glen = 3. |
175 |
streamice_ky_b_init = 1. |
streamice_ky_b_init = 1. |
176 |
streamice_wgt_drift = 0. |
streamice_wgt_drift = 0. |
177 |
streamice_wgt_tikh = 0. |
streamice_wgt_tikh = 0. |
178 |
streamice_wgt_surf = 0. |
streamice_wgt_surf = 0. |
179 |
streamice_wgt_vel = 0. |
streamice_wgt_vel = 0. |
180 |
streamice_wgt_avthick = 0. |
streamice_wgt_avthick = 0. |
181 |
streamice_addl_backstress = 0.0 |
streamice_addl_backstress = 0.0 |
182 |
streamice_smooth_gl_width = 0.0 |
streamice_smooth_gl_width = 0.0 |
183 |
streamice_adot_uniform = 0.0 |
streamice_adot_uniform = 0.0 |
184 |
|
streamice_forcing_period = 0 |
185 |
|
|
186 |
STREAMICEthickInit = 'FILE' |
STREAMICEthickInit = 'FILE' |
187 |
STREAMICEthickFile = ' ' |
STREAMICEthickFile = ' ' |
191 |
STREAMICEbasalTracConfig = 'UNIFORM' |
STREAMICEbasalTracConfig = 'UNIFORM' |
192 |
STREAMICEBdotConfig = '' |
STREAMICEBdotConfig = '' |
193 |
STREAMICEBdotFile = '' |
STREAMICEBdotFile = '' |
194 |
|
STREAMICEBdotTimeDepFile = ' ' |
195 |
STREAMICEbasalTracFile = ' ' |
STREAMICEbasalTracFile = ' ' |
196 |
STREAMICEvelOptimFile = '' |
STREAMICEvelOptimFile = '' |
197 |
STREAMICEtopogFile = '' |
STREAMICEtopogFile = '' |
202 |
STREAMICEvNormalStressFile = '' |
STREAMICEvNormalStressFile = '' |
203 |
STREAMICEuShearStressFile = '' |
STREAMICEuShearStressFile = '' |
204 |
STREAMICEvShearStressFile = '' |
STREAMICEvShearStressFile = '' |
205 |
|
STREAMICEuNormalTimeDepFile = ' ' |
206 |
|
STREAMICEvNormalTimeDepFile = ' ' |
207 |
|
STREAMICEuShearTimeDepFile = ' ' |
208 |
|
STREAMICEvShearTimeDepFile = ' ' |
209 |
|
|
210 |
#ifdef ALLOW_STREAMICE_2DTRACER |
#ifdef ALLOW_STREAMICE_2DTRACER |
211 |
STREAMICETrac2DBCxFile = '' |
STREAMICETrac2DBCxFile = '' |
241 |
STREAMICEison = .TRUE. |
STREAMICEison = .TRUE. |
242 |
STREAMICE_tave_mdsio = .TRUE. |
STREAMICE_tave_mdsio = .TRUE. |
243 |
STREAMICE_dump_mdsio = .TRUE. |
STREAMICE_dump_mdsio = .TRUE. |
244 |
STREAMICE_dump_mnc = .FALSE. |
STREAMICE_dump_mnc = .FALSE. |
245 |
STREAMICE_tave_mnc = .FALSE. |
STREAMICE_tave_mnc = .FALSE. |
246 |
STREAMICE_GL_regularize = .FALSE. |
STREAMICE_GL_regularize = .FALSE. |
247 |
STREAMICE_move_front = .FALSE. |
STREAMICE_move_front = .FALSE. |
296 |
flux_bdry_val_EAST = 0. |
flux_bdry_val_EAST = 0. |
297 |
|
|
298 |
STREAMICE_NS_periodic = .FALSE. |
STREAMICE_NS_periodic = .FALSE. |
299 |
STREAMICE_EW_periodic = .FALSE. |
STREAMICE_EW_periodic = .FALSE. |
300 |
|
|
301 |
WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice' |
WRITE(msgBuf,'(A)') 'STREAMICE_READPARMS: opening data.streamice' |
302 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
337 |
& SQUEEZE_RIGHT , 1) |
& SQUEEZE_RIGHT , 1) |
338 |
#endif |
#endif |
339 |
|
|
340 |
|
|
341 |
READ(UNIT=iUnit,NML=STREAMICE_PARM03) |
READ(UNIT=iUnit,NML=STREAMICE_PARM03) |
342 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
343 |
& 'STREAMICE_READPARMS: read third param block' |
& 'STREAMICE_READPARMS: read third param block' |
345 |
& SQUEEZE_RIGHT , 1) |
& SQUEEZE_RIGHT , 1) |
346 |
CLOSE(iUnit) |
CLOSE(iUnit) |
347 |
|
|
348 |
|
|
349 |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
350 |
|
|
351 |
CALL OPEN_COPY_DATA_FILE( |
CALL OPEN_COPY_DATA_FILE( |
353 |
O iUnit, |
O iUnit, |
354 |
I myThid ) |
I myThid ) |
355 |
|
|
356 |
|
|
357 |
READ(UNIT=iUnit,NML=STREAMICE_PARMFLUXCTRL) |
READ(UNIT=iUnit,NML=STREAMICE_PARMFLUXCTRL) |
358 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
359 |
& 'STREAMICE_READPARMS: read flux_ctrl param block' |
& 'STREAMICE_READPARMS: read flux_ctrl param block' |
362 |
CLOSE(iUnit) |
CLOSE(iUnit) |
363 |
#endif |
#endif |
364 |
|
|
365 |
|
|
366 |
|
|
367 |
streamice_nstep_velocity = NINT (streamice_vel_update / deltaT) |
streamice_nstep_velocity = NINT (streamice_vel_update / deltaT) |
368 |
|
|
369 |
C- Set Output type flags : |
C- Set Output type flags : |
370 |
|
|
371 |
#ifdef ALLOW_MNC |
#ifdef ALLOW_MNC |
372 |
IF (useMNC) THEN |
IF (useMNC) THEN |
373 |
IF ( .NOT.outputTypesInclusive |
IF ( .NOT.outputTypesInclusive |