Back to home page

MITgcm

 
 

    


File indexing completed on 2026-05-05 05:09:05 UTC

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