Back to home page

MITgcm

 
 

    


File indexing completed on 2023-12-05 06:11:00 UTC

view on githubraw file Latest commit 143d9ce8 on 2023-12-04 15:35:20 UTC
8d9f2d1888 Dimi*0001 #include "SEAICE_OPTIONS.h"
                0002 
a2d714f5b7 Jean*0003 CBOP
                0004 C     !ROUTINE: SEAICE_SUMMARY
                0005       SUBROUTINE SEAICE_SUMMARY( myThid )
8d9f2d1888 Dimi*0006 
a2d714f5b7 Jean*0007 C     !DESCRIPTION:
                0008 C     *==========================================================*
                0009 C     | SUBROUTINE SEAICE_SUMMARY
                0010 C     | o Summarize pkg/seaice parameters.
                0011 C     *==========================================================*
8d9f2d1888 Dimi*0012 
a2d714f5b7 Jean*0013 C     !USES:
                0014       IMPLICIT NONE
                0015 C     == global variables ==
03c669d1ab Jean*0016 #include "SIZE.h"
8d9f2d1888 Dimi*0017 #include "EEPARAMS.h"
c892c3f446 Jean*0018 #include "PARAMS.h"
03c669d1ab Jean*0019 #include "SEAICE_SIZE.h"
8d9f2d1888 Dimi*0020 #include "SEAICE_PARAMS.h"
1ed503f8a3 Gael*0021 #ifdef ALLOW_SITRACER
                0022 # include "SEAICE_TRACER.h"
                0023 #endif
8d9f2d1888 Dimi*0024 
a2d714f5b7 Jean*0025 C     !INPUT PARAMETERS:
                0026 C     == routine arguments ==
3de1dea93d Jean*0027 C     myThid     :: my Thread Id. number
a2d714f5b7 Jean*0028       INTEGER myThid
                0029 CEOP
8d9f2d1888 Dimi*0030 
a2d714f5b7 Jean*0031 C     !LOCAL VARIABLES:
                0032 C     == local variables ==
3de1dea93d Jean*0033 C     msgBuf     :: Informational/error message buffer
a2d714f5b7 Jean*0034       CHARACTER*(MAX_LEN_MBUF) msgBuf
09df950255 Gael*0035       INTEGER buffI(1)
                0036       CHARACTER*10 endList
                0037       INTEGER ioUnit
1ed503f8a3 Gael*0038 #ifdef ALLOW_SITRACER
                0039       INTEGER iTracer
                0040 #endif
8d9f2d1888 Dimi*0041 
a2d714f5b7 Jean*0042 C     == end of interface ==
8d9f2d1888 Dimi*0043 
                0044       _BARRIER
                0045       _BEGIN_MASTER(myThid)
                0046 
09df950255 Gael*0047       endList = '    ;     '
                0048       ioUnit = standardMessageUnit
                0049 
a2d714f5b7 Jean*0050       WRITE(msgBuf,'(A)')
8d9f2d1888 Dimi*0051      &'// ======================================================='
a2d714f5b7 Jean*0052       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0053      &                    SQUEEZE_RIGHT, myThid )
a2d714f5b7 Jean*0054       WRITE(msgBuf,'(A)')
8d9f2d1888 Dimi*0055      &'// Seaice configuration (SEAICE_PARM01) >>> START <<<'
a2d714f5b7 Jean*0056       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0057      &                    SQUEEZE_RIGHT, myThid )
a2d714f5b7 Jean*0058       WRITE(msgBuf,'(A)')
8d9f2d1888 Dimi*0059      &'// ======================================================='
a2d714f5b7 Jean*0060       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0061      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0062 
                0063 C--  Time-stepping related param.
                0064 
c892c3f446 Jean*0065       WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0066       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0067      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0068       WRITE(msgBuf,'(A)')
                0069      &'   Seaice time stepping configuration   > START <  '
                0070       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0071      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0072       WRITE(msgBuf,'(A)')
                0073      &'   ----------------------------------------------'
                0074       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0075      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0076 
                0077       CALL WRITE_0D_RL( SEAICE_deltaTtherm,INDEX_NONE,
                0078      & 'SEAICE_deltaTtherm=', ' /* thermodynamic timestep */')
                0079       CALL WRITE_0D_RL( SEAICE_deltaTdyn  ,INDEX_NONE,
                0080      & 'SEAICE_deltaTdyn  =', ' /* dynamic timestep */')
                0081 #ifdef SEAICE_ALLOW_EVP
                0082       CALL WRITE_0D_RL( SEAICE_deltaTevp  ,INDEX_NONE,
                0083      & 'SEAICE_deltaTevp  =', ' /* EVP timestep */')
                0084 #endif
e501eee760 Mart*0085       CALL WRITE_0D_L ( SEAICEuseBDF2, INDEX_NONE,
                0086      & 'SEAICEuseBDF2  =',' /* use backw. differencing for mom. eq. */')
210ee8461e jm-c 0087       CALL WRITE_0D_L ( SEAICEupdateOceanStress, INDEX_NONE,
                0088      & 'SEAICEupdateOceanStress=', ' /* update Ocean surf. stress */')
09df950255 Gael*0089       CALL WRITE_0D_L ( SEAICErestoreUnderIce, INDEX_NONE,
                0090      & 'SEAICErestoreUnderIce  =', ' /* restore T and S under ice */')
                0091 
c892c3f446 Jean*0092       WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0093       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0094      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0095       WRITE(msgBuf,'(A)')
                0096      &'   Seaice dynamics configuration   > START <  '
                0097       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0098      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0099       WRITE(msgBuf,'(A)')
                0100      &'   ------------------------------------------'
                0101       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0102      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0103 
3de1dea93d Jean*0104 C--  Seaice-Dynamics parameters
09df950255 Gael*0105       CALL WRITE_0D_L ( SEAICEuseDYNAMICS, INDEX_NONE,
                0106      & 'SEAICEuseDYNAMICS =', ' /* use dynamics */')
                0107 
4eb4a54cba Jean*0108       IF (.NOT.SEAICEuseDYNAMICS) THEN
09df950255 Gael*0109       WRITE(msgBuf,'(A)') '   pkg/seaice dynamics is OFF  '
                0110       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0111      &                    SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0112       ELSE
09df950255 Gael*0113 
5991234e7e Mart*0114 #ifdef SEAICE_CGRID
                0115       CALL WRITE_0D_C( 'C-GRID', -1, INDEX_NONE,
                0116      & 'model grid type   =', ' /* type of sea ice model grid */')
                0117 #else /* not SEAICE_CGRID */
                0118       CALL WRITE_0D_C( 'B-GRID', -1, INDEX_NONE,
                0119      & 'model grid type   =', ' /* type of sea ice model grid */')
                0120 #endif /* SEAICE_CGRID */
1459e8fe5a Mart*0121       CALL WRITE_0D_L ( SEAICEuseStrImpCpl, INDEX_NONE,
                0122      & 'SEAICEuseStrImpCpl =', ' /* use strongly implicit coupling */')
c8739d4898 Mart*0123       CALL WRITE_0D_L ( SEAICEusePicardAsPrecon, INDEX_NONE,
                0124      & 'SEAICEusePicardAsPrecon =', ' /* Picard as preconditioner */')
                0125       CALL WRITE_0D_L ( SEAICEuseLSR, INDEX_NONE,
1ac05d2425 Mart*0126      & 'SEAICEuseLSR      =', ' /* use default Picard-LSR solver */')
143d9ce879 Dami*0127       CALL WRITE_0D_L ( SEAICEuseLSRflex, INDEX_NONE,
                0128      & 'SEAICEuseLSRflex  =', ' /* with residual norm criterion */')
