source: LMDZ6/branches/LMDZ-QUEST/libf/phylmd/transp.F90

Last change on this file was 3250, checked in by Laurent Fairhead, 7 years ago

Integration of transport diagnostics for the CMIP6 data request

  • 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.8 KB
Line 
1
2! $Id: transp.F90 3250 2018-03-12 13:42:42Z abarral $
3
4SUBROUTINE transp(paprs, tsol, t, q, ql, qs, u, v, geom, vtran_e, vtran_q, utran_e, &
5    utran_q, vtran_w, utran_w)
6
7  USE dimphy
8  IMPLICIT NONE
9  ! ======================================================================
10  ! Auteur(s): Z.X.Li (LMD/CNRS)
11  ! Date: le 25 avril 1994
12  ! Objet: Calculer le transport de l'energie et de la vapeur d'eau
13  ! ======================================================================
14
15  include "YOMCST.h"
16
17  REAL paprs(klon, klev+1), tsol(klon)
18  REAL t(klon, klev), q(klon, klev), ql(klon, klev), qs(klon, klev)
19  REAL u(klon, klev), v(klon, klev)
20  REAL utran_e(klon), utran_q(klon), vtran_e(klon), vtran_q(klon)
21  REAL utran_w(klon), vtran_w(klon)
22
23  INTEGER i, l
24  ! ------------------------------------------------------------------
25  REAL geom(klon, klev), e
26  ! ------------------------------------------------------------------
27  DO i = 1, klon
28    utran_e(i) = 0.0
29    utran_q(i) = 0.0
30    vtran_e(i) = 0.0
31    vtran_q(i) = 0.0
32    utran_w(i) = 0.0
33    vtran_w(i) = 0.0
34  END DO
35
36  DO l = 1, klev
37    DO i = 1, klon
38!      e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l)
39      e = rcpd*t(i, l) + geom(i, l)
40      utran_e(i) = utran_e(i) + u(i, l)*e*(paprs(i,l)-paprs(i,l+1))/rg
41      utran_q(i) = utran_q(i) + u(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1))/rg
42      utran_w(i) = utran_w(i) + u(i, l)*(q(i, l)+ql(i, l)+qs(i, l))           &
43                                       *(paprs(i,l)-paprs(i,l+1))/rg
44      vtran_e(i) = vtran_e(i) + v(i, l)*e*(paprs(i,l)-paprs(i,l+1))/rg
45      vtran_q(i) = vtran_q(i) + v(i, l)*q(i, l)*(paprs(i,l)-paprs(i,l+1))/rg
46      vtran_w(i) = vtran_w(i) + v(i, l)*(q(i, l)+ql(i, l)+qs(i, l))           &
47                                       *(paprs(i,l)-paprs(i,l+1))/rg
48    END DO
49  END DO
50
51  RETURN
52END SUBROUTINE transp
Note: See TracBrowser for help on using the repository browser.