/[MITgcm]/MITgcm_contrib/torge/itd/code/seaice_summary.F
ViewVC logotype

Contents of /MITgcm_contrib/torge/itd/code/seaice_summary.F

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


Revision 1.3 - (show annotations) (download)
Mon Oct 22 20:14:13 2012 UTC (12 years, 9 months ago) by heimbach
Branch: MAIN
Changes since 1.2: +16 -5 lines
Merge from main branch

1 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_summary.F,v 1.54 2012/10/22 20:12:56 heimbach Exp $
2 C $Name: $
3
4 #include "SEAICE_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: SEAICE_SUMMARY
8 SUBROUTINE SEAICE_SUMMARY( myThid )
9
10 C !DESCRIPTION:
11 C *==========================================================*
12 C | SUBROUTINE SEAICE_SUMMARY
13 C | o Summarize pkg/seaice parameters.
14 C *==========================================================*
15
16 C !USES:
17 IMPLICIT NONE
18 C == global variables ==
19 #include "SIZE.h"
20 #include "EEPARAMS.h"
21 #include "SEAICE_SIZE.h"
22 #include "SEAICE_PARAMS.h"
23 #ifdef ALLOW_SITRACER
24 # include "SEAICE_TRACER.h"
25 #endif
26
27 C !INPUT PARAMETERS:
28 C == routine arguments ==
29 C myThid :: my Thread Id. number
30 INTEGER myThid
31 CEOP
32
33 C !LOCAL VARIABLES:
34 C == local variables ==
35 C msgBuf :: Informational/error message buffer
36 CHARACTER*(MAX_LEN_MBUF) msgBuf
37 INTEGER buffI(1)
38 CHARACTER*10 endList
39 INTEGER ioUnit
40 #ifdef ALLOW_SITRACER
41 INTEGER iTracer
42 #endif
43
44 C == end of interface ==
45
46 _BARRIER
47 _BEGIN_MASTER(myThid)
48
49 endList = ' ; '
50 ioUnit = standardMessageUnit
51
52 WRITE(msgBuf,'(A)')
53 &' '
54 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
55 & SQUEEZE_RIGHT , myThid)
56 WRITE(msgBuf,'(A)')
57 &'// ======================================================='
58 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
59 & SQUEEZE_RIGHT , myThid)
60 WRITE(msgBuf,'(A)')
61 &'// Seaice configuration (SEAICE_PARM01) >>> START <<<'
62 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
63 & SQUEEZE_RIGHT , myThid)
64 WRITE(msgBuf,'(A)')
65 &'// ======================================================='
66 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
67 & SQUEEZE_RIGHT , myThid)
68 WRITE(msgBuf,'(A)')
69 &' '
70 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
71 & SQUEEZE_RIGHT , myThid)
72
73 C-- Time-stepping related param.
74
75 WRITE(msgBuf,'(A)')
76 &' '
77 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
78 & SQUEEZE_RIGHT , myThid)
79 WRITE(msgBuf,'(A)')
80 &' Seaice time stepping configuration > START < '
81 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
82 & SQUEEZE_RIGHT , myThid)
83 WRITE(msgBuf,'(A)')
84 &' ----------------------------------------------'
85 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
86 & SQUEEZE_RIGHT , myThid)
87
88 CALL WRITE_0D_RL( SEAICE_deltaTtherm,INDEX_NONE,
89 & 'SEAICE_deltaTtherm=', ' /* thermodynamic timestep */')
90 CALL WRITE_0D_RL( SEAICE_deltaTdyn ,INDEX_NONE,
91 & 'SEAICE_deltaTdyn =', ' /* dynamic timestep */')
92 #ifdef SEAICE_ALLOW_EVP
93 CALL WRITE_0D_RL( SEAICE_deltaTevp ,INDEX_NONE,
94 & 'SEAICE_deltaTevp =', ' /* EVP timestep */')
95 #endif
96 CALL WRITE_0D_L ( SEAICErestoreUnderIce, INDEX_NONE,
97 & 'SEAICErestoreUnderIce =', ' /* restore T and S under ice */')
98
99 WRITE(msgBuf,'(A)')
100 &' '
101 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
102 & SQUEEZE_RIGHT , myThid)
103 WRITE(msgBuf,'(A)')
104 &' Seaice dynamics configuration > START < '
105 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
106 & SQUEEZE_RIGHT , myThid)
107 WRITE(msgBuf,'(A)')
108 &' ------------------------------------------'
109 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
110 & SQUEEZE_RIGHT , myThid)
111
112 C-- Seaice-Dynamics parameters
113 CALL WRITE_0D_L ( SEAICEuseDYNAMICS, INDEX_NONE,
114 & 'SEAICEuseDYNAMICS =', ' /* use dynamics */')
115
116 IF (.NOT.SEAICEuseDYNAMICS) THEN
117 WRITE(msgBuf,'(A)') ' pkg/seaice dynamics is OFF '
118 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
119 & SQUEEZE_RIGHT , myThid)
120 ELSE
121
122 #ifdef SEAICE_CGRID
123 CALL WRITE_0D_C( 'C-GRID', -1, INDEX_NONE,
124 & 'model grid type =', ' /* type of sea ice model grid */')
125 #else /* not SEAICE_CGRID */
126 CALL WRITE_0D_C( 'B-GRID', -1, INDEX_NONE,
127 & 'model grid type =', ' /* type of sea ice model grid */')
128 #endif /* SEAICE_CGRID */
129 CALL WRITE_0D_L ( SEAICEuseEVP, INDEX_NONE,
130 & 'SEAICEuseEVP =', ' /* use EVP solver rather than LSR */')
131 #ifdef SEAICE_ALLOW_FREEDRIFT
132 CALL WRITE_0D_L ( SEAICEuseFREEDRIFT, INDEX_NONE,
133 & 'SEAICEuseFREEDRIFT =', ' /* use free drift solution */')
134 #endif /* SEAICE_ALLOW_FREEDRIFT */
135 CALL WRITE_0D_RL( OCEAN_drag ,INDEX_NONE,
136 & 'OCEAN_drag =', ' /* air-ocean drag coefficient */')
137 CALL WRITE_0D_RL( SEAICE_drag ,INDEX_NONE,
138 & 'SEAICE_drag =', ' /* air-ice drag coefficient */')
139 CALL WRITE_0D_RL( SEAICE_drag_south ,INDEX_NONE,
140 & 'SEAICE_drag_south =', ' /* Southern Ocean SEAICE_drag */')
141 CALL WRITE_0D_RL( SEAICE_waterDrag ,INDEX_NONE,
142 & 'SEAICE_waterDrag =', ' /* water-ice drag * density */')
143 CALL WRITE_0D_RL( SEAICE_waterDrag_south ,INDEX_NONE,
144 & 'SEAICE_waterDrag_south =', ' /* Southern Ocean waterDrag */')
145 CALL WRITE_0D_L ( SEAICEuseTILT, INDEX_NONE,
146 & 'SEAICEuseTILT =', ' /* include surface tilt in dyna. */')
147 CALL WRITE_0D_L ( SEAICEuseTEM, INDEX_NONE,
148 & 'SEAICEuseTEM =', ' /* use truncated ellipse rheology */')
149 CALL WRITE_0D_RL( SEAICE_strength ,INDEX_NONE,
150 & 'SEAICE_strength =', ' /* sea-ice strength Pstar */')
151 CALL WRITE_0D_RL( SEAICEpresH0 ,INDEX_NONE,
152 & 'SEAICEpresH0 =', ' /* sea-ice strength Heff threshold */')
153 CALL WRITE_0D_I ( SEAICEpresPow0, INDEX_NONE,
154 & 'SEAICEpresPow0 =', ' /* exponent for Heff<SEAICEpresH0 */')
155 CALL WRITE_0D_I ( SEAICEpresPow1, INDEX_NONE,
156 & 'SEAICEpresPow1 =', ' /* exponent for Heff>SEAICEpresH0 */')
157 CALL WRITE_0D_RL( SEAICE_zetaMin ,INDEX_NONE,
158 & 'SEAICE_zetaMin =', ' /* lower bound for viscosity */')
159 CALL WRITE_0D_RL( SEAICE_eccen,INDEX_NONE,'SEAICE_eccen =',
160 & ' /* elliptical yield curve eccent */')
161 CALL WRITE_0D_RL( SEAICEstressFactor,INDEX_NONE,
162 & 'SEAICEstressFactor =',' /* wind stress scaling factor */')
163 CALL WRITE_0D_RL( SEAICE_airTurnAngle,INDEX_NONE,
164 & 'SEAICE_airTurnAngle =',' /* air-ice turning angle */')
165 CALL WRITE_0D_RL( SEAICE_waterTurnAngle,INDEX_NONE,
166 & 'SEAICE_waterTurnAngle =',' /* ice-water turning angle */')
167 CALL WRITE_0D_L ( SEAICEuseMetricTerms, INDEX_NONE,
168 & 'SEAICEuseMetricTerms =', ' /* use metric terms */')
169 CALL WRITE_0D_L ( SEAICE_no_slip, INDEX_NONE,
170 & 'SEAICE_no_slip =', ' /* no slip boundary conditions */')
171 CALL WRITE_0D_L ( SEAICE_clipVelocities, INDEX_NONE,
172 & 'SEAICE_clipVeloctities =', ' /* impose max. vels. */')
173 CALL WRITE_0D_L ( useHB87stressCoupling, INDEX_NONE,
174 & 'useHB87stressCoupling =', ' /* altern. ice-ocean stress */')
175 CALL WRITE_0D_L ( SEAICE_maskRHS, INDEX_NONE,
176 & 'SEAICE_maskRHS =', ' /* mask RHS of solver */')
177 IF (.NOT.SEAICEuseEVP) THEN
178 CALL WRITE_0D_I ( LSR_mixIniGuess, INDEX_NONE,
179 & 'LSR_mixIniGuess =',
180 & ' /* mix free-drift sol. into LSR initial Guess */')
181 CALL WRITE_0D_I ( SOLV_MAX_ITERS, INDEX_NONE,
182 & 'SOLV_MAX_ITERS =', ' /* max. number of LSR solver steps */')
183 CALL WRITE_0D_RL( LSR_ERROR ,INDEX_NONE,
184 & 'LSR_ERROR =', ' /* sets accuracy of LSR solver */')
185 CALL WRITE_0D_I ( SOLV_NCHECK, INDEX_NONE,
186 & 'SOLV_NCHECK =', ' /* test interval for LSR solver */')
187 CALL WRITE_0D_I ( NPSEUDOTIMESTEPS, INDEX_NONE,
188 & 'NPSEUDOTIMESTEPS =', ' /* num. of extra pseudo time steps */')
189 #ifdef SEAICE_ALLOW_EVP
190 ELSE
191 CALL WRITE_0D_RL( SEAICE_elasticParm ,INDEX_NONE,
192 & 'SEAICE_elasticParm=', ' /* EVP elastic parameter */')
193 CALL WRITE_0D_RL( SEAICE_evpTauRelax ,INDEX_NONE,
194 & 'SEAICE_evpTauRelax=', ' /* EVP relaxation timescale */')
195 CALL WRITE_0D_RL( SEAICE_evpDampC ,INDEX_NONE,
196 & 'SEAICE_evpDampC =', ' /* EVP damping parameter */')
197 CALL WRITE_0D_L ( SEAICEuseEVPpickup, INDEX_NONE,
198 & 'SEAICEuseEVPpickup=', ' /* start EVP solver with EVP pickup*/')
199 #endif /* SEAICE_ALLOW_EVP */
200 ENDIF
201
202 C end if SEAICEuseDYNAMICS bloc
203 ENDIF
204
205 C-- Thermodynamics parameters
206 WRITE(msgBuf,'(A)')
207 &' '
208 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
209 & SQUEEZE_RIGHT , myThid)
210 WRITE(msgBuf,'(A)')
211 &' Seaice thermodynamics configuration > START < '
212 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
213 & SQUEEZE_RIGHT , myThid)
214 WRITE(msgBuf,'(A)')
215 &' -----------------------------------------------'
216 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
217 & SQUEEZE_RIGHT , myThid)
218 C- note: air and seaice (+ snow ?) density are used in both dynamics & thermo
219 CALL WRITE_0D_RL( SEAICE_rhoIce ,INDEX_NONE,
220 & 'SEAICE_rhoIce =', ' /* density of sea ice (kg/m3) */')
221 CALL WRITE_0D_RL( SEAICE_rhoSnow ,INDEX_NONE,
222 & 'SEAICE_rhoSnow =', ' /* density of snow (kg/m3) */')
223 CALL WRITE_0D_RL( SEAICE_rhoAir ,INDEX_NONE,
224 & 'SEAICE_rhoAir =', ' /* density of air (kg/m3) */')
225
226 CALL WRITE_0D_L ( usePW79thermodynamics, INDEX_NONE,
227 & 'usePW79thermodynamics =', ' /* default 0-layer TD */')
228 IF (.NOT.usePW79thermodynamics) THEN
229 WRITE(msgBuf,'(A)') ' pkg/seaice thermodynamics is OFF '
230 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
231 & SQUEEZE_RIGHT , myThid)
232 ELSE
233
234 CALL WRITE_0D_RL( SEAICE_lhEvap ,INDEX_NONE,
235 & 'SEAICE_lhEvap =', ' /* latent heat of evaporation */')
236 CALL WRITE_0D_RL( SEAICE_lhFusion ,INDEX_NONE,
237 & 'SEAICE_lhFusion =', ' /* latent heat of fusion */')
238 CALL WRITE_0D_RL ( SEAICE_mcPheePiston, INDEX_NONE,
239 & 'SEAICE_mcPheePiston =',
240 & ' /* turbulent flux "piston velocity" a la McPhee (m/s) */')
241 CALL WRITE_0D_RL ( SEAICE_mcPheeTaper, INDEX_NONE,
242 & 'SEAICE_mcPheeTaper =',
243 & ' /* tapering of turbulent flux (0.< <1.) for AREA=1. */')
244 CALL WRITE_0D_L ( SEAICE_mcPheeStepFunc, INDEX_NONE,
245 & 'SEAICE_mcPheeStepFunc =',
246 & ' /* replace linear tapering with step funct. */')
247 CALL WRITE_0D_RL ( SEAICE_frazilFrac, INDEX_NONE,
248 & 'SEAICE_frazilFrac =',
249 & ' /* frazil (T<tempFrz) to seaice conversion rate (0.< <1.) */')
250 CALL WRITE_0D_RL( SEAICE_tempFrz0 ,INDEX_NONE,
251 & 'SEAICE_tempFrz0 =',
252 & ' /* freezing temp. of sea water (intercept) */')
253 CALL WRITE_0D_RL( SEAICE_dTempFrz_dS,INDEX_NONE,
254 & 'SEAICE_dTempFrz_dS=',
255 & ' /* freezing temp. of sea water (slope) */')
256 c print the various values meining for SEAICE_areaGain/LossFormula
257 WRITE(msgBuf,'(2A)') 'SEAICE_areaGainFormula =',
258 & ' /* ice cover gain formula (1,2)*/'
259 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
260 buffI(1) = SEAICE_areaGainFormula
261 CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
262 & .FALSE., .TRUE., ioUnit )
263 WRITE(msgBuf,'(A)') ' 1=from growth by ATM '
264 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
265 WRITE(msgBuf,'(A)') ' 2=from predicted growth by ATM'
266 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
267 CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
268 c
269 WRITE(msgBuf,'(2A)') 'SEAICE_areaLossFormula =',
270 & ' /* ice cover loss formula (1,2)*/'
271 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
272 buffI(1) = SEAICE_areaLossFormula
273 CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
274 & .FALSE., .TRUE., ioUnit )
275 WRITE(msgBuf,'(2A)') ' 1=from all but only melt ',
276 & 'conributions by ATM and OCN'
277 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
278 WRITE(msgBuf,'(A)') ' 2=from net melt-grow>0 by ATM and OCN'
279 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
280 WRITE(msgBuf,'(A)') ' 3=from predicted melt by ATM'
281 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
282 CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
283 c
284 #ifdef EXF_ALLOW_SEAICE_RELAX
285 CALL WRITE_0D_RL( SEAICE_tauAreaObsRelax,INDEX_NONE,
286 & 'SEAICE_tauAreaObsRelax=',
287 & ' /* relaxation timescale of sea-ice concentration */')
288 #endif
289 c
290 CALL WRITE_0D_RL( HO ,INDEX_NONE,
291 & 'HO =', ' /* nominal thickness of new ice */')
292 CALL WRITE_0D_RL( HO_south ,INDEX_NONE,
293 & 'HO_south =', ' /* Southern Ocean HO */')
294 CALL WRITE_0D_RL( SEAICE_area_max ,INDEX_NONE,
295 & 'SEAICE_area_max =',
296 & ' /* set to les than 1. to mimic open leads */')
297 #ifdef SEAICE_VARIABLE_SALINITY
298 WRITE(msgBuf,'(A)')
299 &' Sea ice has a variable salinity such that '
300 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
301 & SQUEEZE_RIGHT , myThid)
302 CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE,
303 & 'SEAICE_saltFrac =',
304 & ' /* fraction of ocn salinity in new ice */')
305 #else
306 CALL WRITE_0D_RL( SEAICE_salt0, INDEX_NONE,
307 & 'SEAICE_salt0 =', ' /* constant sea ice salinity */')
308 #endif
309 CALL WRITE_0D_L ( SEAICE_salinityTracer, INDEX_NONE,
310 & 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */')
311 CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE,
312 & 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */')
313 #ifndef SEAICE_CAP_HEFF
314 WRITE(msgBuf,'(A,A)')
315 & 'MAX_HEFF has no effect because SEAICE_CAP_HEFF is undefined'
316 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
317 & SQUEEZE_RIGHT , myThid)
318 #endif /* SEAICE_CAP_HEFF */
319 CALL WRITE_0D_RL( MAX_HEFF ,INDEX_NONE,
320 & 'MAX_HEFF =', ' /* maximum ice thickness */')
321
322 WRITE(msgBuf,'(A)')
323 &' '
324 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
325 & SQUEEZE_RIGHT , myThid)
326 WRITE(msgBuf,'(A)')
327 &' Seaice advection diffusion config, > START < '
328 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
329 & SQUEEZE_RIGHT , myThid)
330 WRITE(msgBuf,'(A)')
331 &' -----------------------------------------------'
332 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
333 & SQUEEZE_RIGHT , myThid)
334
335 CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE,
336 & 'SEAICEadvHeff =', ' /* advect effective ice thickness */')
337 CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE,
338 & 'SEAICEadvArea =', ' /* advect fractional ice area */')
339 CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE,
340 & 'SEAICEadvSnow =', ' /* advect snow layer together with ice */')
341 #ifdef SEAICE_VARIABLE_SALINITY
342 CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE,
343 & 'SEAICEadvSalt =', ' /* advect salinity together with ice */')
344 #endif
345 CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE,
346 & 'SEAICEadvScheme =', ' /* advection scheme for ice */')
347 IF ( SEAICEadvScheme .EQ. 2 )
348 & CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE,
349 & 'SEAICEuseFluxForm =', ' /* advection in FV flux form */')
350 IF ( SEAICEadvArea )
351 &CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE,
352 & 'SEAICEadvSchArea =', ' /* advection scheme for area */')
353 IF ( SEAICEadvHeff )
354 &CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE,
355 & 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */')
356 IF ( SEAICEadvSnow )
357 &CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE,
358 & 'SEAICEadvSchSnow =', ' /* advection scheme for snow */')
359 #ifdef SEAICE_VARIABLE_SALINITY
360 IF ( SEAICEadvSalt )
361 &CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE,
362 & 'SEAICEadvSchSalt =', ' /* advection scheme for salt */')
363 #endif
364 CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE,
365 & 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */')
366 CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE,
367 & 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */')
368 CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE,
369 & 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */')
370 IF ( SEAICEadvSalt )
371 &CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE,
372 & 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */')
373 CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =',
374 & ' /* parameter used in advect.F [m/s] */')
375
376 WRITE(msgBuf,'(A)')
377 &' '
378 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
379 & SQUEEZE_RIGHT , myThid)
380 WRITE(msgBuf,'(A)')
381 &' Seaice air-sea fluxes configuration, > START < '
382 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
383 & SQUEEZE_RIGHT , myThid)
384 WRITE(msgBuf,'(A)')
385 &' -----------------------------------------------'
386 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
387 & SQUEEZE_RIGHT , myThid)
388
389 CALL WRITE_0D_L ( SEAICEheatConsFix, INDEX_NONE,
390 & 'SEAICEheatConsFix =',
391 & ' /* accound for ocn<->seaice advect. heat flux */')
392 CToM<<<
393 #ifdef SEAICE_ITD
394 CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD ='
395 & , ' /* number of ice thickness categories */')
396 #else
397 CToM>>>
398 CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim ='
399 & , ' /* number of ice categories (1 or 7) */')
400 CToM<<<
401 #endif
402 CToM>>>
403 CALL WRITE_0D_I ( IMAX_TICE, INDEX_NONE,
404 & 'IMAX_TICE =', ' /* iterations for ice surface temp */')
405 CALL WRITE_0D_I ( postSolvTempIter, INDEX_NONE,
406 & 'postSolvTempIter=',
407 & ' /* flux calculation after surf. temp iter */')
408 #ifndef SEAICE_EXTERNAL_FLUXES
409 CALL WRITE_0D_RL( SEAICE_waterAlbedo,INDEX_NONE,
410 & 'SEAICE_waterAlbedo=', ' /* water albedo */')
411 CALL WRITE_0D_RL( SEAICE_emissivity, INDEX_NONE,
412 & 'SEAICE_emissivity =', ' /* ocean-surface emissivity */')
413 #endif /* SEAICE_EXTERNAL_FLUXES */
414 CALL WRITE_0D_RL( SEAICE_dryIceAlb ,INDEX_NONE,
415 & 'SEAICE_dryIceAlb =', ' /* winter albedo */')
416 CALL WRITE_0D_RL( SEAICE_wetIceAlb ,INDEX_NONE,
417 & 'SEAICE_wetIceAlb =', ' /* summer albedo */')
418 CALL WRITE_0D_RL( SEAICE_drySnowAlb ,INDEX_NONE,
419 & 'SEAICE_drySnowAlb =', ' /* dry snow albedo */')
420 CALL WRITE_0D_RL( SEAICE_wetSnowAlb ,INDEX_NONE,
421 & 'SEAICE_wetSnowAlb =', ' /* wet snow albedo */')
422 CALL WRITE_0D_RL( SEAICE_dryIceAlb_south ,INDEX_NONE,
423 & 'SEAICE_dryIceAlb_south =', ' /* Southern Ocean dryIceAlb */')
424 CALL WRITE_0D_RL( SEAICE_wetIceAlb_south ,INDEX_NONE,
425 & 'SEAICE_wetIceAlb_south =', ' /* Southern Ocean wetIceAlb */')
426 CALL WRITE_0D_RL( SEAICE_drySnowAlb_south ,INDEX_NONE,
427 & 'SEAICE_drySnowAlb_south=', ' /* Southern Ocean drySnowAlb */')
428 CALL WRITE_0D_RL( SEAICE_wetSnowAlb_south ,INDEX_NONE,
429 & 'SEAICE_wetSnowAlb_south=', ' /* Southern Ocean wetSnowAlb */')
430 CALL WRITE_0D_RL( SEAICE_wetAlbTemp ,INDEX_NONE,
431 & 'SEAICE_wetAlbTemp=',
432 & ' /* Temp (o.C) threshold for wet-albedo */')
433 CALL WRITE_0D_RL( SEAICE_snow_emiss ,INDEX_NONE,
434 & 'SEAICE_snow_emiss =', ' /* snow emissivity */')
435 CALL WRITE_0D_RL( SEAICE_ice_emiss ,INDEX_NONE,
436 & 'SEAICE_ice_emiss =', ' /* seaice emissivity */')
437 CALL WRITE_0D_RL( SEAICE_cpAir ,INDEX_NONE,
438 & 'SEAICE_cpAir =', ' /* heat capacity of air */')
439 CALL WRITE_0D_RL( SEAICE_dalton ,INDEX_NONE,
440 & 'SEAICE_dalton =', ' /* constant dalton number */')
441 CALL WRITE_0D_RL( SEAICE_iceConduct ,INDEX_NONE,
442 & 'SEAICE_iceConduct =', ' /* sea-ice conductivity */')
443 CALL WRITE_0D_RL( SEAICE_snowConduct,INDEX_NONE,
444 & 'SEAICE_snowConduct=', ' /* snow conductivity */')
445 CALL WRITE_0D_RL( SEAICE_snowThick ,INDEX_NONE,
446 & 'SEAICE_snowThick =',
447 & ' /* cutoff snow thickness (for albedo) */')
448 CALL WRITE_0D_RL( SEAICE_shortwave ,INDEX_NONE,
449 & 'SEAICE_shortwave =', ' /* penetration shortwave radiation */')
450 CALL WRITE_0D_L ( useMaykutSatVapPoly, INDEX_NONE,
451 & 'useMaykutSatVapPoly =',
452 & ' /* use Maykut Polynomial for Sat.Vap.Pr */')
453 CALL WRITE_0D_RL( MIN_ATEMP ,INDEX_NONE,
454 & 'MIN_ATEMP =', ' /* minimum air temperature */')
455 CALL WRITE_0D_RL( MIN_LWDOWN ,INDEX_NONE,
456 & 'MIN_LWDOWN =', ' /* minimum downward longwave */')
457 CALL WRITE_0D_RL( MIN_TICE ,INDEX_NONE,
458 & 'MIN_TICE =', ' /* minimum ice temperature */')
459
460 C end if usePW79thermodynamics bloc
461 ENDIF
462
463 WRITE(msgBuf,'(A)')
464 &' '
465 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
466 & SQUEEZE_RIGHT , myThid)
467 WRITE(msgBuf,'(A)')
468 &' Seaice initialization and IO config., > START < '
469 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
470 & SQUEEZE_RIGHT , myThid)
471 WRITE(msgBuf,'(A)')
472 &' -------------------------------------------------'
473 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
474 & SQUEEZE_RIGHT , myThid)
475
476 C-- Initial Condition/Input related param.
477 CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE,
478 & 'SEAICE_initialHEFF=', ' /* initial sea-ice thickness */')
479 CALL WRITE_0D_C( AreaFile, -1, INDEX_NONE,
480 & 'AreaFile =', ' /* Initial ice concentration File */')
481 CALL WRITE_0D_C( HeffFile, -1, INDEX_NONE,
482 & 'HeffFile =', ' /* Initial effective ice thickness File */')
483 CALL WRITE_0D_C( HsnowFile, -1, INDEX_NONE,
484 & 'HsnowFile =', ' /* Initial snow thickness File */')
485 #ifdef SEAICE_VARIABLE_SALINITY
486 CALL WRITE_0D_C( HsaltFile, -1, INDEX_NONE,
487 & 'HsaltFile =', ' /* Initial HSALT File */')
488 #endif
489 CALL WRITE_0D_C( uIceFile, -1, INDEX_NONE,
490 & 'uIceFile =', ' /* Initial U-ice velocity File */')
491 CALL WRITE_0D_C( vIceFile, -1, INDEX_NONE,
492 & 'vIceFile =', ' /* Initial V-ice velocity File */')
493
494 C-- Output related param.
495 CALL WRITE_0D_L ( SEAICEwriteState, INDEX_NONE,
496 & 'SEAICEwriteState =', ' /* write sea ice state to file */')
497 CALL WRITE_0D_RL( SEAICE_monFreq, INDEX_NONE,
498 & 'SEAICE_monFreq =',' /* monitor frequency */')
499 CALL WRITE_0D_RL( SEAICE_dumpFreq ,INDEX_NONE,
500 & 'SEAICE_dumpFreq =', ' /* dump frequency */')
501 CALL WRITE_0D_RL( SEAICE_taveFreq ,INDEX_NONE,
502 & 'SEAICE_taveFreq =', ' /* time-averaging frequency */')
503 CALL WRITE_0D_L ( SEAICE_mon_stdio, INDEX_NONE,
504 & 'SEAICE_mon_stdio =',' /* write monitor to std-outp */')
505 CALL WRITE_0D_L ( SEAICE_dump_mdsio, INDEX_NONE,
506 & 'SEAICE_dump_mdsio =',' /* write snap-shot using MDSIO */')
507 CALL WRITE_0D_L ( SEAICE_tave_mdsio, INDEX_NONE,
508 & 'SEAICE_tave_mdsio =',' /* write TimeAverage using MDSIO */')
509 #ifdef ALLOW_MNC
510 CALL WRITE_0D_L ( SEAICE_mon_mnc, INDEX_NONE,
511 & 'SEAICE_mon_mnc =',' /* write monitor to netcdf file */')
512 CALL WRITE_0D_L ( SEAICE_dump_mnc, INDEX_NONE,
513 & 'SEAICE_dump_mnc =',' /* write snap-shot using MNC */')
514 CALL WRITE_0D_L ( SEAICE_tave_mnc, INDEX_NONE,
515 & 'SEAICE_tave_mnc =',' /* write TimeAverage using MNC */')
516 #endif /* ALLOW_MNC */
517
518 #ifdef ALLOW_SITRACER
519 CALL WRITE_0D_I ( SItrNumInUse, INDEX_NONE,
520 & 'SItrNumInUse =',
521 & ' /* number of tracers that are in use (<SItrMaxNum) */')
522 DO iTracer = 1, SItrNumInUse
523 IF (SItrName(iTracer).NE.' ') THEN
524 WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer,
525 &' is in use and defined as'
526 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
527 & SQUEEZE_RIGHT , myThid)
528 CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE,
529 & ' -- SItrMate =',' /* tracer of HEFF or AREA */')
530 CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE,
531 & ' -- SItrName =',' /* tracer name*/')
532 CALL WRITE_0D_C ( SItrNameLong(iTracer), -1, INDEX_NONE,
533 & ' -- SItrNameLong =',' /* tracer long name*/')
534 CALL WRITE_0D_C ( SItrFile(iTracer), -1, INDEX_NONE,
535 & ' -- SItrFile =',' /* tracer initial condition file */')
536 CALL WRITE_0D_C ( SItrUnit(iTracer), -1, INDEX_NONE,
537 & ' -- SItrUnit =',' /* tracer unit */')
538 CALL WRITE_0D_RL ( SItrFromOcean0(iTracer), INDEX_NONE,
539 & ' -- SItrFromOcean0 =',' /* for new ice from freeze */')
540 CALL WRITE_0D_RL ( SItrFromOceanFrac(iTracer), INDEX_NONE,
541 & ' -- SItrFromOceanFrac =',' /* for new ice from freeze */')
542 CALL WRITE_0D_RL ( SItrFromFlood0(iTracer), INDEX_NONE,
543 & ' -- SItrFromFlood0 =',' /* for new ice from freeze */')
544 CALL WRITE_0D_RL ( SItrFromFloodFrac(iTracer), INDEX_NONE,
545 & ' -- SItrFromFloodFrac =',' /* for new ice from freeze */')
546 CALL WRITE_0D_RL ( SItrExpand0(iTracer), INDEX_NONE,
547 & ' -- SItrExpand0 =',' /* for ice cover thermo. expans. */')
548
549 ENDIF
550 ENDDO
551 #endif /* ALLOW_SITRACER */
552
553 WRITE(msgBuf,'(A)')
554 &' '
555 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
556 & SQUEEZE_RIGHT , myThid)
557 WRITE(msgBuf,'(A)')
558 &' Seaice regularization numbers, > START < '
559 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
560 & SQUEEZE_RIGHT , myThid)
561 WRITE(msgBuf,'(A)')
562 &' -----------------------------------------------'
563 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
564 & SQUEEZE_RIGHT , myThid)
565
566 CALL WRITE_0D_RL( SEAICE_EPS ,INDEX_NONE,
567 & 'SEAICE_EPS =', ' /* reduce derivative singularities */')
568 CALL WRITE_0D_RL( SEAICE_EPS_SQ ,INDEX_NONE,
569 & 'SEAICE_EPS_SQ =', ' /* reduce derivative singularities */')
570 CALL WRITE_0D_RL( SEAICE_area_reg ,INDEX_NONE,
571 & 'SEAICE_area_reg =', ' /* reduce derivative singularities */')
572 CALL WRITE_0D_RL( SEAICE_hice_reg ,INDEX_NONE,
573 & 'SEAICE_hice_reg =', ' /* reduce derivative singularities */')
574 CALL WRITE_0D_RL( SEAICE_area_floor ,INDEX_NONE,
575 & 'SEAICE_area_floor =', ' /* reduce derivative singularities */')
576
577 WRITE(msgBuf,'(A)')
578 &'// ======================================================='
579 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
580 & SQUEEZE_RIGHT , myThid)
581 WRITE(msgBuf,'(A)')
582 &'// Seaice configuration (SEAICE_PARM01) >>> END <<<'
583 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
584 & SQUEEZE_RIGHT , myThid)
585 WRITE(msgBuf,'(A)')
586 &'// ======================================================='
587 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
588 & SQUEEZE_RIGHT , myThid)
589 WRITE(msgBuf,'(A)')
590
591 _END_MASTER(myThid)
592
593 RETURN
594 END

  ViewVC Help
Powered by ViewVC 1.1.22