/[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.1 - (hide annotations) (download)
Fri Apr 27 22:22:17 2012 UTC (13 years, 3 months ago) by dimitri
Branch: MAIN
check-in original code, before itd modifications
seaice_advdiff.F,v 1.60 2012/02/16 01:22:02
seaice_check_pickup.F,v 1.7 2012/03/05 15:21:44
seaice_diagnostics_init.F,v 1.33 2012/02/16 01:22:02
seaice_growth.F,v 1.162 2012/03/15 03:07:31
seaice_init_fixed.F,v 1.19 2012/03/11 13:41:38
seaice_init_varia.F,v 1.72 2012/03/14 22:55:53
seaice_readparms.F,v 1.120 2012/03/14 22:55:53
seaice_write_pickup.F,v 1.14 2012/03/05 15:21:45
seaice_read_pickup.F,v 1.16 2012/03/05 15:21:44
seaice_model.F,v 1.100 2012/03/02 18:56:06
SEAICE.h,v 1.62 2012/03/06 16:51:21
SEAICE_OPTIONS.h,v 1.63 2012/03/08 01:15:02
SEAICE_PARAMS.h,v 1.91 2012/03/11 13:41:38
SEAICE_SIZE.h,v 1.5 2012/03/06 16:51:21
SIZE.h,v 1.28 2009/05/17 21:15:07

1 dimitri 1.1 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_summary.F,v 1.50 2012/03/14 22:55:53 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( SEAICE_tauAreaObsRelax,INDEX_NONE,
136     & 'SEAICE_tauAreaObsRelax=',
137     & ' /* relaxation timescale of sea-ice concentration */')
138     CALL WRITE_0D_RL( OCEAN_drag ,INDEX_NONE,
139     & 'OCEAN_drag =', ' /* air-ocean drag coefficient */')
140     CALL WRITE_0D_RL( SEAICE_drag ,INDEX_NONE,
141     & 'SEAICE_drag =', ' /* air-ice drag coefficient */')
142     CALL WRITE_0D_RL( SEAICE_drag_south ,INDEX_NONE,
143     & 'SEAICE_drag_south =', ' /* Southern Ocean SEAICE_drag */')
144     CALL WRITE_0D_RL( SEAICE_waterDrag ,INDEX_NONE,
145     & 'SEAICE_waterDrag =', ' /* water-ice drag * density */')
146     CALL WRITE_0D_RL( SEAICE_waterDrag_south ,INDEX_NONE,
147     & 'SEAICE_waterDrag_south =', ' /* Southern Ocean waterDrag */')
148     CALL WRITE_0D_L ( SEAICEuseTEM, INDEX_NONE,
149     & 'SEAICEuseTEM =', ' /* use truncated ellipse rheology */')
150     CALL WRITE_0D_RL( SEAICE_strength ,INDEX_NONE,
151     & 'SEAICE_strength =', ' /* sea-ice strength Pstar */')
152     CALL WRITE_0D_RL( SEAICE_zetaMin ,INDEX_NONE,
153     & 'SEAICE_zetaMin =', ' /* lower bound for viscosity */')
154     CALL WRITE_0D_RL( SEAICE_eccen,INDEX_NONE,'SEAICE_eccen =',
155     & ' /* elliptical yield curve eccent */')
156     CALL WRITE_0D_RL( SEAICEstressFactor,INDEX_NONE,
157     & 'SEAICEstressFactor =',' /* wind stress scaling factor */')
158     CALL WRITE_0D_RL( SEAICE_airTurnAngle,INDEX_NONE,
159     & 'SEAICE_airTurnAngle =',' /* air-ice turning angle */')
160     CALL WRITE_0D_RL( SEAICE_waterTurnAngle,INDEX_NONE,
161     & 'SEAICE_waterTurnAngle =',' /* ice-water turning angle */')
162     CALL WRITE_0D_L ( SEAICEuseMetricTerms, INDEX_NONE,
163     & 'SEAICEuseMetricTerms =', ' /* use metric terms */')
164     CALL WRITE_0D_L ( SEAICE_no_slip, INDEX_NONE,
165     & 'SEAICE_no_slip =', ' /* no slip boundary conditions */')
166     CALL WRITE_0D_L ( SEAICE_clipVelocities, INDEX_NONE,
167     & 'SEAICE_clipVeloctities =', ' /* impose max. vels. */')
168     CALL WRITE_0D_L ( useHB87stressCoupling, INDEX_NONE,
169     & 'useHB87stressCoupling =', ' /* altern. ice-ocean stress */')
170     CALL WRITE_0D_L ( SEAICE_maskRHS, INDEX_NONE,
171     & 'SEAICE_maskRHS =', ' /* mask RHS of solver */')
172     IF (.NOT.SEAICEuseEVP) THEN
173     CALL WRITE_0D_I ( LSR_mixIniGuess, INDEX_NONE,
174     & 'LSR_mixIniGuess =',
175     & ' /* mix free-drift sol. into LSR initial Guess */')
176     CALL WRITE_0D_I ( SOLV_MAX_ITERS, INDEX_NONE,
177     & 'SOLV_MAX_ITERS =', ' /* max. number of LSR solver steps */')
178     CALL WRITE_0D_RL( LSR_ERROR ,INDEX_NONE,
179     & 'LSR_ERROR =', ' /* sets accuracy of LSR solver */')
180     CALL WRITE_0D_I ( SOLV_NCHECK, INDEX_NONE,
181     & 'SOLV_NCHECK =', ' /* test interval for LSR solver */')
182     CALL WRITE_0D_I ( NPSEUDOTIMESTEPS, INDEX_NONE,
183     & 'NPSEUDOTIMESTEPS =', ' /* num. of extra pseudo time steps */')
184     #ifdef SEAICE_ALLOW_EVP
185     ELSE
186     CALL WRITE_0D_RL( SEAICE_elasticParm ,INDEX_NONE,
187     & 'SEAICE_elasticParm=', ' /* EVP elastic parameter */')
188     CALL WRITE_0D_RL( SEAICE_evpTauRelax ,INDEX_NONE,
189     & 'SEAICE_evpTauRelax=', ' /* EVP relaxation timescale */')
190     CALL WRITE_0D_RL( SEAICE_evpDampC ,INDEX_NONE,
191     & 'SEAICE_evpDampC =', ' /* EVP damping parameter */')
192     CALL WRITE_0D_L ( SEAICEuseEVPpickup, INDEX_NONE,
193     & 'SEAICEuseEVPpickup=', ' /* start EVP solver with EVP pickup*/')
194     #endif /* SEAICE_ALLOW_EVP */
195     ENDIF
196    
197     C end if SEAICEuseDYNAMICS bloc
198     ENDIF
199    
200     C-- Thermodynamics parameters
201     WRITE(msgBuf,'(A)')
202     &' '
203     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
204     & SQUEEZE_RIGHT , myThid)
205     WRITE(msgBuf,'(A)')
206     &' Seaice thermodynamics configuration > START < '
207     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
208     & SQUEEZE_RIGHT , myThid)
209     WRITE(msgBuf,'(A)')
210     &' -----------------------------------------------'
211     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
212     & SQUEEZE_RIGHT , myThid)
213     C- note: air and seaice (+ snow ?) density are used in both dynamics & thermo
214     CALL WRITE_0D_RL( SEAICE_rhoIce ,INDEX_NONE,
215     & 'SEAICE_rhoIce =', ' /* density of sea ice (kg/m3) */')
216     CALL WRITE_0D_RL( SEAICE_rhoSnow ,INDEX_NONE,
217     & 'SEAICE_rhoSnow =', ' /* density of snow (kg/m3) */')
218     CALL WRITE_0D_RL( SEAICE_rhoAir ,INDEX_NONE,
219     & 'SEAICE_rhoAir =', ' /* density of air (kg/m3) */')
220    
221     CALL WRITE_0D_L ( usePW79thermodynamics, INDEX_NONE,
222     & 'usePW79thermodynamics =', ' /* default 0-layer TD */')
223     IF (.NOT.usePW79thermodynamics) THEN
224     WRITE(msgBuf,'(A)') ' pkg/seaice thermodynamics is OFF '
225     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
226     & SQUEEZE_RIGHT , myThid)
227     ELSE
228    
229     CALL WRITE_0D_RL( SEAICE_lhEvap ,INDEX_NONE,
230     & 'SEAICE_lhEvap =', ' /* latent heat of evaporation */')
231     CALL WRITE_0D_RL( SEAICE_lhFusion ,INDEX_NONE,
232     & 'SEAICE_lhFusion =', ' /* latent heat of fusion */')
233     CALL WRITE_0D_RL ( SEAICE_mcPheePiston, INDEX_NONE,
234     & 'SEAICE_mcPheePiston =',
235     & ' /* turbulent flux "piston velocity" a la McPhee (m/s) */')
236     CALL WRITE_0D_RL ( SEAICE_mcPheeTaper, INDEX_NONE,
237     & 'SEAICE_mcPheeTaper =',
238     & ' /* tapering of turbulent flux (0.< <1.) for AREA=1. */')
239     CALL WRITE_0D_L ( SEAICE_mcPheeStepFunc, INDEX_NONE,
240     & 'SEAICE_mcPheeStepFunc =',
241     & ' /* replace linear tapering with step funct. */')
242     CALL WRITE_0D_RL ( SEAICE_frazilFrac, INDEX_NONE,
243     & 'SEAICE_frazilFrac =',
244     & ' /* frazil (T<tempFrz) to seaice conversion rate (0.< <1.) */')
245     CALL WRITE_0D_RL( SEAICE_tempFrz0 ,INDEX_NONE,
246     & 'SEAICE_tempFrz0 =',
247     & ' /* freezing temp. of sea water (intercept) */')
248     CALL WRITE_0D_RL( SEAICE_dTempFrz_dS,INDEX_NONE,
249     & 'SEAICE_dTempFrz_dS=',
250     & ' /* freezing temp. of sea water (slope) */')
251     c print the various values meining for SEAICE_areaGain/LossFormula
252     WRITE(msgBuf,'(2A)') 'SEAICE_areaGainFormula =',
253     & ' /* ice cover gain formula (1,2)*/'
254     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
255     buffI(1) = SEAICE_areaGainFormula
256     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
257     & .FALSE., .TRUE., ioUnit )
258     WRITE(msgBuf,'(A)') ' 1=from growth by ATM '
259     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
260     WRITE(msgBuf,'(A)') ' 2=from predicted growth by ATM'
261     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
262     CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
263     c
264     WRITE(msgBuf,'(2A)') 'SEAICE_areaLossFormula =',
265     & ' /* ice cover loss formula (1,2)*/'
266     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
267     buffI(1) = SEAICE_areaLossFormula
268     CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
269     & .FALSE., .TRUE., ioUnit )
270     WRITE(msgBuf,'(2A)') ' 1=from all but only melt ',
271     & 'conributions by ATM and OCN'
272     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
273     WRITE(msgBuf,'(A)') ' 2=from net melt-grow>0 by ATM and OCN'
274     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
275     WRITE(msgBuf,'(A)') ' 3=from predicted melt by ATM'
276     CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
277     CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
278     c
279     CALL WRITE_0D_RL( HO ,INDEX_NONE,
280     & 'HO =', ' /* nominal thickness of new ice */')
281     CALL WRITE_0D_RL( HO_south ,INDEX_NONE,
282     & 'HO_south =', ' /* Southern Ocean HO */')
283     CALL WRITE_0D_RL( SEAICE_area_max ,INDEX_NONE,
284     & 'SEAICE_area_max =',
285     & ' /* set to les than 1. to mimic open leads */')
286     #ifdef SEAICE_VARIABLE_SALINITY
287     WRITE(msgBuf,'(A)')
288     &' Sea ice has a variable salinity such that '
289     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
290     & SQUEEZE_RIGHT , myThid)
291     CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE,
292     & 'SEAICE_saltFrac =',
293     & ' /* fraction of ocn salinity in new ice */')
294     #else
295     CALL WRITE_0D_RL( SEAICE_salt0, INDEX_NONE,
296     & 'SEAICE_salt0 =', ' /* constant sea ice salinity */')
297     #endif
298     CALL WRITE_0D_L ( SEAICE_salinityTracer, INDEX_NONE,
299     & 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */')
300     CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE,
301     & 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */')
302     #ifndef SEAICE_CAP_HEFF
303     WRITE(msgBuf,'(A,A)')
304     & 'MAX_HEFF has no effect because SEAICE_CAP_HEFF is undefined'
305     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
306     & SQUEEZE_RIGHT , myThid)
307     #endif /* SEAICE_CAP_HEFF */
308     CALL WRITE_0D_RL( MAX_HEFF ,INDEX_NONE,
309     & 'MAX_HEFF =', ' /* maximum ice thickness */')
310    
311     WRITE(msgBuf,'(A)')
312     &' '
313     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
314     & SQUEEZE_RIGHT , myThid)
315     WRITE(msgBuf,'(A)')
316     &' Seaice advection diffusion config, > START < '
317     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
318     & SQUEEZE_RIGHT , myThid)
319     WRITE(msgBuf,'(A)')
320     &' -----------------------------------------------'
321     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
322     & SQUEEZE_RIGHT , myThid)
323    
324     CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE,
325     & 'SEAICEadvHeff =', ' /* advect effective ice thickness */')
326     CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE,
327     & 'SEAICEadvArea =', ' /* advect fractional ice area */')
328     CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE,
329     & 'SEAICEadvSnow =', ' /* advect snow layer together with ice */')
330     #ifdef SEAICE_VARIABLE_SALINITY
331     CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE,
332     & 'SEAICEadvSalt =', ' /* advect salinity together with ice */')
333     #endif
334     CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE,
335     & 'SEAICEadvScheme =', ' /* advection scheme for ice */')
336     IF ( SEAICEadvScheme .EQ. 2 )
337     & CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE,
338     & 'SEAICEuseFluxForm =', ' /* advection in FV flux form */')
339     IF ( SEAICEadvArea )
340     &CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE,
341     & 'SEAICEadvSchArea =', ' /* advection scheme for area */')
342     IF ( SEAICEadvHeff )
343     &CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE,
344     & 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */')
345     IF ( SEAICEadvSnow )
346     &CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE,
347     & 'SEAICEadvSchSnow =', ' /* advection scheme for snow */')
348     #ifdef SEAICE_VARIABLE_SALINITY
349     IF ( SEAICEadvSalt )
350     &CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE,
351     & 'SEAICEadvSchSalt =', ' /* advection scheme for salt */')
352     #endif
353     CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE,
354     & 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */')
355     CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE,
356     & 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */')
357     CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE,
358     & 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */')
359     IF ( SEAICEadvSalt )
360     &CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE,
361     & 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */')
362     CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =',
363     & ' /* parameter used in advect.F [m/s] */')
364    
365     WRITE(msgBuf,'(A)')
366     &' '
367     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
368     & SQUEEZE_RIGHT , myThid)
369     WRITE(msgBuf,'(A)')
370     &' Seaice air-sea fluxes configuration, > START < '
371     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
372     & SQUEEZE_RIGHT , myThid)
373     WRITE(msgBuf,'(A)')
374     &' -----------------------------------------------'
375     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
376     & SQUEEZE_RIGHT , myThid)
377    
378     CALL WRITE_0D_L ( SEAICEheatConsFix, INDEX_NONE,
379     & 'SEAICEheatConsFix =',
380     & ' /* accound for ocn<->seaice advect. heat flux */')
381     CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim ='
382     & , ' /* number of ice categories (1 or 7) */')
383     CALL WRITE_0D_I ( IMAX_TICE, INDEX_NONE,
384     & 'IMAX_TICE =', ' /* iterations for ice surface temp */')
385     CALL WRITE_0D_I ( postSolvTempIter, INDEX_NONE,
386     & 'postSolvTempIter=',
387     & ' /* flux calculation after surf. temp iter */')
388     #ifndef SEAICE_EXTERNAL_FLUXES
389     CALL WRITE_0D_RL( SEAICE_waterAlbedo,INDEX_NONE,
390     & 'SEAICE_waterAlbedo=', ' /* water albedo */')
391     CALL WRITE_0D_RL( SEAICE_emissivity, INDEX_NONE,
392     & 'SEAICE_emissivity =', ' /* ocean-surface emissivity */')
393     #endif /* SEAICE_EXTERNAL_FLUXES */
394     CALL WRITE_0D_RL( SEAICE_dryIceAlb ,INDEX_NONE,
395     & 'SEAICE_dryIceAlb =', ' /* winter albedo */')
396     CALL WRITE_0D_RL( SEAICE_wetIceAlb ,INDEX_NONE,
397     & 'SEAICE_wetIceAlb =', ' /* summer albedo */')
398     CALL WRITE_0D_RL( SEAICE_drySnowAlb ,INDEX_NONE,
399     & 'SEAICE_drySnowAlb =', ' /* dry snow albedo */')
400     CALL WRITE_0D_RL( SEAICE_wetSnowAlb ,INDEX_NONE,
401     & 'SEAICE_wetSnowAlb =', ' /* wet snow albedo */')
402     CALL WRITE_0D_RL( SEAICE_dryIceAlb_south ,INDEX_NONE,
403     & 'SEAICE_dryIceAlb_south =', ' /* Southern Ocean dryIceAlb */')
404     CALL WRITE_0D_RL( SEAICE_wetIceAlb_south ,INDEX_NONE,
405     & 'SEAICE_wetIceAlb_south =', ' /* Southern Ocean wetIceAlb */')
406     CALL WRITE_0D_RL( SEAICE_drySnowAlb_south ,INDEX_NONE,
407     & 'SEAICE_drySnowAlb_south=', ' /* Southern Ocean drySnowAlb */')
408     CALL WRITE_0D_RL( SEAICE_wetSnowAlb_south ,INDEX_NONE,
409     & 'SEAICE_wetSnowAlb_south=', ' /* Southern Ocean wetSnowAlb */')
410     CALL WRITE_0D_RL( SEAICE_wetAlbTemp ,INDEX_NONE,
411     & 'SEAICE_wetAlbTemp=',
412     & ' /* Temp (o.C) threshold for wet-albedo */')
413     CALL WRITE_0D_RL( SEAICE_snow_emiss ,INDEX_NONE,
414     & 'SEAICE_snow_emiss =', ' /* snow emissivity */')
415     CALL WRITE_0D_RL( SEAICE_ice_emiss ,INDEX_NONE,
416     & 'SEAICE_ice_emiss =', ' /* seaice emissivity */')
417     CALL WRITE_0D_RL( SEAICE_cpAir ,INDEX_NONE,
418     & 'SEAICE_cpAir =', ' /* heat capacity of air */')
419     CALL WRITE_0D_RL( SEAICE_dalton ,INDEX_NONE,
420     & 'SEAICE_dalton =', ' /* constant dalton number */')
421     CALL WRITE_0D_RL( SEAICE_iceConduct ,INDEX_NONE,
422     & 'SEAICE_iceConduct =', ' /* sea-ice conductivity */')
423     CALL WRITE_0D_RL( SEAICE_snowConduct,INDEX_NONE,
424     & 'SEAICE_snowConduct=', ' /* snow conductivity */')
425     CALL WRITE_0D_RL( SEAICE_snowThick ,INDEX_NONE,
426     & 'SEAICE_snowThick =',
427     & ' /* cutoff snow thickness (for albedo) */')
428     CALL WRITE_0D_RL( SEAICE_shortwave ,INDEX_NONE,
429     & 'SEAICE_shortwave =', ' /* penetration shortwave radiation */')
430     CALL WRITE_0D_L ( useMaykutSatVapPoly, INDEX_NONE,
431     & 'useMaykutSatVapPoly =',
432     & ' /* use Maykut Polynomial for Sat.Vap.Pr */')
433     CALL WRITE_0D_RL( MIN_ATEMP ,INDEX_NONE,
434     & 'MIN_ATEMP =', ' /* minimum air temperature */')
435     CALL WRITE_0D_RL( MIN_LWDOWN ,INDEX_NONE,
436     & 'MIN_LWDOWN =', ' /* minimum downward longwave */')
437     CALL WRITE_0D_RL( MIN_TICE ,INDEX_NONE,
438     & 'MIN_TICE =', ' /* minimum ice temperature */')
439    
440     C end if usePW79thermodynamics bloc
441     ENDIF
442    
443     WRITE(msgBuf,'(A)')
444     &' '
445     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
446     & SQUEEZE_RIGHT , myThid)
447     WRITE(msgBuf,'(A)')
448     &' Seaice initialization and IO config., > START < '
449     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
450     & SQUEEZE_RIGHT , myThid)
451     WRITE(msgBuf,'(A)')
452     &' -------------------------------------------------'
453     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
454     & SQUEEZE_RIGHT , myThid)
455    
456     C-- Initial Condition/Input related param.
457     CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE,
458     & 'SEAICE_initialHEFF=', ' /* initial sea-ice thickness */')
459     CALL WRITE_0D_C( AreaFile, -1, INDEX_NONE,
460     & 'AreaFile =', ' /* Initial ice concentration File */')
461     CALL WRITE_0D_C( HeffFile, -1, INDEX_NONE,
462     & 'HeffFile =', ' /* Initial effective ice thickness File */')
463     CALL WRITE_0D_C( HsnowFile, -1, INDEX_NONE,
464     & 'HsnowFile =', ' /* Initial snow thickness File */')
465     #ifdef SEAICE_VARIABLE_SALINITY
466     CALL WRITE_0D_C( HsaltFile, -1, INDEX_NONE,
467     & 'HsaltFile =', ' /* Initial HSALT File */')
468     #endif
469     CALL WRITE_0D_C( uIceFile, -1, INDEX_NONE,
470     & 'uIceFile =', ' /* Initial U-ice velocity File */')
471     CALL WRITE_0D_C( vIceFile, -1, INDEX_NONE,
472     & 'vIceFile =', ' /* Initial V-ice velocity File */')
473    
474     C-- Output related param.
475     CALL WRITE_0D_L ( SEAICEwriteState, INDEX_NONE,
476     & 'SEAICEwriteState =', ' /* write sea ice state to file */')
477     CALL WRITE_0D_RL( SEAICE_monFreq, INDEX_NONE,
478     & 'SEAICE_monFreq =',' /* monitor frequency */')
479     CALL WRITE_0D_RL( SEAICE_dumpFreq ,INDEX_NONE,
480     & 'SEAICE_dumpFreq =', ' /* dump frequency */')
481     CALL WRITE_0D_RL( SEAICE_taveFreq ,INDEX_NONE,
482     & 'SEAICE_taveFreq =', ' /* time-averaging frequency */')
483     CALL WRITE_0D_L ( SEAICE_mon_stdio, INDEX_NONE,
484     & 'SEAICE_mon_stdio =',' /* write monitor to std-outp */')
485     CALL WRITE_0D_L ( SEAICE_dump_mdsio, INDEX_NONE,
486     & 'SEAICE_dump_mdsio =',' /* write snap-shot using MDSIO */')
487     CALL WRITE_0D_L ( SEAICE_tave_mdsio, INDEX_NONE,
488     & 'SEAICE_tave_mdsio =',' /* write TimeAverage using MDSIO */')
489     #ifdef ALLOW_MNC
490     CALL WRITE_0D_L ( SEAICE_mon_mnc, INDEX_NONE,
491     & 'SEAICE_mon_mnc =',' /* write monitor to netcdf file */')
492     CALL WRITE_0D_L ( SEAICE_dump_mnc, INDEX_NONE,
493     & 'SEAICE_dump_mnc =',' /* write snap-shot using MNC */')
494     CALL WRITE_0D_L ( SEAICE_tave_mnc, INDEX_NONE,
495     & 'SEAICE_tave_mnc =',' /* write TimeAverage using MNC */')
496     #endif /* ALLOW_MNC */
497    
498     #ifdef ALLOW_SITRACER
499     CALL WRITE_0D_I ( SItrNumInUse, INDEX_NONE,
500     & 'SItrNumInUse =',
501     & ' /* number of tracers that are in use (<SItrMaxNum) */')
502     DO iTracer = 1, SItrNumInUse
503     IF (SItrName(iTracer).NE.' ') THEN
504     WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer,
505     &' is in use and defined as'
506     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
507     & SQUEEZE_RIGHT , myThid)
508     CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE,
509     & ' -- SItrMate =',' /* tracer of HEFF or AREA */')
510     CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE,
511     & ' -- SItrName =',' /* tracer name*/')
512     CALL WRITE_0D_C ( SItrNameLong(iTracer), -1, INDEX_NONE,
513     & ' -- SItrNameLong =',' /* tracer long name*/')
514     CALL WRITE_0D_C ( SItrFile(iTracer), -1, INDEX_NONE,
515     & ' -- SItrFile =',' /* tracer initial condition file */')
516     CALL WRITE_0D_C ( SItrUnit(iTracer), -1, INDEX_NONE,
517     & ' -- SItrUnit =',' /* tracer unit */')
518     CALL WRITE_0D_RL ( SItrFromOcean0(iTracer), INDEX_NONE,
519     & ' -- SItrFromOcean0 =',' /* for new ice from freeze */')
520     CALL WRITE_0D_RL ( SItrFromOceanFrac(iTracer), INDEX_NONE,
521     & ' -- SItrFromOceanFrac =',' /* for new ice from freeze */')
522     CALL WRITE_0D_RL ( SItrFromFlood0(iTracer), INDEX_NONE,
523     & ' -- SItrFromFlood0 =',' /* for new ice from freeze */')
524     CALL WRITE_0D_RL ( SItrFromFloodFrac(iTracer), INDEX_NONE,
525     & ' -- SItrFromFloodFrac =',' /* for new ice from freeze */')
526     CALL WRITE_0D_RL ( SItrExpand0(iTracer), INDEX_NONE,
527     & ' -- SItrExpand0 =',' /* for ice cover thermo. expans. */')
528    
529     ENDIF
530     ENDDO
531     #endif /* ALLOW_SITRACER */
532    
533     WRITE(msgBuf,'(A)')
534     &' '
535     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
536     & SQUEEZE_RIGHT , myThid)
537     WRITE(msgBuf,'(A)')
538     &' Seaice regularization numbers, > START < '
539     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
540     & SQUEEZE_RIGHT , myThid)
541     WRITE(msgBuf,'(A)')
542     &' -----------------------------------------------'
543     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
544     & SQUEEZE_RIGHT , myThid)
545    
546     CALL WRITE_0D_RL( SEAICE_EPS ,INDEX_NONE,
547     & 'SEAICE_EPS =', ' /* reduce derivative singularities */')
548     CALL WRITE_0D_RL( SEAICE_EPS_SQ ,INDEX_NONE,
549     & 'SEAICE_EPS_SQ =', ' /* reduce derivative singularities */')
550     CALL WRITE_0D_RL( SEAICE_area_reg ,INDEX_NONE,
551     & 'SEAICE_area_reg =', ' /* reduce derivative singularities */')
552     CALL WRITE_0D_RL( SEAICE_hice_reg ,INDEX_NONE,
553     & 'SEAICE_hice_reg =', ' /* reduce derivative singularities */')
554     CALL WRITE_0D_RL( SEAICE_area_floor ,INDEX_NONE,
555     & 'SEAICE_area_floor =', ' /* reduce derivative singularities */')
556    
557     WRITE(msgBuf,'(A)')
558     &'// ======================================================='
559     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
560     & SQUEEZE_RIGHT , myThid)
561     WRITE(msgBuf,'(A)')
562     &'// Seaice configuration (SEAICE_PARM01) >>> END <<<'
563     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
564     & SQUEEZE_RIGHT , myThid)
565     WRITE(msgBuf,'(A)')
566     &'// ======================================================='
567     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
568     & SQUEEZE_RIGHT , myThid)
569     WRITE(msgBuf,'(A)')
570    
571     _END_MASTER(myThid)
572    
573     RETURN
574     END

  ViewVC Help
Powered by ViewVC 1.1.22