/[lmdze]/trunk/Sources/phylmd/clvent.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/clvent.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 62 by guez, Thu Jul 26 14:37:37 2012 UTC revision 70 by guez, Mon Jun 24 15:39:52 2013 UTC
# Line 7  contains Line 7  contains
7    SUBROUTINE clvent(knon, dtime, u1lay, v1lay, coef, t, ven, paprs, pplay, &    SUBROUTINE clvent(knon, dtime, u1lay, v1lay, coef, t, ven, paprs, pplay, &
8         delp, d_ven, flux_v)         delp, d_ven, flux_v)
9    
10      ! Author: Z. X. Li (LMD/CNRS) date: 1993/08/18      ! Author: Z. X. Li (LMD/CNRS)
11        ! Date: 1993/08/18
12      ! Objet : diffusion verticale de la vitesse      ! Objet : diffusion verticale de la vitesse
13    
14      USE dimphy, ONLY: klev, klon      USE dimphy, ONLY: klev, klon
15      USE suphec_m, ONLY: rd, rg      USE suphec_m, ONLY: rd, rg
16    
17      ! Arguments:      INTEGER knon
18        REAL, intent(in):: dtime
19      ! dtime----input-R- intervalle du temps (en second)      ! dtime----input-R- intervalle du temps (en second)
20    
21        REAL u1lay(klon), v1lay(klon)
22      ! u1lay----input-R- vent u de la premiere couche (m/s)      ! u1lay----input-R- vent u de la premiere couche (m/s)
23      ! v1lay----input-R- vent v de la premiere couche (m/s)      ! v1lay----input-R- vent v de la premiere couche (m/s)
24      ! coef-----input-R- le coefficient d'echange (m**2/s) multiplie par  
25      !                   le cisaillement du vent (dV/dz); la premiere      REAL, intent(in):: coef(:, :) ! (knon, klev)
26      !                   valeur indique la valeur de Cdrag (sans unite)      ! Coefficient d'echange (m**2/s) multiplié par le cisaillement du
27        ! vent (dV/dz). La première valeur indique la valeur de Cdrag (sans
28        ! unité).
29    
30        REAL t(klon, klev), ven(klon, klev)
31      ! t--------input-R- temperature (K)      ! t--------input-R- temperature (K)
32      ! ven------input-R- vitesse horizontale (m/s)      ! ven------input-R- vitesse horizontale (m/s)
33        REAL paprs(klon, klev+1), pplay(klon, klev), delp(klon, klev)
34      ! paprs----input-R- pression a inter-couche (Pa)      ! paprs----input-R- pression a inter-couche (Pa)
35      ! pplay----input-R- pression au milieu de couche (Pa)      ! pplay----input-R- pression au milieu de couche (Pa)
36      ! delp-----input-R- epaisseur de couche (Pa)      ! delp-----input-R- epaisseur de couche (Pa)
   
     ! d_ven----output-R- le changement de "ven"  
     ! flux_v---output-R- (diagnostic) flux du vent: (kg m/s)/(m**2 s)  
   
     INTEGER knon  
     REAL, intent(in):: dtime  
     REAL u1lay(klon), v1lay(klon)  
     REAL coef(klon, klev)  
     REAL t(klon, klev), ven(klon, klev)  
     REAL paprs(klon, klev+1), pplay(klon, klev), delp(klon, klev)  
37      REAL d_ven(klon, klev)      REAL d_ven(klon, klev)
38        ! d_ven----output-R- le changement de "ven"
39      REAL flux_v(klon, klev)      REAL flux_v(klon, klev)
40        ! flux_v---output-R- (diagnostic) flux du vent: (kg m/s)/(m**2 s)
41    
42        ! Local:
43      INTEGER i, k      INTEGER i, k
44      REAL zx_cv(klon, 2:klev)      REAL zx_cv(klon, 2:klev)
45      REAL zx_dv(klon, 2:klev)      REAL zx_dv(klon, 2:klev)
# Line 57  contains Line 59  contains
59      DO i = 1, knon      DO i = 1, knon
60         zx_alf1(i) = 1.0         zx_alf1(i) = 1.0
61         zx_alf2(i) = 1.0 - zx_alf1(i)         zx_alf2(i) = 1.0 - zx_alf1(i)
62         zx_coef(i, 1) = coef(i, 1) &         zx_coef(i, 1) = coef(i, 1) * (1. + SQRT(u1lay(i)**2 + v1lay(i)**2)) &
63              * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2)) &              * pplay(i, 1) / (RD * t(i, 1))
64              * pplay(i, 1)/(RD*t(i, 1))         zx_coef(i, 1) = zx_coef(i, 1) * dtime * RG
        zx_coef(i, 1) = zx_coef(i, 1) * dtime*RG  
65      ENDDO      ENDDO
66    
67      DO k = 2, klev      DO k = 2, klev
68         DO i = 1, knon         DO i = 1, knon
69            zx_coef(i, k) = coef(i, k)*RG/(pplay(i, k-1)-pplay(i, k)) &            zx_coef(i, k) = coef(i, k) * RG / (pplay(i, k-1) - pplay(i, k)) &
70                 *(paprs(i, k)*2/(t(i, k)+t(i, k-1))/RD)**2                 * (paprs(i, k) * 2 / (t(i, k) + t(i, k - 1)) / RD)**2
71            zx_coef(i, k) = zx_coef(i, k) * dtime*RG            zx_coef(i, k) = zx_coef(i, k) * dtime * RG
72         ENDDO         ENDDO
73      ENDDO      ENDDO
74    

Legend:
Removed from v.62  
changed lines
  Added in v.70

  ViewVC Help
Powered by ViewVC 1.1.21