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
0004
0005 SUBROUTINE SEAICE_SUMMARY( myThid )
8d9f2d1888 Dimi*0006
a2d714f5b7 Jean*0007
0008
0009
0010
0011
8d9f2d1888 Dimi*0012
a2d714f5b7 Jean*0013
0014 IMPLICIT NONE
0015
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
0026
3de1dea93d Jean*0027
a2d714f5b7 Jean*0028 INTEGER myThid
0029
8d9f2d1888 Dimi*0030
a2d714f5b7 Jean*0031
0032
3de1dea93d Jean*0033
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
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
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
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
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
0404 ENDIF
0405
22c740e9fe Mart*0406 #ifdef SEAICE_ITD
0407
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
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
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
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
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
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
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
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
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
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