/[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 303 by guez, Thu Sep 6 14:25:07 2018 UTC revision 305 by guez, Tue Sep 11 11:08:38 2018 UTC
# Line 5  module pbl_surface_m Line 5  module pbl_surface_m
5  contains  contains
6    
7    SUBROUTINE pbl_surface(pctsrf, t, q, u, v, julien, mu0, ftsol, cdmmax, &    SUBROUTINE pbl_surface(pctsrf, t, q, u, v, julien, mu0, ftsol, cdmmax, &
8         cdhmax, ftsoil, qsol, paprs, pplay, fsnow, qsurf, evap, falbe, fluxlat, &         cdhmax, ftsoil, qsol, paprs, pplay, fsnow, qsurf, falbe, fluxlat, &
9         rain_fall, snow_f, fsolsw, fsollw, frugs, agesno, rugoro, d_t, d_q, &         rain_fall, snow_fall, fsolsw, fsollw, frugs, agesno, rugoro, d_t, d_q, &
10         d_u, d_v, d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, cdragm, q2, &         d_u, d_v, d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, cdragm, q2, &
11         dflux_t, dflux_q, coefh, t2m, q2m, u10m_srf, v10m_srf, pblh, capcl, &         dflux_t, dflux_q, coefh, t2m, q2m, u10m_srf, v10m_srf, pblh, capcl, &
12         oliqcl, cteicl, pblt, therm, plcl, fqcalving, ffonte, run_off_lic_0)         oliqcl, cteicl, pblt, therm, plcl, fqcalving, ffonte, run_off_lic_0)
# Line 58  contains Line 58  contains
58      REAL, INTENT(IN):: paprs(klon, klev + 1) ! pression a intercouche (Pa)      REAL, INTENT(IN):: paprs(klon, klev + 1) ! pression a intercouche (Pa)
59      REAL, INTENT(IN):: pplay(klon, klev) ! pression au milieu de couche (Pa)      REAL, INTENT(IN):: pplay(klon, klev) ! pression au milieu de couche (Pa)
60      REAL, INTENT(inout):: fsnow(:, :) ! (klon, nbsrf) \'epaisseur neigeuse      REAL, INTENT(inout):: fsnow(:, :) ! (klon, nbsrf) \'epaisseur neigeuse
61      REAL qsurf(klon, nbsrf)      REAL, INTENT(inout):: qsurf(klon, nbsrf)
     REAL evap(klon, nbsrf)  
62      REAL, intent(inout):: falbe(klon, nbsrf)      REAL, intent(inout):: falbe(klon, nbsrf)
63      REAL, intent(out):: fluxlat(:, :) ! (klon, nbsrf)      REAL, intent(out):: fluxlat(:, :) ! (klon, nbsrf)
64    
65      REAL, intent(in):: rain_fall(klon)      REAL, intent(in):: rain_fall(klon)
66      ! liquid water mass flux (kg / m2 / s), positive down      ! liquid water mass flux (kg / m2 / s), positive down
67    
68      REAL, intent(in):: snow_f(klon)      REAL, intent(in):: snow_fall(klon)
69      ! solid water mass flux (kg / m2 / s), positive down      ! solid water mass flux (kg / m2 / s), positive down
70    
71      REAL, INTENT(IN):: fsolsw(klon, nbsrf), fsollw(klon, nbsrf)      REAL, INTENT(IN):: fsolsw(klon, nbsrf), fsollw(klon, nbsrf)
# Line 143  contains Line 142  contains
142      REAL yalb(klon)      REAL yalb(klon)
143      REAL snow(klon), yqsurf(klon), yagesno(klon)      REAL snow(klon), yqsurf(klon), yagesno(klon)
144      real yqsol(klon) ! column-density of water in soil, in kg m-2      real yqsol(klon) ! column-density of water in soil, in kg m-2
145      REAL yrain_f(klon) ! liquid water mass flux (kg / m2 / s), positive down      REAL yrain_fall(klon) ! liquid water mass flux (kg / m2 / s), positive down
146      REAL ysnow_f(klon) ! solid water mass flux (kg / m2 / s), positive down      REAL ysnow_fall(klon) ! solid water mass flux (kg / m2 / s), positive down
147      REAL yrugm(klon), yrads(klon), yrugoro(klon)      REAL yrugm(klon), yrads(klon), yrugoro(klon)
148      REAL yfluxlat(klon)      REAL yfluxlat(klon)
149      REAL y_d_ts(klon)      REAL y_d_ts(klon)
# Line 181  contains Line 180  contains
180      REAL u1(klon), v1(klon)      REAL u1(klon), v1(klon)
181      REAL tair1(klon), qair1(klon), tairsol(klon)      REAL tair1(klon), qair1(klon), tairsol(klon)
182      REAL psfce(klon), patm(klon)      REAL psfce(klon), patm(klon)
183        REAL zgeo1(klon)
     REAL qairsol(klon), zgeo1(klon)  
184      REAL rugo1(klon)      REAL rugo1(klon)
185      REAL zgeop(klon, klev)      REAL zgeop(klon, klev)
186    
# Line 203  contains Line 201  contains
201      dflux_t = 0.      dflux_t = 0.
202      dflux_q = 0.      dflux_q = 0.
203      ypct = 0.      ypct = 0.
     yqsurf = 0.  
     yrain_f = 0.  
     ysnow_f = 0.  
204      yrugos = 0.      yrugos = 0.
205      ypaprs = 0.      ypaprs = 0.
206      ypplay = 0.      ypplay = 0.
# Line 264  contains Line 259  contains
259               snow(j) = fsnow(i, nsrf)               snow(j) = fsnow(i, nsrf)
260               yqsurf(j) = qsurf(i, nsrf)               yqsurf(j) = qsurf(i, nsrf)
261               yalb(j) = falbe(i, nsrf)               yalb(j) = falbe(i, nsrf)
262               yrain_f(j) = rain_fall(i)               yrain_fall(j) = rain_fall(i)
263               ysnow_f(j) = snow_f(i)               ysnow_fall(j) = snow_fall(i)
264               yagesno(j) = agesno(i, nsrf)               yagesno(j) = agesno(i, nsrf)
265               yrugos(j) = frugs(i, nsrf)               yrugos(j) = frugs(i, nsrf)
266               yrugoro(j) = rugoro(i)               yrugoro(j) = rugoro(i)
# Line 339  contains Line 334  contains
334                 yv(:knon, 1), ycoefh(:knon, :), ycdragh(:knon), yt(:knon, :), &                 yv(:knon, 1), ycoefh(:knon, :), ycdragh(:knon), yt(:knon, :), &
335                 yq(:knon, :), yts(:knon), ypaprs(:knon, :), ypplay(:knon, :), &                 yq(:knon, :), yts(:knon), ypaprs(:knon, :), ypplay(:knon, :), &
336                 ydelp(:knon, :), yrads(:knon), yalb(:knon), snow(:knon), &                 ydelp(:knon, :), yrads(:knon), yalb(:knon), snow(:knon), &
337                 yqsurf(:knon), yrain_f(:knon), ysnow_f(:knon), yfluxlat(:knon), &                 yqsurf(:knon), yrain_fall(:knon), ysnow_fall(:knon), &
338                 pctsrf_new_sic(ni(:knon)), yagesno(:knon), y_d_t(:knon, :), &                 yfluxlat(:knon), pctsrf_new_sic(ni(:knon)), yagesno(:knon), &
339                 y_d_q(:knon, :), y_d_ts(:knon), yz0_new(:knon), &                 y_d_t(:knon, :), y_d_q(:knon, :), y_d_ts(:knon), &
340                 y_flux_t(:knon), y_flux_q(:knon), y_dflux_t(:knon), &                 yz0_new(:knon), y_flux_t(:knon), y_flux_q(:knon), &
341                 y_dflux_q(:knon), y_fqcalving(:knon), y_ffonte(:knon), &                 y_dflux_t(:knon), y_dflux_q(:knon), y_fqcalving(:knon), &
342                 y_run_off_lic_0(:knon), y_run_off_lic(:knon))                 y_ffonte(:knon), y_run_off_lic_0(:knon), y_run_off_lic(:knon))
343    
344            ! calculer la longueur de rugosite sur ocean            ! calculer la longueur de rugosite sur ocean
345    
# Line 374  contains Line 369  contains
369            flux_u(ni(:knon), nsrf) = y_flux_u(:knon)            flux_u(ni(:knon), nsrf) = y_flux_u(:knon)
370            flux_v(ni(:knon), nsrf) = y_flux_v(:knon)            flux_v(ni(:knon), nsrf) = y_flux_v(:knon)
371    
           evap(:, nsrf) = -flux_q(:, nsrf)  
   
