/[lmdze]/trunk/phylmd/Interface_surf/pbl_surface.f
ViewVC logotype

Diff of /trunk/phylmd/Interface_surf/pbl_surface.f

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

revision 300 by guez, Thu Aug 2 15:55:01 2018 UTC revision 302 by guez, Thu Sep 6 13:19:51 2018 UTC
# Line 12  contains Line 12  contains
12         oliqcl, cteicl, pblt, therm, plcl, fqcalving, ffonte, run_off_lic_0)         oliqcl, cteicl, pblt, therm, plcl, fqcalving, ffonte, run_off_lic_0)
13    
14      ! From phylmd/clmain.F, version 1.6, 2005/11/16 14:47:19      ! From phylmd/clmain.F, version 1.6, 2005/11/16 14:47:19
15      ! Author: Z. X. Li (LMD/CNRS), date: 1993 Aug. 18th      ! Author: Z. X. Li (LMD/CNRS)
16        ! Date: Aug. 18th, 1993
17      ! Objet : interface de couche limite (diffusion verticale)      ! Objet : interface de couche limite (diffusion verticale)
18    
19      ! Tout ce qui a trait aux traceurs est dans "phytrac". Le calcul      ! Tout ce qui a trait aux traceurs est dans "phytrac". Le calcul
# Line 29  contains Line 30  contains
30      USE dimphy, ONLY: klev, klon      USE dimphy, ONLY: klev, klon
31      USE dimsoil, ONLY: nsoilmx      USE dimsoil, ONLY: nsoilmx
32      use hbtm_m, only: hbtm      use hbtm_m, only: hbtm
33        USE histwrite_phy_m, ONLY: histwrite_phy
34      USE indicesol, ONLY: epsfra, is_lic, is_oce, is_sic, is_ter, nbsrf      USE indicesol, ONLY: epsfra, is_lic, is_oce, is_sic, is_ter, nbsrf
35      USE interfoce_lim_m, ONLY: interfoce_lim      USE interfoce_lim_m, ONLY: interfoce_lim
36      use phyetat0_m, only: zmasq      use phyetat0_m, only: zmasq
# Line 81  contains Line 83  contains
83      REAL, intent(out):: d_ts(:, :) ! (klon, nbsrf) variation of ftsol      REAL, intent(out):: d_ts(:, :) ! (klon, nbsrf) variation of ftsol
84    
85      REAL, intent(out):: flux_t(klon, nbsrf)      REAL, intent(out):: flux_t(klon, nbsrf)
86      ! flux de chaleur sensible (Cp T) (W / m2) (orientation positive vers      ! flux de chaleur sensible (c_p T) (W / m2) (orientation positive
87      ! le bas) à la surface      ! vers le bas) à la surface
88    
89      REAL, intent(out):: flux_q(klon, nbsrf)      REAL, intent(out):: flux_q(klon, nbsrf)
90      ! flux de vapeur d'eau (kg / m2 / s) à la surface      ! flux de vapeur d'eau (kg / m2 / s) à la surface
# Line 93  contains Line 95  contains
95      REAL, INTENT(out):: cdragh(klon), cdragm(klon)      REAL, INTENT(out):: cdragh(klon), cdragm(klon)
96      real q2(klon, klev + 1, nbsrf)      real q2(klon, klev + 1, nbsrf)
97    
98      REAL, INTENT(out):: dflux_t(klon), dflux_q(klon)      ! Ocean slab:
99      ! dflux_t derive du flux sensible      REAL, INTENT(out):: dflux_t(klon) ! derive du flux sensible
100      ! dflux_q derive du flux latent      REAL, INTENT(out):: dflux_q(klon) ! derive du flux latent
     ! IM "slab" ocean  
101    
102      REAL, intent(out):: coefh(:, 2:) ! (klon, 2:klev)      REAL, intent(out):: coefh(:, 2:) ! (klon, 2:klev)
103      ! Pour pouvoir extraire les coefficients d'\'echange, le champ      ! Pour pouvoir extraire les coefficients d'\'echange, le champ
# Line 123  contains Line 124  contains
124      ! flux d'eau "perdue" par la surface et necessaire pour limiter la      ! flux d'eau "perdue" par la surface et necessaire pour limiter la
125      ! hauteur de neige, en kg / m2 / s      ! hauteur de neige, en kg / m2 / s
126    
127      real ffonte(klon, nbsrf)      real ffonte(klon, nbsrf) ! flux thermique utilise pour fondre la neige
     ! ffonte----Flux thermique utilise pour fondre la neige  
128      REAL, intent(inout):: run_off_lic_0(:) ! (klon)      REAL, intent(inout):: run_off_lic_0(:) ! (klon)
129    
130      ! Local:      ! Local:
131    
     LOGICAL:: firstcal = .true.  
   
