source: LMDZ6/trunk/libf/phylmd/qsat_seawater.F90 @ 5229

Last change on this file since 5229 was 4722, checked in by Laurent Fairhead, 13 months ago

Modification by O. Torres to the cdrag routines to include different bulk formulae
to calculate cdrag coefficients over ocean as well as an iteration of that
calculation.
The iteration is controlled by flag ok_cdrag_iter which if set to FALSE by default
to converge with previous results.
The choice of bulk formulae is set with the choix_bulk parameter
The number of iterations to run is set with nit_bulk
OT, PB, CD, LF

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.