18 |
C == global variables == |
C == global variables == |
19 |
#include "SIZE.h" |
#include "SIZE.h" |
20 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
21 |
|
#include "PARAMS.h" |
22 |
#include "SEAICE_SIZE.h" |
#include "SEAICE_SIZE.h" |
23 |
#include "SEAICE_PARAMS.h" |
#include "SEAICE_PARAMS.h" |
24 |
#ifdef ALLOW_SITRACER |
#ifdef ALLOW_SITRACER |
51 |
ioUnit = standardMessageUnit |
ioUnit = standardMessageUnit |
52 |
|
|
53 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
|
&' ' |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
|
|
& SQUEEZE_RIGHT , myThid) |
|
|
WRITE(msgBuf,'(A)') |
|
54 |
&'// =======================================================' |
&'// =======================================================' |
55 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
56 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
57 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
58 |
&'// Seaice configuration (SEAICE_PARM01) >>> START <<<' |
&'// Seaice configuration (SEAICE_PARM01) >>> START <<<' |
59 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
60 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
61 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
62 |
&'// =======================================================' |
&'// =======================================================' |
63 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
64 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
|
WRITE(msgBuf,'(A)') |
|
|
&' ' |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
|
|
& SQUEEZE_RIGHT , myThid) |
|
65 |
|
|
66 |
C-- Time-stepping related param. |
C-- Time-stepping related param. |
67 |
|
|
68 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') ' ' |
|
&' ' |
|
69 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
70 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
71 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
72 |
&' Seaice time stepping configuration > START < ' |
&' Seaice time stepping configuration > START < ' |
73 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
74 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
75 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
76 |
&' ----------------------------------------------' |
&' ----------------------------------------------' |
77 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
78 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
79 |
|
|
80 |
CALL WRITE_0D_RL( SEAICE_deltaTtherm,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_deltaTtherm,INDEX_NONE, |
81 |
& 'SEAICE_deltaTtherm=', ' /* thermodynamic timestep */') |
& 'SEAICE_deltaTtherm=', ' /* thermodynamic timestep */') |
88 |
CALL WRITE_0D_L ( SEAICErestoreUnderIce, INDEX_NONE, |
CALL WRITE_0D_L ( SEAICErestoreUnderIce, INDEX_NONE, |
89 |
& 'SEAICErestoreUnderIce =', ' /* restore T and S under ice */') |
& 'SEAICErestoreUnderIce =', ' /* restore T and S under ice */') |
90 |
|
|
91 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') ' ' |
|
&' ' |
|
92 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
93 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
94 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
95 |
&' Seaice dynamics configuration > START < ' |
&' Seaice dynamics configuration > START < ' |
96 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
97 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
98 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
99 |
&' ------------------------------------------' |
&' ------------------------------------------' |
100 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
101 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
102 |
|
|
103 |
C-- Seaice-Dynamics parameters |
C-- Seaice-Dynamics parameters |
104 |
CALL WRITE_0D_L ( SEAICEuseDYNAMICS, INDEX_NONE, |
CALL WRITE_0D_L ( SEAICEuseDYNAMICS, INDEX_NONE, |
107 |
IF (.NOT.SEAICEuseDYNAMICS) THEN |
IF (.NOT.SEAICEuseDYNAMICS) THEN |
108 |
WRITE(msgBuf,'(A)') ' pkg/seaice dynamics is OFF ' |
WRITE(msgBuf,'(A)') ' pkg/seaice dynamics is OFF ' |
109 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
110 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
111 |
ELSE |
ELSE |
112 |
|
|
113 |
#ifdef SEAICE_CGRID |
#ifdef SEAICE_CGRID |
145 |
& 'SEAICEpresPow0 =', ' /* exponent for Heff<SEAICEpresH0 */') |
& 'SEAICEpresPow0 =', ' /* exponent for Heff<SEAICEpresH0 */') |
146 |
CALL WRITE_0D_I ( SEAICEpresPow1, INDEX_NONE, |
CALL WRITE_0D_I ( SEAICEpresPow1, INDEX_NONE, |
147 |
& 'SEAICEpresPow1 =', ' /* exponent for Heff>SEAICEpresH0 */') |
& 'SEAICEpresPow1 =', ' /* exponent for Heff>SEAICEpresH0 */') |
148 |
|
CALL WRITE_0D_I ( SEAICEetaZmethod, INDEX_NONE, |
149 |
|
& 'SEAICEetaZmethod =', ' /* method computing eta at Z-point */') |
150 |
CALL WRITE_0D_RL( SEAICE_zetaMin ,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_zetaMin ,INDEX_NONE, |
151 |
& 'SEAICE_zetaMin =', ' /* lower bound for viscosity */') |
& 'SEAICE_zetaMin =', ' /* lower bound for viscosity */') |
152 |
CALL WRITE_0D_RL( SEAICE_eccen,INDEX_NONE,'SEAICE_eccen =', |
CALL WRITE_0D_RL( SEAICE_eccen,INDEX_NONE,'SEAICE_eccen =', |
173 |
& ' /* mix free-drift sol. into LSR initial Guess */') |
& ' /* mix free-drift sol. into LSR initial Guess */') |
174 |
CALL WRITE_0D_I ( SOLV_MAX_ITERS, INDEX_NONE, |
CALL WRITE_0D_I ( SOLV_MAX_ITERS, INDEX_NONE, |
175 |
& 'SOLV_MAX_ITERS =', ' /* max. number of LSR solver steps */') |
& 'SOLV_MAX_ITERS =', ' /* max. number of LSR solver steps */') |
176 |
|
CALL WRITE_0D_RL( SEAICE_LSRrelaxU ,INDEX_NONE, |
177 |
|
& 'SEAICE_LSRrelaxU =', ' /* LSR solver: relaxation parameter */') |
178 |
|
CALL WRITE_0D_RL( SEAICE_LSRrelaxV ,INDEX_NONE, |
179 |
|
& 'SEAICE_LSRrelaxV =', ' /* LSR solver: relaxation parameter */') |
180 |
CALL WRITE_0D_RL( LSR_ERROR ,INDEX_NONE, |
CALL WRITE_0D_RL( LSR_ERROR ,INDEX_NONE, |
181 |
& 'LSR_ERROR =', ' /* sets accuracy of LSR solver */') |
& 'LSR_ERROR =', ' /* sets accuracy of LSR solver */') |
182 |
CALL WRITE_0D_I ( SOLV_NCHECK, INDEX_NONE, |
CALL WRITE_0D_I ( SOLV_NCHECK, INDEX_NONE, |
199 |
C end if SEAICEuseDYNAMICS bloc |
C end if SEAICEuseDYNAMICS bloc |
200 |
ENDIF |
ENDIF |
201 |
|
|
202 |
C-- Thermodynamics parameters |
WRITE(msgBuf,'(A)') ' ' |
203 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
204 |
|
& SQUEEZE_RIGHT, myThid ) |
205 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
206 |
&' ' |
&' Seaice advection diffusion config, > 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 |
|
IF ( useThSIce ) THEN |
214 |
|
WRITE(msgBuf,'(A)') |
215 |
|
&' ==> advection diffusion done in pkg ThSIce' |
216 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
217 |
|
& SQUEEZE_RIGHT, myThid ) |
218 |
|
ELSE |
219 |
|
|
220 |
|
CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE, |
221 |
|
& 'SEAICEadvHeff =', ' /* advect effective ice thickness */') |
222 |
|
CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE, |
223 |
|
& 'SEAICEadvArea =', ' /* advect fractional ice area */') |
224 |
|
CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE, |
225 |
|
& 'SEAICEadvSnow =', ' /* advect snow layer together with ice */') |
226 |
|
#ifdef SEAICE_VARIABLE_SALINITY |
227 |
|
CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE, |
228 |
|
& 'SEAICEadvSalt =', ' /* advect salinity together with ice */') |
229 |
|
#endif |
230 |
|
CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE, |
231 |
|
& 'SEAICEadvScheme =', ' /* advection scheme for ice */') |
232 |
|
IF ( SEAICEadvScheme .EQ. 2 ) |
233 |
|
& CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE, |
234 |
|
& 'SEAICEuseFluxForm =', ' /* advection in FV flux form */') |
235 |
|
IF ( SEAICEadvArea ) |
236 |
|
&CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE, |
237 |
|
& 'SEAICEadvSchArea =', ' /* advection scheme for area */') |
238 |
|
IF ( SEAICEadvHeff ) |
239 |
|
&CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE, |
240 |
|
& 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */') |
241 |
|
IF ( SEAICEadvSnow ) |
242 |
|
&CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE, |
243 |
|
& 'SEAICEadvSchSnow =', ' /* advection scheme for snow */') |
244 |
|
#ifdef SEAICE_VARIABLE_SALINITY |
245 |
|
IF ( SEAICEadvSalt ) |
246 |
|
&CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE, |
247 |
|
& 'SEAICEadvSchSalt =', ' /* advection scheme for salt */') |
248 |
|
#endif |
249 |
|
CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE, |
250 |
|
& 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */') |
251 |
|
CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE, |
252 |
|
& 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */') |
253 |
|
CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE, |
254 |
|
& 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */') |
255 |
|
IF ( SEAICEadvSalt ) |
256 |
|
&CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE, |
257 |
|
& 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */') |
258 |
|
CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =', |
259 |
|
& ' /* parameter used in advect.F [m/s] */') |
260 |
|
|
261 |
|
C end if useThSIce bloc |
262 |
|
ENDIF |
263 |
|
|
264 |
|
|
265 |
|
C-- Thermodynamics parameters |
266 |
|
WRITE(msgBuf,'(A)') ' ' |
267 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
268 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
269 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
270 |
&' Seaice thermodynamics configuration > START < ' |
&' Seaice thermodynamics configuration > START < ' |
271 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
272 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
273 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
274 |
&' -----------------------------------------------' |
&' -----------------------------------------------' |
275 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
276 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
277 |
C- note: air and seaice (+ snow ?) density are used in both dynamics & thermo |
C- note: air and seaice (+ snow ?) density are used in both dynamics & thermo |
278 |
CALL WRITE_0D_RL( SEAICE_rhoIce ,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_rhoIce ,INDEX_NONE, |
279 |
& 'SEAICE_rhoIce =', ' /* density of sea ice (kg/m3) */') |
& 'SEAICE_rhoIce =', ' /* density of sea ice (kg/m3) */') |
287 |
IF (.NOT.usePW79thermodynamics) THEN |
IF (.NOT.usePW79thermodynamics) THEN |
288 |
WRITE(msgBuf,'(A)') ' pkg/seaice thermodynamics is OFF ' |
WRITE(msgBuf,'(A)') ' pkg/seaice thermodynamics is OFF ' |
289 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
290 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
291 |
ELSE |
ELSE |
292 |
|
|
293 |
CALL WRITE_0D_RL( SEAICE_lhEvap ,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_lhEvap ,INDEX_NONE, |
357 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
358 |
&' Sea ice has a variable salinity such that ' |
&' Sea ice has a variable salinity such that ' |
359 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
360 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
361 |
CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE, |
362 |
& 'SEAICE_saltFrac =', |
& 'SEAICE_saltFrac =', |
363 |
& ' /* fraction of ocn salinity in new ice */') |
& ' /* fraction of ocn salinity in new ice */') |
373 |
WRITE(msgBuf,'(A,A)') |
WRITE(msgBuf,'(A,A)') |
374 |
& 'MAX_HEFF has no effect because SEAICE_CAP_HEFF is undefined' |
& 'MAX_HEFF has no effect because SEAICE_CAP_HEFF is undefined' |
375 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
376 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
377 |
#endif /* SEAICE_CAP_HEFF */ |
#endif /* SEAICE_CAP_HEFF */ |
378 |
CALL WRITE_0D_RL( MAX_HEFF ,INDEX_NONE, |
CALL WRITE_0D_RL( MAX_HEFF ,INDEX_NONE, |
379 |
& 'MAX_HEFF =', ' /* maximum ice thickness */') |
& 'MAX_HEFF =', ' /* maximum ice thickness */') |
380 |
|
|
381 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') ' ' |
|
&' ' |
|
382 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
383 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
|
WRITE(msgBuf,'(A)') |
|
|
&' Seaice advection diffusion config, > START < ' |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
|
|
& SQUEEZE_RIGHT , myThid) |
|
|
WRITE(msgBuf,'(A)') |
|
|
&' -----------------------------------------------' |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
|
|
& SQUEEZE_RIGHT , myThid) |
|
|
|
|
|
CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE, |
|
|
& 'SEAICEadvHeff =', ' /* advect effective ice thickness */') |
|
|
CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE, |
|
|
& 'SEAICEadvArea =', ' /* advect fractional ice area */') |
|
|
CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE, |
|
|
& 'SEAICEadvSnow =', ' /* advect snow layer together with ice */') |
|
|
#ifdef SEAICE_VARIABLE_SALINITY |
|
|
CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE, |
|
|
& 'SEAICEadvSalt =', ' /* advect salinity together with ice */') |
|
|
#endif |
|
|
CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE, |
|
|
& 'SEAICEadvScheme =', ' /* advection scheme for ice */') |
|
|
IF ( SEAICEadvScheme .EQ. 2 ) |
|
|
& CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE, |
|
|
& 'SEAICEuseFluxForm =', ' /* advection in FV flux form */') |
|
|
IF ( SEAICEadvArea ) |
|
|
&CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE, |
|
|
& 'SEAICEadvSchArea =', ' /* advection scheme for area */') |
|
|
IF ( SEAICEadvHeff ) |
|
|
&CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE, |
|
|
& 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */') |
|
|
IF ( SEAICEadvSnow ) |
|
|
&CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE, |
|
|
& 'SEAICEadvSchSnow =', ' /* advection scheme for snow */') |
|
|
#ifdef SEAICE_VARIABLE_SALINITY |
|
|
IF ( SEAICEadvSalt ) |
|
|
&CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE, |
|
|
& 'SEAICEadvSchSalt =', ' /* advection scheme for salt */') |
|
|
#endif |
|
|
CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE, |
|
|
& 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */') |
|
|
CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE, |
|
|
& 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */') |
|
|
CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE, |
|
|
& 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */') |
|
|
IF ( SEAICEadvSalt ) |
|
|
&CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE, |
|
|
& 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */') |
|
|
CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =', |
|
|
& ' /* parameter used in advect.F [m/s] */') |
|
|
|
|
|
WRITE(msgBuf,'(A)') |
|
|
&' ' |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
|
|
& SQUEEZE_RIGHT , myThid) |
|
384 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
385 |
&' Seaice air-sea fluxes configuration, > START < ' |
&' Seaice air-sea fluxes configuration, > START < ' |
386 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
387 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
388 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
389 |
&' -----------------------------------------------' |
&' -----------------------------------------------' |
390 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
391 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
392 |
|
|
393 |
CALL WRITE_0D_L ( SEAICEheatConsFix, INDEX_NONE, |
CALL WRITE_0D_L ( SEAICEheatConsFix, INDEX_NONE, |
394 |
& 'SEAICEheatConsFix =', |
& 'SEAICEheatConsFix =', |
395 |
& ' /* accound for ocn<->seaice advect. heat flux */') |
& ' /* accound for ocn<->seaice advect. heat flux */') |
|
CToM<<< |
|
396 |
#ifdef SEAICE_ITD |
#ifdef SEAICE_ITD |
397 |
CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD =' |
CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD =' |
398 |
& , ' /* number of ice thickness categories */') |
& , ' /* number of ice thickness categories */') |
399 |
#else |
#else |
|
CToM>>> |
|
400 |
CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim =' |
CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim =' |
401 |
& , ' /* number of ice categories (1 or 7) */') |
& , ' /* number of ice categories (1 or 7) */') |
|
CToM<<< |
|
402 |
#endif |
#endif |
|
CToM>>> |
|
403 |
CALL WRITE_0D_I ( IMAX_TICE, INDEX_NONE, |
CALL WRITE_0D_I ( IMAX_TICE, INDEX_NONE, |
404 |
& 'IMAX_TICE =', ' /* iterations for ice surface temp */') |
& 'IMAX_TICE =', ' /* iterations for ice surface temp */') |
405 |
CALL WRITE_0D_I ( postSolvTempIter, INDEX_NONE, |
CALL WRITE_0D_I ( postSolvTempIter, INDEX_NONE, |
460 |
C end if usePW79thermodynamics bloc |
C end if usePW79thermodynamics bloc |
461 |
ENDIF |
ENDIF |
462 |
|
|
463 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') ' ' |
|
&' ' |
|
464 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
465 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
466 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
467 |
&' Seaice initialization and IO config., > START < ' |
&' Seaice initialization and IO config., > START < ' |
468 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
469 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
470 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
471 |
&' -------------------------------------------------' |
&' -------------------------------------------------' |
472 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
473 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
474 |
|
|
475 |
C-- Initial Condition/Input related param. |
C-- Initial Condition/Input related param. |
476 |
CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE, |
523 |
WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer, |
WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer, |
524 |
&' is in use and defined as' |
&' is in use and defined as' |
525 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
526 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
527 |
CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE, |
CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE, |
528 |
& ' -- SItrMate =',' /* tracer of HEFF or AREA */') |
& ' -- SItrMate =',' /* tracer of HEFF or AREA */') |
529 |
CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE, |
CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE, |
549 |
ENDDO |
ENDDO |
550 |
#endif /* ALLOW_SITRACER */ |
#endif /* ALLOW_SITRACER */ |
551 |
|
|
552 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') ' ' |
|
&' ' |
|
553 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
554 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
555 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
556 |
&' Seaice regularization numbers, > START < ' |
&' Seaice regularization numbers, > START < ' |
557 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
558 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
559 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
560 |
&' -----------------------------------------------' |
&' -----------------------------------------------' |
561 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
562 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
563 |
|
|
564 |
CALL WRITE_0D_RL( SEAICE_EPS ,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_EPS ,INDEX_NONE, |
565 |
& 'SEAICE_EPS =', ' /* reduce derivative singularities */') |
& 'SEAICE_EPS =', ' /* reduce derivative singularities */') |
572 |
CALL WRITE_0D_RL( SEAICE_area_floor ,INDEX_NONE, |
CALL WRITE_0D_RL( SEAICE_area_floor ,INDEX_NONE, |
573 |
& 'SEAICE_area_floor =', ' /* reduce derivative singularities */') |
& 'SEAICE_area_floor =', ' /* reduce derivative singularities */') |
574 |
|
|
575 |
|
WRITE(msgBuf,'(A)') ' ' |
576 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
577 |
|
& SQUEEZE_RIGHT, myThid ) |
578 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
579 |
&'// =======================================================' |
&'// =======================================================' |
580 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
581 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
582 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
583 |
&'// Seaice configuration (SEAICE_PARM01) >>> END <<<' |
&'// Seaice configuration (SEAICE_PARM01) >>> END <<<' |
584 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
585 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
586 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
587 |
&'// =======================================================' |
&'// =======================================================' |
588 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
589 |
& SQUEEZE_RIGHT , myThid) |
& SQUEEZE_RIGHT, myThid ) |
590 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') ' ' |
591 |
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
592 |
|
& SQUEEZE_RIGHT, myThid ) |
593 |
|
|
594 |
_END_MASTER(myThid) |
_END_MASTER(myThid) |
595 |
|
|