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

Annotation 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 - (hide 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 heimbach 1.3 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_summary.F,v 1.54 2012/10/22 20:12:56 heimbach Exp $
2 dimitri 1.1 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 heimbach 1.3 CALL WRITE_0D_L ( SEAICEuseTILT, INDEX_NONE,
146     & 'SEAICEuseTILT =', ' /* include surface tilt in dyna. */')
147 dimitri 1.1 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 heimbach 1.3 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 dimitri 1.1 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 heimbach 1.3 #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 dimitri 1.1 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 dimitri 1.2 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 dimitri 1.1 CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim ='
399     & , ' /* number of ice categories (1 or 7) */')
400 dimitri 1.2 CToM<<<
401     #endif
402 heimbach 1.3 CToM>>>
403 dimitri 1.1 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