1ac05d2425 Mart*0129       CALL WRITE_0D_L ( SEAICEuseKrylov, INDEX_NONE,
                0130      & 'SEAICEuseKrylov   =', ' /* use Picard-Krylov solver */')
09df950255 Gael*0131       CALL WRITE_0D_L ( SEAICEuseEVP, INDEX_NONE,
279a21fda0 Gael*0132      & 'SEAICEuseEVP      =', ' /* use EVP solver rather than LSR */')
1ac05d2425 Mart*0133       CALL WRITE_0D_L ( SEAICEuseJFNK, INDEX_NONE,
                0134      & 'SEAICEuseJFNK     =', ' /* use JFNK solver */')
3de1dea93d Jean*0135 #ifdef SEAICE_ALLOW_FREEDRIFT
                0136       CALL WRITE_0D_L ( SEAICEuseFREEDRIFT, INDEX_NONE,
                0137      & 'SEAICEuseFREEDRIFT =', ' /* use free drift solution */')
                0138 #endif /* SEAICE_ALLOW_FREEDRIFT */
09df950255 Gael*0139       CALL WRITE_0D_RL( OCEAN_drag        ,INDEX_NONE,
                0140      & 'OCEAN_drag        =', ' /* air-ocean drag coefficient */')
                0141       CALL WRITE_0D_RL( SEAICE_drag       ,INDEX_NONE,
                0142      & 'SEAICE_drag       =', ' /* air-ice drag coefficient */')
                0143       CALL WRITE_0D_RL( SEAICE_drag_south       ,INDEX_NONE,
                0144      & 'SEAICE_drag_south      =', ' /* Southern Ocean SEAICE_drag */')
                0145       CALL WRITE_0D_RL( SEAICE_waterDrag  ,INDEX_NONE,
5867b94c2f Mart*0146      & 'SEAICE_waterDrag  =', ' /* water-ice drag (no units) */')
09df950255 Gael*0147       CALL WRITE_0D_RL( SEAICE_waterDrag_south  ,INDEX_NONE,
5867b94c2f Mart*0148      & 'SEAICE_waterDrag_south =',
                0149      & ' /* Southern Ocean waterDrag (no units) */')
                0150       CALL WRITE_0D_RL( SEAICEdWatMin ,INDEX_NONE, 'SEAICEdWatMin =',
                0151      & ' /* minimum linear water-ice drag (in m/s) */')
abb637800a Mart*0152 #ifdef SEAICE_ALLOW_BOTTOMDRAG
                0153       IF ( SEAICEbasalDragK2 .NE. 0. _d 0 ) THEN
                0154        CALL WRITE_0D_RL( SEAICE_cBasalStar ,INDEX_NONE,
                0155      &      'SEAICE_cBasalStar =', ' /* Basal drag parameter */')
                0156        CALL WRITE_0D_RL( SEAICEbasalDragU0 ,INDEX_NONE,
                0157      &      'SEAICEbasalDragU0 =', ' /* Basal drag parameter */')
                0158        CALL WRITE_0D_RL( SEAICEbasalDragK1 ,INDEX_NONE,
                0159      &      'SEAICEbasalDragK1 =', ' /* Basal drag parameter */')
                0160       ENDIF
                0161       CALL WRITE_0D_RL( SEAICEbasalDragK2 ,INDEX_NONE,
                0162      &     'SEAICEbasalDragK2 =', ' /* Basal drag parameter */')
                0163 #endif /* SEAICE_ALLOW_BOTTOMDRAG */
f82b316546 Jean*0164       CALL WRITE_0D_L ( SEAICEuseTilt, INDEX_NONE,
                0165      & 'SEAICEuseTilt     =', ' /* include surface tilt in dyna. */')
dadd13178c Mart*0166       CALL WRITE_0D_L ( SEAICEuseTEM, INDEX_NONE,
                0167      & 'SEAICEuseTEM      =', ' /* use truncated ellipse rheology */')
3de1dea93d Jean*0168       CALL WRITE_0D_RL( SEAICE_strength   ,INDEX_NONE,
                0169      & 'SEAICE_strength   =', ' /* sea-ice strength Pstar */')
ba6cfc5714 Mart*0170       CALL WRITE_0D_RL( SEAICE_cStar   ,INDEX_NONE,
                0171      & 'SEAICE_cStar      =', ' /* sea-ice strength parameter cStar */')
0adbdb4edd Mart*0172       CALL WRITE_0D_RL( SEAICEpressReplFac,INDEX_NONE,
                0173      & 'SEAICEpressReplFac=', ' /* press. replacement method factor */')
ba6cfc5714 Mart*0174       CALL WRITE_0D_RL( SEAICE_tensilFac   ,INDEX_NONE,
                0175      & 'SEAICE_tensilFac  =', ' /* sea-ice tensile strength factor */')
d104051171 Mart*0176       CALL WRITE_0D_RL( SEAICE_tensilDepth ,INDEX_NONE,
                0177      & 'SEAICE_tensilDepth=', ' /* crit. depth for tensile strength */')
76c8933abb Gael*0178       CALL WRITE_0D_RL( SEAICEpresH0   ,INDEX_NONE,
                0179      & 'SEAICEpresH0   =', ' /* sea-ice strength Heff threshold */')
                0180        CALL WRITE_0D_I ( SEAICEpresPow0,    INDEX_NONE,
                0181      & 'SEAICEpresPow0 =', ' /* exponent for Heff<SEAICEpresH0 */')
                0182        CALL WRITE_0D_I ( SEAICEpresPow1,    INDEX_NONE,
                0183      & 'SEAICEpresPow1 =', ' /* exponent for Heff>SEAICEpresH0 */')
2349c46237 Mart*0184        CALL WRITE_0D_I ( SEAICEetaZmethod,  INDEX_NONE,
                0185      & 'SEAICEetaZmethod =', ' /* method computing eta at Z-point */')
5fe78992ba Mart*0186       CALL WRITE_0D_RL( SEAICE_zetaMaxFac  ,INDEX_NONE,
                0187      & 'SEAICE_zetaMaxFac =', ' /* factor for upper viscosity bound */')
3de1dea93d Jean*0188       CALL WRITE_0D_RL( SEAICE_zetaMin  ,INDEX_NONE,
                0189      & 'SEAICE_zetaMin    =', ' /* lower bound for viscosity */')
279a21fda0 Gael*0190       CALL WRITE_0D_RL( SEAICE_eccen,INDEX_NONE,'SEAICE_eccen    =',
                0191      & ' /* elliptical yield curve eccent */')
                0192       CALL WRITE_0D_RL( SEAICEstressFactor,INDEX_NONE,
                0193      & 'SEAICEstressFactor    =',' /* wind stress scaling factor */')
                0194       CALL WRITE_0D_RL( SEAICE_airTurnAngle,INDEX_NONE,
                0195      & 'SEAICE_airTurnAngle    =',' /* air-ice turning angle */')
                0196       CALL WRITE_0D_RL( SEAICE_waterTurnAngle,INDEX_NONE,
                0197      & 'SEAICE_waterTurnAngle  =',' /* ice-water turning angle */')
4935169c82 Mart*0198       CALL WRITE_0D_L ( SEAICEuseMetricTerms, INDEX_NONE,
                0199      & 'SEAICEuseMetricTerms =', ' /* use metric terms */')
ba20a6318c Mart*0200       CALL WRITE_0D_L ( SEAICE_no_slip, INDEX_NONE,
                0201      & 'SEAICE_no_slip    =', ' /* no slip boundary conditions */')
