/[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

trunk/libf/phylmd/clvent.f90 revision 62 by guez, Thu Jul 26 14:37:37 2012 UTC trunk/Sources/phylmd/clvent.f revision 202 by guez, Wed Jun 8 12:23:41 2016 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      ! dtime----input-R- intervalle du temps (en second)      REAL, intent(in):: dtime ! intervalle de temps (en s)
19    
20        REAL u1lay(klon), v1lay(klon)
21      ! u1lay----input-R- vent u de la premiere couche (m/s)      ! u1lay----input-R- vent u de la premiere couche (m/s)
22      ! v1lay----input-R- vent v de la premiere couche (m/s)      ! v1lay----input-R- vent v de la premiere couche (m/s)
23      ! coef-----input-R- le coefficient d'echange (m**2/s) multiplie par  
24      !                   le cisaillement du vent (dV/dz); la premiere      REAL, intent(in):: coef(:, :) ! (knon, klev)
25      !                   valeur indique la valeur de Cdrag (sans unite)      ! Coefficient d'echange (m**2/s) multiplié par le cisaillement du
26        ! vent (dV/dz). La première valeur indique la valeur de Cdrag (sans
27        ! unité).
28    
29        REAL t(klon, klev), ven(klon, klev)
30      ! t--------input-R- temperature (K)      ! t--------input-R- temperature (K)
31      ! ven------input-R- vitesse horizontale (m/s)      ! ven------input-R- vitesse horizontale (m/s)
32        REAL paprs(klon, klev+1), pplay(klon, klev), delp(klon, klev)
33      ! paprs----input-R- pression a inter-couche (Pa)      ! paprs----input-R- pression a inter-couche (Pa)
34      ! pplay----input-R- pression au milieu de couche (Pa)      ! pplay----input-R- pression au milieu de couche (Pa)
35      ! 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)  
36      REAL d_ven(klon, klev)      REAL d_ven(klon, klev)
37        ! d_ven----output-R- le changement de "ven"
38      REAL flux_v(klon, klev)      REAL flux_v(klon, klev)
39        ! flux_v---output-R- (diagnostic) flux du vent: (kg m/s)/(m**2 s)
40    
41        ! Local:
42      INTEGER i, k      INTEGER i, k
43      REAL zx_cv(klon, 2:klev)      REAL zx_cv(klon, 2:klev)
44      REAL zx_dv(klon, 2:klev)      REAL zx_dv(klon, 2:klev)
# Line 57  contains Line 58  contains
58      DO i = 1, knon      DO i = 1, knon
59         zx_alf1(i) = 1.0         zx_alf1(i) = 1.0
60         zx_alf2(i) = 1.0 - zx_alf1(i)         zx_alf2(i) = 1.0 - zx_alf1(i)
61         zx_coef(i, 1) = coef(i, 1) &         zx_coef(i, 1) = coef(i, 1) * (1. + SQRT(u1lay(i)**2 + v1lay(i)**2)) &
62              * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2)) &              * pplay(i, 1) / (RD * t(i, 1))
63              * 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  
64      ENDDO      ENDDO
65    
66      DO k = 2, klev      DO k = 2, klev
67         DO i = 1, knon         DO i = 1, knon
68            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)) &
69                 *(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
70            zx_coef(i, k) = zx_coef(i, k) * dtime*RG            zx_coef(i, k) = zx_coef(i, k) * dtime * RG
71         ENDDO         ENDDO
72      ENDDO      ENDDO
73    

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

  ViewVC Help
Powered by ViewVC 1.1.21