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

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

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

revision 1.3 by heimbach, Mon Oct 22 20:14:13 2012 UTC revision 1.5 by torge, Wed Mar 27 18:59:53 2013 UTC
# Line 18  C     !USES: Line 18  C     !USES:
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
# Line 50  C     == end of interface == Line 51  C     == end of interface ==
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 */')
# Line 96  C--  Time-stepping related param. Line 88  C--  Time-stepping related param.
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,
# Line 116  C--  Seaice-Dynamics parameters Line 107  C--  Seaice-Dynamics parameters
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
# Line 142  C--  Seaice-Dynamics parameters Line 133  C--  Seaice-Dynamics parameters
133       & 'SEAICE_waterDrag  =', ' /* water-ice drag * density */')       & 'SEAICE_waterDrag  =', ' /* water-ice drag * density */')
134        CALL WRITE_0D_RL( SEAICE_waterDrag_south  ,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_waterDrag_south  ,INDEX_NONE,
135       & 'SEAICE_waterDrag_south =', ' /* Southern Ocean waterDrag */')       & 'SEAICE_waterDrag_south =', ' /* Southern Ocean waterDrag */')
136        CALL WRITE_0D_L ( SEAICEuseTILT, INDEX_NONE,        CALL WRITE_0D_L ( SEAICEuseTilt, INDEX_NONE,
137       & 'SEAICEuseTILT     =', ' /* include surface tilt in dyna. */')       & 'SEAICEuseTilt     =', ' /* include surface tilt in dyna. */')
138        CALL WRITE_0D_L ( SEAICEuseTEM, INDEX_NONE,        CALL WRITE_0D_L ( SEAICEuseTEM, INDEX_NONE,
139       & 'SEAICEuseTEM      =', ' /* use truncated ellipse rheology */')       & 'SEAICEuseTEM      =', ' /* use truncated ellipse rheology */')
140        CALL WRITE_0D_RL( SEAICE_strength   ,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_strength   ,INDEX_NONE,
# Line 154  C--  Seaice-Dynamics parameters Line 145  C--  Seaice-Dynamics parameters
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    =',
# Line 180  C--  Seaice-Dynamics parameters Line 173  C--  Seaice-Dynamics parameters
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,
183       & 'SOLV_NCHECK       =', ' /* test interval for LSR solver */')       & 'SOLV_NCHECK       =', ' /* test interval for LSR solver */')
184         CALL WRITE_0D_I ( NPSEUDOTIMESTEPS,  INDEX_NONE,         CALL WRITE_0D_I ( NPSEUDOTIMESTEPS,  INDEX_NONE,
185       & 'NPSEUDOTIMESTEPS  =', ' /* num. of extra pseudo time steps */')       & 'NPSEUDOTIMESTEPS  =', ' /* num. of extra pseudo time steps */')
186           CALL WRITE_0D_L ( SEAICEuseMultiTileSolver, INDEX_NONE,
187         & 'SEAICEuseMultiTileSolver =',
188         & ' /* use full domain tri-diag solver */')
189           CALL WRITE_0D_I ( SEAICE_OLx,  INDEX_NONE,
190         & 'SEAICE_OLx =', ' /* overlap for LSR/preconditioner */')
191           CALL WRITE_0D_I ( SEAICE_OLy,  INDEX_NONE,
192         & 'SEAICE_OLy =', ' /* overlap for LSR/preconditioner */')
193    #ifdef SEAICE_ALLOW_JFNK
194           IF ( SEAICEuseJFNK ) THEN
195            CALL WRITE_0D_I ( SEAICEnewtonIterMax,  INDEX_NONE,
196         & 'SEAICEnewtonIterMax =', ' /* num. of JFNK Newton steps */')
197            CALL WRITE_0D_I ( SEAICEkrylovIterMax,  INDEX_NONE,
198         & 'SEAICEkrylovIterMax =', ' /* num. of JFNK Krylov steps */')
199            CALL WRITE_0D_I ( SEAICE_JFNK_lsIter,  INDEX_NONE,
200         & 'SEAICE_JFNK_lsIter =', ' /* start of line search */')
201            CALL WRITE_0D_I ( SEAICE_JFNK_tolIter,  INDEX_NONE,
202         & 'SEAICE_JFNK_tolIter =', ' /* tol. is relaxed after this */')
203            CALL WRITE_0D_RL( JFNKgamma_nonlin  ,INDEX_NONE,
204         & 'JFNKgamma_nonlin=', ' /* JFNK tolerance */')
205            CALL WRITE_0D_RL( JFNKres_t  ,INDEX_NONE,
206         & 'JFNKres_t=', ' /* JFNK parameter */')      
207            CALL WRITE_0D_RL( JFNKres_tFac  ,INDEX_NONE,
208         & 'JFNKres_tFac=', ' /* JFNK parameter */')      
209            CALL WRITE_0D_RL( SEAICE_JFNKepsilon, INDEX_NONE,
210         & 'SEAICE_JFNKepsilon=', ' /* JFNK: FD-gradient step size */')      
211           ENDIF
212    #endif /* SEAICE_ALLOW_JFNK */
213  #ifdef SEAICE_ALLOW_EVP  #ifdef SEAICE_ALLOW_EVP
214        ELSE        ELSE
215         CALL WRITE_0D_RL( SEAICE_elasticParm  ,INDEX_NONE,         CALL WRITE_0D_RL( SEAICE_elasticParm  ,INDEX_NONE,
# Line 194  C--  Seaice-Dynamics parameters Line 218  C--  Seaice-Dynamics parameters
218       & 'SEAICE_evpTauRelax=', ' /* EVP relaxation timescale */')       & 'SEAICE_evpTauRelax=', ' /* EVP relaxation timescale */')
219         CALL WRITE_0D_RL( SEAICE_evpDampC  ,INDEX_NONE,         CALL WRITE_0D_RL( SEAICE_evpDampC  ,INDEX_NONE,
220       & 'SEAICE_evpDampC   =', ' /* EVP damping parameter */')       & 'SEAICE_evpDampC   =', ' /* EVP damping parameter */')
221        CALL WRITE_0D_L ( SEAICEuseEVPpickup, INDEX_NONE,         CALL WRITE_0D_L ( SEAICEuseEVPstar, INDEX_NONE,
222         & 'SEAICEuseEVPstar=', ' /* use EVP* solver */')
223           CALL WRITE_0D_RL( SEAICE_evpAlpha  ,INDEX_NONE,
224         & 'SEAICE_evpAlpha   =', ' /* EVP* parameter*/')
225           CALL WRITE_0D_RL( SEAICE_evpBeta   ,INDEX_NONE,
226         & 'SEAICE_evpBeta    =', ' /* EVP*  parameter */')
227           CALL WRITE_0D_I ( SEAICEnEVPstarSteps,  INDEX_NONE,
228         & 'SEAICEnEVPstarSteps =', ' /* num. of EVP* steps */')
229           CALL WRITE_0D_L ( SEAICEuseEVPpickup, INDEX_NONE,
230       & 'SEAICEuseEVPpickup=', ' /* start EVP solver with EVP pickup*/')       & 'SEAICEuseEVPpickup=', ' /* start EVP solver with EVP pickup*/')
231  #endif /* SEAICE_ALLOW_EVP */  #endif /* SEAICE_ALLOW_EVP */
232        ENDIF        ENDIF
# Line 202  C--  Seaice-Dynamics parameters Line 234  C--  Seaice-Dynamics parameters
234  C     end if SEAICEuseDYNAMICS bloc  C     end if SEAICEuseDYNAMICS bloc
235        ENDIF        ENDIF
236    
237  C--  Thermodynamics parameters        WRITE(msgBuf,'(A)') ' '
238          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
239         &                    SQUEEZE_RIGHT, myThid )
240          WRITE(msgBuf,'(A)')
241         &'   Seaice advection diffusion config,   > START <  '
242          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
243         &                    SQUEEZE_RIGHT, myThid )
244          WRITE(msgBuf,'(A)')
245         &'   -----------------------------------------------'
246          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
247         &                    SQUEEZE_RIGHT, myThid )
248          IF ( useThSIce ) THEN
249        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
250       &' '       &'   ==> advection diffusion done in pkg ThSIce'
251          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
252         &                    SQUEEZE_RIGHT, myThid )
253          ELSE
254    
255          CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE,
256         & 'SEAICEadvHeff =', ' /* advect effective ice thickness */')
257          CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE,
258         & 'SEAICEadvArea =', ' /* advect fractional ice area */')
259          CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE,
260         & 'SEAICEadvSnow =', ' /* advect snow layer together with ice */')
261    #ifdef SEAICE_VARIABLE_SALINITY
262          CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE,
263         & 'SEAICEadvSalt =', ' /* advect salinity together with ice */')
264    #endif
265          CALL WRITE_0D_I ( SEAICEadvScheme,   INDEX_NONE,
266         & 'SEAICEadvScheme   =', ' /* advection scheme for ice */')
267          IF ( SEAICEadvScheme .EQ. 2 )
268         & CALL WRITE_0D_L ( SEAICEuseFluxForm,   INDEX_NONE,
269         & 'SEAICEuseFluxForm =', ' /* advection in FV flux form */')
270          IF ( SEAICEadvArea )
271         &CALL WRITE_0D_I ( SEAICEadvSchArea,   INDEX_NONE,
272         & 'SEAICEadvSchArea   =', ' /* advection scheme for area */')
273          IF ( SEAICEadvHeff )
274         &CALL WRITE_0D_I ( SEAICEadvSchHeff,   INDEX_NONE,
275         & 'SEAICEadvSchHeff   =', ' /* advection scheme for thickness */')
276          IF ( SEAICEadvSnow )
277         &CALL WRITE_0D_I ( SEAICEadvSchSnow,   INDEX_NONE,
278         & 'SEAICEadvSchSnow   =', ' /* advection scheme for snow */')
279    #ifdef SEAICE_VARIABLE_SALINITY
280          IF ( SEAICEadvSalt )
281         &CALL WRITE_0D_I ( SEAICEadvSchSalt,   INDEX_NONE,
282         & 'SEAICEadvSchSalt   =', ' /* advection scheme for salt */')
283    #endif
284          CALL WRITE_0D_RL( SEAICEdiffKhArea,   INDEX_NONE,
285         & 'SEAICEdiffKhArea   =', ' /* diffusivity (m^2/s) for area */')
286          CALL WRITE_0D_RL( SEAICEdiffKhHeff,   INDEX_NONE,
287         & 'SEAICEdiffKhHeff   =', ' /* diffusivity (m^2/s) for heff */')
288          CALL WRITE_0D_RL( SEAICEdiffKhSnow,   INDEX_NONE,
289         & 'SEAICEdiffKhSnow   =', ' /* diffusivity (m^2/s) for snow */')
290          IF ( SEAICEadvSalt )
291         &CALL WRITE_0D_RL( SEAICEdiffKhSalt,   INDEX_NONE,
292         & 'SEAICEdiffKhSalt   =', ' /* diffusivity (m^2/s) for salt */')
293          CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1             =',
294         &                  ' /* parameter used in advect.F [m/s] */')
295    
296    C     end if useThSIce bloc
297          ENDIF
298    
299    
300    C--  Thermodynamics parameters
301          WRITE(msgBuf,'(A)') ' '
302        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
303       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
304        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
305       &'   Seaice thermodynamics configuration   > START <  '       &'   Seaice thermodynamics configuration   > START <  '
306        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
307       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
308        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
309       &'   -----------------------------------------------'       &'   -----------------------------------------------'
310        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
311       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
312  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
313        CALL WRITE_0D_RL( SEAICE_rhoIce     ,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_rhoIce     ,INDEX_NONE,
314       & 'SEAICE_rhoIce     =', ' /* density of sea ice (kg/m3) */')       & 'SEAICE_rhoIce     =', ' /* density of sea ice (kg/m3) */')
# Line 228  C- note: air and seaice (+ snow ?) densi Line 322  C- note: air and seaice (+ snow ?) densi
322        IF (.NOT.usePW79thermodynamics) THEN        IF (.NOT.usePW79thermodynamics) THEN
323        WRITE(msgBuf,'(A)') '   pkg/seaice thermodynamics is OFF  '        WRITE(msgBuf,'(A)') '   pkg/seaice thermodynamics is OFF  '
324        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
325       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
326        ELSE        ELSE
327    
328        CALL WRITE_0D_RL( SEAICE_lhEvap     ,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_lhEvap     ,INDEX_NONE,
# Line 298  c Line 392  c
392        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
393       &'   Sea ice has a variable salinity such that '       &'   Sea ice has a variable salinity such that '
394        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
395       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
396        CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE,
397       & 'SEAICE_saltFrac =',       & 'SEAICE_saltFrac =',
398       & ' /* fraction of ocn salinity in new ice */')       & ' /* fraction of ocn salinity in new ice */')
# Line 310  c Line 404  c
404       & 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */')       & 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */')
405        CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE,        CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE,
406       & 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */')       & 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */')
 #ifndef SEAICE_CAP_HEFF  
       WRITE(msgBuf,'(A,A)')  
      &     'MAX_HEFF has no effect because SEAICE_CAP_HEFF is undefined'  
       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,  
      &                    SQUEEZE_RIGHT , myThid)  
 #endif /* SEAICE_CAP_HEFF */  
       CALL WRITE_0D_RL( MAX_HEFF          ,INDEX_NONE,  
      & 'MAX_HEFF          =', ' /* maximum ice thickness */')  
   
       WRITE(msgBuf,'(A)')  
      &' '  
       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,  
      &                    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] */')  