5dac41bc68 Mart*0202       CALL WRITE_0D_L ( SEAICE_2ndOrderBC, INDEX_NONE,
210ee8461e jm-c 0203      & 'SEAICE_2ndOrderBC =',
5dac41bc68 Mart*0204      & ' /* 2nd order no slip boundary conditions */')
964bee0e43 Mart*0205       CALL WRITE_0D_L ( SEAICE_clipVelocities, INDEX_NONE,
                0206      & 'SEAICE_clipVeloctities =', ' /* impose max. vels. */')
                0207       CALL WRITE_0D_L ( useHB87stressCoupling, INDEX_NONE,
                0208      & 'useHB87stressCoupling  =', ' /* altern. ice-ocean stress */')
d104051171 Mart*0209       CALL WRITE_0D_L ( SEAICEscaleSurfStress, INDEX_NONE,
210ee8461e jm-c 0210      & 'SEAICEscaleSurfStress  =',
d104051171 Mart*0211      & ' /* scale atm. and ocean-surface stress with AREA */')
3de1dea93d Jean*0212       CALL WRITE_0D_L ( SEAICE_maskRHS, INDEX_NONE,
                0213      & 'SEAICE_maskRHS    =', ' /* mask RHS of solver */')
79022779f5 Mart*0214       CALL WRITE_0D_L ( SEAICEaddSnowMass, INDEX_NONE,
                0215      & 'SEAICEaddSnowMass =', ' /* add snow mass to seaiceMassC/U/V */')
4eb4a54cba Jean*0216       IF (.NOT.SEAICEuseEVP) THEN
09df950255 Gael*0217        CALL WRITE_0D_I ( LSR_mixIniGuess, INDEX_NONE,
3de1dea93d Jean*0218      & 'LSR_mixIniGuess =',
                0219      & ' /* mix free-drift sol. into LSR initial Guess */')
e45202e340 Mart*0220        CALL WRITE_0D_RL( SEAICE_LSRrelaxU  ,INDEX_NONE,
                0221      & 'SEAICE_LSRrelaxU  =', ' /* LSR solver: relaxation parameter */')
                0222        CALL WRITE_0D_RL( SEAICE_LSRrelaxV  ,INDEX_NONE,
                0223      & 'SEAICE_LSRrelaxV  =', ' /* LSR solver: relaxation parameter */')
09df950255 Gael*0224        CALL WRITE_0D_RL( LSR_ERROR         ,INDEX_NONE,
3de1dea93d Jean*0225      & 'LSR_ERROR         =', ' /* sets accuracy of LSR solver */')
09df950255 Gael*0226        CALL WRITE_0D_I ( SOLV_NCHECK,       INDEX_NONE,
03c669d1ab Jean*0227      & 'SOLV_NCHECK       =', ' /* test interval for LSR solver */')
a88fc20c6c Mart*0228        CALL WRITE_0D_L ( SEAICEuseMultiTileSolver, INDEX_NONE,
f82b316546 Jean*0229      & 'SEAICEuseMultiTileSolver =',
                0230      & ' /* use full domain tri-diag solver */')
f36ae1a664 Mart*0231        CALL WRITE_0D_I ( SEAICE_OLx,  INDEX_NONE,
                0232      & 'SEAICE_OLx =', ' /* overlap for LSR/preconditioner */')
                0233        CALL WRITE_0D_I ( SEAICE_OLy,  INDEX_NONE,
                0234      & 'SEAICE_OLy =', ' /* overlap for LSR/preconditioner */')
79df32c3f1 Mart*0235        CALL WRITE_0D_I ( SEAICEnonLinIterMax,  INDEX_NONE,
210ee8461e jm-c 0236      & 'SEAICEnonLinIterMax =',
79df32c3f1 Mart*0237      & ' /* max. number of nonlinear solver steps */')
                0238        CALL WRITE_0D_I ( SEAICElinearIterMax,  INDEX_NONE,
210ee8461e jm-c 0239      & 'SEAICElinearIterMax =',
79df32c3f1 Mart*0240      & ' /* max. number of linear solver steps */')
                0241        CALL WRITE_0D_RL( SEAICEnonLinTol  ,INDEX_NONE,
                0242      & 'SEAICEnonLinTol     =', ' /* non-linear solver tolerance */')
                0243 #if (defined SEAICE_ALLOW_JFNK) || (defined SEAICE_ALLOW_KRYLOV)
                0244        IF ( SEAICEuseJFNK.OR.SEAICEuseKrylov ) THEN
                0245         CALL WRITE_0D_I ( SEAICEpreconLinIter,  INDEX_NONE,
210ee8461e jm-c 0246      & 'SEAICEpreconLinIter =',
79df32c3f1 Mart*0247      & ' /* number of linear preconditioner steps */')
                0248         CALL WRITE_0D_I ( SEAICEpreconNL_Iter,  INDEX_NONE,
210ee8461e jm-c 0249      & 'SEAICEpreconNL_Iter =',
79df32c3f1 Mart*0250      & ' /* number of non-linear preconditioner steps */')
6cbc659de0 Mart*0251         CALL WRITE_0D_L ( SEAICEuseIMEX, INDEX_NONE,
79df32c3f1 Mart*0252      &  'SEAICEuseIMEX  =', ' /* IMEX scheme with JFNK-solver */')
                0253        ENDIF
                0254        IF ( SEAICEuseJFNK ) THEN
a88fc20c6c Mart*0255         CALL WRITE_0D_I ( SEAICE_JFNK_lsIter,  INDEX_NONE,
                0256      & 'SEAICE_JFNK_lsIter =', ' /* start of line search */')
c704c5a1ef Mart*0257         CALL WRITE_0D_I ( SEAICE_JFNK_lsLmax,  INDEX_NONE,
                0258      & 'SEAICE_JFNK_lsLmax =', ' /* max. number line search iters */')
                0259         CALL WRITE_0D_RL( SEAICE_JFNK_lsGamma,  INDEX_NONE,
                0260      & 'SEAICE_JFNK_lsGamma =', ' /* line search step size param */')
f6f4a9e227 Mart*0261         CALL WRITE_0D_I ( SEAICE_JFNK_tolIter,  INDEX_NONE,
                0262      & 'SEAICE_JFNK_tolIter =', ' /* tol. is relaxed after this */')
a88fc20c6c Mart*0263         CALL WRITE_0D_RL( JFNKres_t  ,INDEX_NONE,
6510a54854 Jean*0264      & 'JFNKres_t=', ' /* JFNK parameter */')
2e75855dde Mart*0265         CALL WRITE_0D_RL( JFNKres_tFac  ,INDEX_NONE,
6510a54854 Jean*0266      & 'JFNKres_tFac=', ' /* JFNK parameter */')
c8f5b4180e Mart*0267         CALL WRITE_0D_RL( SEAICE_JFNKepsilon, INDEX_NONE,
6510a54854 Jean*0268      & 'SEAICE_JFNKepsilon=', ' /* JFNK: FD-gradient step size */')
1f3ad2d627 Mart*0269         CALL WRITE_0D_RL( SEAICE_JFNKphi, INDEX_NONE,
                0270      & 'SEAICE_JFNKphi =', ' /* JFNK: inexact Newtow parameter */')
                0271         CALL WRITE_0D_RL( SEAICE_JFNKalpha, INDEX_NONE,
                0272      &  'SEAICE_JFNKalpha =', ' /* JFNK: inexact Newtow parameter */')
a88fc20c6c Mart*0273        ENDIF
79df32c3f1 Mart*0274 #endif /* SEAICE_ALLOW_JFNK or SEAICE_ALLOW_KRYLOV */
3de1dea93d Jean*0275 #ifdef SEAICE_ALLOW_EVP
4eb4a54cba Jean*0276       ELSE
09df950255 Gael*0277        CALL WRITE_0D_RL( SEAICE_elasticParm  ,INDEX_NONE,
                0278      & 'SEAICE_elasticParm=', ' /* EVP elastic parameter */')
                0279        CALL WRITE_0D_RL( SEAICE_evpTauRelax  ,INDEX_NONE,
                0280      & 'SEAICE_evpTauRelax=', ' /* EVP relaxation timescale */')
                0281        CALL WRITE_0D_RL( SEAICE_evpDampC  ,INDEX_NONE,
                0282      & 'SEAICE_evpDampC   =', ' /* EVP damping parameter */')
