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