/[lmdze]/trunk/libf/phylmd/clmain.f90
ViewVC logotype

Diff of /trunk/libf/phylmd/clmain.f90

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

revision 15 by guez, Fri Aug 1 15:24:12 2008 UTC revision 17 by guez, Tue Aug 5 13:31:32 2008 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 ioipsl, ONLY : histbeg_totreg, histdef, histend, histsync, &
89    USE interface_surf         histwrite, ymds2ju
90    USE dimens_m    USE dimens_m, ONLY : iim, jjm
91    USE indicesol    USE indicesol, ONLY : epsfra, is_lic, is_oce, is_sic, is_ter, nbsrf
92    USE dimphy    USE dimphy, ONLY : klev, klon, zmasq
93    USE dimsoil    USE dimsoil, ONLY : nsoilmx
94    USE temps    USE temps, ONLY : annee_ref, day_ini, itau_phy
95    USE iniprint    USE iniprint, ONLY : prt_level
96    USE yomcst    USE yomcst, ONLY : rd, rg, rkappa
97    USE yoethf    USE conf_phys_m, ONLY : iflag_pbl
   USE fcttre  
   USE conf_phys_m  
98    USE gath_cpl, ONLY : gath2cpl    USE gath_cpl, ONLY : gath2cpl
99    
100    IMPLICIT NONE    IMPLICIT NONE
# Line 224  SUBROUTINE clmain(dtime, itap, date0, pc Line 221  SUBROUTINE clmain(dtime, itap, date0, pc
221    
222    ! maf pour sorties IOISPL en cas de debugagage    ! maf pour sorties IOISPL en cas de debugagage
223    
224    CHARACTER*80 cldebug    CHARACTER (80) cldebug
225    SAVE cldebug    SAVE cldebug
226    CHARACTER*8 cl_surf(nbsrf)    CHARACTER (8) cl_surf(nbsrf)
227    SAVE cl_surf    SAVE cl_surf
228    INTEGER nhoridbg, nidbg    INTEGER nhoridbg, nidbg
229    SAVE nhoridbg, nidbg    SAVE nhoridbg, nidbg
# Line 299  SUBROUTINE clmain(dtime, itap, date0, pc Line 296  SUBROUTINE clmain(dtime, itap, date0, pc
296    ytherm = 0.    ytherm = 0.
297    
298    IF (check) THEN    IF (check) THEN
299       print *, modname, '  klon=', klon       PRINT *, modname, '  klon=', klon
300    END IF    END IF
301    
302    IF (debugindex .AND. first_appel) THEN    IF (debugindex .AND. first_appel) THEN
# Line 451  SUBROUTINE clmain(dtime, itap, date0, pc Line 448  SUBROUTINE clmain(dtime, itap, date0, pc
448       END DO       END DO
449    
450       IF (check) THEN       IF (check) THEN
451          print *, 'CLMAIN, nsrf, knon =', nsrf, knon          PRINT *, 'CLMAIN, nsrf, knon =', nsrf, knon
452       END IF       END IF
453    
454       ! 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 524  SUBROUTINE clmain(dtime, itap, date0, pc
524          END DO          END DO
525       END DO       END DO
526    
   
527       ! calculer Cdrag et les coefficients d'echange       ! calculer Cdrag et les coefficients d'echange
528       CALL coefkz(nsrf, knon, ypaprs, ypplay, & !IM 261103       CALL coefkz(nsrf, knon, ypaprs, ypplay, ksta, ksta_ter, yts,&
529            ksta, ksta_ter, & !IM 261103            yrugos, yu, yv, yt, yq, yqsurf, ycoefm, ycoefh)
           yts, yrugos, yu, yv, yt, yq, yqsurf, ycoefm, ycoefh)  
530       !IM 081204 BEG       !IM 081204 BEG
531       !CR test       !CR test
532       IF (iflag_pbl==1) THEN       IF (iflag_pbl==1) THEN
# Line 586  SUBROUTINE clmain(dtime, itap, date0, pc Line 581  SUBROUTINE clmain(dtime, itap, date0, pc
581          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, &
582               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
583          DO k = 2, klev          DO k = 2, klev
584             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) &
585                  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)) &
586                    / ypaprs(1:knon, k) *(ypplay(1:knon, k-1)-ypplay(1:knon, k))/ &
587                  rg                  rg
588          END DO          END DO
589          DO k = 1, klev          DO k = 1, klev
590             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) &
591                  **rkappa*(1.+0.61*yq(1:knon, k))                  / ypplay(1:knon, k))**rkappa * (1.+0.61*yq(1:knon, k))
592          END DO          END DO
593          yzlev(1:knon, 1) = 0.          yzlev(1:knon, 1) = 0.
594          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 640  SUBROUTINE clmain(dtime, itap, date0, pc
640       ! calculer la diffusion des vitesses "u" et "v"       ! calculer la diffusion des vitesses "u" et "v"
641       !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc       !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
642    
643       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yu, ypaprs, ypplay, ydelp, &       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yu, ypaprs, ypplay, &
644            y_d_u, y_flux_u)            ydelp, y_d_u, y_flux_u)
645       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yv, ypaprs, ypplay, ydelp, &       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yv, ypaprs, ypplay, &
646            y_d_v, y_flux_v)            ydelp, y_d_v, y_flux_v)
647    
648       ! pour le couplage       ! pour le couplage
649       ytaux = y_flux_u(:, 1)       ytaux = y_flux_u(:, 1)
# Line 801  SUBROUTINE clmain(dtime, itap, date0, pc Line 797  SUBROUTINE clmain(dtime, itap, date0, pc
797       END DO       END DO
798    
799       CALL stdlevvar(klon, knon, nsrf, zxli, uzon, vmer, tair1, qair1, zgeo1, &       CALL stdlevvar(klon, knon, nsrf, zxli, uzon, vmer, tair1, qair1, zgeo1, &
800            tairsol, qairsol, rugo1, psfce, patm, &            tairsol, qairsol, rugo1, psfce, patm, yt2m, yq2m, yt10m, yq10m, &
801            yt2m, yq2m, yt10m, yq10m, yu10m, yustar)            yu10m, yustar)
802       !IM 081204 END       !IM 081204 END
803    
804       DO j = 1, knon       DO j = 1, knon

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

  ViewVC Help
Powered by ViewVC 1.1.21