2bf4ed5c39 Mart*0283        CALL WRITE_0D_L ( SEAICEuseEVPstar, INDEX_NONE,
0a27dce68e Mart*0284      & 'SEAICEuseEVPstar  =', ' /* use EVP* solver */')
                0285        CALL WRITE_0D_L ( SEAICEuseEVPrev, INDEX_NONE,
                0286      & 'SEAICEuseEVPrev   =', ' /* use "revisited EVP" solver */')
2bf4ed5c39 Mart*0287        CALL WRITE_0D_RL( SEAICE_evpAlpha  ,INDEX_NONE,
                0288      & 'SEAICE_evpAlpha   =', ' /* EVP* parameter*/')
                0289        CALL WRITE_0D_RL( SEAICE_evpBeta   ,INDEX_NONE,
                0290      & 'SEAICE_evpBeta    =', ' /* EVP*  parameter */')
25c15550b7 Mart*0291        CALL WRITE_0D_RL( SEAICEaEVPcoeff ,INDEX_NONE,
                0292      & 'SEAICEaEVPcoeff   =', ' /* adaptive EVP parameter*/')
                0293        CALL WRITE_0D_RL( SEAICEaEVPcStar ,INDEX_NONE,
                0294      & 'SEAICEaEVPcStar   =', ' /* adaptive EVP parameter*/')
                0295        CALL WRITE_0D_RL( SEAICEaEVPalphaMin ,INDEX_NONE,
                0296      & 'SEAICEaEVPalphaMin=', ' /* adaptive EVP parameter*/')
2bf4ed5c39 Mart*0297        CALL WRITE_0D_I ( SEAICEnEVPstarSteps,  INDEX_NONE,
                0298      & 'SEAICEnEVPstarSteps =', ' /* num. of EVP* steps */')
                0299        CALL WRITE_0D_L ( SEAICEuseEVPpickup, INDEX_NONE,
279a21fda0 Gael*0300      & 'SEAICEuseEVPpickup=', ' /* start EVP solver with EVP pickup*/')
09df950255 Gael*0301 #endif /* SEAICE_ALLOW_EVP */
4eb4a54cba Jean*0302       ENDIF
3de1dea93d Jean*0303 
4eb4a54cba Jean*0304 C     end if SEAICEuseDYNAMICS bloc
                0305       ENDIF
03c669d1ab Jean*0306 
c892c3f446 Jean*0307       WRITE(msgBuf,'(A)') ' '
                0308       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0309      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0310       WRITE(msgBuf,'(A)')
c892c3f446 Jean*0311      &'   Seaice advection diffusion config,   > START <  '
                0312       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0313      &                    SQUEEZE_RIGHT, myThid )
                0314       WRITE(msgBuf,'(A)')
                0315      &'   -----------------------------------------------'
                0316       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0317      &                    SQUEEZE_RIGHT, myThid )
                0318 
2e05c0b826 Mart*0319       CALL WRITE_0D_L ( SEAICEmomAdvection, INDEX_NONE,
                0320      & 'SEAICEmomAdvection =', ' /* advect sea ice momentum */')
                0321 #ifdef SEAICE_ALLOW_MOM_ADVECTION
                0322       IF ( SEAICEmomAdvection ) THEN
                0323       CALL WRITE_0D_I( SEAICEselectKEscheme, INDEX_NONE,
                0324      & 'SEAICEselectKEscheme=',
                0325      &              ' /* V.I Kinetic Energy scheme selector */')
                0326       CALL WRITE_0D_I( SEAICEselectKEscheme, INDEX_NONE,
                0327      & 'SEAICEselectVortscheme=',
                0328      &              ' /* V.I Vorticity scheme selector */')
                0329       CALL WRITE_0D_L ( SEAICEhighOrderVorticity, INDEX_NONE,
210ee8461e jm-c 0330      & 'SEAICEhighOrderVorticity =',
2e05c0b826 Mart*0331      &              ' /* V.I Scheme selector for Vorticity-Term */')
                0332       CALL WRITE_0D_L ( SEAICEupwindVorticity, INDEX_NONE,
210ee8461e jm-c 0333      & 'SEAICEupwindVorticity =',
2e05c0b826 Mart*0334      &             ' /* V.I High order vort. advect. flag */')
                0335       CALL WRITE_0D_L ( SEAICEuseAbsVorticity, INDEX_NONE,
210ee8461e jm-c 0336      & 'SEAICEuseAbsVorticity =',
2e05c0b826 Mart*0337      &              ' /* V.I Works with f+zeta in Coriolis */')
                0338       CALL WRITE_0D_L ( SEAICEuseJamartMomAdv, INDEX_NONE,
210ee8461e jm-c 0339      & 'SEAICEuseJamartMomAdv =',
2e05c0b826 Mart*0340      &              ' /* V.I Non-linear terms Jamart flag */')
                0341       ENDIF
                0342 #endif
d73d15cdef antn*0343 
                0344       IF ( useThSIce ) THEN
                0345        WRITE(msgBuf,'(A)')
                0346      &  '   ==> advection diffusion done in pkg ThSIce'
                0347        CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0348      &                     SQUEEZE_RIGHT, myThid )
                0349       ELSE
                0350        CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE,
                0351      &  'SEAICEadvHeff =', ' /* advect effective ice thickness */')
                0352        CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE,
                0353      &  'SEAICEadvArea =', ' /* advect fractional ice area */')
                0354        CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE,
                0355      &  'SEAICEadvSnow =', ' /* advect snow layer together with ice */')
c892c3f446 Jean*0356 #ifdef SEAICE_VARIABLE_SALINITY
d73d15cdef antn*0357        CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE,
                0358      &  'SEAICEadvSalt =', ' /* advect salinity together with ice */')
c892c3f446 Jean*0359 #endif
d73d15cdef antn*0360        CALL WRITE_0D_L ( SEAICEmultiDimAdvection, INDEX_NONE,
                0361      &  'SEAICEmultiDimAdvection =', ' /* multidimadvec */')
                0362        CALL WRITE_0D_I ( SEAICEadvScheme,   INDEX_NONE,
                0363      &  'SEAICEadvScheme   =', ' /* advection scheme for ice */')
                0364        IF ( SEAICEadvScheme .EQ. 2 )
                0365      &  CALL WRITE_0D_L ( SEAICEuseFluxForm,   INDEX_NONE,
                0366      &  'SEAICEuseFluxForm =', ' /* advection in FV flux form */')
                0367        IF ( SEAICEadvArea )
                0368      &  CALL WRITE_0D_I ( SEAICEadvSchArea,   INDEX_NONE,
                0369      &  'SEAICEadvSchArea  =', ' /* advection scheme for area */')
                0370        IF ( SEAICEadvHeff )
                0371      &  CALL WRITE_0D_I ( SEAICEadvSchHeff,   INDEX_NONE,
                0372      &  'SEAICEadvSchHeff  =', ' /* advection scheme for thickness */')
                0373        IF ( SEAICEadvSnow )
                0374      &  CALL WRITE_0D_I ( SEAICEadvSchSnow,   INDEX_NONE,
                0375      &  'SEAICEadvSchSnow  =', ' /* advection scheme for snow */')
