/[lmdze]/trunk/Sources/phylmd/clmain.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/clmain.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 25 by guez, Fri Mar 5 16:43:45 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 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, itau_phy
95    USE iniprint    USE dynetat0_m, ONLY : day_ini
96    USE yomcst    USE iniprint, ONLY : prt_level
97    USE yoethf    USE yomcst, ONLY : rd, rg, rkappa
98    USE fcttre    USE conf_phys_m, ONLY : iflag_pbl
   USE conf_phys_m  
99    USE gath_cpl, ONLY : gath2cpl    USE gath_cpl, ONLY : gath2cpl
100    
101    IMPLICIT NONE    IMPLICIT NONE
# Line 224  SUBROUTINE clmain(dtime, itap, date0, pc Line 222  SUBROUTINE clmain(dtime, itap, date0, pc
222    
223    ! maf pour sorties IOISPL en cas de debugagage    ! maf pour sorties IOISPL en cas de debugagage
224    
225    CHARACTER*80 cldebug    CHARACTER (80) cldebug
226    SAVE cldebug    SAVE cldebug
227    CHARACTER*8 cl_surf(nbsrf)    CHARACTER (8) cl_surf(nbsrf)
228    SAVE cl_surf    SAVE cl_surf
229    INTEGER nhoridbg, nidbg    INTEGER nhoridbg, nidbg
230    SAVE nhoridbg, nidbg    SAVE nhoridbg, nidbg
# Line 299  SUBROUTINE clmain(dtime, itap, date0, pc Line 297  SUBROUTINE clmain(dtime, itap, date0, pc
297    ytherm = 0.    ytherm = 0.
298    
299    IF (check) THEN    IF (check) THEN
300       print *, modname, '  klon=', klon       PRINT *, modname, '  klon=', klon
301    END IF    END IF
302    
303    IF (debugindex .AND. first_appel) THEN    IF (debugindex .AND. first_appel) THEN
# Line 451  SUBROUTINE clmain(dtime, itap, date0, pc Line 449  SUBROUTINE clmain(dtime, itap, date0, pc
449       END DO       END DO
450    
451       IF (check) THEN       IF (check) THEN
452          print *, 'CLMAIN, nsrf, knon =', nsrf, knon          PRINT *, 'CLMAIN, nsrf, knon =', nsrf, knon
453       END IF       END IF
454    
455       ! 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 525  SUBROUTINE clmain(dtime, itap, date0, pc
525          END DO          END DO
526       END DO       END DO
527    
   
528       ! calculer Cdrag et les coefficients d'echange       ! calculer Cdrag et les coefficients d'echange
529       CALL coefkz(nsrf, knon, ypaprs, ypplay, & !IM 261103       CALL coefkz(nsrf, knon, ypaprs, ypplay, ksta, ksta_ter, yts,&
530            ksta, ksta_ter, & !IM 261103            yrugos, yu, yv, yt, yq, yqsurf, ycoefm, ycoefh)
           yts, yrugos, yu, yv, yt, yq, yqsurf, ycoefm, ycoefh)  
531       !IM 081204 BEG       !IM 081204 BEG
532       !CR test       !CR test
533       IF (iflag_pbl==1) THEN       IF (iflag_pbl==1) THEN
# Line 586  SUBROUTINE clmain(dtime, itap, date0, pc Line 582  SUBROUTINE clmain(dtime, itap, date0, pc
582          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, &
583               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
584          DO k = 2, klev          DO k = 2, klev
585             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) &
586                  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)) &
587                    / ypaprs(1:knon, k) *(ypplay(1:knon, k-1)-ypplay(1:knon, k))/ &
588                  rg                  rg
589          END DO          END DO
590          DO k = 1, klev          DO k = 1, klev
591             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) &
592                  **rkappa*(1.+0.61*yq(1:knon, k))                  / ypplay(1:knon, k))**rkappa * (1.+0.61*yq(1:knon, k))
593          END DO          END DO
594          yzlev(1:knon, 1) = 0.          yzlev(1:knon, 1) = 0.
595          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 641  SUBROUTINE clmain(dtime, itap, date0, pc
641       ! calculer la diffusion des vitesses "u" et "v"       ! calculer la diffusion des vitesses "u" et "v"
642       !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc       !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
643    
644       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yu, ypaprs, ypplay, ydelp, &       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yu, ypaprs, ypplay, &
645            y_d_u, y_flux_u)            ydelp, y_d_u, y_flux_u)
646       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yv, ypaprs, ypplay, ydelp, &       CALL clvent(knon, dtime, yu1, yv1, ycoefm, yt, yv, ypaprs, ypplay, &
647            y_d_v, y_flux_v)            ydelp, y_d_v, y_flux_v)
648    
649       ! pour le couplage       ! pour le couplage
650       ytaux = y_flux_u(:, 1)       ytaux = y_flux_u(:, 1)
# Line 801  SUBROUTINE clmain(dtime, itap, date0, pc Line 798  SUBROUTINE clmain(dtime, itap, date0, pc
798       END DO       END DO
799    
800       CALL stdlevvar(klon, knon, nsrf, zxli, uzon, vmer, tair1, qair1, zgeo1, &       CALL stdlevvar(klon, knon, nsrf, zxli, uzon, vmer, tair1, qair1, zgeo1, &
801            tairsol, qairsol, rugo1, psfce, patm, &            tairsol, qairsol, rugo1, psfce, patm, yt2m, yq2m, yt10m, yq10m, &
802            yt2m, yq2m, yt10m, yq10m, yu10m, yustar)            yu10m, yustar)
803       !IM 081204 END       !IM 081204 END
804    
805       DO j = 1, knon       DO j = 1, knon

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

  ViewVC Help
Powered by ViewVC 1.1.21