372            falbe(:, nsrf) = 0.            falbe(:, nsrf) = 0.
373            fsnow(:, nsrf) = 0.            fsnow(:, nsrf) = 0.
374            qsurf(:, nsrf) = 0.            qsurf(:, nsrf) = 0.
# Line 443  contains Line 436  contains
436               END IF               END IF
437               psfce(j) = ypaprs(j, 1)               psfce(j) = ypaprs(j, 1)
438               patm(j) = ypplay(j, 1)               patm(j) = ypplay(j, 1)
   
              qairsol(j) = yqsurf(j)  
439            END DO            END DO
440    
441            CALL stdlevvar(nsrf, u1(:knon), v1(:knon), tair1(:knon), qair1, &            CALL stdlevvar(nsrf, u1(:knon), v1(:knon), tair1(:knon), qair1, &
442                 zgeo1, tairsol, qairsol, rugo1, psfce, patm, yt2m, yq2m, yt10m, &                 zgeo1, tairsol, yqsurf(:knon), rugo1, psfce, patm, yt2m, yq2m, &
443                 yq10m, wind10m(:knon), ustar(:knon))                 yt10m, yq10m, wind10m(:knon), ustar(:knon))
444    
445            DO j = 1, knon            DO j = 1, knon
446               i = ni(j)               i = ni(j)

Legend:
Removed from v.303  
changed lines
  Added in v.305

  ViewVC Help
Powered by ViewVC 1.1.21