c892c3f446 Jean*0376 #ifdef SEAICE_VARIABLE_SALINITY
d73d15cdef antn*0377        IF ( SEAICEadvSalt )
                0378      &  CALL WRITE_0D_I ( SEAICEadvSchSalt,   INDEX_NONE,
                0379      &  'SEAICEadvSchSalt  =', ' /* advection scheme for salt */')
c892c3f446 Jean*0380 #endif
d73d15cdef antn*0381        CALL WRITE_0D_RL( SEAICEdiffKhArea,   INDEX_NONE,
                0382      &  'SEAICEdiffKhArea  =', ' /* diffusivity (m^2/s) for area */')
                0383        CALL WRITE_0D_RL( SEAICEdiffKhHeff,   INDEX_NONE,
                0384      &  'SEAICEdiffKhHeff  =', ' /* diffusivity (m^2/s) for heff */')
                0385        CALL WRITE_0D_RL( SEAICEdiffKhSnow,   INDEX_NONE,
                0386      &  'SEAICEdiffKhSnow  =', ' /* diffusivity (m^2/s) for snow */')
                0387        IF ( SEAICEadvSalt )
                0388      &  CALL WRITE_0D_RL( SEAICEdiffKhSalt,   INDEX_NONE,
                0389      &  'SEAICEdiffKhSalt  =', ' /* diffusivity (m^2/s) for salt */')
                0390        CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1             =',
                0391      &                   ' /* parameter used in advect.F [m/s] */')
c892c3f446 Jean*0392 C     end if useThSIce bloc
                0393       ENDIF
                0394 
22c740e9fe Mart*0395 #ifdef SEAICE_ITD
                0396 C--   ITD parameters
                0397       WRITE(msgBuf,'(A)') ' '
                0398       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0399      &                    SQUEEZE_RIGHT, myThid )
                0400       WRITE(msgBuf,'(A)')
                0401      &'   Seaice ice thickness distribution configuration   > START <  '
                0402       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0403      &                    SQUEEZE_RIGHT, myThid )
                0404       WRITE(msgBuf,'(A)')
                0405      &'   -----------------------------------------------------------'
                0406       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0407      &                    SQUEEZE_RIGHT, myThid )
                0408       CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD              ='
                0409      & , ' /* number of ice thickness categories */')
215e096b82 Jean*0410       CALL WRITE_1D_RL( Hlimit(1), nITD, INDEX_K, 'Hlimit =',
438bd87221 Mart*0411      & ' /* seaice thickness category bin limits ( m ), Hlimit(0)=0 */')
22c740e9fe Mart*0412       CALL WRITE_0D_L ( SEAICEuseLinRemapITD, INDEX_NONE,
                0413      & 'SEAICEuseLinRemapITD  =',
                0414      & ' /* select linear remapping scheme for ITD */')
                0415       CALL WRITE_0D_L ( useHibler79IceStrength, INDEX_NONE,
                0416      & 'useHibler79IceStrength  =',
                0417      & ' /* select ice strength parameterizationd */')
                0418       CALL WRITE_0D_L ( SEAICEsimpleRidging, INDEX_NONE,
                0419      & 'SEAICEsimpleRidging  =',
                0420      & ' /* select ridging scheme */')
                0421       CALL WRITE_0D_I (SEAICEpartFunc,INDEX_NONE,
                0422      &     'SEAICEpartFunc   ='
                0423      & , ' /* select ridging participation function */')
                0424       CALL WRITE_0D_I (SEAICEredistFunc,INDEX_NONE,
                0425      &     'SEAICEredistFunc ='
                0426      & , ' /* select ridging redistribution function */')
                0427       CALL WRITE_0D_RL( SEAICE_cf  ,INDEX_NONE,
                0428      & 'SEAICE_cf  =', ' /* ice strength parameter */')
                0429       CALL WRITE_0D_RL( SEAICEshearParm  ,INDEX_NONE,
                0430      & 'SEAICEshearParm  =', ' /* amount of energy lost to shear */')
                0431       CALL WRITE_0D_RL( SEAICEgStar  ,INDEX_NONE,
                0432      & 'SEAICEgStar  =', ' /* ridging parameter */')
                0433       CALL WRITE_0D_RL( SEAICEhStar  ,INDEX_NONE,
                0434      & 'SEAICEhStar  =', ' /* ridging parameter */')
                0435       CALL WRITE_0D_RL( SEAICEaStar  ,INDEX_NONE,
                0436      & 'SEAICEaStar  =', ' /* ridging parameter */')
                0437       CALL WRITE_0D_RL( SEAICEmuRidging  ,INDEX_NONE,
                0438      & 'SEAICEmuRidging  =', ' /* ridging parameter */')
                0439       CALL WRITE_0D_RL( SEAICEmaxRaft  ,INDEX_NONE,
                0440      & 'SEAICEmaxRaft  =', ' /* ridging parameter */')
                0441       CALL WRITE_0D_RL( SEAICEsnowFracRidge ,INDEX_NONE,
                0442      & 'SEAICEsnowFracRidge  =',
                0443      &     ' /* fraction of snow remaining on ridges */')
                0444 #endif
                0445 
                0446 C--   Thermodynamics parameters
c892c3f446 Jean*0447       WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0448       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0449      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0450       WRITE(msgBuf,'(A)')
                0451      &'   Seaice thermodynamics configuration   > START <  '
                0452       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0453      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0454       WRITE(msgBuf,'(A)')
                0455      &'   -----------------------------------------------'
                0456       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0457      &                    SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0458 C- note: air and seaice (+ snow ?) density are used in both dynamics & thermo
                0459       CALL WRITE_0D_RL( SEAICE_rhoIce     ,INDEX_NONE,
                0460      & 'SEAICE_rhoIce     =', ' /* density of sea ice (kg/m3) */')
                0461       CALL WRITE_0D_RL( SEAICE_rhoSnow     ,INDEX_NONE,
                0462      & 'SEAICE_rhoSnow    =', ' /* density of snow (kg/m3) */')
                0463       CALL WRITE_0D_RL( SEAICE_rhoAir     ,INDEX_NONE,
                0464      & 'SEAICE_rhoAir     =', ' /* density of air (kg/m3) */')
09df950255 Gael*0465 
09e3b53265 Mart*0466       CALL WRITE_0D_L ( usePW79thermodynamics, INDEX_NONE,
                0467      & 'usePW79thermodynamics  =', ' /* default 0-layer TD */')
4eb4a54cba Jean*0468       IF (.NOT.usePW79thermodynamics) THEN
09df950255 Gael*0469       WRITE(msgBuf,'(A)') '   pkg/seaice thermodynamics is OFF  '
                0470       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0471      &                    SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0472       ELSE
4dd39c50d9 Mart*0473 #ifdef SEAICE_USE_GROWTH_ADX
d73d15cdef antn*0474       WRITE(msgBuf,'(2A)')
                0475      &      'SEAICE_USE_GROWTH_ADX defined, ',
4dd39c50d9 Mart*0476      &      'using seaice_growth_adx code'
                0477       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0478      &     SQUEEZE_RIGHT, myThid )
d73d15cdef antn*0479       WRITE(msgBuf,'(A,1PE24.17)') ' SINegFac  = ', SINegFac
                0480       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0481      &     SQUEEZE_RIGHT, myThid )
4dd39c50d9 Mart*0482       WRITE(msgBuf,'(A)') ' '
                0483       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0484      &     SQUEEZE_RIGHT, myThid )
                0485 #endif /* SEAICE_USE_GROWTH_ADX */
09df950255 Gael*0486 
                0487       CALL WRITE_0D_RL( SEAICE_lhEvap     ,INDEX_NONE,
                0488      & 'SEAICE_lhEvap     =', ' /* latent heat of evaporation */')
                0489       CALL WRITE_0D_RL( SEAICE_lhFusion   ,INDEX_NONE,
                0490      & 'SEAICE_lhFusion   =', ' /* latent heat of fusion */')
