Skip to content

Commit

Permalink
initial commit of icepack to git from LANL consortium branch r1229 Ma…
Browse files Browse the repository at this point in the history
…y 24, 2017
  • Loading branch information
apcraig committed May 24, 2017
0 parents commit 6f98a36
Show file tree
Hide file tree
Showing 36 changed files with 34,098 additions and 0 deletions.
162 changes: 162 additions & 0 deletions columnphysics/constants/cesm/icepack_constants.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
! SVN:$Id: icepack_constants.F90 1326 2015-11-18 23:41:52Z afrobert@nps.edu $
!=======================================================================
!
! This module defines a variety of physical and numerical constants
! used in the column package
!
! author Elizabeth C. Hunke, LANL

module icepack_constants

use icepack_kinds_mod
use shr_const_mod

implicit none
save
public

!-----------------------------------------------------------------
! physical constants
!-----------------------------------------------------------------

real (kind=dbl_kind), parameter :: &
secday = SHR_CONST_CDAY ,&! seconds in calendar day
rhos = 330.0_dbl_kind ,&! density of snow (kg/m^3)
rhoi = SHR_CONST_RHOICE ,&! density of ice (kg/m^3)
rhow = SHR_CONST_RHOSW ,&! density of seawater (kg/m^3)
cp_air = SHR_CONST_CPDAIR ,&! specific heat of air (J/kg/K)
! (Briegleb JGR 97 11475-11485 July 1992)
emissivity= 0.95_dbl_kind ,&! emissivity of snow and ice
cp_ice = SHR_CONST_CPICE ,&! specific heat of fresh ice (J/kg/K)
cp_ocn = SHR_CONST_CPSW ,&! specific heat of ocn (J/kg/K)
! freshwater value needed for enthalpy
depressT = 0.054_dbl_kind ,&! Tf:brine salinity ratio (C/ppt)

#ifdef RASM_MODS
dragio = 0.00962_dbl_kind ,&! ice-ocn drag coefficient for RASM as temporary measure
#else
dragio = 0.00536_dbl_kind ,&! ice-ocn drag coefficient
#endif

albocn = 0.06_dbl_kind ,&! ocean albedo
gravit = SHR_CONST_G ,&! gravitational acceleration (m/s^2)
viscosity_dyn = 1.79e-3_dbl_kind, & ! dynamic viscosity of brine (kg/m/s)
Tocnfrz= -34.0_dbl_kind*depressT,&! freezing temp of seawater (C),
! used as Tsfcn for open water
rhofresh = SHR_CONST_RHOFW ,&! density of fresh water (kg/m^3)
zvir = SHR_CONST_ZVIR ,&! rh2o/rair - 1.0
vonkar = SHR_CONST_KARMAN,&! von Karman constant
cp_wv = SHR_CONST_CPWV ,&! specific heat of water vapor (J/kg/K)
stefan_boltzmann = SHR_CONST_STEBOL,&! W/m^2/K^4
Tffresh = SHR_CONST_TKFRZ ,&! freezing temp of fresh ice (K)
Lsub = SHR_CONST_LATSUB,&! latent heat, sublimation freshwater (J/kg)
Lvap = SHR_CONST_LATVAP,&! latent heat, vaporization freshwater (J/kg)
Lfresh = SHR_CONST_LATICE,&! latent heat of melting of fresh ice (J/kg)
Timelt = SHR_CONST_TKFRZ-SHR_CONST_TKFRZ,&! melting temp. ice top surface (C)
Tsmelt = SHR_CONST_TKFRZ-SHR_CONST_TKFRZ,&! melting temp. snow top surface (C)
ice_ref_salinity = SHR_CONST_ICE_REF_SAL ,&! (psu)
! ocn_ref_salinity = SHR_CONST_OCN_REF_SAL ,&! (psu)

iceruf = 0.0005_dbl_kind ,&! ice surface roughness (m)
cprho = cp_ocn*rhow ,&! for ocean mixed layer (J kg / K m^3)

! for ice strength
Cf = 17._dbl_kind ,&! ratio of ridging work to PE change in ridging
Cp = 0.5_dbl_kind*gravit*(rhow-rhoi)*rhoi/rhow ,&! proport const for PE
Pstar = 2.75e4_dbl_kind ,&! constant in Hibler strength formula
! (kstrength = 0)
Cstar = 20._dbl_kind ,&! constant in Hibler strength formula
! (kstrength = 0)

