C $Header: /u/gcmpack/MITgcm/pkg/seaice/SEAICE_PARAMS.h,v 1.135 2017/06/08 15:10:05 mlosch Exp $
C $Name: $
C *==========================================================*
C | SEAICE_PARAMS.h
C | o Basic parameter header for sea ice model.
C *==========================================================*
C-- COMMON /SEAICE_PARM_L/ Logical parameters of sea ice model.
C - dynamics:
C SEAICEuseDYNAMICS :: If false, do not use dynamics;
C default is to use dynamics.
C SEAICEuseFREEDRIFT :: If True use free drift velocity instead of EVP
C or LSR
C SEAICEuseStrImpCpl:: If true use strongly implicit coupling formulation
C for LSR solver (Hutchings et al 2004,
C Ocean Modelling, eq.44)
C SEAICEuseEVP :: If true use elastic viscous plastic solver
C SEAICEuseEVPstar :: If true use modified elastic viscous plastic
C solver (EVP*) by Lemieux et al (2012)
C SEAICEuseEVPrev :: If true use "revisited" elastic viscous plastic
C solver following Bouillon et al. (2013), very similar
C to EVP*, but uses fewer implicit terms and drops
C one 1/e^2 in equations for sigma2 and sigma12
C SEAICEuseEVPpickup :: Set to false in order to start EVP solver with
C non-EVP pickup files. Default is true.
C Applied only if SEAICEuseEVP=.TRUE.
C SEAICEuseMultiTileSolver :: in LSR, use full domain tri-diagonal solver
C SEAICEuseLSR :: If true, use default Picard solver with Line-
C Successive(-over)-Relaxation, can also be true
C if LSR is used as a preconditioner for the
C non-linear JFNK solver
C SEAICEusePicardAsPrecon :: If true, allow SEAICEuseLSR = .TRUE. as a
C preconditioner for non-linear JFNK problem (def. = F)
C SEAICEuseKrylov :: If true, use matrix-free Krylov solver with Picard
C solver instead of LSR (default: false)
C SEAICEuseJFNK :: If true, use Jacobi-free Newton-Krylov solver
C instead of LSR (default: false)
C SEAICEuseIMEX :: use IMplicit/EXplicit scheme with JFNK
C SEAICEuseTEM :: to use truncated ellipse method (see Geiger et al.
C 1998) set this parameter to true, default is false
C SEAICEuseTilt :: If true then include surface tilt term in dynamics
C SEAICEuseMetricTerms :: use metric terms for dynamics solver
C (default = .true. )
C SEAICE_no_slip :: apply no slip boundary conditions to seaice velocity
C SEAICE_2ndOrderBC :: apply 2nd order no slip boundary conditions (works
C only with EVP, JFNK or KRYLOV solver, default=F)
C SEAICE_maskRHS :: mask the RHS of the solver where there is no ice
C SEAICE_clipVelocities :: clip velocities to +/- 40cm/s
C SEAICEaddSnowMass :: in computing seaiceMass, add snow contribution
C default is .FALSE. for historical reasons
C useHB87stressCoupling :: use an intergral over ice and ocean surface
C layer to define surface stresses on ocean
C following Hibler and Bryan (1987, JPO)
C SEAICEuseBDF2 :: use 2nd-order backward difference approach
C for momentum equations as described in
C Lemieux et al. 2014, JCP
C so far only implemented for JFNK-solver
C useHibler79IceStrength :: if true original ice strength parameterization
C other use Rothrock (1975) parameterization based
C on energetics and an ice thickness distribution
C (default = .true.)
C SEAICEscaleSurfStress :: if TRUE, scale ice-ocean and ice-atmosphere
C stress on ice by concenration (AREA) following
C Connolley et al. (2004), JPO. (default = .false.)
C SEAICEsimpleRidging :: use Hibler(1979) ridging (default=.true.)
C SEAICEuseLinRemapITD :: use linear remapping (Lipscomb et al. 2001)
C .TRUE. by default
C - advection:
C SEAICEuseFluxForm :: use flux form for advection and diffusion
C of seaice
C SEAICEadvHeff :: turn on advection of effective thickness
C (default = .true.)
C SEAICEadvArea :: turn on advection of fraction area
C (default = .true.)
C SEAICEadvSnow :: turn on advection of snow (does not work with
C non-default Leap-frog scheme for advection)
C SEAICEadvSalt :: turn on advection of salt (does not work with
C non-default Leap-frog scheme for advection)
C SEAICEmomAdvection:: turn on advection of momentum (default = .false.)
C SEAICEhighOrderVorticity :: momentum advection parameters analogous to
C SEAICEupwindVorticity :: highOrderVorticity, upwindVorticity,
C SEAICEuseAbsVorticity :: useAbsVorticity, useJamartMomAdv for vector
C SEAICEuseJamartMomAdv :: invariant momentum in the ocean
C - thermodynamics:
C usePW79thermodynamics :: use "0-layer" thermodynamics as described in
C Parkinson and Washington (1979) and Hibler (1979)
C SEAICE_useMultDimSnow :: use same fixed pdf for snow as for
C MULITCATEGORY ice
C SEAICEuseFlooding :: turn on scheme to convert submerged snow into ice
C SEAICEheatConsFix :: If true then fix ocn<->seaice advective heat flux.
C useMaykutSatVapPoly :: use Maykut Polynomial for saturation vapor pressure
C instead of extended temp-range exponential law; def=F.
C SEAICE_mcPheeStepFunc :: use step function (not linear tapering) in
C ocean-ice turbulent flux
C SEAICE_doOpenWaterGrowth :: use open water heat flux directly to grow ice
C (when false cool ocean, and grow later if needed)
C SEAICE_doOpenWaterMelt :: use open water heat flux directly to melt ice
C (when false warm ocean, and melt later if needed)
C SEAICE_growMeltByConv :: grow/melt according to convergence of turbulence
C and conduction, rather than in two steps (default)
C SEAICE_salinityTracer :: use SItracer to exchange and trace ocean
C salt in ice
C SEAICE_ageTracer :: use SItracer to trace the age of ice
C SEAICErestoreUnderIce :: restore surface T/S also underneath ice
C ( default is false )
C - other (I/O, ...):
C SEAICEwriteState :: If true, write sea ice state to file;
C default is false.
C SEAICE_tave_mdsio :: write TimeAverage output using MDSIO
C SEAICE_dump_mdsio :: write snap-shot output using MDSIO
C SEAICE_mon_stdio :: write monitor to std-outp
C SEAICE_tave_mnc :: write TimeAverage output using MNC
C SEAICE_dump_mnc :: write snap-shot output using MNC
C SEAICE_mon_mnc :: write monitor to netcdf file
LOGICAL
& SEAICEuseDYNAMICS, SEAICEuseFREEDRIFT, SEAICEuseStrImpCpl,
& SEAICEuseEVP, SEAICEuseEVPstar, SEAICEuseEVPrev,
& SEAICEuseEVPpickup,
& SEAICEuseMultiTileSolver,
& SEAICEuseLSR, SEAICEuseKrylov,
& SEAICEuseJFNK, SEAICEuseIMEX, SEAICEuseBDF2,
& SEAICEusePicardAsPrecon,
& useHibler79IceStrength, SEAICEsimpleRidging,
& SEAICEuseLinRemapITD,
& SEAICEuseTEM, SEAICEuseTilt, SEAICEuseMetricTerms,
& SEAICE_no_slip, SEAICE_2ndOrderBC,
& SEAICE_maskRHS, SEAICEscaleSurfStress,
& SEAICE_clipVelocities, useHB87stressCoupling,
& SEAICEaddSnowMass,
& SEAICEuseFluxForm, SEAICEadvHeff, SEAICEadvArea,
& SEAICEadvSnow, SEAICEadvSalt, SEAICEmomAdvection,
& SEAICEhighOrderVorticity, SEAICEupwindVorticity,
& SEAICEuseAbsVorticity, SEAICEuseJamartMomAdv,
& usePW79thermodynamics,
& SEAICE_useMultDimSnow, SEAICEuseFlooding, SEAICEheatConsFix,
& useMaykutSatVapPoly, SEAICE_mcPheeStepFunc,
& SEAICE_doOpenWaterGrowth, SEAICE_doOpenWaterMelt,
& SEAICE_salinityTracer, SEAICE_ageTracer,
& SEAICErestoreUnderIce, SEAICE_growMeltByConv,
& SEAICEwriteState,
& SEAICE_tave_mdsio, SEAICE_dump_mdsio, SEAICE_mon_stdio,
& SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc
COMMON /SEAICE_PARM_L/
& SEAICEuseDYNAMICS, SEAICEuseFREEDRIFT, SEAICEuseStrImpCpl,
& SEAICEuseEVP, SEAICEuseEVPstar, SEAICEuseEVPrev,
& SEAICEuseEVPpickup,
& SEAICEuseMultiTileSolver,
& SEAICEuseLSR, SEAICEuseKrylov,
& SEAICEuseJFNK, SEAICEuseIMEX, SEAICEuseBDF2,
& SEAICEusePicardAsPrecon,
& useHibler79IceStrength, SEAICEsimpleRidging,
& SEAICEuseLinRemapITD,
& SEAICEuseTEM, SEAICEuseTilt, SEAICEuseMetricTerms,
& SEAICE_no_slip, SEAICE_2ndOrderBC,
& SEAICE_maskRHS, SEAICEscaleSurfStress,
& SEAICE_clipVelocities, useHB87stressCoupling,
& SEAICEaddSnowMass,
& SEAICEuseFluxForm, SEAICEadvHeff, SEAICEadvArea,
& SEAICEadvSnow, SEAICEadvSalt, SEAICEmomAdvection,
& SEAICEhighOrderVorticity, SEAICEupwindVorticity,
& SEAICEuseAbsVorticity, SEAICEuseJamartMomAdv,
& usePW79thermodynamics,
& SEAICE_useMultDimSnow, SEAICEuseFlooding, SEAICEheatConsFix,
& useMaykutSatVapPoly, SEAICE_mcPheeStepFunc,
& SEAICE_doOpenWaterGrowth, SEAICE_doOpenWaterMelt,
& SEAICE_salinityTracer, SEAICE_ageTracer,
& SEAICErestoreUnderIce, SEAICE_growMeltByConv,
& SEAICEwriteState,
& SEAICE_tave_mdsio, SEAICE_dump_mdsio, SEAICE_mon_stdio,
& SEAICE_tave_mnc, SEAICE_dump_mnc, SEAICE_mon_mnc
C-- COMMON /SEAICE_PARM_I/ Integer valued parameters of sea ice model.
C IMAX_TICE :: number of iterations for ice surface temp
C (default=10)
C postSolvTempIter :: select flux calculation after surf. temp solver
C iteration
C 0 = none, i.e., from last iter
C 1 = use linearized approx (consistent with tsurf
C finding)
C 2 = full non-lin form
C SOLV_NCHECK :: iteration interval for LSR-solver convergence test
C SEAICEnonLinIterMax :: number of allowed non-linear solver iterations
C for implicit solvers (JFNK and Picard) (>= 2)
C SEAICElinearIterMax :: number of allowed linear solver iterations for
C for implicit solvers (JFNK and Picard) C
C SEAICEpreconNL_Iter :: number non-linear iterations in preconditioner
C SEAICEpreconLinIter :: number linear iterations in preconditioner
C SEAICEnEVPstarSteps :: number of evp*-steps
C SEAICEmomStartBDF :: number of previous u/vIce time levels available
C to start (or restart) BDF2 scheme.
C SEAICE_JFNK_lsIter :: number of Newton iterations after which the
C line search is started
C SEAICE_JFNK_tolIter :: number of Newton iterations after which the
C the tolerance is relaxed again (default = 100)
C SEAICE_OLx/y :: overlaps for LSR-preconditioner in JFNK solver;
C for 0 < SEAICE_OLx/y 0 <= OLx/y-2
C the preconditioner is a restricted additive
C Schwarz method (default = OLx/y-2).
C LSR_mixIniGuess :: control mixing of free-drift sol. into LSR initial
C guess
C :: =0 : nothing; =1 : no mix, but print free-drift
C resid.;
C :: =2,4 : mix with (1/local-residual)^2,4 factor
C SEAICEpresPow0 :: HEFF exponent for ice strength below SEAICEpresH0
C SEAICEpresPow1 :: HEFF exponent for ice strength above SEAICEpresH0
C rigding parameters (only active when SEAICE_ITD is defined)
C SEAICEpartFunc :: =0 use Thorndyke et al (1975) participation function
C :: =1 use Lipscomb et al (2007) participation function
C SEAICEredistFunc :: =0 assume ridged ice is uniformly distributed
C (Hibler, 1980)
C =1 Following Lipscomb et al. (2007), ridged ice is
C distributed following an exponentially
C decaying function
C SEAICEridgingIterMax :: maximum number of ridging iterations
C end ridging parameters
C SEAICEselectKEscheme :: momentum advection parameters analogous
C SEAICEselectVortScheme :: to selectKEscheme and selectVortScheme
C SEAICEadvScheme :: sets the advection scheme for thickness and area
C SEAICEadvSchArea :: sets the advection scheme for area
C SEAICEadvSchHeff :: sets the advection scheme for effective thickness
C (=volume), snow thickness, and salt if available
C SEAICEadvSchSnow :: sets the advection scheme for snow on sea-ice
C SEAICEadvSchSalt :: sets the advection scheme for sea ice salinity
C SEAICEadvSchSnow :: sets the advection scheme for snow on sea-ice
C SEAICE_areaLossFormula :: selects formula for ice cover loss from melt
C :: 1=from all but only melt conributions by ATM and OCN
C :: 2=from net melt-growth>0 by ATM and OCN
C :: 3=from predicted melt by ATM
C SEAICE_areaGainFormula :: selects formula for ice cover gain from open
C water growth
C :: 1=from growth by ATM
C :: 2=from predicted growth by ATM
C SEAICEetaZmethod :: determines how shear-viscosity eta is computed at
C Z-points
C 0=simple averaging from C-points (default and old)
C 3=weighted averaging of squares of strain rates
C (recommended for energy conservation)
C SEAICE_multDim :: number of ice categories
C SEAICE_debugPointI :: I,J index for seaice-specific debuggin
C SEAICE_debugPointJ
C
INTEGER IMAX_TICE, postSolvTempIter
INTEGER SOLV_NCHECK
INTEGER SEAICEnonLinIterMax, SEAICElinearIterMax
INTEGER SEAICEpreconLinIter, SEAICEpreconNL_Iter
INTEGER LSR_mixIniGuess
INTEGER SEAICEnEVPstarSteps
INTEGER SEAICEmomStartBDF
INTEGER SEAICE_JFNK_lsIter, SEAICE_JFNK_tolIter
INTEGER SEAICE_OLx, SEAICE_OLy
INTEGER SEAICEselectKEscheme, SEAICEselectVortScheme
INTEGER SEAICEadvScheme
INTEGER SEAICEadvSchArea
INTEGER SEAICEadvSchHeff
INTEGER SEAICEadvSchSnow
INTEGER SEAICEadvSchSalt
INTEGER SEAICEadjMODE
INTEGER SEAICE_areaLossFormula
INTEGER SEAICE_areaGainFormula
INTEGER SEAICEetaZmethod
INTEGER SEAICE_multDim
INTEGER SEAICE_debugPointI
INTEGER SEAICE_debugPointJ
INTEGER SEAICEpresPow0, SEAICEpresPow1
INTEGER SEAICEpartFunc, SEAICEredistFunc
INTEGER SEAICEridgingIterMax
COMMON /SEAICE_PARM_I/
& IMAX_TICE, postSolvTempIter, SOLV_NCHECK,
& SEAICEnonLinIterMax, SEAICElinearIterMax,
& SEAICEpreconLinIter, SEAICEpreconNL_Iter,
& LSR_mixIniGuess,
& SEAICEnEVPstarSteps,
& SEAICEmomStartBDF,
& SEAICE_JFNK_lsIter, SEAICE_OLx, SEAICE_OLy,
& SEAICE_JFNK_tolIter,
& SEAICEpresPow0, SEAICEpresPow1,
& SEAICEpartFunc, SEAICEredistFunc, SEAICEridgingIterMax,
& SEAICEselectKEscheme, SEAICEselectVortScheme,
& SEAICEadvScheme,
& SEAICEadvSchArea,
& SEAICEadvSchHeff,
& SEAICEadvSchSnow,
& SEAICEadvSchSalt,
& SEAICEadjMODE,
& SEAICE_areaLossFormula,
& SEAICE_areaGainFormula,
& SEAICE_multDim,
& SEAICEetaZmethod,
& SEAICE_debugPointI,
& SEAICE_debugPointJ
C-- COMMON /SEAICE_PARM_C/ Character valued sea ice model parameters.
C AreaFile :: File containing initial sea-ice concentration
C HsnowFile :: File containing initial snow thickness
C HsaltFile :: File containing initial sea ice salt content
C HeffFile :: File containing initial sea-ice thickness
C uIceFile :: File containing initial sea-ice U comp. velocity
C vIceFile :: File containing initial sea-ice V comp. velocity
C !!! NOTE !!! Initial sea-ice thickness can also be set using
C SEAICE_initialHEFF below. But a constant initial condition
C can mean large artificial fluxes of heat and freshwater in
C the surface layer during the first model time step.
C
CHARACTER*(MAX_LEN_FNAM) AreaFile
CHARACTER*(MAX_LEN_FNAM) HsnowFile
CHARACTER*(MAX_LEN_FNAM) HsaltFile
CHARACTER*(MAX_LEN_FNAM) HeffFile
CHARACTER*(MAX_LEN_FNAM) uIceFile
CHARACTER*(MAX_LEN_FNAM) vIceFile
COMMON /SEAICE_PARM_C/
& AreaFile, HsnowFile, HsaltFile, HeffFile,
& uIceFile, vIceFile
C-- COMMON /SEAICE_PARM_RL/ Real valued parameters of sea ice model.
C SEAICE_deltaTtherm :: Seaice timestep for thermodynamic equations (s)
C SEAICE_deltaTdyn :: Seaice timestep for dynamic solver (s)
C SEAICE_LSRrelaxU/V :: relaxation parameter for LSR-solver: U/V-component
C SEAICE_deltaTevp :: Seaice timestep for EVP solver (s)
C SEAICE_elasticParm :: parameter that sets relaxation timescale
C tau = SEAICE_elasticParm * SEAICE_deltaTdyn
C SEAICE_evpTauRelax :: relaxation timescale tau (s)
C SEAICE_evpDampC :: evp damping constant (Hunke,JCP,2001) (kg/m^2)
C SEAICE_evpAlpha :: dimensionless parameter 2*evpTauRelax/deltaTevp
C SEAICE_evpBeta :: dimensionless parameter deltaTdyn/deltaTevp
C SEAICEaEVPcoeff :: main coefficent for adaptive EVP (largest
C stabilized frequency)
C SEAICEaEVPcStar :: multiple of stabilty factor: alpha*beta=cstar*gamma
C SEAICEaEVPalphaMin :: lower limit of alpha and beta, regularisation
C to prevent singularities of system matrix,
C e.g. when ice concentration is too low.
C SEAICEnonLinTol :: non-linear tolerance parameter for implicit solvers
C JFNKgamma_lin_min/max :: tolerance parameters for linear JFNK solver
C JFNKres_t :: tolerance parameter for FGMRES residual
C JFNKres_tFac :: if set, JFNKres_t=JFNKres_tFac*(initial residual)
C SEAICE_JFNKepsilon :: step size for the FD-gradient in s/r seaice_jacvec
C SEAICE_JFNKphi :: [0,1] parameter for inexact Newton Method (def = 1)
C SEAICE_JFNKalpha :: (1,2] parameter for inexact Newton Method (def = 1)
C SEAICE_zetaMaxFac :: factor determining the maximum viscosity (s)
C (default = 5.e+12/2.e4 = 2.5e8)
C SEAICE_zetaMin :: lower bound for viscosity (default = 0) (N s/m^2)
C SEAICEpresH0 :: HEFF threshold for ice strength (m)
C SEAICE_monFreq :: SEAICE monitor frequency. (s)
C SEAICE_dumpFreq :: SEAICE dump frequency. (s)
C SEAICE_taveFreq :: SEAICE time-averaging frequency. (s)
C SEAICE_initialHEFF :: initial sea-ice thickness (m)
C SEAICE_rhoAir :: density of air (kg/m^3)
C SEAICE_rhoIce :: density of sea ice (kg/m^3)
C SEAICE_rhoSnow :: density of snow (kg/m^3)
C ICE2WATR :: ratio of sea ice density to water density
C OCEAN_drag :: air-ocean drag coefficient
C SEAICE_cpAir :: specific heat of air (J/kg/K)
C
C SEAICE_drag :: air-ice drag coefficient
C SEAICE_waterDrag :: water-ice drag coefficient * water density
C SEAICE_dryIceAlb :: winter albedo
C SEAICE_wetIceAlb :: summer albedo
C SEAICE_drySnowAlb :: dry snow albedo
C SEAICE_wetSnowAlb :: wet snow albedo
C HO :: AKA "lead closing parameter", demarcation thickness
C between thin and thick ice. Alternatively, HO (in
C meters) can be interpreted as the thickness of ice
C formed in open water.
C HO is a key ice-growth parameter that determines
C the partition between vertical and lateral growth.
C The default is 0.5m, increasing this value leads
C slower formation of a closed ice cover and thus to
C more ice (and thicker) ice, decreasing to faster
C formation of a closed ice cover (leads are closing
C faster) and thus less (thinner) ice.
C
C SEAICE_drag_south :: Southern Ocean SEAICE_drag
C SEAICE_waterDrag_south :: Southern Ocean SEAICE_waterDrag
C SEAICE_dryIceAlb_south :: Southern Ocean SEAICE_dryIceAlb
C SEAICE_wetIceAlb_south :: Southern Ocean SEAICE_wetIceAlb
C SEAICE_drySnowAlb_south :: Southern Ocean SEAICE_drySnowAlb
C SEAICE_wetSnowAlb_south :: Southern Ocean SEAICE_wetSnowAlb
C HO_south :: Southern Ocean HO
C
C Parameters for basal drag of grounded ice following
C Lemieux et al. (2015), doi:10.1002/2014JC010678
C SEAICE_cBasalStar (default = SEAICE_cStar)
C SEAICEbasalDragU0 (default = 5e-5)
C SEAICEbasalDragK1 (default = 8)
C SEAICEbasalDragK2 :: if > 0, turns on basal drag
C (default = 0, Lemieux suggests 15)
C
C SEAICE_wetAlbTemp :: Temp (deg.C) above which wet-albedo values are used
C SEAICE_waterAlbedo :: water albedo
C SEAICE_strength :: sea-ice strength Pstar
C SEAICE_cStar :: sea-ice strength paramter C* (def: 20)
C SEAICE_tensilFac :: sea-ice tensile strength factor, values in [0,1]
C SEAICE_tensilDepth :: crtical depth for sea-ice tensile strength (def 0.)
C SEAICEpressReplFac :: interpolator between PRESS0 and regularized PRESS
C 1. (default): pure pressure replace method (PRESS)
C 0. : pure Hibler (1979) method (PRESS0)
C SEAICE_eccen :: sea-ice eccentricity of the elliptical yield curve
C SEAICE_lhFusion :: latent heat of fusion for ice and snow (J/kg)
C SEAICE_lhEvap :: latent heat of evaporation for water (J/kg)
C SEAICE_dalton :: Dalton number (= sensible heat transfer coefficient)
C SEAICE_iceConduct :: sea-ice conductivity
C SEAICE_snowConduct :: snow conductivity
C SEAICE_emissivity :: longwave ocean-surface emissivity (-)
C SEAICE_ice_emiss :: longwave ice-surface emissivity (-)
C SEAICE_snow_emiss :: longwave snow-surface emissivity (-)
C SEAICE_boltzmann :: Stefan-Boltzman constant (not a run time parameter)
C SEAICE_snowThick :: cutoff snow thickness (for snow-albedo)
C SEAICE_shortwave :: ice penetration shortwave radiation factor
C SEAICE_saltFrac :: salinity of newly formed seaice defined as a
C fraction of the ocean surface salinity at the time
C of freezing
C SEAICE_salt0 :: prescribed salinity of seaice (in g/kg).
C facOpenGrow :: 0./1. version of logical SEAICE_doOpenWaterGrowth
C facOpenMelt :: 0./1. version of logical SEAICE_doOpenWaterMelt
C SEAICE_mcPheePiston:: ocean-ice turbulent flux "piston velocity" (m/s)
C that sets melt efficiency.
C SEAICE_mcPheeTaper :: tapering down of turbulent flux term with ice
C concentration. The 100% cover turb. flux is
C multiplied by 1.-SEAICE_mcPheeTaper
C SEAICE_frazilFrac :: Fraction of surface level negative heat content
C anomalies (relative to the local freezing point)
C may contribute as frazil over one time step.
C SEAICE_tempFrz0 :: sea water freezing point is
C SEAICE_dTempFrz_dS :: tempFrz = SEAICE_tempFrz0 + salt*SEAICE_dTempFrz_dS
C SEAICE_PDF :: prescribed sea-ice distribution within grid box
C SEAICEstressFactor :: factor by which ice affects wind stress (default=1)
C LSR_ERROR :: sets accuracy of LSR solver
C DIFF1 :: parameter used in advect.F
C SEAICE_deltaMin :: small number used to reduce singularities of Delta
C SEAICE_area_max :: usually set to 1. Seeting areaMax below 1 specifies
C the minimun amount of leads (1-areaMax) in the
C ice pack.
C SEAICE_area_floor :: usually set to 1x10^-5. Specifies a minimun
C ice fraction in the ice pack.
C SEAICE_area_reg :: usually set to 1x10^-5. Specifies a minimun
C ice fraction for the purposes of regularization
C SEAICE_hice_reg :: usually set to 5 cm. Specifies a minimun
C ice thickness for the purposes of regularization
C SEAICEdiffKhArea :: sets the diffusivity for area (m^2/s)
C SEAICEdiffKhHeff :: sets the diffusivity for effective thickness (m^2/s)
C SEAICEdiffKhSnow :: sets the diffusivity for snow on sea-ice (m^2/s)
C SEAICEdiffKhSalt :: sets the diffusivity for sea ice salinity (m^2/s)
C SEAICE_airTurnAngle :: turning angles of air-ice interfacial stress
C SEAICE_waterTurnAngle :: and ice-water interfacial stress (in degrees)
C SEAICE_tauAreaObsRelax :: Timescale of relaxation to observed
C sea ice concentration (s), default=unset
C ridging parameters (Lipscomb et al, 2007, Bitz et al. 2001):
C SEAICE_cf :: ratio of total energy sinks to gravitational sink
C (scales ice strength, suggested values: 2 to 17)
C SEAICEgStar :: maximum ice concentration that participates in ridging
C SEAICEhStar :: empirical thickness (ridging parameter)
C SEAICEaStar :: ice concentration parameter similar to gStar for
C exponential distribution (Lipscomb et al 2007)
C SEAICEshearParm :: <=1 reduces amount of energy lost to ridge building
C SEAICEmuRidging :: tuning parameter similar to hStar for Lipcomb et al
C (2007)-scheme
C SEAICEmaxRaft :: regularization parameter (default=1)
C SEAICEsnowFracRidge :: fraction of snow that remains on ridged
C
_RL SEAICE_deltaTtherm, SEAICE_deltaTdyn, SEAICE_deltaTevp
_RL SEAICE_LSRrelaxU, SEAICE_LSRrelaxV
_RL SEAICE_monFreq, SEAICE_dumpFreq, SEAICE_taveFreq
_RL SEAICE_initialHEFF
_RL SEAICE_rhoAir, SEAICE_rhoIce, SEAICE_rhoSnow, ICE2WATR
_RL SEAICE_cpAir
_RL SEAICE_drag, SEAICE_waterDrag, SEAICE_dryIceAlb
_RL SEAICE_wetIceAlb, SEAICE_drySnowAlb, SEAICE_wetSnowAlb, HO
_RL SEAICE_drag_south, SEAICE_waterDrag_south
_RL SEAICE_dryIceAlb_south, SEAICE_wetIceAlb_south
_RL SEAICE_drySnowAlb_south, SEAICE_wetSnowAlb_south, HO_south
_RL SEAICE_cBasalStar, SEAICEbasalDragU0
_RL SEAICEbasalDragK1, SEAICEbasalDragK2
_RL SEAICE_wetAlbTemp, SEAICE_waterAlbedo
_RL SEAICE_strength, SEAICE_cStar, SEAICEpressReplFac
_RL SEAICE_tensilFac, SEAICE_tensilDepth, SEAICE_eccen
_RL SEAICE_lhFusion, SEAICE_lhEvap
_RL SEAICE_dalton
_RL SEAICE_iceConduct, SEAICE_snowConduct
_RL SEAICE_emissivity, SEAICE_ice_emiss, SEAICE_snow_emiss
_RL SEAICE_boltzmann
_RL SEAICE_snowThick, SEAICE_shortwave
_RL SEAICE_saltFrac, SEAICE_salt0, SEAICEstressFactor
_RL SEAICE_mcPheeTaper, SEAICE_mcPheePiston
_RL SEAICE_frazilFrac, SEAICE_availHeatFrac
_RL facOpenGrow, facOpenMelt
_RL SEAICE_tempFrz0, SEAICE_dTempFrz_dS
_RL SEAICE_PDF(nITD)
_RL OCEAN_drag, LSR_ERROR, DIFF1
_RL SEAICEnonLinTol, JFNKres_t, JFNKres_tFac
_RL JFNKgamma_lin_min, JFNKgamma_lin_max, SEAICE_JFNKepsilon
_RL SEAICE_JFNKphi, SEAICE_JFNKalpha
_RL SEAICE_deltaMin
_RL SEAICE_area_reg, SEAICE_hice_reg
_RL SEAICE_area_floor, SEAICE_area_max
_RL SEAICE_airTurnAngle, SEAICE_waterTurnAngle
_RL SEAICE_elasticParm, SEAICE_evpTauRelax
_RL SEAICE_evpAlpha, SEAICE_evpBeta
_RL SEAICE_evpDampC, SEAICE_zetaMin, SEAICE_zetaMaxFac
_RL SEAICEaEVPcoeff, SEAICEaEVPcStar, SEAICEaEVPalphaMin
_RL SEAICEpresH0
_RL SEAICEdiffKhArea, SEAICEdiffKhHeff, SEAICEdiffKhSnow
_RL SEAICEdiffKhSalt
_RL SEAICE_tauAreaObsRelax
_RL SEAICEgStar, SEAICEhStar, SEAICEaStar, SEAICEshearParm
_RL SEAICEmuRidging, SEAICEmaxRaft, SEAICE_cf
_RL SEAICEsnowFracRidge
COMMON /SEAICE_PARM_RL/
& SEAICE_deltaTtherm, SEAICE_deltaTdyn,
& SEAICE_LSRrelaxU, SEAICE_LSRrelaxV,
& SEAICE_deltaTevp, SEAICE_elasticParm, SEAICE_evpTauRelax,
& SEAICE_evpAlpha, SEAICE_evpBeta,
& SEAICEaEVPcoeff, SEAICEaEVPcStar, SEAICEaEVPalphaMin,
& SEAICE_evpDampC, SEAICE_zetaMin, SEAICE_zetaMaxFac,
& SEAICEpresH0,
& SEAICE_monFreq, SEAICE_dumpFreq, SEAICE_taveFreq,
& SEAICE_initialHEFF,
& SEAICE_rhoAir, SEAICE_rhoIce, SEAICE_rhoSnow, ICE2WATR,
& SEAICE_drag, SEAICE_waterDrag, SEAICE_dryIceAlb,
& SEAICE_wetIceAlb, SEAICE_drySnowAlb, SEAICE_wetSnowAlb, HO,
& SEAICE_drag_south, SEAICE_waterDrag_south,
& SEAICE_dryIceAlb_south, SEAICE_wetIceAlb_south,
& SEAICE_drySnowAlb_south, SEAICE_wetSnowAlb_south, HO_south,
& SEAICE_cBasalStar, SEAICEbasalDragU0,
& SEAICEbasalDragK1, SEAICEbasalDragK2,
& SEAICE_wetAlbTemp, SEAICE_waterAlbedo,
& SEAICE_strength, SEAICE_cStar, SEAICE_eccen,
& SEAICEpressReplFac, SEAICE_tensilFac, SEAICE_tensilDepth,
& SEAICE_lhFusion, SEAICE_lhEvap,
& SEAICE_dalton, SEAICE_cpAir,
& SEAICE_iceConduct, SEAICE_snowConduct,
& SEAICE_emissivity, SEAICE_ice_emiss, SEAICE_snow_emiss,
& SEAICE_boltzmann,
& SEAICE_snowThick, SEAICE_shortwave,
& SEAICE_saltFrac, SEAICE_salt0, SEAICEstressFactor,
& SEAICE_mcPheeTaper, SEAICE_mcPheePiston,
& SEAICE_frazilFrac, SEAICE_availHeatFrac,
& facOpenGrow, facOpenMelt,
& SEAICE_tempFrz0, SEAICE_dTempFrz_dS, SEAICE_PDF,
& OCEAN_drag, LSR_ERROR, DIFF1,
& SEAICEnonLinTol, JFNKres_t, JFNKres_tFac,
& JFNKgamma_lin_min, JFNKgamma_lin_max, SEAICE_JFNKepsilon,
& SEAICE_JFNKphi, SEAICE_JFNKalpha,
& SEAICE_deltaMin, SEAICE_area_reg, SEAICE_hice_reg,
& SEAICE_area_floor, SEAICE_area_max,
& SEAICEdiffKhArea, SEAICEdiffKhHeff, SEAICEdiffKhSnow,
& SEAICEdiffKhSalt, SEAICE_tauAreaObsRelax,
& SEAICE_airTurnAngle, SEAICE_waterTurnAngle,
& SEAICEgStar, SEAICEhStar, SEAICEaStar, SEAICEshearParm,
& SEAICEmuRidging, SEAICEmaxRaft, SEAICE_cf,
& SEAICEsnowFracRidge
C-- COMMON /SEAICE_BOUND_RL/ Various bounding values
C MIN_ATEMP :: minimum air temperature (deg C)
C MIN_LWDOWN :: minimum downward longwave (W/m^2)
C MIN_TICE :: minimum ice temperature (deg C)
C SEAICE_EPS :: small number
C SEAICE_EPS_SQ :: small number square
C
_RL MIN_ATEMP, MIN_LWDOWN, MIN_TICE
_RL SEAICE_EPS, SEAICE_EPS_SQ
COMMON /SEAICE_BOUND_RL/
& MIN_ATEMP, MIN_LWDOWN, MIN_TICE,
& SEAICE_EPS, SEAICE_EPS_SQ
#ifdef SEAICE_ITD
C Hlimit :: ice thickness category limits (m), array of
C size nITD+1
C Hlimit_c1,_c2,_c3 :: coefficients set in seaice_readparams.F to
C calculate Hlimit in seaice_init_fixed.F
_RL Hlimit(0:nITD)
_RL Hlimit_c1, Hlimit_c2, Hlimit_c3
COMMON /SEAICE_BOUND_ITD_RL/
& Hlimit,
& Hlimit_c1,Hlimit_c2,Hlimit_c3
#endif /* SEAICE_ITD */
C-- Constants used by sea-ice model
_RL ZERO , ONE , TWO
PARAMETER ( ZERO = 0.0 _d 0, ONE = 1.0 _d 0, TWO = 2.0 _d 0 )
_RL QUART , HALF
PARAMETER ( QUART = 0.25 _d 0, HALF = 0.5 _d 0 )
_RL siEps
PARAMETER ( siEps = 1. _d -5 )
C-- Constants needed by McPhee formulas for turbulent ocean fluxes :
C Stanton number (dimensionless), typical friction velocity
C beneath sea ice (m/s), and tapering factor (dimensionless)
_RL STANTON_NUMBER, USTAR_BASE, MCPHEE_TAPER_FAC
PARAMETER ( MCPHEE_TAPER_FAC = 12.5 _d 0 , STANTON_NUMBER =
& 0.0056 _d 0, USTAR_BASE = 0.0125 _d 0 )
C-- identifiers for advected properties
INTEGER GAD_HEFF,GAD_AREA,GAD_QICE1,GAD_QICE2,GAD_SNOW
INTEGER GAD_SALT,GAD_SITR
PARAMETER ( GAD_HEFF = 1,
& GAD_AREA = 2,
& GAD_SNOW = 3,
& GAD_SALT = 4,
& GAD_QICE1 = 5,
& GAD_QICE2 = 6,
& GAD_SITR = 7)
CEH3 ;;; Local Variables: ***
CEH3 ;;; mode:fortran ***
CEH3 ;;; End: ***