source: LMDZ6/branches/cirrus/libf/phylmd/qsat_seawater2.F90 @ 5409

Last change on this file since 5409 was 4722, checked in by Laurent Fairhead, 14 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: 3.5 KB
Line 
1!-------------------------------------------------------------------------------
2!
3!     ######################################
4REAL      FUNCTION QSAT_SEAWATER2(PT,PP,PSSS)
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) and salinity S (PSSS), the saturation vapor
19!!    pressure es(T,S) (FOES(PT,PSSS)) is computed following Weiss and Price
20!!    (1980).
21!!
22!!      Then, the specific humidity at saturation is deduced.
23!! 
24!!
25!!    EXTERNAL
26!!    --------
27!!      NONE
28!!
29!!    IMPLICIT ARGUMENTS
30!!    ------------------
31!!      Module MODD_CST : contains physical constants
32!!     
33!!    REFERENCE
34!!    ---------
35!!      Weiss, R.F., and Price, B.A., 1980 : Nitrous oxide solubility in water
36!!      and seawater. Marine Chemistry, n°8, pp 347-359.
37!!
38!!
39!!    AUTHOR
40!!    ------
41!!      S. Belamari     * Meteo France *
42!!
43!!    MODIFICATIONS
44!!    -------------
45!!      Original    19/03/2014
46!-------------------------------------------------------------------------------
47!
48!*       0.    DECLARATIONS
49!              ------------
50!
51USE MODD_CSTS, ONLY : XRD, XRV
52USE dimphy
53USE indice_sol_mod
54!
55IMPLICIT NONE
56!
57!*       0.1   Declarations of arguments and results
58!
59!
60REAL, DIMENSION(klon), INTENT(IN)                :: PT     ! Temperature
61                                                        ! (Kelvin)
62REAL, DIMENSION(klon), INTENT(IN)                :: PP     ! Pressure
63                                                        ! (Pascal)
64REAL, DIMENSION(klon), INTENT(IN)                :: PSSS   ! Salinity
65                                                        ! (g/kg)
66REAL, DIMENSION(SIZE(PT))                   :: PQSATA  ! saturation vapor
67                                                        ! specific humidity
68                                                        ! with respect to
69                                                        ! water (kg/kg)
70!
71!*       0.2   Declarations of local variables
72!
73REAL, DIMENSION(SIZE(PT))                   :: ZFOES  ! saturation vapor
74                                                        ! pressure
75                                                        ! (Pascal)
76!
77REAL, DIMENSION(SIZE(PT))                   :: ZWORK1
78REAL                                        :: ZWORK2
79!REAL(KIND=JPRB) :: ZHOOK_HANDLE
80!-------------------------------------------------------------------------------
81!
82!IF (LHOOK) CALL DR_HOOK('MODE_THERMOS:QSATSEAW2_1D',0,ZHOOK_HANDLE)
83!
84!*       1.    COMPUTE SATURATION VAPOR PRESSURE
85!              ---------------------------------
86!
87ZFOES(:) = EXP( 24.4543 -67.4509*(100.0/PT(:)) -4.8489*LOG(PT(:)/100.0)   &
88                -5.44E-04*(PSSS(:)/1.00472) ) !see Sharqawy et al (2010) Eq32 p368
89ZFOES(:) = ZFOES(:)*1013.25E+02             !convert from atm to Pa
90!
91ZWORK1(:) = ZFOES(:)/PP(:)
92ZWORK2    = XRD/XRV
93!
94!*       2.    COMPUTE SATURATION SPECIFIC HUMIDITY
95!              ------------------------------------
96!
97PQSATA(:) = ZWORK2*ZWORK1(:) / (1.0+(ZWORK2-1.0)*ZWORK1(:))
98!
99!IF (LHOOK) CALL DR_HOOK('MODE_THERMOS:QSATSEAW2_1D',1,ZHOOK_HANDLE)
100!-------------------------------------------------------------------------------
101!
102END FUNCTION QSAT_SEAWATER2
103!
104!-------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.