! (Ebert, Schramm and Curry JGR 100 15965-15975 Aug 1995)
kappav = 1.4_dbl_kind ,&! vis extnctn coef in ice, wvlngth<700nm (1/m)
!kappan = 17.6_dbl_kind,&! vis extnctn coef in ice, wvlngth<700nm (1/m)

! kice is not used for mushy thermo
kice = 2.03_dbl_kind ,&! thermal conductivity of fresh ice(W/m/deg)
! kseaice is used only for zero-layer thermo
kseaice= 2.00_dbl_kind ,&! thermal conductivity of sea ice (W/m/deg)
! (used in zero layer thermodynamics option)
ksno = 0.30_dbl_kind ,&! thermal conductivity of snow (W/m/deg)
zref = 10._dbl_kind ,&! reference height for stability (m)
hs_min = 1.e-4_dbl_kind ,&! min snow thickness for computing zTsn (m)
snowpatch = 0.005_dbl_kind ! parameter for fractional snow area (m)
!tcx note cice snowpatch = 0.02

integer (kind=int_kind), parameter :: &
nspint = 3 ! number of solar spectral intervals

! weights for albedos
! 4 Jan 2007 BPB Following are appropriate for complete cloud
! in a summer polar atmosphere with 1.5m bare sea ice surface:
! .636/.364 vis/nir with only 0.5% direct for each band.
real (kind=dbl_kind), parameter :: & ! currently used only
awtvdr = 0.00318_dbl_kind, &! visible, direct ! for history and
awtidr = 0.00182_dbl_kind, &! near IR, direct ! diagnostics
awtvdf = 0.63282_dbl_kind, &! visible, diffuse
awtidf = 0.36218_dbl_kind ! near IR, diffuse

real (kind=dbl_kind), parameter :: &
qqqice = 11637800._dbl_kind ,&! for qsat over ice
TTTice = 5897.8_dbl_kind ,&! for qsat over ice
qqqocn = 627572.4_dbl_kind ,&! for qsat over ocn
TTTocn = 5107.4_dbl_kind ! for qsat over ocn

! orbital parameters
integer (kind=int_kind) :: iyear_AD ! Year to calculate orbit for
real(kind=dbl_kind),public :: eccen ! Earth's orbital eccentricity
real(kind=dbl_kind),public :: obliqr ! Earth's obliquity in radians
real(kind=dbl_kind),public :: lambm0 ! Mean longitude of perihelion at the
! vernal equinox (radians)
real(kind=dbl_kind),public :: mvelpp ! Earth's moving vernal equinox longitude
! of perihelion + pi (radians)
real(kind=dbl_kind),public :: obliq ! obliquity in degrees
real(kind=dbl_kind),public :: mvelp ! moving vernal equinox long
real(kind=dbl_kind),public :: decln ! solar declination angle in radians
real(kind=dbl_kind),public :: eccf ! earth orbit eccentricity factor
logical(kind=log_kind),public :: log_print ! Flags print of status/error

!-----------------------------------------------------------------
! numbers used in column package
!-----------------------------------------------------------------

real (kind=dbl_kind), parameter :: &
c0 = 0.0_dbl_kind, &
c1 = 1.0_dbl_kind, &
c1p5 = 1.5_dbl_kind, &
c2 = 2.0_dbl_kind, &
c3 = 3.0_dbl_kind, &
c4 = 4.0_dbl_kind, &
c5 = 5.0_dbl_kind, &
c6 = 6.0_dbl_kind, &
c8 = 8.0_dbl_kind, &
c10 = 10.0_dbl_kind, &
c15 = 15.0_dbl_kind, &
c16 = 16.0_dbl_kind, &
c20 = 20.0_dbl_kind, &
c25 = 25.0_dbl_kind, &
c100 = 100.0_dbl_kind, &
c1000= 1000.0_dbl_kind, &
p001 = 0.001_dbl_kind, &
p01 = 0.01_dbl_kind, &
p1 = 0.1_dbl_kind, &
p2 = 0.2_dbl_kind, &
p4 = 0.4_dbl_kind, &
p5 = 0.5_dbl_kind, &
p6 = 0.6_dbl_kind, &
p05 = 0.05_dbl_kind, &
p15 = 0.15_dbl_kind, &
p25 = 0.25_dbl_kind, &
p75 = 0.75_dbl_kind, &
p333 = c1/c3, &
p666 = c2/c3, &
puny = 1.0e-11_dbl_kind, &
bignum = 1.0e+30_dbl_kind, &
pi = SHR_CONST_PI ,&! pi
pih = p5*pi

