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

Diff of /trunk/phylmd/pbl_surface.f

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

revision 15 by guez, Fri Aug 1 15:24:12 2008 UTC revision 30 by guez, Thu Apr 1 09:07:28 2010 UTC
# Line 5  SUBROUTINE clmain(dtime, itap, date0, pc Line 5  SUBROUTINE clmain(dtime, itap, date0, pc
5       rain_f, snow_f, solsw, sollw, sollwdown, fder, rlon, rlat, cufi,&       rain_f, snow_f, solsw, sollw, sollwdown, fder, rlon, rlat, cufi,&
6       cvfi, rugos, debut, lafin, agesno, rugoro, d_t, d_q, d_u, d_v,&       cvfi, rugos, debut, lafin, agesno, rugoro, d_t, d_q, d_u, d_v,&
7       d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, cdragm, q2,&       d_ts, flux_t, flux_q, flux_u, flux_v, cdragh, cdragm, q2,&
8       dflux_t, dflux_q, zcoefh, zu1, zv1, t2m, q2m, u10m, v10m, &       dflux_t, dflux_q, zcoefh, zu1, zv1, t2m, q2m, u10m, v10m, pblh,&
9       pblh, capcl, oliqcl, cteicl, pblt, therm, trmb1, trmb2, trmb3,&       capcl, oliqcl, cteicl, pblt, therm, trmb1, trmb2, trmb3, plcl,&
10       plcl, fqcalving, ffonte, run_off_lic_0, & !IM "slab" ocean       fqcalving, ffonte, run_off_lic_0, flux_o, flux_g, tslab, seaice)
      flux_o, flux_g, tslab, seaice)  
11    
12    ! From phylmd/clmain.F, v 1.6 2005/11/16 14:47:19    ! From phylmd/clmain.F, v 1.6 2005/11/16 14:47:19
13    
# Line 86  SUBROUTINE clmain(dtime, itap, date0, pc Line 85  SUBROUTINE clmain(dtime, itap, date0, pc
85    
86    !$$$ PB ajout pour soil    !$$$ PB ajout pour soil
87    
88    USE ioipsl    USE histcom, ONLY : histbeg_totreg, histdef, histend, histsync
89    USE interface_surf    use histwrite_m, only: histwrite
90    USE dimens_m    use calendar, ONLY : ymds2ju
91    USE indicesol    USE dimens_m, ONLY : iim, jjm
92    USE dimphy    USE indicesol, ONLY : epsfra, is_lic, is_oce, is_sic, is_ter, nbsrf
93    USE dimsoil    USE dimphy, ONLY : klev, klon, zmasq
94    USE temps    USE dimsoil, ONLY : nsoilmx
95    USE iniprint    USE temps, ONLY : annee_ref, itau_phy
96    USE yomcst    USE dynetat0_m, ONLY : day_ini
97    USE yoethf    USE iniprint, ONLY : prt_level
98    USE fcttre    USE yomcst, ONLY : rd, rg, rkappa
99    USE conf_phys_m    USE conf_phys_m, ONLY : iflag_pbl
100    USE gath_cpl, ONLY : gath2cpl    USE gath_cpl, ONLY : gath2cpl
101    
102    IMPLICIT NONE    IMPLICIT NONE
# Line 224  SUBROUTINE clmain(dtime, itap, date0, pc Line 223  SUBROUTINE clmain(dtime, itap, date0, pc
223    
224    ! maf pour sorties IOISPL en cas de debugagage    ! maf pour sorties IOISPL en cas de debugagage
225    
226    CHARACTER*80 cldebug    CHARACTER (80) cldebug
227    SAVE cldebug    SAVE cldebug
228    CHARACTER*8 cl_surf(nbsrf)    CHARACTER (8) cl_surf(nbsrf)
229    SAVE cl_surf    SAVE cl_surf
230    INTEGER nhoridbg, nidbg    INTEGER nhoridbg, nidbg
231    SAVE nhoridbg, nidbg    SAVE nhoridbg, nidbg
# Line 299  SUBROUTINE clmain(dtime, itap, date0, pc Line 298  SUBROUTINE clmain(dtime, itap, date0, pc
298    ytherm = 0.    ytherm = 0.
299    
300    IF (check) THEN    IF (check) THEN
301       print *, modname, '  klon=', klon       PRINT *, modname, '  klon=', klon
302    END IF    END IF
303    
304    IF (debugindex .AND. first_appel) THEN    IF (debugindex .AND. first_appel) THEN
# Line 451  SUBROUTINE clmain(dtime, itap, date0, pc Line 450  SUBROUTINE clmain(dtime, itap, date0, pc
450       END DO       END DO
451    
452       IF (check) THEN       IF (check) THEN
453          print *, 'CLMAIN, nsrf, knon =', nsrf, knon          PRINT *, 'CLMAIN, nsrf, knon =', nsrf, knon
454       END IF       END IF
455    
456       ! variables pour avoir une sortie IOIPSL des INDEX       ! variables pour avoir une sortie IOIPSL des INDEX
# Line 527  SUBROUTINE clmain(dtime, itap, date0, pc Line 526  SUBROUTINE clmain(dtime, itap, date0, pc
526          END DO          END DO
527       END DO       END DO
528    
   
