/[lmdze]/trunk/phylmd/Interface_surf/calcul_fluxs.f90
ViewVC logotype

Diff of /trunk/phylmd/Interface_surf/calcul_fluxs.f90

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

revision 299 by guez, Thu Aug 2 14:27:11 2018 UTC revision 311 by guez, Mon Dec 3 17:52:21 2018 UTC
# Line 4  module calcul_fluxs_m Line 4  module calcul_fluxs_m
4    
5  contains  contains
6    
7    SUBROUTINE calcul_fluxs(tsurf, p1lay, cal, beta, coef1lay, ps, qsurf, &    SUBROUTINE calcul_fluxs(tsurf, p1lay, cal, beta, cdragh, ps, qsurf, radsol, &
8         radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, tAcoef, qAcoef, tBcoef, &         t1lay, q1lay, u1lay, v1lay, tAcoef, qAcoef, tBcoef, qBcoef, tsurf_new, &
9         qBcoef, tsurf_new, evap, fluxlat, flux_t, dflux_s, dflux_l)         evap, fluxlat, flux_t, dflux_s, dflux_l, dif_grnd)
10    
11      ! Cette routine calcule les flux en h et q à l'interface et une      ! Cette routine calcule les flux en h et q à l'interface et une
12      ! température de surface.      ! température de surface.
# Line 31  contains Line 31  contains
31    
32      real, intent(IN):: cal(:) ! (knon) capacité calorifique du sol      real, intent(IN):: cal(:) ! (knon) capacité calorifique du sol
33      real, intent(IN):: beta(:) ! (knon) évaporation réelle      real, intent(IN):: beta(:) ! (knon) évaporation réelle
34      real, intent(IN):: coef1lay(:) ! (knon) coefficient d'échange      real, intent(IN):: cdragh(:) ! (knon) coefficient d'échange
35      real, intent(IN):: ps(:) ! (knon) pression au sol      real, intent(IN):: ps(:) ! (knon) pression au sol, en Pa
36      real, intent(OUT):: qsurf(:) ! (knon) humidité de l'air au-dessus du sol      real, intent(OUT):: qsurf(:) ! (knon) humidité de l'air au-dessus du sol
37    
38      real, intent(IN):: radsol(:) ! (knon)      real, intent(IN):: radsol(:) ! (knon)
39      ! rayonnement net au sol (longwave + shortwave)      ! net downward radiative (longwave + shortwave) flux at the surface
   
     real, intent(IN):: dif_grnd(:) ! (knon)  
     ! coefficient de diffusion vers le sol profond  
40    
41        real, intent(IN):: dif_grnd ! coefficient de diffusion vers le sol profond
42      real, intent(IN):: t1lay(:), q1lay(:), u1lay(:), v1lay(:) ! (knon)      real, intent(IN):: t1lay(:), q1lay(:), u1lay(:), v1lay(:) ! (knon)
43    
44      real, intent(IN):: tAcoef(:), qAcoef(:) ! (knon)      real, intent(IN):: tAcoef(:), qAcoef(:) ! (knon)
# Line 53  contains Line 51  contains
51      real, intent(OUT):: evap(:) ! (knon)      real, intent(OUT):: evap(:) ! (knon)
52    
53      real, intent(OUT):: fluxlat(:), flux_t(:) ! (knon)      real, intent(OUT):: fluxlat(:), flux_t(:) ! (knon)
54      ! flux de chaleurs latente et sensible      ! flux de chaleurs latente et sensible, en W m-2
55    
56      real, intent(OUT):: dflux_s(:), dflux_l(:) ! (knon)      real, intent(OUT):: dflux_s(:), dflux_l(:) ! (knon)
57      ! dérivées des flux de chaleurs sensible et latente par rapport à      ! dérivées des flux de chaleurs sensible et latente par rapport à
# Line 68  contains Line 66  contains
66      logical delta      logical delta
67      real zcor      real zcor
68      real, parameter:: t_grnd = 271.35      real, parameter:: t_grnd = 271.35
69        real, parameter:: min_wind_speed = 1. ! in m s-1
70    
71      !---------------------------------------------------------------------      !---------------------------------------------------------------------
72    
73      knon = assert_eq([size(tsurf), size(p1lay), size(cal), size(beta), &      knon = assert_eq([size(tsurf), size(p1lay), size(cal), size(beta), &
74           size(coef1lay), size(ps), size(qsurf), size(radsol), size(dif_grnd), &           size(cdragh), size(ps), size(qsurf), size(radsol), size(t1lay), &
75           size(t1lay), size(q1lay), size(u1lay), size(v1lay), size(tAcoef), &           size(q1lay), size(u1lay), size(v1lay), size(tAcoef), size(qAcoef), &
76           size(qAcoef), size(tBcoef), size(qBcoef), size(tsurf_new), &           size(tBcoef), size(qBcoef), size(tsurf_new), size(evap), &
77           size(evap), size(fluxlat), size(flux_t), size(dflux_s), &           size(fluxlat), size(flux_t), size(dflux_s), size(dflux_l)], &
78           size(dflux_l)], "calcul_fluxs knon")           "calcul_fluxs knon")
79    
80      ! Traitement de l'humidité du sol      ! Traitement de l'humidité du sol
81    
# Line 90  contains Line 89  contains
89              qsat(i), zcor) / RLVTT              qsat(i), zcor) / RLVTT
90      ENDDO      ENDDO
91    
92      coef = coef1lay * (1. + SQRT(u1lay**2 + v1lay**2)) * p1lay / (RD * t1lay)      coef = cdragh * (min_wind_speed + SQRT(u1lay**2 + v1lay**2)) * p1lay &
93             / (RD * t1lay)
94      sl = merge(RLSTT, RLVTT, tsurf < RTT)      sl = merge(RLSTT, RLVTT, tsurf < RTT)
95    
96      ! Q      ! Q

Legend:
Removed from v.299  
changed lines
  Added in v.311

  ViewVC Help
Powered by ViewVC 1.1.21