407    
408        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)') ' '
      &' '  
409        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
410       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
411        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
412       &'   Seaice air-sea fluxes configuration,   > START <  '       &'   Seaice air-sea fluxes configuration,   > START <  '
413        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
414       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
415        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
416       &'   -----------------------------------------------'       &'   -----------------------------------------------'
417        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
418       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
419    
420        CALL WRITE_0D_L ( SEAICEheatConsFix,  INDEX_NONE,        CALL WRITE_0D_L ( SEAICEheatConsFix,  INDEX_NONE,
421       & 'SEAICEheatConsFix  =',       & 'SEAICEheatConsFix  =',
422       & ' /* accound for ocn<->seaice advect. heat flux */')       & ' /* accound for ocn<->seaice advect. heat flux */')
 CToM<<<  
423  #ifdef SEAICE_ITD  #ifdef SEAICE_ITD
424        CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD              ='        CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD              ='
425       & , ' /* number of ice thickness categories */')       & , ' /* number of ice thickness categories */')
426  #else  #else
 CToM>>>        
427        CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim    ='        CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim    ='
428       & , ' /* number of ice categories (1 or 7) */')       & , ' /* number of ice categories (1 or 7) */')
 CToM<<<  
429  #endif  #endif
 CToM>>>  
430        CALL WRITE_0D_I ( IMAX_TICE,         INDEX_NONE,        CALL WRITE_0D_I ( IMAX_TICE,         INDEX_NONE,
431       & 'IMAX_TICE         =', ' /* iterations for ice surface temp */')       & 'IMAX_TICE         =', ' /* iterations for ice surface temp */')
432        CALL WRITE_0D_I ( postSolvTempIter,  INDEX_NONE,        CALL WRITE_0D_I ( postSolvTempIter,  INDEX_NONE,
# Line 460  CToM>>> Line 487  CToM>>>
487  C     end if usePW79thermodynamics bloc  C     end if usePW79thermodynamics bloc
488        ENDIF        ENDIF
489    
490        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)') ' '
      &' '  
491        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
492       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
493        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
494       &'   Seaice initialization and IO config.,   > START <  '       &'   Seaice initialization and IO config.,   > START <  '
495        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
496       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
497        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
498       &'   -------------------------------------------------'       &'   -------------------------------------------------'
499        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
500       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
501    
502  C--  Initial Condition/Input related param.  C--  Initial Condition/Input related param.
503        CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE,
# Line 524  C--  Output related param. Line 550  C--  Output related param.
550        WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer,        WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer,
551       &' is in use and defined as'       &' is in use and defined as'
552        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
553       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
554         CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE,         CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE,
555       & '  -- SItrMate =',' /* tracer of HEFF or AREA */')       & '  -- SItrMate =',' /* tracer of HEFF or AREA */')
556         CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE,         CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE,
# Line 550  C--  Output related param. Line 576  C--  Output related param.
576        ENDDO        ENDDO
577  #endif /* ALLOW_SITRACER */  #endif /* ALLOW_SITRACER */
578    
579        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)') ' '
      &' '  
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 regularization numbers,   > START <  '       &'   Seaice regularization numbers,   > START <  '
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    
591        CALL WRITE_0D_RL( SEAICE_EPS        ,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_EPS        ,INDEX_NONE,
592       & 'SEAICE_EPS        =', ' /* reduce derivative singularities */')       & 'SEAICE_EPS        =', ' /* reduce derivative singularities */')
# Line 574  C--  Output related param. Line 599  C--  Output related param.
599        CALL WRITE_0D_RL( SEAICE_area_floor        ,INDEX_NONE,        CALL WRITE_0D_RL( SEAICE_area_floor        ,INDEX_NONE,
600       & 'SEAICE_area_floor =', ' /* reduce derivative singularities */')       & 'SEAICE_area_floor =', ' /* reduce derivative singularities */')
601    
602          WRITE(msgBuf,'(A)') ' '
603          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
604         &                    SQUEEZE_RIGHT, myThid )
605        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
606       &'// ======================================================='       &'// ======================================================='
607        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
608       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
609        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
610       &'// Seaice configuration (SEAICE_PARM01) >>> END <<<'       &'// Seaice configuration (SEAICE_PARM01) >>> END <<<'
611        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
612       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
613        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)')
614       &'// ======================================================='       &'// ======================================================='
615        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
616       &                    SQUEEZE_RIGHT , myThid)       &                    SQUEEZE_RIGHT, myThid )
617        WRITE(msgBuf,'(A)')        WRITE(msgBuf,'(A)') ' '
618          CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
619         &                    SQUEEZE_RIGHT, myThid )
620    
621        _END_MASTER(myThid)        _END_MASTER(myThid)
622    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.5

  ViewVC Help
Powered by ViewVC 1.1.22