529       ! calculer Cdrag et les coefficients d'echange       ! calculer Cdrag et les coefficients d'echange
530       CALL coefkz(nsrf, knon, ypaprs, ypplay, & !IM 261103       CALL coefkz(nsrf, knon, ypaprs, ypplay, ksta, ksta_ter, yts,&
531            ksta, ksta_ter, & !IM 261103            yrugos, yu, yv, yt, yq, yqsurf, ycoefm, ycoefh)
           yts, yrugos, yu, yv, yt, yq, yqsurf, ycoefm, ycoefh)  
532       !IM 081204 BEG       !IM 081204 BEG
533       !CR test       !CR test
534       IF (iflag_pbl==1) THEN       IF (iflag_pbl==1) THEN
# Line 586  SUBROUTINE clmain(dtime, itap, date0, pc Line 583  SUBROUTINE clmain(dtime, itap, date0, pc
583          yzlay(1:knon, 1) = rd*yt(1:knon, 1)/(0.5*(ypaprs(1:knon, &          yzlay(1:knon, 1) = rd*yt(1:knon, 1)/(0.5*(ypaprs(1:knon, &
584               1)+ypplay(1:knon, 1)))*(ypaprs(1:knon, 1)-ypplay(1:knon, 1))/rg               1)+ypplay(1:knon, 1)))*(ypaprs(1:knon, 1)-ypplay(1:knon, 1))/rg
585          DO k = 2, klev          DO k = 2, klev
586             yzlay(1:knon, k) = yzlay(1:knon, k-1) + rd*0.5*(yt(1:knon, k-1)+yt(1: &             yzlay(1:knon, k) = yzlay(1:knon, k-1) &
587                  knon, k))/ypaprs(1:knon, k)*(ypplay(1:knon, k-1)-ypplay(1:knon, k))/ &                  + rd*0.5*(yt(1:knon, k-1) +yt(1: knon, k)) &
588                    / ypaprs(1:knon, k) *(ypplay(1:knon, k-1)-ypplay(1:knon, k))/ &
589                  rg                  rg
590          END DO          END DO
591          DO k = 1, klev          DO k = 1, klev
592             yteta(1:knon, k) = yt(1:knon, k)*(ypaprs(1:knon, 1)/ypplay(1:knon, k)) &             yteta(1:knon, k) = yt(1:knon, k)*(ypaprs(1:knon, 1) &
593                  **rkappa*(1.+0.61*yq(1:knon, k))                  / ypplay(1:knon, k))**rkappa * (1.+0.61*yq(1:knon, k))
594          END DO          END DO
595          yzlev(1:knon, 1) = 0.          yzlev(1:knon, 1) = 0.
596          yzlev(1:knon, klev+1) = 2.*yzlay(1:knon, klev) - yzlay(1:knon, klev-1)          yzlev(1:knon, klev+1) = 2.*yzlay(1:knon, klev) - yzlay(1:knon, klev-1)
# Line 644  SUBROUTINE clmain(dtime, itap, date0, pc Line 642  SUBROUTINE clmain(dtime, itap, date0, pc
642       ! calculer la diffusion des vitesses "u" et "v"       ! calculer la diffusion des vitesses "u" et "v"
643       !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc       !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
644    
645       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yu, ypaprs, ypplay, ydelp, &       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yu, ypaprs, ypplay, &
646            y_d_u, y_flux_u)            ydelp, y_d_u, y_flux_u)
647       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yv, ypaprs, ypplay, ydelp, &       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yv, ypaprs, ypplay, &
648            y_d_v, y_flux_v)            ydelp, y_d_v, y_flux_v)
649    
650       ! pour le couplage       ! pour le couplage
651       ytaux = y_flux_u(:, 1)       ytaux = y_flux_u(:, 1)
# Line 801  SUBROUTINE clmain(dtime, itap, date0, pc Line 799  SUBROUTINE clmain(dtime, itap, date0, pc
799       END DO       END DO
800    
801       CALL stdlevvar(klon, knon, nsrf, zxli, uzon, vmer, tair1, qair1, zgeo1, &       CALL stdlevvar(klon, knon, nsrf, zxli, uzon, vmer, tair1, qair1, zgeo1, &
802            tairsol, qairsol, rugo1, psfce, patm, &            tairsol, qairsol, rugo1, psfce, patm, yt2m, yq2m, yt10m, yq10m, &
803            yt2m, yq2m, yt10m, yq10m, yu10m, yustar)            yu10m, yustar)
804       !IM 081204 END       !IM 081204 END
805    
806       DO j = 1, knon       DO j = 1, knon

Legend:
Removed from v.15  
changed lines
  Added in v.30

  ViewVC Help
Powered by ViewVC 1.1.21