File indexing completed on 2024-10-18 05:11:27 UTC
view on githubraw file Latest commit 5bb179dd on 2024-10-17 18:00:27 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*/')
09df950255 Gael*0309 #endif /* SEAICE_ALLOW_EVP */
4eb4a54cba Jean*0310 ENDIF
3de1dea93d Jean*0311
4eb4a54cba Jean*0312
0313 ENDIF
03c669d1ab Jean*0314
c892c3f446 Jean*0315 WRITE(msgBuf,'(A)') ' '
0316 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0317 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0318 WRITE(msgBuf,'(A)')
c892c3f446 Jean*0319 &' Seaice advection diffusion config, > START < '
0320 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0321 & SQUEEZE_RIGHT, myThid )
0322 WRITE(msgBuf,'(A)')
0323 &' -----------------------------------------------'
0324 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0325 & SQUEEZE_RIGHT, myThid )
0326
2e05c0b826 Mart*0327 CALL WRITE_0D_L ( SEAICEmomAdvection, INDEX_NONE,
0328 & 'SEAICEmomAdvection =', ' /* advect sea ice momentum */')
0329 #ifdef SEAICE_ALLOW_MOM_ADVECTION
0330 IF ( SEAICEmomAdvection ) THEN
0331 CALL WRITE_0D_I( SEAICEselectKEscheme, INDEX_NONE,
0332 & 'SEAICEselectKEscheme=',
0333 & ' /* V.I Kinetic Energy scheme selector */')
0334 CALL WRITE_0D_I( SEAICEselectKEscheme, INDEX_NONE,
0335 & 'SEAICEselectVortscheme=',
0336 & ' /* V.I Vorticity scheme selector */')
0337 CALL WRITE_0D_L ( SEAICEhighOrderVorticity, INDEX_NONE,
210ee8461e jm-c 0338 & 'SEAICEhighOrderVorticity =',
2e05c0b826 Mart*0339 & ' /* V.I Scheme selector for Vorticity-Term */')
0340 CALL WRITE_0D_L ( SEAICEupwindVorticity, INDEX_NONE,
210ee8461e jm-c 0341 & 'SEAICEupwindVorticity =',
2e05c0b826 Mart*0342 & ' /* V.I High order vort. advect. flag */')
0343 CALL WRITE_0D_L ( SEAICEuseAbsVorticity, INDEX_NONE,
210ee8461e jm-c 0344 & 'SEAICEuseAbsVorticity =',
2e05c0b826 Mart*0345 & ' /* V.I Works with f+zeta in Coriolis */')
0346 CALL WRITE_0D_L ( SEAICEuseJamartMomAdv, INDEX_NONE,
210ee8461e jm-c 0347 & 'SEAICEuseJamartMomAdv =',
2e05c0b826 Mart*0348 & ' /* V.I Non-linear terms Jamart flag */')
0349 ENDIF
0350 #endif
d73d15cdef antn*0351
0352 IF ( useThSIce ) THEN
0353 WRITE(msgBuf,'(A)')
0354 & ' ==> advection diffusion done in pkg ThSIce'
0355 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0356 & SQUEEZE_RIGHT, myThid )
0357 ELSE
0358 CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE,
0359 & 'SEAICEadvHeff =', ' /* advect effective ice thickness */')
0360 CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE,
0361 & 'SEAICEadvArea =', ' /* advect fractional ice area */')
0362 CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE,
0363 & 'SEAICEadvSnow =', ' /* advect snow layer together with ice */')
c892c3f446 Jean*0364 #ifdef SEAICE_VARIABLE_SALINITY
d73d15cdef antn*0365 CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE,
0366 & 'SEAICEadvSalt =', ' /* advect salinity together with ice */')
c892c3f446 Jean*0367 #endif
d73d15cdef antn*0368 CALL WRITE_0D_L ( SEAICEmultiDimAdvection, INDEX_NONE,
0369 & 'SEAICEmultiDimAdvection =', ' /* multidimadvec */')
0370 CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE,
0371 & 'SEAICEadvScheme =', ' /* advection scheme for ice */')
0372 IF ( SEAICEadvScheme .EQ. 2 )
0373 & CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE,
0374 & 'SEAICEuseFluxForm =', ' /* advection in FV flux form */')
0375 IF ( SEAICEadvArea )
0376 & CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE,
0377 & 'SEAICEadvSchArea =', ' /* advection scheme for area */')
0378 IF ( SEAICEadvHeff )
0379 & CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE,
0380 & 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */')
0381 IF ( SEAICEadvSnow )
0382 & CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE,
0383 & 'SEAICEadvSchSnow =', ' /* advection scheme for snow */')
c892c3f446 Jean*0384 #ifdef SEAICE_VARIABLE_SALINITY
d73d15cdef antn*0385 IF ( SEAICEadvSalt )
0386 & CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE,
0387 & 'SEAICEadvSchSalt =', ' /* advection scheme for salt */')
c892c3f446 Jean*0388 #endif
d73d15cdef antn*0389 CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE,
0390 & 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */')
0391 CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE,
0392 & 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */')
0393 CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE,
0394 & 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */')
0395 IF ( SEAICEadvSalt )
0396 & CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE,
0397 & 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */')
0398 CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =',
0399 & ' /* parameter used in advect.F [m/s] */')
c892c3f446 Jean*0400
0401 ENDIF
0402
22c740e9fe Mart*0403 #ifdef SEAICE_ITD
0404
0405 WRITE(msgBuf,'(A)') ' '
0406 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0407 & SQUEEZE_RIGHT, myThid )
0408 WRITE(msgBuf,'(A)')
0409 &' Seaice ice thickness distribution configuration > START < '
0410 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0411 & SQUEEZE_RIGHT, myThid )
0412 WRITE(msgBuf,'(A)')
0413 &' -----------------------------------------------------------'
0414 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0415 & SQUEEZE_RIGHT, myThid )
0416 CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'nITD ='
0417 & , ' /* number of ice thickness categories */')
215e096b82 Jean*0418 CALL WRITE_1D_RL( Hlimit(1), nITD, INDEX_K, 'Hlimit =',
438bd87221 Mart*0419 & ' /* seaice thickness category bin limits ( m ), Hlimit(0)=0 */')
22c740e9fe Mart*0420 CALL WRITE_0D_L ( SEAICEuseLinRemapITD, INDEX_NONE,
0421 & 'SEAICEuseLinRemapITD =',
0422 & ' /* select linear remapping scheme for ITD */')
0423 CALL WRITE_0D_L ( useHibler79IceStrength, INDEX_NONE,
0424 & 'useHibler79IceStrength =',
0425 & ' /* select ice strength parameterizationd */')
0426 CALL WRITE_0D_L ( SEAICEsimpleRidging, INDEX_NONE,
0427 & 'SEAICEsimpleRidging =',
0428 & ' /* select ridging scheme */')
0429 CALL WRITE_0D_I (SEAICEpartFunc,INDEX_NONE,
0430 & 'SEAICEpartFunc ='
0431 & , ' /* select ridging participation function */')
0432 CALL WRITE_0D_I (SEAICEredistFunc,INDEX_NONE,
0433 & 'SEAICEredistFunc ='
0434 & , ' /* select ridging redistribution function */')
0435 CALL WRITE_0D_RL( SEAICE_cf ,INDEX_NONE,
0436 & 'SEAICE_cf =', ' /* ice strength parameter */')
0437 CALL WRITE_0D_RL( SEAICEshearParm ,INDEX_NONE,
0438 & 'SEAICEshearParm =', ' /* amount of energy lost to shear */')
0439 CALL WRITE_0D_RL( SEAICEgStar ,INDEX_NONE,
0440 & 'SEAICEgStar =', ' /* ridging parameter */')
0441 CALL WRITE_0D_RL( SEAICEhStar ,INDEX_NONE,
0442 & 'SEAICEhStar =', ' /* ridging parameter */')
0443 CALL WRITE_0D_RL( SEAICEaStar ,INDEX_NONE,
0444 & 'SEAICEaStar =', ' /* ridging parameter */')
0445 CALL WRITE_0D_RL( SEAICEmuRidging ,INDEX_NONE,
0446 & 'SEAICEmuRidging =', ' /* ridging parameter */')
0447 CALL WRITE_0D_RL( SEAICEmaxRaft ,INDEX_NONE,
0448 & 'SEAICEmaxRaft =', ' /* ridging parameter */')
0449 CALL WRITE_0D_RL( SEAICEsnowFracRidge ,INDEX_NONE,
0450 & 'SEAICEsnowFracRidge =',
0451 & ' /* fraction of snow remaining on ridges */')
0452 #endif
0453
0454
c892c3f446 Jean*0455 WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0456 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0457 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0458 WRITE(msgBuf,'(A)')
0459 &' Seaice thermodynamics configuration > START < '
0460 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0461 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0462 WRITE(msgBuf,'(A)')
0463 &' -----------------------------------------------'
0464 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0465 & SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0466
0467 CALL WRITE_0D_RL( SEAICE_rhoIce ,INDEX_NONE,
0468 & 'SEAICE_rhoIce =', ' /* density of sea ice (kg/m3) */')
0469 CALL WRITE_0D_RL( SEAICE_rhoSnow ,INDEX_NONE,
0470 & 'SEAICE_rhoSnow =', ' /* density of snow (kg/m3) */')
0471 CALL WRITE_0D_RL( SEAICE_rhoAir ,INDEX_NONE,
0472 & 'SEAICE_rhoAir =', ' /* density of air (kg/m3) */')
09df950255 Gael*0473
09e3b53265 Mart*0474 CALL WRITE_0D_L ( usePW79thermodynamics, INDEX_NONE,
0475 & 'usePW79thermodynamics =', ' /* default 0-layer TD */')
4eb4a54cba Jean*0476 IF (.NOT.usePW79thermodynamics) THEN
09df950255 Gael*0477 WRITE(msgBuf,'(A)') ' pkg/seaice thermodynamics is OFF '
0478 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0479 & SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0480 ELSE
4dd39c50d9 Mart*0481 #ifdef SEAICE_USE_GROWTH_ADX
d73d15cdef antn*0482 WRITE(msgBuf,'(2A)')
0483 & 'SEAICE_USE_GROWTH_ADX defined, ',
4dd39c50d9 Mart*0484 & 'using seaice_growth_adx code'
0485 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0486 & SQUEEZE_RIGHT, myThid )
d73d15cdef antn*0487 WRITE(msgBuf,'(A,1PE24.17)') ' SINegFac = ', SINegFac
0488 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0489 & SQUEEZE_RIGHT, myThid )
4dd39c50d9 Mart*0490 WRITE(msgBuf,'(A)') ' '
0491 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
0492 & SQUEEZE_RIGHT, myThid )
0493 #endif /* SEAICE_USE_GROWTH_ADX */
09df950255 Gael*0494
0495 CALL WRITE_0D_RL( SEAICE_lhEvap ,INDEX_NONE,
0496 & 'SEAICE_lhEvap =', ' /* latent heat of evaporation */')
0497 CALL WRITE_0D_RL( SEAICE_lhFusion ,INDEX_NONE,
0498 & 'SEAICE_lhFusion =', ' /* latent heat of fusion */')
ceae9498ad Gael*0499 CALL WRITE_0D_RL ( SEAICE_mcPheePiston, INDEX_NONE,
0500 & 'SEAICE_mcPheePiston =',
0501 & ' /* turbulent flux "piston velocity" a la McPhee (m/s) */')
0502 CALL WRITE_0D_RL ( SEAICE_mcPheeTaper, INDEX_NONE,
0503 & 'SEAICE_mcPheeTaper =',
0504 & ' /* tapering of turbulent flux (0.< <1.) for AREA=1. */')
279a21fda0 Gael*0505 CALL WRITE_0D_L ( SEAICE_mcPheeStepFunc, INDEX_NONE,
0506 & 'SEAICE_mcPheeStepFunc =',
0507 & ' /* replace linear tapering with step funct. */')
ceae9498ad Gael*0508 CALL WRITE_0D_RL ( SEAICE_frazilFrac, INDEX_NONE,
0509 & 'SEAICE_frazilFrac =',
0510 & ' /* frazil (T<tempFrz) to seaice conversion rate (0.< <1.) */')
09df950255 Gael*0511 CALL WRITE_0D_RL( SEAICE_tempFrz0 ,INDEX_NONE,
0512 & 'SEAICE_tempFrz0 =',
0513 & ' /* freezing temp. of sea water (intercept) */')
0514 CALL WRITE_0D_RL( SEAICE_dTempFrz_dS,INDEX_NONE,
0515 & 'SEAICE_dTempFrz_dS=',
0516 & ' /* freezing temp. of sea water (slope) */')
62cc8945c8 Gael*0517 CALL WRITE_0D_L ( SEAICE_growMeltByConv , INDEX_NONE,
0518 & 'SEAICE_growMeltByConv =', ' /* grow,melt by vert. conv. */')
0519 CALL WRITE_0D_L ( SEAICE_doOpenWaterGrowth , INDEX_NONE,
0520 & 'SEAICE_doOpenWaterGrowth =', ' /* grow by open water */')
0521 CALL WRITE_0D_L ( SEAICE_doOpenWaterMelt , INDEX_NONE,
0522 & 'SEAICE_doOpenWaterMelt =', ' /* melt by open water */')
09df950255 Gael*0523
0524 WRITE(msgBuf,'(2A)') 'SEAICE_areaGainFormula =',
0525 & ' /* ice cover gain formula (1,2)*/'
0526 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0527 buffI(1) = SEAICE_areaGainFormula
0528 CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
0529 & .FALSE., .TRUE., ioUnit )
0530 WRITE(msgBuf,'(A)') ' 1=from growth by ATM '
0531 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0532 WRITE(msgBuf,'(A)') ' 2=from predicted growth by ATM'
0533 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0534 CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
0535
0536 WRITE(msgBuf,'(2A)') 'SEAICE_areaLossFormula =',
0537 & ' /* ice cover loss formula (1,2)*/'
0538 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0539 buffI(1) = SEAICE_areaLossFormula
0540 CALL PRINT_LIST_I( buffI, 1, 1, INDEX_NONE,
0541 & .FALSE., .TRUE., ioUnit )
0542 WRITE(msgBuf,'(2A)') ' 1=from all but only melt ',
0543 & 'conributions by ATM and OCN'
0544 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0545 WRITE(msgBuf,'(A)') ' 2=from net melt-grow>0 by ATM and OCN'
0546 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0547 WRITE(msgBuf,'(A)') ' 3=from predicted melt by ATM'
0548 CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid )
0549 CALL PRINT_MESSAGE(endList, ioUnit, SQUEEZE_RIGHT, myThid )
0550
6510a54854 Jean*0551 #ifdef EXF_SEAICE_FRACTION
21936d7dea Gael*0552 CALL WRITE_0D_RL( SEAICE_tauAreaObsRelax,INDEX_NONE,
0553 & 'SEAICE_tauAreaObsRelax=',
0554 & ' /* relaxation timescale of sea-ice concentration */')
0555 #endif
0556
09df950255 Gael*0557 CALL WRITE_0D_RL( HO ,INDEX_NONE,
0558 & 'HO =', ' /* nominal thickness of new ice */')
0559 CALL WRITE_0D_RL( HO_south ,INDEX_NONE,
0560 & 'HO_south =', ' /* Southern Ocean HO */')
279a21fda0 Gael*0561 CALL WRITE_0D_RL( SEAICE_area_max ,INDEX_NONE,
4eb4a54cba Jean*0562 & 'SEAICE_area_max =',
279a21fda0 Gael*0563 & ' /* set to les than 1. to mimic open leads */')
09df950255 Gael*0564 #ifdef SEAICE_VARIABLE_SALINITY
0565 WRITE(msgBuf,'(A)')
0566 &' Sea ice has a variable salinity such that '
1ed503f8a3 Gael*0567 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0568 & SQUEEZE_RIGHT, myThid )
4eb4a54cba Jean*0569 CALL WRITE_0D_RL( SEAICE_saltFrac, INDEX_NONE,
0570 & 'SEAICE_saltFrac =',
0571 & ' /* fraction of ocn salinity in new ice */')
09df950255 Gael*0572 #else
4eb4a54cba Jean*0573 CALL WRITE_0D_RL( SEAICE_salt0, INDEX_NONE,
0574 & 'SEAICE_salt0 =', ' /* constant sea ice salinity */')
1ed503f8a3 Gael*0575 #endif
279a21fda0 Gael*0576 CALL WRITE_0D_L ( SEAICE_salinityTracer, INDEX_NONE,
0577 & 'SEAICE_salinityTracer =', ' /* test SITR varia. salinity */')
09df950255 Gael*0578 CALL WRITE_0D_L ( SEAICEuseFlooding, INDEX_NONE,
0579 & 'SEAICEuseFlooding =', ' /* turn submerged snow into ice */')
0580
c892c3f446 Jean*0581 WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0582 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0583 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0584 WRITE(msgBuf,'(A)')
0585 &' Seaice air-sea fluxes configuration, > START < '
0586 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0587 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0588 WRITE(msgBuf,'(A)')
0589 &' -----------------------------------------------'
0590 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0591 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0592
279a21fda0 Gael*0593 CALL WRITE_0D_L ( SEAICEheatConsFix, INDEX_NONE,
0594 & 'SEAICEheatConsFix =',
0595 & ' /* accound for ocn<->seaice advect. heat flux */')
22c740e9fe Mart*0596 #ifndef SEAICE_ITD
279a21fda0 Gael*0597 CALL WRITE_0D_I (SEAICE_multDim,INDEX_NONE,'SEAICE_multDim ='
0598 & , ' /* number of ice categories (1 or 7) */')
34a35a3da8 Patr*0599 #endif
4b6d456764 Mart*0600 CALL WRITE_1D_RL( SEAICE_PDF,nITD,INDEX_K, 'SEAICE_PDF =',
0601 & ' /* sea-ice distribution (-) */')
09df950255 Gael*0602 CALL WRITE_0D_I ( IMAX_TICE, INDEX_NONE,
0603 & 'IMAX_TICE =', ' /* iterations for ice surface temp */')
0604 CALL WRITE_0D_I ( postSolvTempIter, INDEX_NONE,
0605 & 'postSolvTempIter=',
03c669d1ab Jean*0606 & ' /* flux calculation after surf. temp iter */')
eb34cdda0f Jean*0607 #ifndef SEAICE_EXTERNAL_FLUXES
0608 CALL WRITE_0D_RL( SEAICE_waterAlbedo,INDEX_NONE,
0609 & 'SEAICE_waterAlbedo=', ' /* water albedo */')
0610 CALL WRITE_0D_RL( SEAICE_emissivity, INDEX_NONE,
0611 & 'SEAICE_emissivity =', ' /* ocean-surface emissivity */')
0612 #endif /* SEAICE_EXTERNAL_FLUXES */
4da4b49499 Jean*0613 CALL WRITE_0D_RL( SEAICE_dryIceAlb ,INDEX_NONE,
8d9f2d1888 Dimi*0614 & 'SEAICE_dryIceAlb =', ' /* winter albedo */')
4da4b49499 Jean*0615 CALL WRITE_0D_RL( SEAICE_wetIceAlb ,INDEX_NONE,
8d9f2d1888 Dimi*0616 & 'SEAICE_wetIceAlb =', ' /* summer albedo */')
4da4b49499 Jean*0617 CALL WRITE_0D_RL( SEAICE_drySnowAlb ,INDEX_NONE,
8d9f2d1888 Dimi*0618 & 'SEAICE_drySnowAlb =', ' /* dry snow albedo */')
4da4b49499 Jean*0619 CALL WRITE_0D_RL( SEAICE_wetSnowAlb ,INDEX_NONE,
8d9f2d1888 Dimi*0620 & 'SEAICE_wetSnowAlb =', ' /* wet snow albedo */')
f834b21bef Dimi*0621 CALL WRITE_0D_RL( SEAICE_dryIceAlb_south ,INDEX_NONE,
f81e0cd482 Dimi*0622 & 'SEAICE_dryIceAlb_south =', ' /* Southern Ocean dryIceAlb */')
f834b21bef Dimi*0623 CALL WRITE_0D_RL( SEAICE_wetIceAlb_south ,INDEX_NONE,
f81e0cd482 Dimi*0624 & 'SEAICE_wetIceAlb_south =', ' /* Southern Ocean wetIceAlb */')
f834b21bef Dimi*0625 CALL WRITE_0D_RL( SEAICE_drySnowAlb_south ,INDEX_NONE,
f81e0cd482 Dimi*0626 & 'SEAICE_drySnowAlb_south=', ' /* Southern Ocean drySnowAlb */')
f834b21bef Dimi*0627 CALL WRITE_0D_RL( SEAICE_wetSnowAlb_south ,INDEX_NONE,
f81e0cd482 Dimi*0628 & 'SEAICE_wetSnowAlb_south=', ' /* Southern Ocean wetSnowAlb */')
b58e51ce4e Jean*0629 CALL WRITE_0D_RL( SEAICE_wetAlbTemp ,INDEX_NONE,
0630 & 'SEAICE_wetAlbTemp=',
0631 & ' /* Temp (o.C) threshold for wet-albedo */')
eb34cdda0f Jean*0632 CALL WRITE_0D_RL( SEAICE_snow_emiss ,INDEX_NONE,
0633 & 'SEAICE_snow_emiss =', ' /* snow emissivity */')
0634 CALL WRITE_0D_RL( SEAICE_ice_emiss ,INDEX_NONE,
0635 & 'SEAICE_ice_emiss =', ' /* seaice emissivity */')
fff6be1885 Mart*0636 CALL WRITE_0D_RL( SEAICE_cpAir ,INDEX_NONE,
0637 & 'SEAICE_cpAir =', ' /* heat capacity of air */')
0638 CALL WRITE_0D_RL( SEAICE_dalton ,INDEX_NONE,
0639 & 'SEAICE_dalton =', ' /* constant dalton number */')
4da4b49499 Jean*0640 CALL WRITE_0D_RL( SEAICE_iceConduct ,INDEX_NONE,
8d9f2d1888 Dimi*0641 & 'SEAICE_iceConduct =', ' /* sea-ice conductivity */')
4da4b49499 Jean*0642 CALL WRITE_0D_RL( SEAICE_snowConduct,INDEX_NONE,
8d9f2d1888 Dimi*0643 & 'SEAICE_snowConduct=', ' /* snow conductivity */')
4da4b49499 Jean*0644 CALL WRITE_0D_RL( SEAICE_snowThick ,INDEX_NONE,
b58e51ce4e Jean*0645 & 'SEAICE_snowThick =',
0646 & ' /* cutoff snow thickness (for albedo) */')
4da4b49499 Jean*0647 CALL WRITE_0D_RL( SEAICE_shortwave ,INDEX_NONE,
8d9f2d1888 Dimi*0648 & 'SEAICE_shortwave =', ' /* penetration shortwave radiation */')
09df950255 Gael*0649 CALL WRITE_0D_L ( useMaykutSatVapPoly, INDEX_NONE,
0650 & 'useMaykutSatVapPoly =',
0651 & ' /* use Maykut Polynomial for Sat.Vap.Pr */')
4da4b49499 Jean*0652 CALL WRITE_0D_RL( MIN_ATEMP ,INDEX_NONE,
8d9f2d1888 Dimi*0653 & 'MIN_ATEMP =', ' /* minimum air temperature */')
4da4b49499 Jean*0654 CALL WRITE_0D_RL( MIN_LWDOWN ,INDEX_NONE,
8d9f2d1888 Dimi*0655 & 'MIN_LWDOWN =', ' /* minimum downward longwave */')
4da4b49499 Jean*0656 CALL WRITE_0D_RL( MIN_TICE ,INDEX_NONE,
8d9f2d1888 Dimi*0657 & 'MIN_TICE =', ' /* minimum ice temperature */')
09df950255 Gael*0658
4eb4a54cba Jean*0659
0660 ENDIF
09df950255 Gael*0661
c892c3f446 Jean*0662 WRITE(msgBuf,'(A)') ' '
09df950255 Gael*0663 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0664 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0665 WRITE(msgBuf,'(A)')
0666 &' Seaice initialization and IO config., > START < '
0667 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0668 & SQUEEZE_RIGHT, myThid )
09df950255 Gael*0669 WRITE(msgBuf,'(A)')
0670 &' -------------------------------------------------'
0671 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
c892c3f446 Jean*0672 & SQUEEZE_RIGHT, myThid )
3de1dea93d Jean*0673
0674
0675 CALL WRITE_0D_RL( SEAICE_initialHEFF,INDEX_NONE,
0676 & 'SEAICE_initialHEFF=', ' /* initial sea-ice thickness */')
0677 CALL WRITE_0D_C( AreaFile, -1, INDEX_NONE,
0678 & 'AreaFile =', ' /* Initial ice concentration File */')
0679 CALL WRITE_0D_C( HeffFile, -1, INDEX_NONE,
0680 & 'HeffFile =', ' /* Initial effective ice thickness File */')
279a21fda0 Gael*0681 CALL WRITE_0D_C( HsnowFile, -1, INDEX_NONE,
0682 & 'HsnowFile =', ' /* Initial snow thickness File */')
0683 #ifdef SEAICE_VARIABLE_SALINITY
0684 CALL WRITE_0D_C( HsaltFile, -1, INDEX_NONE,
0685 & 'HsaltFile =', ' /* Initial HSALT File */')
4eb4a54cba Jean*0686 #endif
3de1dea93d Jean*0687 CALL WRITE_0D_C( uIceFile, -1, INDEX_NONE,
0688 & 'uIceFile =', ' /* Initial U-ice velocity File */')
0689 CALL WRITE_0D_C( vIceFile, -1, INDEX_NONE,
0690 & 'vIceFile =', ' /* Initial V-ice velocity File */')
0691
0692
0693 CALL WRITE_0D_L ( SEAICEwriteState, INDEX_NONE,
0694 & 'SEAICEwriteState =', ' /* write sea ice state to file */')
0695 CALL WRITE_0D_RL( SEAICE_monFreq, INDEX_NONE,
0696 & 'SEAICE_monFreq =',' /* monitor frequency */')
0697 CALL WRITE_0D_RL( SEAICE_dumpFreq ,INDEX_NONE,
0698 & 'SEAICE_dumpFreq =', ' /* dump frequency */')
0699 CALL WRITE_0D_RL( SEAICE_taveFreq ,INDEX_NONE,
0700 & 'SEAICE_taveFreq =', ' /* time-averaging 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 */')
0705 CALL WRITE_0D_L ( SEAICE_tave_mdsio, INDEX_NONE,
0706 & 'SEAICE_tave_mdsio =',' /* write TimeAverage using MDSIO */')
279a21fda0 Gael*0707 #ifdef ALLOW_MNC
3de1dea93d Jean*0708 CALL WRITE_0D_L ( SEAICE_mon_mnc, INDEX_NONE,
0709 & 'SEAICE_mon_mnc =',' /* write monitor to netcdf file */')
0710 CALL WRITE_0D_L ( SEAICE_dump_mnc, INDEX_NONE,
0711 & 'SEAICE_dump_mnc =',' /* write snap-shot using MNC */')
0712 CALL WRITE_0D_L ( SEAICE_tave_mnc, INDEX_NONE,
0713 & 'SEAICE_tave_mnc =',' /* write TimeAverage 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