My Project
ice_constants.f90
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 !/===========================================================================/
13 ! CVS VERSION INFORMATION
14 ! $Id$
15 ! $Name$
16 ! $Revision$
17 !/===========================================================================/
18 
19 !=======================================================================
20 !BOP
21 !
22 ! !MODULE: ice_constants - sets physical constants
23 !
24 ! !DESCRIPTION:
25 !
26 ! This module defines a variety of physical and numerical constants
27 ! used throughout the ice model \!
28 ! Code originally based on constants.F in POP
29 !
30 ! !REVISION HISTORY:
31 !
32 ! author Elizabeth C. Hunke, LANL
33 !
34 ! !INTERFACE:
35 
37  use control, only : pi,pi2
38 
39 !
40 ! !USES:
41 !
42 !#ifdef CCSMcoupled
43 ! use shr_const_mod
44 !#endif
45  use ice_kinds_mod
46  use ice_domain
47 !
48 !EOP
49 !
50  implicit none
51  save
52 
53  !-----------------------------------------------------------------
54  ! physical constants
55  !-----------------------------------------------------------------
56 
57 !#ifdef CCSMcoupled
58 ! real (kind=dbl_kind), parameter :: &
59 ! & pi = SHR_CONST_PI ! pi
60 ! &, gravit = SHR_CONST_G ! gravitational acceleration (m/s^2)
61 ! &, secday = SHR_CONST_CDAY ! seconds in calendar day
62 ! &, omega = SHR_CONST_OMEGA ! angular velocity of earth (rad/sec)
63 ! &, radius = SHR_CONST_REARTH ! earth radius (m)
64 ! &, rhoi = SHR_CONST_RHOICE ! density of ice (kg/m^3)
65 ! &, rhow = SHR_CONST_RHOSW ! density of seawater (kg/m^3)
66 ! &, rhofresh = SHR_CONST_RHOFW ! density of fresh water (kg/m^3)
67 ! &, zvir = SHR_CONST_ZVIR ! rh2o/rair - 1.0
68 ! &, vonkar = SHR_CONST_KARMAN ! von Karman constant
69 ! &, cp_air = SHR_CONST_CPDAIR ! specific heat of air (J/kg/K)
70 ! &, cp_wv = SHR_CONST_CPWV ! specific heat of water vapor (J/kg/K)
71 ! &, stefan_boltzmann = SHR_CONST_STEBOL ! W/m^2/K^4
72 ! &, Tffresh = SHR_CONST_TKFRZ ! freezing temp of fresh ice (K)
73 ! &, cp_ice = SHR_CONST_CPICE ! specific heat of fresh ice (J/kg/K)
74 ! &, cp_ocn = SHR_CONST_CPSW ! specific heat of ocn (J/kg/K)
75 ! &, Lsub = SHR_CONST_LATSUB ! latent heat, sublimation freshwater (J/kg)
76 ! &, Lvap = SHR_CONST_LATVAP ! latent heat, vaporization freshwater (J/kg)
77 ! &, Lfresh = SHR_CONST_LATICE ! latent heat of melting of fresh ice (J/kg)
78 ! &, Timelt = SHR_CONST_TKFRZ-SHR_CONST_TKFRZ ! melting temp. ice top surface (C)
79 ! &, Tsmelt = SHR_CONST_TKFRZ-SHR_CONST_TKFRZ ! melting temp. snow top surface (C)
80 ! &, ice_ref_salinity = SHR_CONST_ICE_REF_SAL ! (psu)
81 ! &, spval = SHR_CONST_SPVAL ! special value
82 !c &, ocn_ref_salinity = SHR_CONST_OCN_REF_SAL ! (psu)
83 !c &, rho_air = SHR_CONST_RHODAIR ! ambient air density (kg/m^3)
84 !#else
85  real (kind=dbl_kind), parameter :: &
86  gravit = 9.80616_dbl_kind &! gravitational acceleration (m/s^2)
87  , secday = 86400.0_dbl_kind &! seconds in calendar day
88  , omega = 7.292e-5_dbl_kind &! angular velocity of earth (rad/sec)
89  , radius = 6.37e6_dbl_kind &! earth radius (m)
90  , rhoi = 917.0_dbl_kind &! density of ice (kg/m^3)
91  , rhow = 1026.0_dbl_kind &! density of seawater (kg/m^3)
92  , rhofresh = 1000.0_dbl_kind &! density of fresh water (kg/m^3)
93  , zvir = 0.606_dbl_kind &! rh2o/rair - 1.0
94  , vonkar = 0.4_dbl_kind &! von Karman constant
95  , cp_air = 1005.0_dbl_kind &! specific heat of air (J/kg/K)
96  , cp_wv = 1.81e3_dbl_kind &! specific heat of water vapor (J/kg/K)
97  , stefan_boltzmann = 567.0e-10_dbl_kind &! W/m^2/K^4
98  , tffresh = 273.15_dbl_kind &! freezing temp of fresh ice (K)
99 !#ifdef CCSM
100 ! &, cp_ice = 2054._dbl_kind ! specific heat of fresh ice (J/kg/K)
101 !#else
102  , cp_ice = 2106._dbl_kind & ! specific heat of fresh ice (J/kg/K)
103 !#endif
104  , cp_ocn = 4218._dbl_kind &! specific heat of ocn (J/kg/K)
105  , lsub = 2.835e6_dbl_kind &! latent heat, sublimation freshwater (J/kg)
106  , lvap = 2.501e6_dbl_kind &! latent heat, vaporization freshwater (J/kg)
107  , lfresh = lsub-lvap &! latent heat of melting of fresh ice (J/kg)
108  , timelt = 0.0_dbl_kind &! melting temperature, ice top surface (C)
109  , tsmelt = 0.0_dbl_kind &! melting temperature, snow top surface (C)
110  , ice_ref_salinity = 4._dbl_kind ! (psu)
111 !c &, ocn_ref_salinity = 34.7_dbl_kind ! (psu)
112 !c &, rho_air = 1.2_dbl_kind ! ambient air density (kg/m^3)
113 
114  real (kind=real_kind), parameter :: &
115  & spval = 1.0e30_real_kind ! special value
116 !#endif
117 
118  real (kind=dbl_kind), parameter :: &
119  rhos = 330.0_dbl_kind &! density of snow (kg/m^3)
120  , depresst = 0.054_dbl_kind &! Tf:brine salinity ratio (C/ppt)
121  , iceruf = 0.0005_dbl_kind & ! ice surface roughness (m)
122 
123  ! (Ebert, Schramm and Curry JGR 100 15965-15975 Aug 1995)
124  , kappav = 1.4_dbl_kind &! vis extnctn coef in ice, wvlngth<700nm (1/m)
125  , kappan = 17.6_dbl_kind &! vis extnctn coef in ice, wvlngth<700nm (1/m)
126 
127  ! (Briegleb JGR 97 11475-11485 July 1992)
128  , emissivity = 0.95_dbl_kind & ! emissivity of snow and ice
129 
130  , kice = 2.03_dbl_kind &! thermal conductivity of fresh ice(W/m/deg)
131  , ksno = 0.30_dbl_kind &! thermal conductivity of snow (W/m/deg)
132  , zref = 10._dbl_kind ! reference height for stability (m)
133 
134  real (kind=dbl_kind), parameter :: &
135  qqqice = 11637800._dbl_kind &! for qsat over ice
136  , tttice = 5897.8_dbl_kind &! for qsat over ice
137  , qqqocn = 627572.4_dbl_kind &! for qsat over ocn
138  , tttocn = 5107.4_dbl_kind ! for qsat over ocn
139 
140  !-----------------------------------------------------------------
141  ! numbers
142  !-----------------------------------------------------------------
143 
144 ! real (kind=dbl_kind), dimension(ilo:ihi,jlo:jhi) :: &
145 ! one ! array of ones which is often useful
146 ! defined in other place ??
147 
148 
149 
150  real (kind=dbl_kind), parameter :: &
151  c0i = 0.0_dbl_kind, &
152  c1i = 1.0_dbl_kind, &
153  c2i = 2.0_dbl_kind, &
154  c3i = 3.0_dbl_kind, &
155  c4i = 4.0_dbl_kind, &
156  c5i = 5.0_dbl_kind, &
157  c6i = 6.0_dbl_kind, &
158  c7i = 7.0_dbl_kind, &
159  c8i = 8.0_dbl_kind, &
160  c9i = 9.0_dbl_kind, &
161  c10i = 10.0_dbl_kind, &
162  c12 = 12.0_dbl_kind, &
163  c15 = 15.0_dbl_kind, &
164  c16 = 16.0_dbl_kind, &
165  c20 = 20.0_dbl_kind, &
166  c25 = 25.0_dbl_kind, &
167  c90 = 90.0_dbl_kind, &
168  c100 = 100.0_dbl_kind, &
169  c360 = 360.0_dbl_kind, &
170  c365 = 365.0_dbl_kind, &
171  c1000= 1000.0_dbl_kind, &
172  c1p5 = 1.5_dbl_kind, &
173  p001 = 0.001_dbl_kind, &
174  p01 = 0.01_dbl_kind, &
175  p1 = 0.1_dbl_kind, &
176  p2 = 0.2_dbl_kind, &
177  p4 = 0.4_dbl_kind, &
178  p5 = 0.5_dbl_kind, &
179  p6 = 0.6_dbl_kind, &
180  p15 = 0.15_dbl_kind, &
181  p25 = 0.25_dbl_kind, &
182  p166 = c1i/c6i, &
183  p333 = c1i/c3i, &
184  p666 = c2i/c3i, &
185  p111 = c1i/c9i, &
186  p055 = p111*p5, &
187  p027 = p055*p5, &
188  p222 = c2i/c9i, &
189  eps04 = 1.0e-4_dbl_kind, &
190  eps11 = 1.0e-11_dbl_kind, &
191  eps12 = 1.0e-12_dbl_kind, &
192  eps13 = 1.0e-13_dbl_kind, &
193  eps15 = 1.0e-15_dbl_kind, &
194  eps16 = 1.0e-16_dbl_kind, &
195 !c & puny = eps13
196 ! puny = eps11
197 
198 
199  puny = 1.0e-5_dbl_kind
200 
201 
202 !#ifndef CCSMcoupled
203 ! real (kind=dbl_kind) :: pi
204 !#endif
205 
206  real (kind=dbl_kind) :: &
207  pih !, pi2 ! pi/2 and 2pi
208 
209  !-----------------------------------------------------------------
210  ! conversion factors
211  !-----------------------------------------------------------------
212 
213  real (kind=dbl_kind), parameter :: &
214  cm_to_m = 0.01_dbl_kind & ! cm to meters
215  , m_to_cm = 100._dbl_kind & ! meters to cm
216  , m2_to_km2 = 1.e-6_dbl_kind & ! m^2 to km^2
217  , kg_to_g = 1000._dbl_kind & ! kilograms to grams
218  , mps_to_cmpdy = 8.64e6_dbl_kind &! m per s to cm per day
219  , mps_to_cmpyr = mps_to_cmpdy*365._dbl_kind ! m per s to cm per yr
220 
221  real (kind=dbl_kind) :: &
222  rad_to_deg ! degree-radian conversion
223 
224 !=======================================================================
225 
226  contains
227 
228 !=======================================================================
229 !BOP
230 !
231 ! !IROUTINE: init_constants - initialize constants defined at run time
232 !
233 ! !INTERFACE:
234 !
235  subroutine init_constants
236 !
237 ! !DESCRIPTION:
238 !
239 ! Initializes constants that are best defined at run time (e.g. pi)
240 !
241 ! !REVISION HISTORY:
242 !
243 ! author Elizabeth C. Hunke, LANL
244 !
245 ! !USES:
246 !
247 ! !INPUT/OUTPUT PARAMETERS:
248 !
249 !EOP
250 !
251  integer (kind=int_kind) :: i, j
252 
253  do j=jlo,jhi
254  do i=ilo,ihi
255 ! one(i,j) = c1i
256  enddo
257  enddo
258 
259 !#ifndef CCSMcoupled
260 ! pi = c4*atan(c1)
261 !#endif
262 ! pi2 = c2*pi
263  pih = p5*pi
264 
265  rad_to_deg = 180.0_dbl_kind/pi
266 
267  end subroutine init_constants
268 
269 !=======================================================================
270 
271  end module ice_constants
272 
273 !=======================================================================
real(kind=dbl_kind), parameter mps_to_cmpyr
real(kind=dbl_kind), parameter eps13
real(kind=dbl_kind), parameter depresst
real(kind=dbl_kind), parameter c1000
real(kind=dbl_kind), parameter c9i
real(kind=dbl_kind), parameter secday
real(kind=dbl_kind), parameter zvir
real(kind=dbl_kind), parameter tttice
integer, parameter real_kind
integer, parameter dbl_kind
real(kind=dbl_kind) rad_to_deg
real(kind=dbl_kind), parameter eps15
real(kind=dbl_kind), parameter tttocn
real(kind=dbl_kind), parameter rhofresh
real(dp), parameter pi
Definition: mod_main.f90:880
real(kind=dbl_kind), parameter c8i
integer(kind=int_kind) ihi
Definition: ice_domain.f90:101
real(kind=dbl_kind), parameter c0i
real(kind=dbl_kind), parameter lvap
real(kind=dbl_kind), parameter eps12
real(kind=dbl_kind), parameter c3i
real(kind=dbl_kind), parameter rhos
real(kind=dbl_kind), parameter qqqice
real(kind=dbl_kind), parameter c10i
real(kind=dbl_kind), parameter lfresh
real(kind=dbl_kind), parameter ice_ref_salinity
real(kind=dbl_kind), parameter p027
real(kind=dbl_kind), parameter m_to_cm
real(kind=dbl_kind), parameter c90
real(kind=dbl_kind), parameter stefan_boltzmann
real(kind=dbl_kind), parameter kappan
real(kind=dbl_kind), parameter c4i
real(kind=dbl_kind), parameter p4
real(kind=dbl_kind), parameter vonkar
real(kind=dbl_kind), parameter p25
real(kind=dbl_kind), parameter c20
real(kind=dbl_kind), parameter c6i
real(kind=dbl_kind) pih
integer(kind=int_kind) jlo
Definition: ice_domain.f90:101
real(kind=dbl_kind), parameter c25
real(kind=dbl_kind), parameter cp_wv
real(kind=dbl_kind), parameter cp_ice
real(kind=dbl_kind), parameter iceruf
real(kind=dbl_kind), parameter emissivity
integer(kind=int_kind) ilo
Definition: ice_domain.f90:101
real(kind=dbl_kind), parameter p5
real(kind=dbl_kind), parameter puny
real(kind=dbl_kind), parameter tffresh
real(kind=dbl_kind), parameter p2
real(kind=dbl_kind), parameter eps16
integer(kind=int_kind) jhi
Definition: ice_domain.f90:101
real(kind=dbl_kind), parameter mps_to_cmpdy
real(kind=dbl_kind), parameter c12
real(kind=dbl_kind), parameter tsmelt
real(kind=dbl_kind), parameter lsub
real(kind=dbl_kind), parameter p001
real(kind=dbl_kind), parameter rhow
real(kind=dbl_kind), parameter timelt
real(kind=dbl_kind), parameter zref
subroutine init_constants
real(kind=real_kind), parameter spval
real(dp), parameter pi2
Definition: mod_main.f90:881
real(kind=dbl_kind), parameter c2i
real(kind=dbl_kind), parameter omega
real(kind=dbl_kind), parameter c7i
real(kind=dbl_kind), parameter p111
real(kind=dbl_kind), parameter qqqocn
real(kind=dbl_kind), parameter p666
real(kind=dbl_kind), parameter p1
real(kind=dbl_kind), parameter c5i
real(kind=dbl_kind), parameter kg_to_g
real(kind=dbl_kind), parameter gravit
real(kind=dbl_kind), parameter c1i
real(kind=dbl_kind), parameter ksno
real(kind=dbl_kind), parameter c365
real(kind=dbl_kind), parameter c15
real(kind=dbl_kind), parameter cm_to_m
real(kind=dbl_kind), parameter p166
real(kind=dbl_kind), parameter rhoi
real(kind=dbl_kind), parameter c360
real(kind=dbl_kind), parameter radius
real(kind=dbl_kind), parameter kice
real(kind=dbl_kind), parameter p333
real(kind=dbl_kind), parameter eps11
real(kind=dbl_kind), parameter p6
real(kind=dbl_kind), parameter p15
real(kind=dbl_kind), parameter p055
real(kind=dbl_kind), parameter m2_to_km2
real(kind=dbl_kind), parameter kappav
real(kind=dbl_kind), parameter p01
real(kind=dbl_kind), parameter c16
real(kind=dbl_kind), parameter eps04
real(kind=dbl_kind), parameter c1p5
real(kind=dbl_kind), parameter c100
real(kind=dbl_kind), parameter cp_ocn
real(kind=dbl_kind), parameter p222
real(kind=dbl_kind), parameter cp_air