ceae9498ad Gael*0491       CALL WRITE_0D_RL ( SEAICE_mcPheePiston,   INDEX_NONE,
                0492      & 'SEAICE_mcPheePiston =',
                0493      & ' /* turbulent flux "piston velocity" a la McPhee (m/s) */')
                0494       CALL WRITE_0D_RL ( SEAICE_mcPheeTaper,     INDEX_NONE,
                0495      & 'SEAICE_mcPheeTaper =',
                0496      & ' /* tapering of turbulent flux (0.< <1.) for AREA=1. */')
279a21fda0 Gael*0497       CALL WRITE_0D_L ( SEAICE_mcPheeStepFunc,   INDEX_NONE,
                0498      & 'SEAICE_mcPheeStepFunc =',
                0499      & ' /* replace linear tapering with step funct. */')
ceae9498ad Gael*0500       CALL WRITE_0D_RL ( SEAICE_frazilFrac,   INDEX_NONE,
                0501      & 'SEAICE_frazilFrac =',
                0502      & ' /* frazil (T<tempFrz) to seaice conversion rate (0.< <1.) */')
09df950255 Gael*0503       CALL WRITE_0D_RL( SEAICE_tempFrz0   ,INDEX_NONE,
                0504      & 'SEAICE_tempFrz0   =',
                0505      & ' /* freezing temp. of sea water (intercept) */')
                0506       CALL WRITE_0D_RL( SEAICE_dTempFrz_dS,INDEX_NONE,
                0507      & 'SEAICE_dTempFrz_dS=',
                0508      & ' /* freezing temp. of sea water (slope) */')
62cc8945c8 Gael*0509       CALL WRITE_0D_L ( SEAICE_growMeltByConv , INDEX_NONE,
                0510      & 'SEAICE_growMeltByConv  =', ' /* grow,melt by vert. conv. */')
                0511       CALL WRITE_0D_L ( SEAICE_doOpenWaterGrowth , INDEX_NONE,
                0512      & 'SEAICE_doOpenWaterGrowth =', ' /* grow by open water */')
                0513       CALL WRITE_0D_L ( SEAICE_doOpenWaterMelt , INDEX_NONE,
                0514      & 'SEAICE_doOpenWaterMelt =', ' /* melt by open water */')
09df950255 Gael*0515 c print the various values meining for SEAICE_areaGain/LossFormula
                0516       WRITE(msgBuf,'(2A)') 'SEAICE_areaGainFormula =',
                0517      & ' /* ice cover gain formula (1,2)*/'
                0518       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0519       buffI(1) = SEAICE_areaGainFormula
                0520       CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
                0521      &                   .FALSE., .TRUE., ioUnit )
                0522       WRITE(msgBuf,'(A)') '    1=from growth by ATM '
                0523       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0524       WRITE(msgBuf,'(A)') '    2=from predicted growth by ATM'
                0525       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0526       CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
                0527 c
                0528       WRITE(msgBuf,'(2A)') 'SEAICE_areaLossFormula =',
                0529      & ' /* ice cover loss formula (1,2)*/'
                0530       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0531       buffI(1) = SEAICE_areaLossFormula
                0532       CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
                0533      &                   .FALSE., .TRUE., ioUnit )
                0534       WRITE(msgBuf,'(2A)') '    1=from all but only melt ',
                0535      &                     'conributions by ATM and OCN'
                0536       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0537       WRITE(msgBuf,'(A)') '    2=from net melt-grow>0 by ATM and OCN'
                0538       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0539       WRITE(msgBuf,'(A)') '    3=from predicted melt by ATM'
                0540       CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
                0541       CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
                0542 c
6510a54854 Jean*0543 #ifdef EXF_SEAICE_FRACTION
21936d7dea Gael*0544       CALL WRITE_0D_RL( SEAICE_tauAreaObsRelax,INDEX_NONE,
                0545      & 'SEAICE_tauAreaObsRelax=',
                0546      & ' /* relaxation timescale of sea-ice concentration */')
                0547 #endif
                0548 c
09df950255 Gael*0549       CALL WRITE_0D_RL( HO                ,INDEX_NONE,
                0550      & 'HO                =', ' /* nominal thickness of new ice */')
                0551       CALL WRITE_0D_RL( HO_south          ,INDEX_NONE,
                0552      & 'HO_south               =', ' /* Southern Ocean HO */')
279a21fda0 Gael*0553       CALL WRITE_0D_RL( SEAICE_area_max          ,INDEX_NONE,
4eb4a54cba Jean*0554      & 'SEAICE_area_max        =',
279a21fda0 Gael*0555      & ' /* set to les than 1. to mimic open leads */')
09df950255 Gael*0556 #ifdef SEAICE_VARIABLE_SALINITY
                0557       WRITE(msgBuf,'(A)')
                0558      &'   Sea ice has a variable salinity such that '
1ed503f8a3 Gael*0559       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0560      &                    SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0561       CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE,
                0562      & 'SEAICE_saltFrac =',
                0563      & ' /* fraction of ocn salinity in new ice */')
09df950255 Gael*0564 #else
4eb4a54cba Jean*0565       CALL WRITE_0D_RL( SEAICE_salt0,   INDEX_NONE,
                0566      & 'SEAICE_salt0   =', ' /* constant sea ice salinity */')
1ed503f8a3 Gael*0567 #endif
279a21fda0 Gael*0568       CALL WRITE_0D_L ( SEAICE_salinityTracer,   INDEX_NONE,
                0569      & 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */')
09df950255 Gael*0570       CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE,
                0571      & 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */')
                0572 
c892c3f446 Jean*0573       WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0574       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0575      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0576       WRITE(msgBuf,'(A)')
                0577      &'   Seaice air-sea fluxes configuration,   > START <  '
                0578       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0579      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0580       WRITE(msgBuf,'(A)')
                0581      &'   -----------------------------------------------'
                0582       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0583      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0584 
279a21fda0 Gael*0585       CALL WRITE_0D_L ( SEAICEheatConsFix,  INDEX_NONE,
                0586      & 'SEAICEheatConsFix  =',
                0587      & ' /* accound for ocn<->seaice advect. heat flux */')
22c740e9fe Mart*0588 #ifndef SEAICE_ITD
279a21fda0 Gael*0589       CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim    ='
                0590      & , ' /* number of ice categories (1 or 7) */')
34a35a3da8 Patr*0591 #endif
4b6d456764 Mart*0592       CALL WRITE_1D_RL( SEAICE_PDF,nITD,INDEX_K, 'SEAICE_PDF        =',
                0593      &  ' /* sea-ice distribution (-) */')
09df950255 Gael*0594       CALL WRITE_0D_I ( IMAX_TICE,         INDEX_NONE,
                0595      & 'IMAX_TICE         =', ' /* iterations for ice surface temp */')
                0596       CALL WRITE_0D_I ( postSolvTempIter,  INDEX_NONE,
                0597      & 'postSolvTempIter=',
03c669d1ab Jean*0598      & ' /* flux calculation after surf. temp iter */')
eb34cdda0f Jean*0599 #ifndef SEAICE_EXTERNAL_FLUXES
                0600       CALL WRITE_0D_RL( SEAICE_waterAlbedo,INDEX_NONE,
                0601      & 'SEAICE_waterAlbedo=', ' /* water albedo */')
                0602       CALL WRITE_0D_RL( SEAICE_emissivity, INDEX_NONE,
                0603      & 'SEAICE_emissivity =', ' /* ocean-surface emissivity */')
                0604 #endif /* SEAICE_EXTERNAL_FLUXES */
