source: trunk/LMDZ.COMMON/libf/evolution/NS_psv.F90 @ 3525

Last change on this file since 3525 was 3493, checked in by jbclement, 3 weeks ago

PEM:

  • Renaming of Norbert Schorghofer's subroutines with the prefix 'NS_';
  • Making the extension of all NS's subroutines as '.F90';
  • Deletion of the wrapper subroutine;
  • Making the initialization, variables management and arguments of the main subroutine for the dynamic computation of ice table to be more suitable.

JBC

File size: 1.6 KB
Line 
1      real*8 function psv(T)
2!     saturation vapor pressure of H2O ice [Pascal]
3!     input is temperature [Kelvin]
4      implicit none
5      real*8 T
6
7!-----parametrization 1
8!      real*8 DHmelt,DHvap,DHsub,R,pt,Tt,C
9!      parameter (DHmelt=6008.,DHvap=45050.)
10!      parameter (DHsub=DHmelt+DHvap) ! sublimation enthalpy [J/mol]
11!      parameter (R=8.314,pt=6.11e2,Tt=273.16)
12!      C = (DHsub/R)*(1./T - 1./Tt)
13!      psv = pt*exp(-C)
14
15!-----parametrization 2
16!     eq. (2) in Murphy & Koop, Q. J. R. Meteor. Soc. 131, 1539 (2005)
17!     differs from parametrization 1 by only 0.1%
18      real*8 A,B
19      parameter (A=-6143.7, B=28.9074)
20      psv = exp(A/T+B)  ! Clapeyron
21
22!-----parametrization 3     
23!     eq. (7) in Murphy & Koop, Q. J. R. Meteor. Soc. 131, 1539 (2005)
24!     psv = exp(9.550426 - 5723.265/T + 3.53068*log(T) - 0.00728332*T)
25     
26      end
27
28
29     
30      real*8 function frostpoint(p)
31!     inverse of psv
32!     input is partial pressure [Pascal]
33!     output is temperature [Kelvin]
34      implicit none
35      real*8 p
36     
37!-----inverse of parametrization 1
38!      real*8 DHmelt,DHvap,DHsub,R,pt,Tt
39!      parameter (DHmelt=6008.,DHvap=45050.)
40!      parameter (DHsub=DHmelt+DHvap)
41!      parameter (R=8.314,pt=6.11e2,Tt=273.16)
42!      frostpoint = 1./(1./Tt-R/DHsub*log(p/pt))
43     
44!-----inverse of parametrization 2
45!     inverse of eq. (2) in Murphy & Koop (2005)
46      real*8 A,B
47      parameter (A=-6143.7, B=28.9074)
48      frostpoint = A / (log(p) - B)
49
50!-----approximate inverse of parametrization 3
51!     eq. (8) in Murphy & Koop (2005)
52!      frostpoint = (1.814625*log(p) + 6190.134)/(29.120 - log(p))
53     
54      end
Note: See TracBrowser for help on using the repository browser.