132      ! la nouvelle repartition des surfaces sortie de l'interface      ! la nouvelle repartition des surfaces sortie de l'interface
133      REAL, save:: pctsrf_new_oce(klon)      REAL, save:: pctsrf_new_oce(klon)
134      REAL, save:: pctsrf_new_sic(klon)      REAL, save:: pctsrf_new_sic(klon)
135    
136      REAL y_fqcalving(klon), y_ffonte(klon)      REAL y_fqcalving(klon), y_ffonte(klon)
137      real y_run_off_lic_0(klon)      real y_run_off_lic_0(klon), y_run_off_lic(klon)
138        REAL run_off_lic(klon) ! ruissellement total
139      REAL rugmer(klon)      REAL rugmer(klon)
140      REAL ytsoil(klon, nsoilmx)      REAL ytsoil(klon, nsoilmx)
141      REAL yts(klon), ypct(klon), yz0_new(klon)      REAL yts(klon), ypct(klon), yz0_new(klon)
# Line 224  contains Line 223  contains
223      d_v = 0.      d_v = 0.
224      coefh = 0.      coefh = 0.
225      fqcalving = 0.      fqcalving = 0.
226        run_off_lic = 0.
227    
228      ! Initialisation des "pourcentages potentiels". On consid\`ere ici qu'on      ! Initialisation des "pourcentages potentiels". On consid\`ere ici qu'on
229      ! peut avoir potentiellement de la glace sur tout le domaine oc\'eanique      ! peut avoir potentiellement de la glace sur tout le domaine oc\'eanique
230      ! (\`a affiner)      ! (\`a affiner).
231    
232      pctsrf_pot(:, is_ter) = pctsrf(:, is_ter)      pctsrf_pot(:, is_ter) = pctsrf(:, is_ter)
233      pctsrf_pot(:, is_lic) = pctsrf(:, is_lic)      pctsrf_pot(:, is_lic) = pctsrf(:, is_lic)
# Line 340  contains Line 340  contains
340                 ypplay(:knon, :), ydelp(:knon, :), y_d_v(:knon, :), &                 ypplay(:knon, :), ydelp(:knon, :), y_d_v(:knon, :), &
341                 y_flux_v(:knon))                 y_flux_v(:knon))
342    
343            CALL clqh(julien, firstcal, nsrf, ni(:knon), ytsoil(:knon, :), &            CALL clqh(julien, nsrf, ni(:knon), ytsoil(:knon, :), yqsol(:knon), &
344                 yqsol(:knon), mu0(ni(:knon)), yrugos(:knon), yrugoro(:knon), &                 mu0(ni(:knon)), yrugos(:knon), yrugoro(:knon), yu(:knon, 1), &
345                 yu(:knon, 1), yv(:knon, 1), ycoefh(:knon, :), ycdragh(:knon), &                 yv(:knon, 1), ycoefh(:knon, :), ycdragh(:knon), yt(:knon, :), &
346                 yt(:knon, :), yq(:knon, :), yts(:knon), ypaprs(:knon, :), &                 yq(:knon, :), yts(:knon), ypaprs(:knon, :), ypplay(:knon, :), &
347                 ypplay(:knon, :), ydelp(:knon, :), yrads(:knon), yalb(:knon), &                 ydelp(:knon, :), yrads(:knon), yalb(:knon), snow(:knon), &
348                 snow(:knon), yqsurf(:knon), yrain_f(:knon), ysnow_f(:knon), &                 yqsurf(:knon), yrain_f(:knon), ysnow_f(:knon), yfluxlat(:knon), &
349                 yfluxlat(:knon), pctsrf_new_sic(ni(:knon)), yagesno(:knon), &                 pctsrf_new_sic(ni(:knon)), yagesno(:knon), y_d_t(:knon, :), &
350                 y_d_t(:knon, :), y_d_q(:knon, :), y_d_ts(:knon), &                 y_d_q(:knon, :), y_d_ts(:knon), yz0_new(:knon), &
351                 yz0_new(:knon), y_flux_t(:knon), y_flux_q(:knon), &                 y_flux_t(:knon), y_flux_q(:knon), y_dflux_t(:knon), &
352                 y_dflux_t(:knon), y_dflux_q(:knon), y_fqcalving(:knon), &                 y_dflux_q(:knon), y_fqcalving(:knon), y_ffonte(:knon), &
353                 y_ffonte(:knon), y_run_off_lic_0(:knon))                 y_run_off_lic_0(:knon), y_run_off_lic(:knon))
354    
355            ! calculer la longueur de rugosite sur ocean            ! calculer la longueur de rugosite sur ocean
356    
# Line 412  contains Line 412  contains
412               DO j = 1, knon               DO j = 1, knon
413                  i = ni(j)                  i = ni(j)
414                  run_off_lic_0(i) = y_run_off_lic_0(j)                  run_off_lic_0(i) = y_run_off_lic_0(j)
415                    run_off_lic(i) = y_run_off_lic(j)
416               END DO               END DO
417            END IF            END IF
418    
# Line 499  contains Line 500  contains
500      pctsrf(:, is_oce) = pctsrf_new_oce      pctsrf(:, is_oce) = pctsrf_new_oce
501      pctsrf(:, is_sic) = pctsrf_new_sic      pctsrf(:, is_sic) = pctsrf_new_sic
502    
503      firstcal = .false.      CALL histwrite_phy("run_off_lic", run_off_lic)
504    
505    END SUBROUTINE pbl_surface    END SUBROUTINE pbl_surface
506    

Legend:
Removed from v.300  
changed lines
  Added in v.302

  ViewVC Help
Powered by ViewVC 1.1.21