4da4b49499 Jean*0605       CALL WRITE_0D_RL( SEAICE_dryIceAlb  ,INDEX_NONE,
8d9f2d1888 Dimi*0606      & 'SEAICE_dryIceAlb  =', ' /* winter albedo */')
4da4b49499 Jean*0607       CALL WRITE_0D_RL( SEAICE_wetIceAlb  ,INDEX_NONE,
8d9f2d1888 Dimi*0608      & 'SEAICE_wetIceAlb  =', ' /* summer albedo */')
4da4b49499 Jean*0609       CALL WRITE_0D_RL( SEAICE_drySnowAlb ,INDEX_NONE,
8d9f2d1888 Dimi*0610      & 'SEAICE_drySnowAlb =', ' /* dry snow albedo */')
4da4b49499 Jean*0611       CALL WRITE_0D_RL( SEAICE_wetSnowAlb ,INDEX_NONE,
8d9f2d1888 Dimi*0612      & 'SEAICE_wetSnowAlb =', ' /* wet snow albedo */')
f834b21bef Dimi*0613       CALL WRITE_0D_RL( SEAICE_dryIceAlb_south  ,INDEX_NONE,
f81e0cd482 Dimi*0614      & 'SEAICE_dryIceAlb_south =', ' /* Southern Ocean dryIceAlb */')
f834b21bef Dimi*0615       CALL WRITE_0D_RL( SEAICE_wetIceAlb_south  ,INDEX_NONE,
f81e0cd482 Dimi*0616      & 'SEAICE_wetIceAlb_south =', ' /* Southern Ocean wetIceAlb */')
f834b21bef Dimi*0617       CALL WRITE_0D_RL( SEAICE_drySnowAlb_south ,INDEX_NONE,
f81e0cd482 Dimi*0618      & 'SEAICE_drySnowAlb_south=', ' /* Southern Ocean drySnowAlb */')
f834b21bef Dimi*0619       CALL WRITE_0D_RL( SEAICE_wetSnowAlb_south ,INDEX_NONE,
f81e0cd482 Dimi*0620      & 'SEAICE_wetSnowAlb_south=', ' /* Southern Ocean wetSnowAlb */')
b58e51ce4e Jean*0621       CALL WRITE_0D_RL( SEAICE_wetAlbTemp ,INDEX_NONE,
                0622      & 'SEAICE_wetAlbTemp=',
                0623      & ' /* Temp (o.C) threshold for wet-albedo */')
eb34cdda0f Jean*0624       CALL WRITE_0D_RL( SEAICE_snow_emiss ,INDEX_NONE,
                0625      & 'SEAICE_snow_emiss =', ' /* snow emissivity */')
                0626       CALL WRITE_0D_RL( SEAICE_ice_emiss ,INDEX_NONE,
                0627      & 'SEAICE_ice_emiss =', ' /* seaice emissivity */')
fff6be1885 Mart*0628       CALL WRITE_0D_RL( SEAICE_cpAir      ,INDEX_NONE,
                0629      & 'SEAICE_cpAir      =', ' /* heat capacity of air */')
                0630       CALL WRITE_0D_RL( SEAICE_dalton     ,INDEX_NONE,
                0631      & 'SEAICE_dalton     =', ' /* constant dalton number */')
4da4b49499 Jean*0632       CALL WRITE_0D_RL( SEAICE_iceConduct ,INDEX_NONE,
8d9f2d1888 Dimi*0633      & 'SEAICE_iceConduct =', ' /* sea-ice conductivity */')
4da4b49499 Jean*0634       CALL WRITE_0D_RL( SEAICE_snowConduct,INDEX_NONE,
8d9f2d1888 Dimi*0635      & 'SEAICE_snowConduct=', ' /* snow conductivity */')
4da4b49499 Jean*0636       CALL WRITE_0D_RL( SEAICE_snowThick  ,INDEX_NONE,
b58e51ce4e Jean*0637      & 'SEAICE_snowThick  =',
                0638      & ' /* cutoff snow thickness (for albedo) */')
4da4b49499 Jean*0639       CALL WRITE_0D_RL( SEAICE_shortwave  ,INDEX_NONE,
8d9f2d1888 Dimi*0640      & 'SEAICE_shortwave  =', ' /* penetration shortwave radiation */')
09df950255 Gael*0641       CALL WRITE_0D_L ( useMaykutSatVapPoly, INDEX_NONE,
                0642      & 'useMaykutSatVapPoly =',
                0643      & ' /* use Maykut Polynomial for Sat.Vap.Pr */')
4da4b49499 Jean*0644       CALL WRITE_0D_RL( MIN_ATEMP         ,INDEX_NONE,
8d9f2d1888 Dimi*0645      & 'MIN_ATEMP         =', ' /* minimum air temperature */')
4da4b49499 Jean*0646       CALL WRITE_0D_RL( MIN_LWDOWN        ,INDEX_NONE,
8d9f2d1888 Dimi*0647      & 'MIN_LWDOWN        =', ' /* minimum downward longwave */')
4da4b49499 Jean*0648       CALL WRITE_0D_RL( MIN_TICE          ,INDEX_NONE,
8d9f2d1888 Dimi*0649      & 'MIN_TICE          =', ' /* minimum ice temperature */')
09df950255 Gael*0650 
4eb4a54cba Jean*0651 C     end if usePW79thermodynamics bloc
                0652       ENDIF
09df950255 Gael*0653 
c892c3f446 Jean*0654       WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0655       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0656      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0657       WRITE(msgBuf,'(A)')
                0658      &'   Seaice initialization and IO config.,   > START <  '
                0659       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0660      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0661       WRITE(msgBuf,'(A)')
                0662      &'   -------------------------------------------------'
                0663       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0664      &                    SQUEEZE_RIGHT, myThid )
3de1dea93d Jean*0665 
                0666 C--  Initial Condition/Input related param.
                0667       CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE,
                0668      & 'SEAICE_initialHEFF=', ' /* initial sea-ice thickness */')
                0669       CALL WRITE_0D_C( AreaFile, -1, INDEX_NONE,
                0670      &  'AreaFile =', ' /* Initial ice concentration File */')
                0671       CALL WRITE_0D_C( HeffFile, -1, INDEX_NONE,
                0672      &  'HeffFile =', ' /* Initial effective ice thickness File */')
279a21fda0 Gael*0673       CALL WRITE_0D_C( HsnowFile, -1, INDEX_NONE,
                0674      &  'HsnowFile =', ' /* Initial snow thickness File */')
                0675 #ifdef SEAICE_VARIABLE_SALINITY
                0676       CALL WRITE_0D_C( HsaltFile, -1, INDEX_NONE,
                0677      &  'HsaltFile =', ' /* Initial HSALT File */')
4eb4a54cba Jean*0678 #endif
3de1dea93d Jean*0679       CALL WRITE_0D_C( uIceFile, -1, INDEX_NONE,
                0680      &  'uIceFile =', ' /* Initial U-ice velocity File */')
                0681       CALL WRITE_0D_C( vIceFile, -1, INDEX_NONE,
                0682      &  'vIceFile =', ' /* Initial V-ice velocity File */')
                0683 
                0684 C--  Output related param.
                0685       CALL WRITE_0D_L ( SEAICEwriteState,  INDEX_NONE,
                0686      & 'SEAICEwriteState  =', ' /* write sea ice state to file */')
                0687       CALL WRITE_0D_RL( SEAICE_monFreq,  INDEX_NONE,
                0688      & 'SEAICE_monFreq  =',' /* monitor frequency */')
                0689       CALL WRITE_0D_RL( SEAICE_dumpFreq   ,INDEX_NONE,
                0690      & 'SEAICE_dumpFreq   =', ' /* dump frequency */')
                0691       CALL WRITE_0D_RL( SEAICE_taveFreq   ,INDEX_NONE,
                0692      & 'SEAICE_taveFreq   =', ' /* time-averaging frequency */')
                0693       CALL WRITE_0D_L ( SEAICE_mon_stdio,  INDEX_NONE,
                0694      & 'SEAICE_mon_stdio  =',' /* write monitor to std-outp */')
                0695       CALL WRITE_0D_L ( SEAICE_dump_mdsio,  INDEX_NONE,
                0696      & 'SEAICE_dump_mdsio =',' /* write snap-shot   using MDSIO */')
                0697       CALL WRITE_0D_L ( SEAICE_tave_mdsio,  INDEX_NONE,
                0698      & 'SEAICE_tave_mdsio =',' /* write TimeAverage using MDSIO */')