!=======================================================================

end module icepack_constants

!=======================================================================
153 changes: 153 additions & 0 deletions columnphysics/constants/cice/icepack_constants.F90
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
! SVN:$Id: icepack_constants.F90 1226 2017-05-22 22:45:03Z tcraig $
!=======================================================================
!
! This module defines a variety of physical and numerical constants
! used in the column package
!
! author Elizabeth C. Hunke, LANL

module icepack_constants

use icepack_kinds_mod

implicit none
save
private

!-----------------------------------------------------------------
! physical constants
!-----------------------------------------------------------------

real (kind=dbl_kind), parameter, public :: &
secday = 86400.0_dbl_kind ,&! seconds in calendar day
rhos = 330.0_dbl_kind ,&! density of snow (kg/m^3)
rhoi = 917.0_dbl_kind ,&! density of ice (kg/m^3)
rhow = 1026.0_dbl_kind ,&! density of seawater (kg/m^3)
cp_air = 1005.0_dbl_kind ,&! specific heat of air (J/kg/K)
! (Briegleb JGR 97 11475-11485 July 1992)
emissivity= 0.95_dbl_kind ,&! emissivity of snow and ice
cp_ice = 2106._dbl_kind ,&! specific heat of fresh ice (J/kg/K)
cp_ocn = 4218._dbl_kind ,&! specific heat of ocn (J/kg/K)
! freshwater value needed for enthalpy
depressT = 0.054_dbl_kind ,&! Tf:brine salinity ratio (C/ppt)
dragio = 0.00536_dbl_kind ,&! ice-ocn drag coefficient
albocn = 0.06_dbl_kind ,&! ocean albedo
gravit = 9.80616_dbl_kind ,&! gravitational acceleration (m/s^2)
viscosity_dyn = 1.79e-3_dbl_kind, & ! dynamic viscosity of brine (kg/m/s)
Tocnfrz = -1.8_dbl_kind ,&! freezing temp of seawater (C),
! used as Tsfcn for open water
rhofresh = 1000.0_dbl_kind ,&! density of fresh water (kg/m^3)
zvir = 0.606_dbl_kind ,&! rh2o/rair - 1.0
vonkar = 0.4_dbl_kind ,&! von Karman constant
cp_wv = 1.81e3_dbl_kind ,&! specific heat of water vapor (J/kg/K)
stefan_boltzmann = 567.0e-10_dbl_kind,&! W/m^2/K^4
Tffresh = 273.15_dbl_kind ,&! freezing temp of fresh ice (K)
Lsub = 2.835e6_dbl_kind ,&! latent heat, sublimation freshwater (J/kg)
Lvap = 2.501e6_dbl_kind ,&! latent heat, vaporization freshwater (J/kg)
Lfresh = Lsub-Lvap ,&! latent heat of melting of fresh ice (J/kg)
Timelt = 0.0_dbl_kind ,&! melting temperature, ice top surface (C)
Tsmelt = 0.0_dbl_kind ,&! melting temperature, snow top surface (C)
ice_ref_salinity = 4._dbl_kind ,&! (ppt)
! ocn_ref_salinity = 34.7_dbl_kind,&! (ppt)
iceruf = 0.0005_dbl_kind ,&! ice surface roughness (m)
cprho = cp_ocn*rhow ,&! for ocean mixed layer (J kg / K m^3)

! for ice strength
Cf = 17._dbl_kind ,&! ratio of ridging work to PE change in ridging
Cp = 0.5_dbl_kind*gravit*(rhow-rhoi)*rhoi/rhow ,&! proport const for PE
Pstar = 2.75e4_dbl_kind ,&! constant in Hibler strength formula
! (kstrength = 0)
Cstar = 20._dbl_kind ,&! constant in Hibler strength formula
! (kstrength = 0)

! (Ebert, Schramm and Curry JGR 100 15965-15975 Aug 1995)
kappav = 1.4_dbl_kind ,&! vis extnctn coef in ice, wvlngth<700nm (1/m)
!kappan = 17.6_dbl_kind,&! vis extnctn coef in ice, wvlngth<700nm (1/m)

