📄 ice_constants.f
字号:
c=======================================================================!---! This module defines a variety of physical and numerical constants!---! used throughout the ice model!---!!---! author C.M. Bitz!---!!---! code originally based on constants.F in POP and ice_constant.F !---! in CSIMc======================================================================= module ice_constants use ice_kinds_mod use pmgrid use comsrf, only: plevmx implicit none save !----------------------------------------------------------------- ! physical constants !----------------------------------------------------------------- integer, parameter :: ni = plevmx ! number of ice levels real (kind=dbl_kind), parameter :: & gravit = 9.80616_dbl_kind ! gravitational acceleration (m/s^2) &, rhoi = 917.0_dbl_kind ! density of ice (kg/m^3) &, rhow = 1026.0_dbl_kind ! density of seawater (kg/m^3) &, rhos = 330.0_dbl_kind ! density of snow (kg/m^3) &, rhofresh = 1000.0_dbl_kind ! density of fresh water (kg/m^3) &, cp_air = 1005.0_dbl_kind ! heat capacity of air (J/kg/K) &, cpwv = 1.81e3_dbl_kind ! Specific heat of water vapor &, stefan_boltzmann = 5.67e-8_dbl_kind ! W/m^2/K^4 &, Tffresh = 273.15_dbl_kind ! Freezing temp of fresh ice (K) &, depressT = 0.054_dbl_kind ! Tf:brine salinity ratio (C/ppt) &, cp_ice = 2054._dbl_kind ! heat capacity of fresh ice (J/kg/K) &, cp_sno = 0.0_dbl_kind ! heat capacity of snow (J/kg/K) &, cp_ocn = 4218._dbl_kind ! heat capacity of ocn (J/kg/K) &, Lsub = 2.835e6_dbl_kind ! latent heat, sublimation freshwater (J/kg) &, Lvap = 2.501e6_dbl_kind ! latent heat, vaporization freshwater (J/kg) &, Lfus = Lsub-Lvap ! latent heat of fusion freshwater (J/kg) &, Timelt = 0.0_dbl_kind ! melting temperature of ice top surface (C) &, Tsmelt = 0.0_dbl_kind ! melting temperature of snow top surface (C) ! (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) ! (Briegleb JGR 97 11475-11485 July 1992) &, emissivity = 0.95_dbl_kind ! emissivity of snow and ice!!! &, emissivity = 1.0_dbl_kind ! emissivity of snow and ice &, kice = 2.0340_dbl_kind ! thermal conductivity of fresh ice(W/m/deg) &, ksno = 0.3100_dbl_kind ! thermal conductivity of snow (W/m/deg)!!! &, ksno = 2.0340_dbl_kind ! thermal conductivity of snow (W/m/deg) &, vonkar = 0.4_dbl_kind ! von Karman constant &, zref = 10._dbl_kind ! reference height for stability (m) &, iceruf = 0.0005_dbl_kind ! ice surface roughness (m) !----------------------------------------------------------------- ! derived and miscellaneous parameters !----------------------------------------------------------------- real (kind=dbl_kind), parameter :: & rLfi = Lfus*rhoi ! latent heat of fusion ice (J/m**3) &, rLfs = Lfus*rhos ! specific latent heat of fusion snow (J/m**3) &, rLvi = Lvap*rhoi ! specific latent heat of vapor*rhoice (J/m**3) &, rLvs = Lvap*rhos ! specific latent heat of vapor*rhosno (J/m**3) &, rcpi = cp_ice*rhoi ! specific heat capacity of fresh ice (J/m**3) &, rcps = cp_sno*rhos ! specific heat capacity of snow (J/m**3) &, rcpidepressT = rcpi*depressT ! param for finding T(z) from q (J/m**3) &, rLfidepressT = rLfi*depressT ! param for heat capacity (J deg/m**3) !----------------------------------------------------------------- ! numbers !----------------------------------------------------------------- real (kind=dbl_kind), parameter :: & c0 = 0.0_dbl_kind, & c1 = 1.0_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, & c7 = 7.0_dbl_kind, & c8 = 8.0_dbl_kind, & c10 = 10.0_dbl_kind, & c15 = 15.0_dbl_kind, & c25 = 25.0_dbl_kind, & c16 = 16.0_dbl_kind, & c20 = 20.0_dbl_kind, & c90 = 90.0_dbl_kind, & c100 = 100.0_dbl_kind, & c360 = 360.0_dbl_kind, & c1000= 1000.0_dbl_kind, & p01 = 0.01_dbl_kind, & p1 = 0.1_dbl_kind, & p2 = 0.2_dbl_kind, & p33 = c1/c3, & p66 = c2/c3, & p5 = 0.5_dbl_kind, & p25 = 0.25_dbl_kind, & eps04 = 1.0e-4_dbl_kind, & eps11 = 1.0e-11_dbl_kind, & eps12 = 1.0e-12_dbl_kind, & eps13 = 1.0e-13_dbl_kind, & eps15 = 1.0e-15_dbl_kind, & puny = eps13 !----------------------------------------------------------------- ! conversion factors !----------------------------------------------------------------- real (kind=dbl_kind), parameter :: & cm_to_m = 0.01_dbl_kind ! cm to meters &, m_to_cm = 100._dbl_kind ! meters to cm &, m2_to_km2 = 1.e-6_dbl_kind ! m^2 to km^2 &, mps_to_cmpdy = 8.64e6_dbl_kind ! m per s to cm per day &, mps_to_cmpyr = mps_to_cmpdy*365._dbl_kind ! m per s to cm per yr real (kind=dbl_kind), parameter :: & saltmax = 3.2_dbl_kind ! max ice salinity &, salnew = 4.0_dbl_kind ! new ice salinity real (kind=dbl_kind), parameter :: & snowpatch = 0.02_dbl_kind real (kind=dbl_kind) :: & pi &, saltz(plevmx+1) ! salinity of each layer for each cat (ppm) &, tmelz(plevmx ) ! melting temper. of each layer for each cat (C) real (kind=dbl_kind), parameter :: & Tfrez = -1.8_dbl_kind ! freezing temperature of sea water (C) &, TfrezK = Tfrez+Tffresh ! freezing temperature of sea water (K)c======================================================================= containsc======================================================================= subroutine init_constants!---!-------------------------------------------------------------------!---! Initializes constants that are best defined at run time !---!------------------------------------------------------------------- integer (kind=int_kind) :: layer real(kind=dbl_kind) :: zn pi = c4*atan(c1) ! salinity and melting temperature profile do layer=1,plevmx zn=(layer-p5)/plevmx saltz(layer)=(saltmax/c2)* & (c1-cos(pi*zn**(0.407_dbl_kind/(0.573_dbl_kind+zn))))c saltz(layer,nc)=saltmax ! for isosaline ice tmelz(layer)=-saltz(layer)*depressT enddo saltz(plevmx+1)=saltmax c if (my_task.eq.master_task) thenc write (6,*) ' salt profile, cat ',ncc write (6,*) (saltz(layer,nc),layer=1,nilay(nc)+1)c write (6,*) ' melt temp, cat ',ncc write (6,*) (tmelz(layer,nc),layer=1,nilay(nc))c endif end subroutine init_constants end module ice_constantsc=======================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -