/[lmdze]/trunk/phylmd/transp.f
ViewVC logotype

Annotation of /trunk/phylmd/transp.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 169 - (hide annotations)
Mon Sep 14 17:13:16 2015 UTC (8 years, 8 months ago) by guez
Original Path: trunk/Sources/phylmd/transp.f
File size: 1596 byte(s)
In inifilr_hemisph, colat0 is necessarily >= 1. / rlamda(iim) (see
notes) so we simplify the definition of jfilt. No need to keep modfrst
values at other latitudes than the current one, and we can have one
loop on latitudes instead of two.

Just encapsulated transp into a module.

1 guez 169 module transp_m
2 guez 81
3 guez 169 IMPLICIT NONE
4 guez 81
5 guez 169 contains
6 guez 81
7 guez 169 SUBROUTINE transp(paprs, tsol, t, q, u, v, geom, vtran_e, vtran_q, utran_e, &
8     utran_q)
9 guez 81
10 guez 169 ! From LMDZ4/libf/phylmd/transp.F,v 1.1.1.1 2004/05/19 12:53:09
11 guez 81
12 guez 169 USE dimens_m
13     USE dimphy
14     USE suphec_m
15     ! ======================================================================
16     ! Auteur(s): Z.X.Li (LMD/CNRS)
17     ! Date: le 25 avril 1994
18     ! Objet: Calculer le transport total de l'energie et de la vapeur d'eau
19     ! ======================================================================
20 guez 81
21    
22 guez 169 REAL, INTENT (IN) :: paprs(klon, klev+1)
23     REAL tsol(klon)
24     REAL, INTENT (IN) :: t(klon, klev)
25     REAL, INTENT (IN) :: q(klon, klev), u(klon, klev), v(klon, klev)
26     REAL utran_e(klon), utran_q(klon), vtran_e(klon), vtran_q(klon)
27    
28     INTEGER i, l
29     ! ------------------------------------------------------------------
30     REAL geom(klon, klev), e
31     ! ------------------------------------------------------------------
32 guez 81 DO i = 1, klon
33 guez 169 utran_e(i) = 0.0
34     utran_q(i) = 0.0
35     vtran_e(i) = 0.0
36     vtran_q(i) = 0.0
37 guez 81 END DO
38    
39 guez 169 DO l = 1, klev
40     DO i = 1, klon
41     e = rcpd*t(i, l) + rlvtt*q(i, l) + geom(i, l)
42     utran_e(i) = utran_e(i) + u(i, l)*e*(paprs(i,l)-paprs(i,l+1))/rg
43     utran_q(i) = utran_q(i) + u(i, l)*q(i, l)*(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     END DO
47     END DO
48    
49     END SUBROUTINE transp
50    
51     end module transp_m

  ViewVC Help
Powered by ViewVC 1.1.21