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

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

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

revision 228 by guez, Fri Nov 3 12:38:47 2017 UTC revision 235 by guez, Thu Nov 9 12:37:48 2017 UTC
# Line 25  contains Line 25  contains
25      use clvent_m, only: clvent      use clvent_m, only: clvent
26      use coefkz_m, only: coefkz      use coefkz_m, only: coefkz
27      use coefkzmin_m, only: coefkzmin      use coefkzmin_m, only: coefkzmin
28        use coefkz2_m, only: coefkz2
29      USE conf_gcm_m, ONLY: lmt_pas      USE conf_gcm_m, ONLY: lmt_pas
30      USE conf_phys_m, ONLY: iflag_pbl      USE conf_phys_m, ONLY: iflag_pbl
31      USE dimphy, ONLY: klev, klon, zmasq      USE dimphy, ONLY: klev, klon, zmasq
# Line 95  contains Line 96  contains
96      ! flux de vapeur d'eau (kg / m2 / s) à la surface      ! flux de vapeur d'eau (kg / m2 / s) à la surface
97    
98      REAL, intent(out):: flux_u(klon, nbsrf), flux_v(klon, nbsrf)      REAL, intent(out):: flux_u(klon, nbsrf), flux_v(klon, nbsrf)
99      ! tension du vent à la surface, en Pa      ! tension du vent (flux turbulent de vent) à la surface, en Pa
100    
101      REAL, INTENT(out):: cdragh(klon), cdragm(klon)      REAL, INTENT(out):: cdragh(klon), cdragm(klon)
102      real q2(klon, klev + 1, nbsrf)      real q2(klon, klev + 1, nbsrf)
# Line 311  contains Line 312  contains
312    
313            ! calculer Cdrag et les coefficients d'echange            ! calculer Cdrag et les coefficients d'echange
314            CALL coefkz(nsrf, ypaprs, ypplay, ksta, ksta_ter, yts(:knon), &            CALL coefkz(nsrf, ypaprs, ypplay, ksta, ksta_ter, yts(:knon), &
315                 yrugos, yu, yv, yt, yq, yqsurf(:knon), coefm(:knon, :), &                 yrugos, yu, yv, yt, yq, yqsurf(:knon), coefm(:knon, 2:), &
316                 coefh(:knon, :))                 coefh(:knon, 2:), coefm(:knon, 1), coefh(:knon, 1))
317    
318            IF (iflag_pbl == 1) THEN            IF (iflag_pbl == 1) THEN
319               CALL coefkz2(nsrf, knon, ypaprs, ypplay, yt, ycoefm0, ycoefh0)               CALL coefkz2(nsrf, knon, ypaprs, ypplay, yt, ycoefm0(:knon, 2:), &
320                      ycoefh0(:knon, 2:))
321                 ycoefm0(:knon, 1) = 0.
322                 ycoefh0(:knon, 1) = 0.
323               coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :))               coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :))
324               coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :))               coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :))
325            END IF            END IF
# Line 329  contains Line 333  contains
333            IF (ok_kzmin) THEN            IF (ok_kzmin) THEN
334               ! Calcul d'une diffusion minimale pour les conditions tres stables               ! Calcul d'une diffusion minimale pour les conditions tres stables
335               CALL coefkzmin(knon, ypaprs, ypplay, yu, yv, yt, yq, &               CALL coefkzmin(knon, ypaprs, ypplay, yu, yv, yt, yq, &
336                    coefm(:knon, 1), ycoefm0, ycoefh0)                    coefm(:knon, 1), ycoefm0(:knon, 2:), ycoefh0(:knon, 2:))
337               coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :))               coefm(:knon, :) = max(coefm(:knon, :), ycoefm0(:knon, :))
338               coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :))               coefh(:knon, :) = max(coefh(:knon, :), ycoefh0(:knon, :))
339            END IF            END IF
# Line 369  contains Line 373  contains
373               END DO               END DO
374    
375               ustar(:knon) = ustarhb(yu(:knon, 1), yv(:knon, 1), coefm(:knon, 1))               ustar(:knon) = ustarhb(yu(:knon, 1), yv(:knon, 1), coefm(:knon, 1))
   
              ! iflag_pbl peut \^etre utilis\'e comme longueur de m\'elange  
   
376               CALL yamada4(dtime, rg, zlev(:knon, :), yzlay(:knon, :), &               CALL yamada4(dtime, rg, zlev(:knon, :), yzlay(:knon, :), &
377                    yu(:knon, :), yv(:knon, :), yteta(:knon, :), &                    yu(:knon, :), yv(:knon, :), yteta(:knon, :), &
378                    coefm(:knon, 1), yq2(:knon, :), ykmm(:knon, :), &                    coefm(:knon, 1), yq2(:knon, :), ykmm(:knon, :), &
379                    ykmn(:knon, :), ykmq(:knon, :), ustar(:knon), iflag_pbl)                    ykmn(:knon, :), ykmq(:knon, :), ustar(:knon))
   
380               coefm(:knon, 2:) = ykmm(:knon, 2:klev)               coefm(:knon, 2:) = ykmm(:knon, 2:klev)
381               coefh(:knon, 2:) = ykmn(:knon, 2:klev)               coefh(:knon, 2:) = ykmn(:knon, 2:klev)
382            END IF            END IF
383    
384            ! calculer la diffusion des vitesses "u" et "v"            CALL clvent(dtime, yu(:knon, 1), yv(:knon, 1), coefm(:knon, 2:), &
385            CALL clvent(knon, dtime, yu(:knon, 1), yv(:knon, 1), &                 coefm(:knon, 1), yt(:knon, :), yu(:knon, :), ypaprs(:knon, :), &
386                 coefm(:knon, :), yt, yu, ypaprs, ypplay, ydelp, y_d_u, &                 ypplay(:knon, :), ydelp(:knon, :), y_d_u(:knon, :), &
387                 y_flux_u(:knon))                 y_flux_u(:knon))
388            CALL clvent(knon, dtime, yu(:knon, 1), yv(:knon, 1), &            CALL clvent(dtime, yu(:knon, 1), yv(:knon, 1), coefm(:knon, 2:), &
389                 coefm(:knon, :), yt, yv, ypaprs, ypplay, ydelp, y_d_v, &                 coefm(:knon, 1), yt(:knon, :), yv(:knon, :), ypaprs(:knon, :), &
390                   ypplay(:knon, :), ydelp(:knon, :), y_d_v(:knon, :), &
391                 y_flux_v(:knon))                 y_flux_v(:knon))
392    
393            ! calculer la diffusion de "q" et de "h"            ! calculer la diffusion de "q" et de "h"

Legend:
Removed from v.228  
changed lines
  Added in v.235

  ViewVC Help
Powered by ViewVC 1.1.21