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

Last change on this file was 5274, checked in by abarral, 47 minutes ago

Replace yomcst.h by existing module

  • 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.7 KB
Line 
1
2! $Id: transp.f90 5274 2024-10-25 13:41:23Z abarral $
3
4SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, &
5                  utran_e, vtran_e, utran_q, vtran_q, utran_w, vtran_w)
6
7  USE dimphy
8  USE yomcst_mod_h, ONLY: RPI, RCLUM, RHPLA, RKBOL, RNAVO                   &
9          , RDAY, REA, REPSM, RSIYEA, RSIDAY, ROMEGA                  &
10          , R_ecc, R_peri, R_incl                                      &
11          , RA, RG, R1SA                                         &
12          , RSIGMA                                                     &
13          , R, RMD, RMV, RD, RV, RCPD                    &
14          , RMO3, RMCO2, RMC, RMCH4, RMN2O, RMCFC11, RMCFC12        &
15          , RCPV, RCVD, RCVV, RKAPPA, RETV, eps_w                    &
16          , RCW, RCS                                                 &
17          , RLVTT, RLSTT, RLMLT, RTT, RATM                           &
18          , RESTT, RALPW, RBETW, RGAMW, RALPS, RBETS, RGAMS            &
19          , RALPD, RBETD, RGAMD
20IMPLICIT NONE
21  ! ======================================================================
22  ! Auteur(s): Z.X.Li (LMD/CNRS)
23  ! Date: le 25 avril 1994
24  ! Objet: Calculer le transport de l'energie et de la vapeur d'eau
25  ! ======================================================================
26
27
28
29  !--inputs
30  REAL, INTENT(IN)  :: paprs(klon, klev+1), tsol(klon), geom(klon, klev)
31  REAL, INTENT(IN)  :: t(klon, klev), q(klon, klev), ql(klon, klev), qs(klon, klev)
32  REAL, INTENT(IN)  :: u(klon, klev), v(klon, klev)
33  !--outputs
34  REAL, INTENT(OUT) :: utran_e(klon), vtran_e(klon) !--lateral flux of dry static energy (J m-1 s-1)
35  REAL, INTENT(OUT) :: utran_q(klon), vtran_q(klon) !--lateral flux of water vapour (kg m-1 s-1)
36  REAL, INTENT(OUT) :: utran_w(klon), vtran_w(klon) !--lateral flux of total water (kg m-1 s-1)
37  !--local variables
38  INTEGER i, l
39  REAL e, dm
40  ! ------------------------------------------------------------------
41
42  !--initialisations
43  utran_e(:) = 0.0
44  utran_q(:) = 0.0
45  vtran_e(:) = 0.0
46  vtran_q(:) = 0.0
47  utran_w(:) = 0.0
48  vtran_w(:) = 0.0
49
50  !--vertical integration of diagnostics
51  DO l = 1, klev
52    DO i = 1, klon
53      dm= (paprs(i,l)-paprs(i,l+1))/RG  !--mass of layer kg m-2
54      !--moist static energy
55!      e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l)
56      !--dry static energy
57      e = rcpd*t(i, l) + geom(i, l)
58      utran_e(i) = utran_e(i) + u(i, l)*e*dm
59      vtran_e(i) = vtran_e(i) + v(i, l)*e*dm
60      !--water vapour
61      utran_q(i) = utran_q(i) + u(i, l)*q(i,l)*dm
62      vtran_q(i) = vtran_q(i) + v(i, l)*q(i,l)*dm
63      !--total water
64      utran_w(i) = utran_w(i) + u(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm
65      vtran_w(i) = vtran_w(i) + v(i, l)*(q(i,l)+ql(i,l)+qs(i,l))*dm
66    ENDDO
67  ENDDO
68
69  RETURN
70END SUBROUTINE transp
Note: See TracBrowser for help on using the repository browser.