1 |
torge |
1.4 |
C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_summary.F,v 1.57 2012/11/16 22:52:56 jmc 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 |
torge |
1.4 |
#include "PARAMS.h" |
22 |
dimitri |
1.1 |
#include "SEAICE_SIZE.h" |
23 |
|
|
#include "SEAICE_PARAMS.h" |
24 |
|
|
#ifdef ALLOW_SITRACER |
25 |
|
|
# include "SEAICE_TRACER.h" |
26 |
|
|
#endif |
27 |
|
|
|
28 |
|
|
C !INPUT PARAMETERS: |
29 |
|
|
C == routine arguments == |
30 |
|
|
C myThid :: my Thread Id. number |
31 |
|
|
INTEGER myThid |
32 |
|
|
CEOP |
33 |
|
|
|
34 |
|
|
C !LOCAL VARIABLES: |
35 |
|
|
C == local variables == |
36 |
|
|
C msgBuf :: Informational/error message buffer |
37 |
|
|
CHARACTER*(MAX_LEN_MBUF) msgBuf |
38 |
|
|
INTEGER buffI(1) |
39 |
|
|
CHARACTER*10 endList |
40 |
|
|
INTEGER ioUnit |
41 |
|
|
#ifdef ALLOW_SITRACER |
42 |
|
|
INTEGER iTracer |
43 |
|
|
#endif |
44 |
|
|
|
45 |
|
|
C == end of interface == |
46 |
|
|
|
47 |
|
|
_BARRIER |
48 |
|
|
_BEGIN_MASTER(myThid) |
49 |
|
|
|
50 |
|
|
endList = ' ; ' |
51 |
|
|
ioUnit = standardMessageUnit |
52 |
|
|
|
53 |
|
|
WRITE(msgBuf,'(A)') |
54 |
|
|
&'// =======================================================' |
55 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
56 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
57 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
58 |
|
|
&'// Seaice configuration (SEAICE_PARM01) >>> START <<<' |
59 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
60 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
61 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
62 |
|
|
&'// =======================================================' |
63 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
64 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
65 |
dimitri |
1.1 |
|
66 |
|
|
C-- Time-stepping related param. |
67 |
|
|
|
68 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
69 |
dimitri |
1.1 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
70 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
71 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
72 |
|
|
&' Seaice time stepping configuration > START < ' |
73 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
74 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
75 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
76 |
|
|
&' ----------------------------------------------' |
77 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
78 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
79 |
dimitri |
1.1 |
|
80 |
|
|
CALL WRITE_0D_RL( SEAICE_deltaTtherm,INDEX_NONE, |
81 |
|
|
& 'SEAICE_deltaTtherm=', ' /* thermodynamic timestep */') |
82 |
|
|
CALL WRITE_0D_RL( SEAICE_deltaTdyn ,INDEX_NONE, |
83 |
|
|
& 'SEAICE_deltaTdyn =', ' /* dynamic timestep */') |
84 |
|
|
#ifdef SEAICE_ALLOW_EVP |
85 |
|
|
CALL WRITE_0D_RL( SEAICE_deltaTevp ,INDEX_NONE, |
86 |
|
|
& 'SEAICE_deltaTevp =', ' /* EVP timestep */') |
87 |
|
|
#endif |
88 |
|
|
CALL WRITE_0D_L ( SEAICErestoreUnderIce, INDEX_NONE, |
89 |
|
|
& 'SEAICErestoreUnderIce =', ' /* restore T and S under ice */') |
90 |
|
|
|
91 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
92 |
dimitri |
1.1 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
93 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
94 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
95 |
|
|
&' Seaice dynamics configuration > START < ' |
96 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
97 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
98 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
99 |
|
|
&' ------------------------------------------' |
100 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
101 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
102 |
dimitri |
1.1 |
|
103 |
|
|
C-- Seaice-Dynamics parameters |
104 |
|
|
CALL WRITE_0D_L ( SEAICEuseDYNAMICS, INDEX_NONE, |
105 |
|
|
& 'SEAICEuseDYNAMICS =', ' /* use dynamics */') |
106 |
|
|
|
107 |
|
|
IF (.NOT.SEAICEuseDYNAMICS) THEN |
108 |
|
|
WRITE(msgBuf,'(A)') ' pkg/seaice dynamics is OFF ' |
109 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
110 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
111 |
dimitri |
1.1 |
ELSE |
112 |
|
|
|
113 |
|
|
#ifdef SEAICE_CGRID |
114 |
|
|
CALL WRITE_0D_C( 'C-GRID', -1, INDEX_NONE, |
115 |
|
|
& 'model grid type =', ' /* type of sea ice model grid */') |
116 |
|
|
#else /* not SEAICE_CGRID */ |
117 |
|
|
CALL WRITE_0D_C( 'B-GRID', -1, INDEX_NONE, |
118 |
|
|
& 'model grid type =', ' /* type of sea ice model grid */') |
119 |
|
|
#endif /* SEAICE_CGRID */ |
120 |
|
|
CALL WRITE_0D_L ( SEAICEuseEVP, INDEX_NONE, |
121 |
|
|
& 'SEAICEuseEVP =', ' /* use EVP solver rather than LSR */') |
122 |
|
|
#ifdef SEAICE_ALLOW_FREEDRIFT |
123 |
|
|
CALL WRITE_0D_L ( SEAICEuseFREEDRIFT, INDEX_NONE, |
124 |
|
|
& 'SEAICEuseFREEDRIFT =', ' /* use free drift solution */') |
125 |
|
|
#endif /* SEAICE_ALLOW_FREEDRIFT */ |
126 |
|
|
CALL WRITE_0D_RL( OCEAN_drag ,INDEX_NONE, |
127 |
|
|
& 'OCEAN_drag =', ' /* air-ocean drag coefficient */') |
128 |
|
|
CALL WRITE_0D_RL( SEAICE_drag ,INDEX_NONE, |
129 |
|
|
& 'SEAICE_drag =', ' /* air-ice drag coefficient */') |
130 |
|
|
CALL WRITE_0D_RL( SEAICE_drag_south ,INDEX_NONE, |
131 |
|
|
& 'SEAICE_drag_south =', ' /* Southern Ocean SEAICE_drag */') |
132 |
|
|
CALL WRITE_0D_RL( SEAICE_waterDrag ,INDEX_NONE, |
133 |
|
|
& 'SEAICE_waterDrag =', ' /* water-ice drag * density */') |
134 |
|
|
CALL WRITE_0D_RL( SEAICE_waterDrag_south ,INDEX_NONE, |
135 |
|
|
& 'SEAICE_waterDrag_south =', ' /* Southern Ocean waterDrag */') |
136 |
heimbach |
1.3 |
CALL WRITE_0D_L ( SEAICEuseTILT, INDEX_NONE, |
137 |
|
|
& 'SEAICEuseTILT =', ' /* include surface tilt in dyna. */') |
138 |
dimitri |
1.1 |
CALL WRITE_0D_L ( SEAICEuseTEM, INDEX_NONE, |
139 |
|
|
& 'SEAICEuseTEM =', ' /* use truncated ellipse rheology */') |
140 |
|
|
CALL WRITE_0D_RL( SEAICE_strength ,INDEX_NONE, |
141 |
|
|
& 'SEAICE_strength =', ' /* sea-ice strength Pstar */') |
142 |
heimbach |
1.3 |
CALL WRITE_0D_RL( SEAICEpresH0 ,INDEX_NONE, |
143 |
|
|
& 'SEAICEpresH0 =', ' /* sea-ice strength Heff threshold */') |
144 |
|
|
CALL WRITE_0D_I ( SEAICEpresPow0, INDEX_NONE, |
145 |
|
|
& 'SEAICEpresPow0 =', ' /* exponent for Heff<SEAICEpresH0 */') |
146 |
|
|
CALL WRITE_0D_I ( SEAICEpresPow1, INDEX_NONE, |
147 |
|
|
& 'SEAICEpresPow1 =', ' /* exponent for Heff>SEAICEpresH0 */') |
148 |
torge |
1.4 |
CALL WRITE_0D_I ( SEAICEetaZmethod, INDEX_NONE, |
149 |
|
|
& 'SEAICEetaZmethod =', ' /* method computing eta at Z-point */') |
150 |
dimitri |
1.1 |
CALL WRITE_0D_RL( SEAICE_zetaMin ,INDEX_NONE, |
151 |
|
|
& 'SEAICE_zetaMin =', ' /* lower bound for viscosity */') |
152 |
|
|
CALL WRITE_0D_RL( SEAICE_eccen,INDEX_NONE,'SEAICE_eccen =', |
153 |
|
|
& ' /* elliptical yield curve eccent */') |
154 |
|
|
CALL WRITE_0D_RL( SEAICEstressFactor,INDEX_NONE, |
155 |
|
|
& 'SEAICEstressFactor =',' /* wind stress scaling factor */') |
156 |
|
|
CALL WRITE_0D_RL( SEAICE_airTurnAngle,INDEX_NONE, |
157 |
|
|
& 'SEAICE_airTurnAngle =',' /* air-ice turning angle */') |
158 |
|
|
CALL WRITE_0D_RL( SEAICE_waterTurnAngle,INDEX_NONE, |
159 |
|
|
& 'SEAICE_waterTurnAngle =',' /* ice-water turning angle */') |
160 |
|
|
CALL WRITE_0D_L ( SEAICEuseMetricTerms, INDEX_NONE, |
161 |
|
|
& 'SEAICEuseMetricTerms =', ' /* use metric terms */') |
162 |
|
|
CALL WRITE_0D_L ( SEAICE_no_slip, INDEX_NONE, |
163 |
|
|
& 'SEAICE_no_slip =', ' /* no slip boundary conditions */') |
164 |
|
|
CALL WRITE_0D_L ( SEAICE_clipVelocities, INDEX_NONE, |
165 |
|
|
& 'SEAICE_clipVeloctities =', ' /* impose max. vels. */') |
166 |
|
|
CALL WRITE_0D_L ( useHB87stressCoupling, INDEX_NONE, |
167 |
|
|
& 'useHB87stressCoupling =', ' /* altern. ice-ocean stress */') |
168 |
|
|
CALL WRITE_0D_L ( SEAICE_maskRHS, INDEX_NONE, |
169 |
|
|
& 'SEAICE_maskRHS =', ' /* mask RHS of solver */') |
170 |
|
|
IF (.NOT.SEAICEuseEVP) THEN |
171 |
|
|
CALL WRITE_0D_I ( LSR_mixIniGuess, INDEX_NONE, |
172 |
|
|
& 'LSR_mixIniGuess =', |
173 |
|
|
& ' /* mix free-drift sol. into LSR initial Guess */') |
174 |
|
|
CALL WRITE_0D_I ( SOLV_MAX_ITERS, INDEX_NONE, |
175 |
|
|
& 'SOLV_MAX_ITERS =', ' /* max. number of LSR solver steps */') |
176 |
torge |
1.4 |
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 |
dimitri |
1.1 |
CALL WRITE_0D_RL( LSR_ERROR ,INDEX_NONE, |
181 |
|
|
& 'LSR_ERROR =', ' /* sets accuracy of LSR solver */') |
182 |
|
|
CALL WRITE_0D_I ( SOLV_NCHECK, INDEX_NONE, |
183 |
|
|
& 'SOLV_NCHECK =', ' /* test interval for LSR solver */') |
184 |
|
|
CALL WRITE_0D_I ( NPSEUDOTIMESTEPS, INDEX_NONE, |
185 |
|
|
& 'NPSEUDOTIMESTEPS =', ' /* num. of extra pseudo time steps */') |
186 |
|
|
#ifdef SEAICE_ALLOW_EVP |
187 |
|
|
ELSE |
188 |
|
|
CALL WRITE_0D_RL( SEAICE_elasticParm ,INDEX_NONE, |
189 |
|
|
& 'SEAICE_elasticParm=', ' /* EVP elastic parameter */') |
190 |
|
|
CALL WRITE_0D_RL( SEAICE_evpTauRelax ,INDEX_NONE, |
191 |
|
|
& 'SEAICE_evpTauRelax=', ' /* EVP relaxation timescale */') |
192 |
|
|
CALL WRITE_0D_RL( SEAICE_evpDampC ,INDEX_NONE, |
193 |
|
|
& 'SEAICE_evpDampC =', ' /* EVP damping parameter */') |
194 |
|
|
CALL WRITE_0D_L ( SEAICEuseEVPpickup, INDEX_NONE, |
195 |
|
|
& 'SEAICEuseEVPpickup=', ' /* start EVP solver with EVP pickup*/') |
196 |
|
|
#endif /* SEAICE_ALLOW_EVP */ |
197 |
|
|
ENDIF |
198 |
|
|
|
199 |
|
|
C end if SEAICEuseDYNAMICS bloc |
200 |
|
|
ENDIF |
201 |
|
|
|
202 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
203 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
204 |
|
|
& SQUEEZE_RIGHT, myThid ) |
205 |
|
|
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 |
dimitri |
1.1 |
C-- Thermodynamics parameters |
266 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
267 |
dimitri |
1.1 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
268 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
269 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
270 |
|
|
&' Seaice thermodynamics configuration > START < ' |
271 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
272 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
273 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
274 |
|
|
&' -----------------------------------------------' |
275 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
276 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
277 |
dimitri |
1.1 |
C- note: air and seaice (+ snow ?) density are used in both dynamics & thermo |
278 |
|
|
CALL WRITE_0D_RL( SEAICE_rhoIce ,INDEX_NONE, |
279 |
|
|
& 'SEAICE_rhoIce =', ' /* density of sea ice (kg/m3) */') |
280 |
|
|
CALL WRITE_0D_RL( SEAICE_rhoSnow ,INDEX_NONE, |
281 |
|
|
& 'SEAICE_rhoSnow =', ' /* density of snow (kg/m3) */') |
282 |
|
|
CALL WRITE_0D_RL( SEAICE_rhoAir ,INDEX_NONE, |
283 |
|
|
& 'SEAICE_rhoAir =', ' /* density of air (kg/m3) */') |
284 |
|
|
|
285 |
|
|
CALL WRITE_0D_L ( usePW79thermodynamics, INDEX_NONE, |
286 |
|
|
& 'usePW79thermodynamics =', ' /* default 0-layer TD */') |
287 |
|
|
IF (.NOT.usePW79thermodynamics) THEN |
288 |
|
|
WRITE(msgBuf,'(A)') ' pkg/seaice thermodynamics is OFF ' |
289 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
290 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
291 |
dimitri |
1.1 |
ELSE |
292 |
|
|
|
293 |
|
|
CALL WRITE_0D_RL( SEAICE_lhEvap ,INDEX_NONE, |
294 |
|
|
& 'SEAICE_lhEvap =', ' /* latent heat of evaporation */') |
295 |
|
|
CALL WRITE_0D_RL( SEAICE_lhFusion ,INDEX_NONE, |
296 |
|
|
& 'SEAICE_lhFusion =', ' /* latent heat of fusion */') |
297 |
|
|
CALL WRITE_0D_RL ( SEAICE_mcPheePiston, INDEX_NONE, |
298 |
|
|
& 'SEAICE_mcPheePiston =', |
299 |
|
|
& ' /* turbulent flux "piston velocity" a la McPhee (m/s) */') |
300 |
|
|
CALL WRITE_0D_RL ( SEAICE_mcPheeTaper, INDEX_NONE, |
301 |
|
|
& 'SEAICE_mcPheeTaper =', |
302 |
|
|
& ' /* tapering of turbulent flux (0.< <1.) for AREA=1. */') |
303 |
|
|
CALL WRITE_0D_L ( SEAICE_mcPheeStepFunc, INDEX_NONE, |
304 |
|
|
& 'SEAICE_mcPheeStepFunc =', |
305 |
|
|
& ' /* replace linear tapering with step funct. */') |
306 |
|
|
CALL WRITE_0D_RL ( SEAICE_frazilFrac, INDEX_NONE, |
307 |
|
|
& 'SEAICE_frazilFrac =', |
308 |
|
|
& ' /* frazil (T<tempFrz) to seaice conversion rate (0.< <1.) */') |
309 |
|
|
CALL WRITE_0D_RL( SEAICE_tempFrz0 ,INDEX_NONE, |
310 |
|
|
& 'SEAICE_tempFrz0 =', |
311 |
|
|
& ' /* freezing temp. of sea water (intercept) */') |
312 |
|
|
CALL WRITE_0D_RL( SEAICE_dTempFrz_dS,INDEX_NONE, |
313 |
|
|
& 'SEAICE_dTempFrz_dS=', |
314 |
|
|
& ' /* freezing temp. of sea water (slope) */') |
315 |
|
|
c print the various values meining for SEAICE_areaGain/LossFormula |
316 |
|
|
WRITE(msgBuf,'(2A)') 'SEAICE_areaGainFormula =', |
317 |
|
|
& ' /* ice cover gain formula (1,2)*/' |
318 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
319 |
|
|
buffI(1) = SEAICE_areaGainFormula |
320 |
|
|
CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE, |
321 |
|
|
& .FALSE., .TRUE., ioUnit ) |
322 |
|
|
WRITE(msgBuf,'(A)') ' 1=from growth by ATM ' |
323 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
324 |
|
|
WRITE(msgBuf,'(A)') ' 2=from predicted growth by ATM' |
325 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
326 |
|
|
CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid ) |
327 |
|
|
c |
328 |
|
|
WRITE(msgBuf,'(2A)') 'SEAICE_areaLossFormula =', |
329 |
|
|
& ' /* ice cover loss formula (1,2)*/' |
330 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
331 |
|
|
buffI(1) = SEAICE_areaLossFormula |
332 |
|
|
CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE, |
333 |
|
|
& .FALSE., .TRUE., ioUnit ) |
334 |
|
|
WRITE(msgBuf,'(2A)') ' 1=from all but only melt ', |
335 |
|
|
& 'conributions by ATM and OCN' |
336 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
337 |
|
|
WRITE(msgBuf,'(A)') ' 2=from net melt-grow>0 by ATM and OCN' |
338 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
339 |
|
|
WRITE(msgBuf,'(A)') ' 3=from predicted melt by ATM' |
340 |
|
|
CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) |
341 |
|
|
CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid ) |
342 |
|
|
c |
343 |
heimbach |
1.3 |
#ifdef EXF_ALLOW_SEAICE_RELAX |
344 |
|
|
CALL WRITE_0D_RL( SEAICE_tauAreaObsRelax,INDEX_NONE, |
345 |
|
|
& 'SEAICE_tauAreaObsRelax=', |
346 |
|
|
& ' /* relaxation timescale of sea-ice concentration */') |
347 |
|
|
#endif |
348 |
|
|
c |
349 |
dimitri |
1.1 |
CALL WRITE_0D_RL( HO ,INDEX_NONE, |
350 |
|
|
& 'HO =', ' /* nominal thickness of new ice */') |
351 |
|
|
CALL WRITE_0D_RL( HO_south ,INDEX_NONE, |
352 |
|
|
& 'HO_south =', ' /* Southern Ocean HO */') |
353 |
|
|
CALL WRITE_0D_RL( SEAICE_area_max ,INDEX_NONE, |
354 |
|
|
& 'SEAICE_area_max =', |
355 |
|
|
& ' /* set to les than 1. to mimic open leads */') |
356 |
|
|
#ifdef SEAICE_VARIABLE_SALINITY |
357 |
|
|
WRITE(msgBuf,'(A)') |
358 |
|
|
&' Sea ice has a variable salinity such that ' |
359 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
360 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
361 |
dimitri |
1.1 |
CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE, |
362 |
|
|
& 'SEAICE_saltFrac =', |
363 |
|
|
& ' /* fraction of ocn salinity in new ice */') |
364 |
|
|
#else |
365 |
|
|
CALL WRITE_0D_RL( SEAICE_salt0, INDEX_NONE, |
366 |
|
|
& 'SEAICE_salt0 =', ' /* constant sea ice salinity */') |
367 |
|
|
#endif |
368 |
|
|
CALL WRITE_0D_L ( SEAICE_salinityTracer, INDEX_NONE, |
369 |
|
|
& 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */') |
370 |
|
|
CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE, |
371 |
|
|
& 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */') |
372 |
|
|
#ifndef SEAICE_CAP_HEFF |
373 |
|
|
WRITE(msgBuf,'(A,A)') |
374 |
|
|
& 'MAX_HEFF has no effect because SEAICE_CAP_HEFF is undefined' |
375 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
376 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
377 |
dimitri |
1.1 |
#endif /* SEAICE_CAP_HEFF */ |
378 |
|
|
CALL WRITE_0D_RL( MAX_HEFF ,INDEX_NONE, |
379 |
|
|
& 'MAX_HEFF =', ' /* maximum ice thickness */') |
380 |
|
|
|
381 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
382 |
dimitri |
1.1 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
383 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
384 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
385 |
|
|
&' Seaice air-sea fluxes configuration, > START < ' |
386 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
387 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
388 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
389 |
|
|
&' -----------------------------------------------' |
390 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
391 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
392 |
dimitri |
1.1 |
|
393 |
|
|
CALL WRITE_0D_L ( SEAICEheatConsFix, INDEX_NONE, |
394 |
|
|
& 'SEAICEheatConsFix =', |
395 |
|
|
& ' /* accound for ocn<->seaice advect. heat flux */') |
396 |
dimitri |
1.2 |
#ifdef SEAICE_ITD |
397 |
|
|
CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD =' |
398 |
|
|
& , ' /* number of ice thickness categories */') |
399 |
|
|
#else |
400 |
dimitri |
1.1 |
CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim =' |
401 |
|
|
& , ' /* number of ice categories (1 or 7) */') |
402 |
dimitri |
1.2 |
#endif |
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 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
464 |
dimitri |
1.1 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
465 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
466 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
467 |
|
|
&' Seaice initialization and IO config., > START < ' |
468 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
469 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
470 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
471 |
|
|
&' -------------------------------------------------' |
472 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
473 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
474 |
dimitri |
1.1 |
|
475 |
|
|
C-- Initial Condition/Input related param. |
476 |
|
|
CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE, |
477 |
|
|
& 'SEAICE_initialHEFF=', ' /* initial sea-ice thickness */') |
478 |
|
|
CALL WRITE_0D_C( AreaFile, -1, INDEX_NONE, |
479 |
|
|
& 'AreaFile =', ' /* Initial ice concentration File */') |
480 |
|
|
CALL WRITE_0D_C( HeffFile, -1, INDEX_NONE, |
481 |
|
|
& 'HeffFile =', ' /* Initial effective ice thickness File */') |
482 |
|
|
CALL WRITE_0D_C( HsnowFile, -1, INDEX_NONE, |
483 |
|
|
& 'HsnowFile =', ' /* Initial snow thickness File */') |
484 |
|
|
#ifdef SEAICE_VARIABLE_SALINITY |
485 |
|
|
CALL WRITE_0D_C( HsaltFile, -1, INDEX_NONE, |
486 |
|
|
& 'HsaltFile =', ' /* Initial HSALT File */') |
487 |
|
|
#endif |
488 |
|
|
CALL WRITE_0D_C( uIceFile, -1, INDEX_NONE, |
489 |
|
|
& 'uIceFile =', ' /* Initial U-ice velocity File */') |
490 |
|
|
CALL WRITE_0D_C( vIceFile, -1, INDEX_NONE, |
491 |
|
|
& 'vIceFile =', ' /* Initial V-ice velocity File */') |
492 |
|
|
|
493 |
|
|
C-- Output related param. |
494 |
|
|
CALL WRITE_0D_L ( SEAICEwriteState, INDEX_NONE, |
495 |
|
|
& 'SEAICEwriteState =', ' /* write sea ice state to file */') |
496 |
|
|
CALL WRITE_0D_RL( SEAICE_monFreq, INDEX_NONE, |
497 |
|
|
& 'SEAICE_monFreq =',' /* monitor frequency */') |
498 |
|
|
CALL WRITE_0D_RL( SEAICE_dumpFreq ,INDEX_NONE, |
499 |
|
|
& 'SEAICE_dumpFreq =', ' /* dump frequency */') |
500 |
|
|
CALL WRITE_0D_RL( SEAICE_taveFreq ,INDEX_NONE, |
501 |
|
|
& 'SEAICE_taveFreq =', ' /* time-averaging frequency */') |
502 |
|
|
CALL WRITE_0D_L ( SEAICE_mon_stdio, INDEX_NONE, |
503 |
|
|
& 'SEAICE_mon_stdio =',' /* write monitor to std-outp */') |
504 |
|
|
CALL WRITE_0D_L ( SEAICE_dump_mdsio, INDEX_NONE, |
505 |
|
|
& 'SEAICE_dump_mdsio =',' /* write snap-shot using MDSIO */') |
506 |
|
|
CALL WRITE_0D_L ( SEAICE_tave_mdsio, INDEX_NONE, |
507 |
|
|
& 'SEAICE_tave_mdsio =',' /* write TimeAverage using MDSIO */') |
508 |
|
|
#ifdef ALLOW_MNC |
509 |
|
|
CALL WRITE_0D_L ( SEAICE_mon_mnc, INDEX_NONE, |
510 |
|
|
& 'SEAICE_mon_mnc =',' /* write monitor to netcdf file */') |
511 |
|
|
CALL WRITE_0D_L ( SEAICE_dump_mnc, INDEX_NONE, |
512 |
|
|
& 'SEAICE_dump_mnc =',' /* write snap-shot using MNC */') |
513 |
|
|
CALL WRITE_0D_L ( SEAICE_tave_mnc, INDEX_NONE, |
514 |
|
|
& 'SEAICE_tave_mnc =',' /* write TimeAverage using MNC */') |
515 |
|
|
#endif /* ALLOW_MNC */ |
516 |
|
|
|
517 |
|
|
#ifdef ALLOW_SITRACER |
518 |
|
|
CALL WRITE_0D_I ( SItrNumInUse, INDEX_NONE, |
519 |
|
|
& 'SItrNumInUse =', |
520 |
|
|
& ' /* number of tracers that are in use (<SItrMaxNum) */') |
521 |
|
|
DO iTracer = 1, SItrNumInUse |
522 |
|
|
IF (SItrName(iTracer).NE.' ') THEN |
523 |
|
|
WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer, |
524 |
|
|
&' is in use and defined as' |
525 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
526 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
527 |
dimitri |
1.1 |
CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE, |
528 |
|
|
& ' -- SItrMate =',' /* tracer of HEFF or AREA */') |
529 |
|
|
CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE, |
530 |
|
|
& ' -- SItrName =',' /* tracer name*/') |
531 |
|
|
CALL WRITE_0D_C ( SItrNameLong(iTracer), -1, INDEX_NONE, |
532 |
|
|
& ' -- SItrNameLong =',' /* tracer long name*/') |
533 |
|
|
CALL WRITE_0D_C ( SItrFile(iTracer), -1, INDEX_NONE, |
534 |
|
|
& ' -- SItrFile =',' /* tracer initial condition file */') |
535 |
|
|
CALL WRITE_0D_C ( SItrUnit(iTracer), -1, INDEX_NONE, |
536 |
|
|
& ' -- SItrUnit =',' /* tracer unit */') |
537 |
|
|
CALL WRITE_0D_RL ( SItrFromOcean0(iTracer), INDEX_NONE, |
538 |
|
|
& ' -- SItrFromOcean0 =',' /* for new ice from freeze */') |
539 |
|
|
CALL WRITE_0D_RL ( SItrFromOceanFrac(iTracer), INDEX_NONE, |
540 |
|
|
& ' -- SItrFromOceanFrac =',' /* for new ice from freeze */') |
541 |
|
|
CALL WRITE_0D_RL ( SItrFromFlood0(iTracer), INDEX_NONE, |
542 |
|
|
& ' -- SItrFromFlood0 =',' /* for new ice from freeze */') |
543 |
|
|
CALL WRITE_0D_RL ( SItrFromFloodFrac(iTracer), INDEX_NONE, |
544 |
|
|
& ' -- SItrFromFloodFrac =',' /* for new ice from freeze */') |
545 |
|
|
CALL WRITE_0D_RL ( SItrExpand0(iTracer), INDEX_NONE, |
546 |
|
|
& ' -- SItrExpand0 =',' /* for ice cover thermo. expans. */') |
547 |
|
|
|
548 |
|
|
ENDIF |
549 |
|
|
ENDDO |
550 |
|
|
#endif /* ALLOW_SITRACER */ |
551 |
|
|
|
552 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
553 |
dimitri |
1.1 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
554 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
555 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
556 |
|
|
&' Seaice regularization numbers, > START < ' |
557 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
558 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
559 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
560 |
|
|
&' -----------------------------------------------' |
561 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
562 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
563 |
dimitri |
1.1 |
|
564 |
|
|
CALL WRITE_0D_RL( SEAICE_EPS ,INDEX_NONE, |
565 |
|
|
& 'SEAICE_EPS =', ' /* reduce derivative singularities */') |
566 |
|
|
CALL WRITE_0D_RL( SEAICE_EPS_SQ ,INDEX_NONE, |
567 |
|
|
& 'SEAICE_EPS_SQ =', ' /* reduce derivative singularities */') |
568 |
|
|
CALL WRITE_0D_RL( SEAICE_area_reg ,INDEX_NONE, |
569 |
|
|
& 'SEAICE_area_reg =', ' /* reduce derivative singularities */') |
570 |
|
|
CALL WRITE_0D_RL( SEAICE_hice_reg ,INDEX_NONE, |
571 |
|
|
& 'SEAICE_hice_reg =', ' /* reduce derivative singularities */') |
572 |
|
|
CALL WRITE_0D_RL( SEAICE_area_floor ,INDEX_NONE, |
573 |
|
|
& 'SEAICE_area_floor =', ' /* reduce derivative singularities */') |
574 |
|
|
|
575 |
torge |
1.4 |
WRITE(msgBuf,'(A)') ' ' |
576 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
577 |
|
|
& SQUEEZE_RIGHT, myThid ) |
578 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
579 |
|
|
&'// =======================================================' |
580 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
581 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
582 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
583 |
|
|
&'// Seaice configuration (SEAICE_PARM01) >>> END <<<' |
584 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
585 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
586 |
dimitri |
1.1 |
WRITE(msgBuf,'(A)') |
587 |
|
|
&'// =======================================================' |
588 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
589 |
torge |
1.4 |
& SQUEEZE_RIGHT, myThid ) |
590 |
|
|
WRITE(msgBuf,'(A)') ' ' |
591 |
|
|
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
592 |
|
|
& SQUEEZE_RIGHT, myThid ) |
593 |
dimitri |
1.1 |
|
594 |
|
|
_END_MASTER(myThid) |
595 |
|
|
|
596 |
|
|
RETURN |
597 |
|
|
END |