source: LMDZ6/trunk/libf/misc/q_sat.F

Last change on this file was 2342, checked in by Ehouarn Millour, 9 years ago

Follow-up for a cleaner separation between dynamics and physics:

  • "write_field" is called from physics and dynamics but has no dependence on either so it should be in "misc"
  • "write_field_phy" is common to all physics, so it goes in "phy_common"
  • "init_ssrf_m" and "limit_netcdf" are only used by ce0l, so these should be in "dynlonlat_phylonlat/phylmd"
  • "q_sat" is called from physics and dynamics but has no dependence on either so it should be in "misc"

EM

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.6 KB
Line 
1!
2! $Header$
3!
4!
5!
6
7      subroutine q_sat(np,temp,pres,qsat)
8!
9      IMPLICIT none
10!======================================================================
11! Autheur(s): Z.X. Li (LMD/CNRS)
12!  reecriture vectorisee par F. Hourdin.
13! Objet: calculer la vapeur d'eau saturante (formule Centre Euro.)
14!======================================================================
15! Arguments:
16! kelvin---input-R: temperature en Kelvin
17! millibar--input-R: pression en mb
18!
19! q_sat----output-R: vapeur d'eau saturante en kg/kg
20!======================================================================
21!
22      integer np
23      REAL temp(np),pres(np),qsat(np)
24!
25      REAL r2es
26      PARAMETER (r2es=611.14 *18.0153/28.9644)
27!
28      REAL r3les, r3ies, r3es
29      PARAMETER (R3LES=17.269)
30      PARAMETER (R3IES=21.875)
31!
32      REAL r4les, r4ies, r4es
33      PARAMETER (R4LES=35.86)
34      PARAMETER (R4IES=7.66)
35!
36      REAL rtt
37      PARAMETER (rtt=273.16)
38!
39      REAL retv
40      PARAMETER (retv=28.9644/18.0153 - 1.0)
41
42      real zqsat
43      integer ip
44!
45!     ------------------------------------------------------------------
46!
47!
48
49      do ip=1,np
50
51!      write(*,*)'kelvin,millibar=',kelvin,millibar
52!       write(*,*)'temp,pres=',temp(ip),pres(ip)
53!
54         IF (temp(ip) .LE. rtt) THEN
55            r3es = r3ies
56            r4es = r4ies
57         ELSE
58            r3es = r3les
59            r4es = r4les
60         ENDIF
61!
62         zqsat=r2es/pres(ip)*EXP(r3es*(temp(ip)-rtt)/(temp(ip)-r4es))
63         zqsat=MIN(0.5,ZQSAT)
64         zqsat=zqsat/(1.-retv *zqsat)
65!
66         qsat(ip)= zqsat
67!      write(*,*)'qsat=',qsat(ip)
68
69      enddo
70!
71      RETURN
72      END
Note: See TracBrowser for help on using the repository browser.