/[lmdze]/trunk/phylmd/Thermcell/thermcell.f
ViewVC logotype

Diff of /trunk/phylmd/Thermcell/thermcell.f

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

revision 150 by guez, Thu Jun 18 13:49:26 2015 UTC revision 188 by guez, Tue Mar 22 16:31:39 2016 UTC
# Line 12  contains Line 12  contains
12      ! de "thermiques" explicitement repr\'esent\'es. R\'ecriture \`a partir      ! de "thermiques" explicitement repr\'esent\'es. R\'ecriture \`a partir
13      ! d'un listing papier \`a Habas, le 14/02/00. Le thermique est      ! d'un listing papier \`a Habas, le 14/02/00. Le thermique est
14      ! suppos\'e homog\`ene et dissip\'e par m\'elange avec son      ! suppos\'e homog\`ene et dissip\'e par m\'elange avec son
15      ! environnement. La longueur "l_mix" contrôle l'efficacit\'e du      ! environnement. La longueur "l_mix" contr\^ole l'efficacit\'e du
16      ! m\'elange. Le calcul du transport des diff\'erentes esp\`eces se fait      ! m\'elange. Le calcul du transport des diff\'erentes esp\`eces se fait
17      ! en prenant en compte :      ! en prenant en compte :
18      ! 1. un flux de masse montant      ! 1. un flux de masse montant
# Line 53  contains Line 53  contains
53    
54      real zmax(klon), zw, zw2(klon, klev+1), ztva(klon, klev)      real zmax(klon), zw, zw2(klon, klev+1), ztva(klon, klev)
55    
56      real zlev(klon, klev+1), zlay(klon, klev)      real zlev(klon, klev+1)
57      REAL zh(klon, klev), zdhadj(klon, klev)      REAL zh(klon, klev), zdhadj(klon, klev)
58      REAL ztv(klon, klev)      REAL ztv(klon, klev)
59      real zu(klon, klev), zv(klon, klev), zo(klon, klev)      real zu(klon, klev), zv(klon, klev), zo(klon, klev)
     real zla(klon, klev+1)  
     real zwa(klon, klev+1)  
     real zld(klon, klev+1)  
60      real zva(klon, klev)      real zva(klon, klev)
61      real zua(klon, klev)      real zua(klon, klev)
62      real zoa(klon, klev)      real zoa(klon, klev)
# Line 72  contains Line 69  contains
69      real thetath2(klon, klev), wth2(klon, klev)      real thetath2(klon, klev), wth2(klon, klev)
70      common/comtherm/thetath2, wth2      common/comtherm/thetath2, wth2
71    
     integer isplit, nsplit  
     parameter (nsplit=10)  
     data isplit/0/  
     save isplit  
   
     logical sorties  
72      real rho(klon, klev), rhobarz(klon, klev+1), masse(klon, klev)      real rho(klon, klev), rhobarz(klon, klev+1), masse(klon, klev)
73      real zpspsk(klon, klev)      real zpspsk(klon, klev)
74    
75      real wmax(klon), wmaxa(klon)      real wmax(klon), wmaxa(klon)
     real wa(klon, klev, klev+1)  
     real wd(klon, klev+1)  
76      real fracd(klon, klev+1)      real fracd(klon, klev+1)
77      real xxx(klon, klev+1)      real xxx(klon, klev+1)
78      real larg_cons(klon, klev+1)      real larg_cons(klon, klev+1)
# Line 97  contains Line 86  contains
86      real entr_star_tot(klon), entr_star2(klon)      real entr_star_tot(klon), entr_star2(klon)
87      real f(klon)      real f(klon)
88      real zlevinter(klon)      real zlevinter(klon)
     logical first  
     data first /.false./  
     save first  
89    
90      EXTERNAL SCOPY      EXTERNAL SCOPY
91    
     integer ncorrec  
     save ncorrec  
     data ncorrec/0/  
   
92      !-----------------------------------------------------------------------      !-----------------------------------------------------------------------
93    
94      ! initialisation:      ! initialisation:
95    
     sorties=.true.  
96      IF(ngrid.NE.klon) THEN      IF(ngrid.NE.klon) THEN
97         PRINT *         PRINT *
98         PRINT *, 'STOP dans convadj'         PRINT *, 'STOP dans convadj'
# Line 148  contains Line 129  contains
129         zlev(ig, 1)=0.         zlev(ig, 1)=0.
130         zlev(ig, nlay+1)=(2.*pphi(ig, klev)-pphi(ig, klev-1))/RG         zlev(ig, nlay+1)=(2.*pphi(ig, klev)-pphi(ig, klev-1))/RG
131      enddo      enddo
     do l=1, nlay  
        do ig=1, ngrid  
           zlay(ig, l)=pphi(ig, l)/RG  
        enddo  
     enddo  
132    
133      ! Calcul des densites      ! Calcul des densites
134    
# Line 168  contains Line 144  contains
144         enddo         enddo
145      enddo      enddo
146    
     do k=1, nlay  
        do l=1, nlay+1  
           do ig=1, ngrid  
              wa(ig, k, l)=0.  
           enddo  
        enddo  
     enddo  
   
147      ! Calcul de w2, quarre de w a partir de la cape      ! Calcul de w2, quarre de w a partir de la cape
148      ! a partir de w2, on calcule wa, vitesse de l'ascendance      ! a partir de w2, on calcule wa, vitesse de l'ascendance
149    
# Line 552  contains Line 520  contains
520         do ig=1, ngrid         do ig=1, ngrid
521            if(fracd(ig, l).lt.0.1) then            if(fracd(ig, l).lt.0.1) then
522               stop'fracd trop petit'               stop'fracd trop petit'
           else  
              ! vitesse descendante "diagnostique"  
              wd(ig, l)=fm(ig, l)/(fracd(ig, l)*rhobarz(ig, l))  
523            endif            endif
524         enddo         enddo
525      enddo      enddo
# Line 626  contains Line 591  contains
591         enddo         enddo
592      enddo      enddo
593    
     print *, '14 OK convect8'  
   
     ! Calculs pour les sorties  
   
     if(sorties) then  
        do l=1, nlay  
           do ig=1, ngrid  
              zla(ig, l)=(1.-fracd(ig, l))*zmax(ig)  
              zld(ig, l)=fracd(ig, l)*zmax(ig)  
              if(1.-fracd(ig, l).gt.1.e-10) &  
                   zwa(ig, l)=wd(ig, l)*fracd(ig, l)/(1.-fracd(ig, l))  
           enddo  
        enddo  
   
        isplit=isplit+1  
     endif  
   
     print *, '19 OK convect8'  
   
594    end SUBROUTINE thermcell    end SUBROUTINE thermcell
595    
596  end module thermcell_m  end module thermcell_m

Legend:
Removed from v.150  
changed lines
  Added in v.188

  ViewVC Help
Powered by ViewVC 1.1.21