source: LMDZ6/trunk/libf/phylmd/qsat_seawater.f90 @ 5300

Last change on this file since 5300 was 5268, checked in by abarral, 5 weeks ago

.f90 <-> .F90 depending on cpp key use

File size: 4.1 KB
Line 
1!-------------------------------------------------------------------------------
2!
3!     ######################################
4REAL      FUNCTION QSAT_SEAWATER(PT,PP)
5!     ######################################
6!
7!!****  *QSATW * - function to compute saturation vapor humidity from
8!!                 temperature
9!!
10!!    PURPOSE
11!!    -------
12!       The purpose of this function is to compute the saturation vapor
13!     pressure from temperature over saline seawater
14!     
15!
16!!**  METHOD
17!!    ------
18!!       Given temperature T (PT), the saturation vapor pressure es(T)
19!!    (FOES(PT)) is computed by integration of the Clapeyron equation
20!!    from the triple point temperature Tt (XTT) and the saturation vapor
21!!    pressure of the triple point es(Tt) (XESTT), i.e 
22!!    The reduction due to salinity is compute with the factor 0.98 (reduction of 2%)
23!!     
24!!         es(T)= 0.98*EXP( alphaw - betaw /T - gammaw Log(T) )
25!! 
26!!     with :
27!!       alphaw (XALPW) = LOG(es(Tt))+ betaw/Tt + gammaw Log(Tt)
28!!       betaw (XBETAW) = Lv(Tt)/Rv + gammaw Tt
29!!       gammaw (XGAMW) = (Cl -Cpv) /Rv
30!!
31!!      Then, the specific humidity at saturation is deduced.
32!! 
33!!
34!!    EXTERNAL
35!!    --------
36!!      NONE
37!!
38!!    IMPLICIT ARGUMENTS
39!!    ------------------
40!!      Module MODD_CST : comtains physical constants
41!!        XALPW   : Constant for saturation vapor pressure function
42!!        XBETAW  : Constant for saturation vapor pressure function
43!!        XGAMW   : Constant for saturation vapor pressure function 
44!!     
45!!    REFERENCE
46!!    ---------
47!!      Book2 of documentation of Meso-NH
48!!      Zeng, X., Zhao, M., and Dickinson, R. E., 1998 : Intercomparaison of bulk
49!!      aerodynamic algorithm for the computation of sea surface fluxes using
50!!      TOGA COARE and TAO data. Journal of Climate, vol 11, n°10, pp 2628--2644
51!!
52!!
53!!    AUTHOR
54!!    ------
55!!      C. Lebeaupin    * Meteo France *
56!!
57!!    MODIFICATIONS
58!!    -------------
59!!      Original    6/04/2005
60!-------------------------------------------------------------------------------
61!
62!*       0.    DECLARATIONS
63!              ------------
64!
65USE MODD_CSTS
66USE dimphy
67USE indice_sol_mod
68!
69IMPLICIT NONE
70!
71!*       0.1   Declarations of arguments and results
72!
73!
74
75REAL, DIMENSION(klon), INTENT(IN)                :: PT     ! Temperature
76                                                        ! (Kelvin)
77REAL, DIMENSION(klon), INTENT(IN)                :: PP     ! Pressure
78                                                        ! (Pa)
79REAL, DIMENSION(SIZE(PT))                        :: PQSAT  ! saturation vapor
80                                                        ! specific humidity
81                                                        ! with respect to
82                                                        ! water (kg/kg)
83
84!
85!*       0.2   Declarations of local variables
86!
87REAL, DIMENSION(SIZE(PT))                   :: ZFOES  ! saturation vapor
88                                                        ! pressure
89                                                        ! (Pascal)
90!
91REAL, DIMENSION(SIZE(PT))                   :: ZWORK1
92REAL                                        :: ZWORK2
93!REAL(KIND=JPRB) :: ZHOOK_HANDLE
94!-------------------------------------------------------------------------------
95!
96!IF (LHOOK) CALL DR_HOOK('MODE_THERMOS:QSATSEAW_1D',0,ZHOOK_HANDLE)
97!
98!ZFOES  = 1 !PSAT(PT(:))
99!ZFOES  = 0.98*ZFOES
100!ZFOES(:) = ZFOES(:)*1013.25E+02             !convert from atm to Pa
101ZFOES = 0.98*EXP( XALPW - XBETAW/PT - XGAMW*LOG(PT)  )
102! vapor pressure reduction of 2% over saline seawater could have a significant
103! impact on the computation of surface latent heat flux under strong wind
104! conditions (Zeng et al, 1998).
105!
106ZWORK1 = ZFOES/PP
107ZWORK2    = XRD/XRV
108!
109!*       2.    COMPUTE SATURATION HUMIDITY
110!              ---------------------------
111!
112PQSAT = ZWORK2*ZWORK1 / (1.+(ZWORK2-1.)*ZWORK1)
113!
114!IF (LHOOK) CALL DR_HOOK('MODE_THERMOS:QSATSEAW_1D',1,ZHOOK_HANDLE)
115!-------------------------------------------------------------------------------
116!
117END FUNCTION QSAT_SEAWATER
118!
119!-------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.