! kice is not used for mushy thermo
kice = 2.03_dbl_kind ,&! thermal conductivity of fresh ice(W/m/deg)
! kseaice is used only for zero-layer thermo
kseaice= 2.00_dbl_kind ,&! thermal conductivity of sea ice (W/m/deg)
! (used in zero layer thermodynamics option)
ksno = 0.30_dbl_kind ,&! thermal conductivity of snow (W/m/deg)
zref = 10._dbl_kind ,&! reference height for stability (m)
hs_min = 1.e-4_dbl_kind ,&! min snow thickness for computing zTsn (m)
snowpatch = 0.02_dbl_kind ! parameter for fractional snow area (m)

integer (kind=int_kind), parameter, public :: &
nspint = 3 ! number of solar spectral intervals

! weights for albedos
! 4 Jan 2007 BPB Following are appropriate for complete cloud
! in a summer polar atmosphere with 1.5m bare sea ice surface:
! .636/.364 vis/nir with only 0.5% direct for each band.
real (kind=dbl_kind), parameter, public :: & ! currently used only
awtvdr = 0.00318_dbl_kind, &! visible, direct ! for history and
awtidr = 0.00182_dbl_kind, &! near IR, direct ! diagnostics
awtvdf = 0.63282_dbl_kind, &! visible, diffuse
awtidf = 0.36218_dbl_kind ! near IR, diffuse

real (kind=dbl_kind), parameter, public :: &
qqqice = 11637800._dbl_kind ,&! for qsat over ice
TTTice = 5897.8_dbl_kind ,&! for qsat over ice
qqqocn = 627572.4_dbl_kind ,&! for qsat over ocn
TTTocn = 5107.4_dbl_kind ! for qsat over ocn

! orbital parameters
integer (kind=int_kind), public :: iyear_AD ! Year to calculate orbit for
real(kind=dbl_kind),public :: eccen ! Earth's orbital eccentricity
real(kind=dbl_kind),public :: obliqr ! Earth's obliquity in radians
real(kind=dbl_kind),public :: lambm0 ! Mean longitude of perihelion at the
! vernal equinox (radians)
real(kind=dbl_kind),public :: mvelpp ! Earth's moving vernal equinox longitude
! of perihelion + pi (radians)
real(kind=dbl_kind),public :: obliq ! obliquity in degrees
real(kind=dbl_kind),public :: mvelp ! moving vernal equinox long
real(kind=dbl_kind),public :: decln ! solar declination angle in radians
real(kind=dbl_kind),public :: eccf ! earth orbit eccentricity factor
logical(kind=log_kind),public :: log_print ! Flags print of status/error

!-----------------------------------------------------------------
! numbers used in column package
!-----------------------------------------------------------------

real (kind=dbl_kind), parameter, public :: &
c0 = 0.0_dbl_kind, &
c1 = 1.0_dbl_kind, &
c1p5 = 1.5_dbl_kind, &
c2 = 2.0_dbl_kind, &
c3 = 3.0_dbl_kind, &
c4 = 4.0_dbl_kind, &
c5 = 5.0_dbl_kind, &
c6 = 6.0_dbl_kind, &
c8 = 8.0_dbl_kind, &
c10 = 10.0_dbl_kind, &
c15 = 15.0_dbl_kind, &
c16 = 16.0_dbl_kind, &
c20 = 20.0_dbl_kind, &
c25 = 25.0_dbl_kind, &
c100 = 100.0_dbl_kind, &
c1000= 1000.0_dbl_kind, &
p001 = 0.001_dbl_kind, &
p01 = 0.01_dbl_kind, &
p1 = 0.1_dbl_kind, &
p2 = 0.2_dbl_kind, &
p4 = 0.4_dbl_kind, &
p5 = 0.5_dbl_kind, &
p6 = 0.6_dbl_kind, &
p05 = 0.05_dbl_kind, &
p15 = 0.15_dbl_kind, &
p25 = 0.25_dbl_kind, &
p75 = 0.75_dbl_kind, &
p333 = c1/c3, &
p666 = c2/c3, &
puny = 1.0e-11_dbl_kind, &
bignum = 1.0e+30_dbl_kind, &
pi = 3.14159265358979323846_dbl_kind, &
pih = p5*pi

!=======================================================================

end module icepack_constants

!=======================================================================
Loading

0 comments on commit 6f98a36

Please sign in to comment.