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