source: LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_FCTTRE.f90 @ 5441

Last change on this file since 5441 was 5144, checked in by abarral, 5 months ago

Put YOMCST.h into modules

  • 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: 2.3 KB
RevLine 
[5143]1MODULE lmdz_fcttre
2  !     ------------------------------------------------------------------
3  !     This COMDECK includes the Thermodynamical functions for the cy39
4  !       ECMWF Physics package.
5  !       Consistent with YOMCST Basic physics constants, assuming the
6  !       partial pressure of water vapour is given by a first order
7  !       Taylor expansion of Qs(T) w.r.t. to Temperature, using constants
8  !       in YOETHF
9  !     ------------------------------------------------------------------
[5099]10
[5143]11  IMPLICIT NONE; PRIVATE
12  PUBLIC foeew, foede, qsats, qsatl, dqsats, dqsatl, thermcep
[5099]13
[5143]14  LOGICAL, PARAMETER :: thermcep = .TRUE.
[5099]15
[5143]16CONTAINS
[5099]17
[5143]18  REAL FUNCTION foeew (ptarg, pdelarg)
[5144]19    USE lmdz_yoethf, ONLY: r3ies, r3les, r4ies, r4les
20    USE lmdz_yomcst, ONLY: rtt
[5143]21    REAL, INTENT(IN) :: ptarg, pdelarg
22    foeew = exp ((r3les * (1. - pdelarg) + r3ies * pdelarg) * (ptarg - rtt) &
23            / (ptarg - (r4les * (1. - pdelarg) + r4ies * pdelarg)))
24  END FUNCTION foeew
[5099]25
[5143]26  REAL FUNCTION foede (ptarg, pdelarg, p5arg, pqsarg, pcoarg)
[5144]27    USE lmdz_yoethf, ONLY: r4ies, r4les
[5143]28    REAL, INTENT(IN) :: ptarg, pdelarg, p5arg, pqsarg, pcoarg
29    foede = pqsarg * pcoarg * p5arg / (ptarg - (r4les * (1. - pdelarg) + r4ies * pdelarg))**2
30  END FUNCTION foede
[5099]31
[5143]32  REAL FUNCTION qsats(ptarg)
33    REAL, INTENT(IN) :: ptarg
34    qsats = 100.0 * 0.622 * 10.0 ** (2.07023 - 0.00320991 * ptarg - 2484.896 / ptarg + 3.56654 * log10(ptarg))
35  END FUNCTION qsats
[5099]36
[5143]37  REAL FUNCTION qsatl(ptarg)
38    REAL, INTENT(IN) :: ptarg
39    qsatl = 100.0 * 0.622 * 10.0 ** (23.8319 - 2948.964 / ptarg - 5.028 * log10(ptarg) &
40            - 29810.16 * exp(- 0.0699382 * ptarg) + 25.21935 * exp(- 2999.924 / ptarg))
41  END FUNCTION qsatl
[5099]42
[5143]43  REAL FUNCTION dqsats(ptarg, pqsarg)
[5144]44    USE lmdz_yomcst, ONLY: rlvtt, rcpd
[5143]45    REAL, INTENT(IN) :: ptarg, pqsarg
46    dqsats = rlvtt / rcpd * pqsarg * (3.56654 / ptarg + 2484.896 * log(10.) / ptarg**2 - 0.00320991 * log(10.))
47  END FUNCTION dqsats
48
49  REAL FUNCTION dqsatl(ptarg, pqsarg)
[5144]50    USE lmdz_yomcst, ONLY: rlvtt, rcpd
[5143]51    REAL, INTENT(IN) :: ptarg, pqsarg
52    dqsatl = rlvtt / rcpd * pqsarg * log(10.) * (2948.964 / ptarg**2 - 5.028 / log(10.) / ptarg &
53            + 25.21935 * 2999.924 / ptarg**2 * exp(-2999.924 / ptarg) + &
54            29810.16 * 0.0699382 * exp(-0.0699382 * ptarg))
55  END FUNCTION dqsatl
56
57END MODULE lmdz_fcttre
Note: See TracBrowser for help on using the repository browser.