source: LMDZ6/trunk/libf/phylmd/qsat_seawater_mod.f90

Last change on this file was 6048, checked in by fhourdin, 6 weeks ago

Renommage des nom de fichiers incluant des modules

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