279a21fda0 Gael*0699 #ifdef ALLOW_MNC
3de1dea93d Jean*0700       CALL WRITE_0D_L ( SEAICE_mon_mnc,  INDEX_NONE,
                0701      & 'SEAICE_mon_mnc    =',' /* write monitor to netcdf file */')
                0702       CALL WRITE_0D_L ( SEAICE_dump_mnc,  INDEX_NONE,
                0703      & 'SEAICE_dump_mnc   =',' /* write snap-shot   using MNC */')
                0704       CALL WRITE_0D_L ( SEAICE_tave_mnc,  INDEX_NONE,
                0705      & 'SEAICE_tave_mnc   =',' /* write TimeAverage using MNC */')
279a21fda0 Gael*0706 #endif /* ALLOW_MNC */
03c669d1ab Jean*0707 
09df950255 Gael*0708 #ifdef ALLOW_SITRACER
279a21fda0 Gael*0709        CALL WRITE_0D_I ( SItrNumInUse, INDEX_NONE,
                0710      & 'SItrNumInUse =',
                0711      & ' /* number of tracers that are in use (<SItrMaxNum) */')
09df950255 Gael*0712       DO iTracer = 1, SItrNumInUse
4eb4a54cba Jean*0713        IF (SItrName(iTracer).NE.' ') THEN
09df950255 Gael*0714       WRITE(msgBuf,'(A,I3,A)') '== SItracer no. ',iTracer,
                0715      &' is in use and defined as'
                0716       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0717      &                    SQUEEZE_RIGHT, myThid )
09df950255 Gael*0718        CALL WRITE_0D_C ( SItrMate(iTracer), -1, INDEX_NONE,
                0719      & '  -- SItrMate =',' /* tracer of HEFF or AREA */')
                0720        CALL WRITE_0D_C ( SItrName(iTracer), -1, INDEX_NONE,
                0721      & '  -- SItrName =',' /* tracer name*/')
                0722        CALL WRITE_0D_C ( SItrNameLong(iTracer), -1, INDEX_NONE,
                0723      & '  -- SItrNameLong =',' /* tracer long name*/')
                0724        CALL WRITE_0D_C ( SItrFile(iTracer), -1, INDEX_NONE,
                0725      & '  -- SItrFile =',' /* tracer initial condition file */')
                0726        CALL WRITE_0D_C ( SItrUnit(iTracer), -1, INDEX_NONE,
                0727      & '  -- SItrUnit =',' /* tracer unit */')
                0728       CALL WRITE_0D_RL ( SItrFromOcean0(iTracer),     INDEX_NONE,
                0729      & '  -- SItrFromOcean0 =',' /* for new ice from freeze */')
                0730       CALL WRITE_0D_RL ( SItrFromOceanFrac(iTracer),  INDEX_NONE,
                0731      & '  -- SItrFromOceanFrac =',' /* for new ice from freeze */')
                0732       CALL WRITE_0D_RL ( SItrFromFlood0(iTracer),     INDEX_NONE,
                0733      & '  -- SItrFromFlood0 =',' /* for new ice from freeze */')
                0734       CALL WRITE_0D_RL ( SItrFromFloodFrac(iTracer),  INDEX_NONE,
                0735      & '  -- SItrFromFloodFrac =',' /* for new ice from freeze */')
                0736       CALL WRITE_0D_RL ( SItrExpand0(iTracer),     INDEX_NONE,
                0737      & '  -- SItrExpand0 =',' /* for ice cover thermo. expans. */')
                0738 
4eb4a54cba Jean*0739        ENDIF
09df950255 Gael*0740       ENDDO
03c669d1ab Jean*0741 #endif /* ALLOW_SITRACER */
                0742 
c892c3f446 Jean*0743       WRITE(msgBuf,'(A)') ' '
279a21fda0 Gael*0744       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0745      &                    SQUEEZE_RIGHT, myThid )
279a21fda0 Gael*0746       WRITE(msgBuf,'(A)')
                0747      &'   Seaice regularization numbers,   > START <  '
                0748       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0749      &                    SQUEEZE_RIGHT, myThid )
279a21fda0 Gael*0750       WRITE(msgBuf,'(A)')
                0751      &'   -----------------------------------------------'
                0752       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0753      &                    SQUEEZE_RIGHT, myThid )
279a21fda0 Gael*0754 
3daf25222c Mart*0755       CALL WRITE_0D_RL( SEAICE_deltaMin   ,INDEX_NONE,
                0756      & 'SEAICE_deltaMin   =', ' /* reduce singularities in Delta */')
279a21fda0 Gael*0757       CALL WRITE_0D_RL( SEAICE_EPS        ,INDEX_NONE,
3daf25222c Mart*0758      & 'SEAICE_EPS        =', ' /* small number */')
279a21fda0 Gael*0759       CALL WRITE_0D_RL( SEAICE_EPS_SQ        ,INDEX_NONE,
3daf25222c Mart*0760      & 'SEAICE_EPS_SQ     =', ' /* small number squared */')
279a21fda0 Gael*0761       CALL WRITE_0D_RL( SEAICE_area_reg        ,INDEX_NONE,
                0762      & 'SEAICE_area_reg   =', ' /* reduce derivative singularities */')
                0763       CALL WRITE_0D_RL( SEAICE_hice_reg        ,INDEX_NONE,
                0764      & 'SEAICE_hice_reg   =', ' /* reduce derivative singularities */')
                0765       CALL WRITE_0D_RL( SEAICE_area_floor        ,INDEX_NONE,
                0766      & 'SEAICE_area_floor =', ' /* reduce derivative singularities */')
                0767 
c892c3f446 Jean*0768       WRITE(msgBuf,'(A)') ' '
                0769       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0770      &                    SQUEEZE_RIGHT, myThid )
279a21fda0 Gael*0771       WRITE(msgBuf,'(A)')
8d9f2d1888 Dimi*0772      &'// ======================================================='
a2d714f5b7 Jean*0773       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0774      &                    SQUEEZE_RIGHT, myThid )
a2d714f5b7 Jean*0775       WRITE(msgBuf,'(A)')
8d9f2d1888 Dimi*0776      &'// Seaice configuration (SEAICE_PARM01) >>> END <<<'
a2d714f5b7 Jean*0777       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0778      &                    SQUEEZE_RIGHT, myThid )
a2d714f5b7 Jean*0779       WRITE(msgBuf,'(A)')
8d9f2d1888 Dimi*0780      &'// ======================================================='
a2d714f5b7 Jean*0781       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0782      &                    SQUEEZE_RIGHT, myThid )
                0783       WRITE(msgBuf,'(A)') ' '
                0784       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
                0785      &                    SQUEEZE_RIGHT, myThid )
8d9f2d1888 Dimi*0786 
                0787       _END_MASTER(myThid)
                0788 
a2d714f5b7 Jean*0789       RETURN
                0790       END