Changeset 4094


Ignore:
Timestamp:
Mar 14, 2022, 1:45:50 AM (2 years ago)
Author:
fhourdin
Message:

Nettoyage thermiques (suite) et replay1d

Location:
LMDZ6/trunk/libf/phylmd
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/calwake.F90

    r4089 r4094  
    210210
    211211
    212 ! SUBROUTINE wake(klon,klev,znatsurf, p, ph, pi, dtime, &
    213 !                 tenv0, qe0, omgb, &
    214 !                 dtdwn, dqdwn, amdwn, amup, dta, dqa, wgen, &
    215 !                 sigd_con, Cin, &
    216 !                 deltatw, deltaqw, sigmaw, awdens, wdens, &                  ! state variables
    217 !                 dth, hw, wape, fip, gfl, &
    218 !                 dtls, dqls, ktopw, omgbdth, dp_omgb, tu, qu, &
    219 !                 dtke, dqke, omg, dp_deltomg, wkspread, cstar, &
    220 !                 d_deltat_gw, &
    221 !                 d_deltatw2, d_deltaqw2, d_sigmaw2, d_awdens2, d_wdens2)     ! tendencies
    222 !
    223   ! retour a un Pupper fixe                                *
    224212  CALL wake(klon,klev,znatsurf, p, ph, pi, dtime, &
    225213    te, qe, omgbe, &
  • LMDZ6/trunk/libf/phylmd/thermcell_closure.F90

    r4089 r4094  
    33!
    44      SUBROUTINE thermcell_closure(ngrid,nlay,r_aspect,ptimestep,rho,  &
    5      &   zlev,lalim,alim_star,f_star,zmax,wmax,f,lev_out)
     5     &   zlev,lalim,alim_star,zmax,wmax,f)
    66
    77!-------------------------------------------------------------------------
     
    1717      IMPLICIT NONE
    1818
    19 INTEGER ngrid,nlay
     19! --- arguments ------------------------------------------
     20integer, intent(in) :: ngrid,nlay
     21real, intent(in) :: r_aspect,ptimestep
     22real, intent(in), dimension(ngrid,nlay) :: alim_star,rho,zlev
     23integer, intent(in), dimension(ngrid) :: lalim
     24real, intent(in), dimension(ngrid) :: zmax,wmax
     25
     26real, intent(out), dimension(ngrid) :: f
     27
     28
     29! --- local ------------------------------------------
     30real, dimension(ngrid) :: zdenom,alim_star2,alim_star_tot
     31INTEGER llmax
    2032INTEGER ig,k       
    21 REAL r_aspect,ptimestep
    22 integer lev_out                           ! niveau pour les print
    23 
    24 INTEGER lalim(ngrid)
    25 REAL alim_star(ngrid,nlay)
    26 REAL f_star(ngrid,nlay+1)
    27 REAL rho(ngrid,nlay)
    28 REAL zlev(ngrid,nlay)
    29 REAL zmax(ngrid)
    30 REAL wmax(ngrid)
    31 REAL zdenom(ngrid)
    32 REAL alim_star2(ngrid)
    33 REAL f(ngrid)
    34 
    35 REAL alim_star_tot(ngrid)
    36 INTEGER llmax
    3733
    3834!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    7167
    7268
    73 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    74 ! TESTS POUR UNE NOUVELLE FERMETURE DANS LAQUELLE ALIM_STAR NE SERAIT
    75 ! PAS NORMALISE
    76 !           f(ig)=f(ig)*f_star(ig,2)/(f_star(ig,lalim(ig)))
    77 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    7869
    79       return
     70 RETURN
    8071      end
  • LMDZ6/trunk/libf/phylmd/thermcell_dry.F90

    r2311 r4094  
    33!
    44       SUBROUTINE thermcell_dry(ngrid,nlay,zlev,pphi,ztv,alim_star,  &
    5      &                            lalim,lmin,zmax,wmax,lev_out)
     5     &                            lalim,lmin,zmax,wmax)
    66
    77!--------------------------------------------------------------------------
     
    1414! la temperature potentielle virtuelle pondérée par alim_star.
    1515!--------------------------------------------------------------------------
     16       USE thermcell_ini_mod, ONLY: prt_level, RG
     17       IMPLICIT NONE
    1618
    17        USE print_control_mod, ONLY: prt_level
    18        IMPLICIT NONE
    19 #include "YOMCST.h"       
    20        INTEGER l,ig
    21 
    22        INTEGER ngrid,nlay
    23        REAL zlev(ngrid,nlay+1)
    24        REAL pphi(ngrid,nlay)
    25        REAl ztv(ngrid,nlay)
    26        REAL alim_star(ngrid,nlay)
    27        INTEGER lalim(ngrid)
    28       integer lev_out                           ! niveau pour les print
    29 
    30        REAL zmax(ngrid)
    31        REAL wmax(ngrid)
     19       integer, intent(in) :: ngrid,nlay
     20       real, intent(in), dimension(ngrid,nlay+1) :: zlev,pphi,ztv,alim_star
     21       integer, intent(in), dimension(ngrid) :: lalim
     22       real, intent(out), dimension(ngrid) :: zmax,wmax
    3223
    3324!variables locales
     
    4132      CHARACTER (LEN=20) :: modname='thermcell_dry'
    4233      CHARACTER (LEN=80) :: abort_message
     34       INTEGER l,ig
    4335
    4436!initialisations
     
    170162      enddo
    171163
    172       RETURN
     164 RETURN
    173165      END
  • LMDZ6/trunk/libf/phylmd/thermcell_env.F90

    r4089 r4094  
    7575   enddo
    7676 
    77    RETURN
     77 RETURN
    7878   END
  • LMDZ6/trunk/libf/phylmd/thermcell_height.F90

    r4089 r4094  
    11      SUBROUTINE thermcell_height(ngrid,nlay,lalim,lmin,linter,lmix,  &
    2      &           zw2,zlev,lmax,zmax,zmax0,zmix,wmax,lev_out)                           
     2     &           zw2,zlev,lmax,zmax,zmax0,zmix,wmax)
     3      IMPLICIT NONE
    34
    45!-----------------------------------------------------------------------------
    56!thermcell_height: calcul des caracteristiques du thermique: zmax,wmax,zmix
    67!-----------------------------------------------------------------------------
    7       IMPLICIT NONE
    88
    9       INTEGER ig,l
    10       INTEGER ngrid,nlay
    11       INTEGER lalim(ngrid),lmin(ngrid)
    12       INTEGER lmix(ngrid)
    13       REAL linter(ngrid)
    14       integer lev_out                           ! niveau pour les print
     9! arguments
    1510
    16       REAL zw2(ngrid,nlay+1)
    17       REAL zlev(ngrid,nlay+1)
     11! Entree
     12      integer, intent(in) :: ngrid,nlay
     13      real, intent(in), dimension(ngrid) :: linter
     14      real, intent(in), dimension(ngrid,nlay+1) :: zlev
     15! Sortie
     16      real, intent(out), dimension(ngrid) :: wmax,zmax,zmax0,zmix
     17      integer, intent(out), dimension(ngrid) :: lmax
     18! Les deux
     19     integer, intent(inout), dimension(ngrid) :: lmix,lalim,lmin
     20     real, intent(inout), dimension(ngrid,nlay+1) :: zw2
    1821
    19       REAL wmax(ngrid)
    20       INTEGER lmax(ngrid)
    21       REAL zmax(ngrid)
    22       REAL zmax0(ngrid)
    23       REAL zmix(ngrid)
    24       REAL num(ngrid)
    25       REAL denom(ngrid)
    26 
    27       REAL zlevinter(ngrid)
     22! local
     23     real, dimension(ngrid) :: num,denom,zlevinter
     24     integer ig,l
    2825
    2926!calcul de la hauteur max du thermique
     
    159156      enddo
    160157!
    161       return
     158 RETURN
    162159      end
  • LMDZ6/trunk/libf/phylmd/thermcell_ini_mod.F90

    r4090 r4094  
    9797
    9898
    99 !=====================================================================
     99include "dump_ini.h" ! replay automatic include
     100 RETURN
    100101
    101102END SUBROUTINE thermcell_ini
  • LMDZ6/trunk/libf/phylmd/thermcell_main.F90

    r4089 r4094  
    351351!
    352352      CALL thermcell_height(ngrid,nlay,lalim,lmin,linter,lmix,zw2,  &
    353      &           zlev,lmax,zmax,zmax0,zmix,wmax,lev_out)
     353     &           zlev,lmax,zmax,zmax0,zmix,wmax)
    354354! Attention, w2 est transforme en sa racine carree dans cette routine
    355355! Le probleme vient du fait que linter et lmix sont souvent égaux à 1.
     
    374374!
    375375!
    376 !!      write(lunout,*)'THERM NOUVEAU XXXXX'
    377376      CALL thermcell_dry(ngrid,nlay,zlev,pphi,ztv,alim_star,  &
    378     &                      lalim,lmin,zmax_sec,wmax_sec,lev_out)
     377    &                      lalim,lmin,zmax_sec,wmax_sec)
    379378
    380379 
     
    403402      if (iflag_thermals_closure.eq.1) then
    404403
    405       CALL thermcell_closure(ngrid,nlay,r_aspect_thermals,ptimestep,rho,  &
    406      &   zlev,lalim,alim_star_clos,f_star,zmax_sec,wmax_sec,f,lev_out)
     404     CALL thermcell_closure(ngrid,nlay,r_aspect_thermals,ptimestep,rho,  &
     405    &   zlev,lalim,alim_star_clos,zmax_sec,wmax_sec,f)
    407406
    408407!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    412411
    413412     CALL thermcell_closure(ngrid,nlay,r_aspect_thermals,ptimestep,rho,  &
    414     &   zlev,lalim,alim_star,f_star,zmax,wmax,f,lev_out)
     413    &   zlev,lalim,alim_star,zmax,wmax,f)
     414
    415415
    416416     endif
     
    690690      if (prt_level.ge.1) print*,'thermcell_main FIN  OK'
    691691
    692       return
     692 RETURN
    693693      end subroutine thermcell_main
    694694
  • LMDZ6/trunk/libf/phylmd/thermcell_plume_6A.F90

    r4089 r4094  
    22! $Id$
    33!
    4       SUBROUTINE thermcell_plume_6A(itap,ngrid,klev,ptimestep,ztv,zthl,po,zl,rhobarz,  &
     4      SUBROUTINE thermcell_plume_6A(itap,ngrid,nlay,ptimestep,ztv,zthl,po,zl,rhobarz,  &
    55     &           zlev,pplev,pphi,zpspsk,alim_star,alim_star_tot,  &
    66     &           lalim,f0,detr_star,entr_star,f_star,csc,ztva,  &
     
    1919       IMPLICIT NONE
    2020
    21       integer,intent(in) :: itap,lev_out,lunout1,igout,ngrid,klev
     21      integer,intent(in) :: itap,lev_out,lunout1,igout,ngrid,nlay
    2222      real,intent(in) :: ptimestep
    23       real,intent(in),dimension(ngrid,klev) :: ztv
    24       real,intent(in),dimension(ngrid,klev) :: zthl
    25       real,intent(in),dimension(ngrid,klev) :: po
    26       real,intent(in),dimension(ngrid,klev) :: zl
    27       real,intent(in),dimension(ngrid,klev) :: rhobarz
    28       real,intent(in),dimension(ngrid,klev+1) :: zlev
    29       real,intent(in),dimension(ngrid,klev+1) :: pplev
    30       real,intent(in),dimension(ngrid,klev) :: pphi
    31       real,intent(in),dimension(ngrid,klev) :: zpspsk
     23      real,intent(in),dimension(ngrid,nlay) :: ztv
     24      real,intent(in),dimension(ngrid,nlay) :: zthl
     25      real,intent(in),dimension(ngrid,nlay) :: po
     26      real,intent(in),dimension(ngrid,nlay) :: zl
     27      real,intent(in),dimension(ngrid,nlay) :: rhobarz
     28      real,intent(in),dimension(ngrid,nlay+1) :: zlev
     29      real,intent(in),dimension(ngrid,nlay+1) :: pplev
     30      real,intent(in),dimension(ngrid,nlay) :: pphi
     31      real,intent(in),dimension(ngrid,nlay) :: zpspsk
    3232      real,intent(in),dimension(ngrid) :: f0
    3333
    3434      integer,intent(out) :: lalim(ngrid)
    35       real,intent(out),dimension(ngrid,klev) :: alim_star
     35      real,intent(out),dimension(ngrid,nlay) :: alim_star
    3636      real,intent(out),dimension(ngrid) :: alim_star_tot
    37       real,intent(out),dimension(ngrid,klev) :: detr_star
    38       real,intent(out),dimension(ngrid,klev) :: entr_star
    39       real,intent(out),dimension(ngrid,klev+1) :: f_star
    40       real,intent(out),dimension(ngrid,klev) :: csc
    41       real,intent(out),dimension(ngrid,klev) :: ztva
    42       real,intent(out),dimension(ngrid,klev) :: ztla
    43       real,intent(out),dimension(ngrid,klev) :: zqla
    44       real,intent(out),dimension(ngrid,klev) :: zqta
    45       real,intent(out),dimension(ngrid,klev) :: zha
    46       real,intent(out),dimension(ngrid,klev+1) :: zw2
    47       real,intent(out),dimension(ngrid,klev+1) :: w_est
    48       real,intent(out),dimension(ngrid,klev) :: ztva_est
    49       real,intent(out),dimension(ngrid,klev) :: zqsatth
    50       integer,intent(out),dimension(ngrid) :: lmix(ngrid)
    51       integer,intent(out),dimension(ngrid) :: lmix_bis(ngrid)
    52       real,intent(out),dimension(ngrid) :: linter(ngrid)
     37      real,intent(out),dimension(ngrid,nlay) :: detr_star
     38      real,intent(out),dimension(ngrid,nlay) :: entr_star
     39      real,intent(out),dimension(ngrid,nlay+1) :: f_star
     40      real,intent(out),dimension(ngrid,nlay) :: csc
     41      real,intent(out),dimension(ngrid,nlay) :: ztva
     42      real,intent(out),dimension(ngrid,nlay) :: ztla
     43      real,intent(out),dimension(ngrid,nlay) :: zqla
     44      real,intent(out),dimension(ngrid,nlay) :: zqta
     45      real,intent(out),dimension(ngrid,nlay) :: zha
     46      real,intent(out),dimension(ngrid,nlay+1) :: zw2
     47      real,intent(out),dimension(ngrid,nlay+1) :: w_est
     48      real,intent(out),dimension(ngrid,nlay) :: ztva_est
     49      real,intent(out),dimension(ngrid,nlay) :: zqsatth
     50      integer,intent(out),dimension(ngrid) :: lmix
     51      integer,intent(out),dimension(ngrid) :: lmix_bis
     52      real,intent(out),dimension(ngrid) :: linter
    5353
    5454      REAL zdw2,zdw2bis
    5555      REAL zw2modif
    5656      REAL zw2fact,zw2factbis
    57       REAL zeps(ngrid,klev)
     57      REAL zeps(ngrid,nlay)
    5858
    5959      REAL    wmaxa(ngrid)
     
    6262      integer nbpb
    6363
    64       real,dimension(ngrid,klev) :: detr
    65       real,dimension(ngrid,klev) :: entr
    66       real,dimension(ngrid,klev+1) :: wa_moy
    67       real,dimension(ngrid,klev) :: ztv_est
     64      real,dimension(ngrid,nlay) :: detr
     65      real,dimension(ngrid,nlay) :: entr
     66      real,dimension(ngrid,nlay+1) :: wa_moy
     67      real,dimension(ngrid,nlay) :: ztv_est
    6868      real,dimension(ngrid) :: ztemp,zqsat
    69       real,dimension(ngrid,klev) :: zqla_est
    70       real,dimension(ngrid,klev) :: zta_est
    71 
    72       real zdz,zbuoy(ngrid,klev),zalpha,gamma(ngrid,klev),zdqt(ngrid,klev),zw2m
    73       real zbuoyjam(ngrid,klev),zdqtjam(ngrid,klev)
     69      real,dimension(ngrid,nlay) :: zqla_est
     70      real,dimension(ngrid,nlay) :: zta_est
     71
     72      real zdz,zbuoy(ngrid,nlay),zalpha,gamma(ngrid,nlay),zdqt(ngrid,nlay),zw2m
     73      real zbuoyjam(ngrid,nlay),zdqtjam(ngrid,nlay)
    7474      real zbuoybis,zdz2,zdz3,lmel,entrbis,zdzbis
    7575      real d_temp(ngrid)
     
    8585      REAL fact_gamma,fact_gamma2,fact_epsilon2
    8686      REAL coefc
    87       REAL c2(ngrid,klev)
     87      REAL c2(ngrid,nlay)
    8888
    8989      if (ngrid==1) print*,'THERMCELL PLUME MODIFIE 2014/07/11'
     
    148148                   ! du panache
    149149!  Cet appel pourrait être fait avant thermcell_plume dans thermcell_main
    150       CALL thermcell_alim(thermals_flag_alim,ngrid,klev,ztv,d_temp,zlev,alim_star,lalim)
     150      CALL thermcell_alim(thermals_flag_alim,ngrid,nlay,ztv,d_temp,zlev,alim_star,lalim)
    151151
    152152!------------------------------------------------------------------------------
     
    177177!boucle de calcul de la vitesse verticale dans le thermique
    178178!==============================================================================
    179 do l=2,klev-1
     179do l=2,nlay-1
    180180!==============================================================================
    181181
     
    372372!    &                     (exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2))
    373373
    374             w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2)+zdw2)
     374            w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2)+zdw2)
    375375
    376376! Nouvelle version Arnaud
     
    380380!    &                     (exp(-zw2factbis)*(w_est(ig,l-1)-zdw2bis)+zdw2))
    381381
    382             w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2)
     382            w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2)
    383383
    384384!             w_est(ig,l+1)=Max(0.0001,(zdz/(zdzbis+zdz))*(exp(-zw2fact)* &
     
    413413!    &                     (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2))
    414414
    415             w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2)
     415            w_est(ig,l+1)=Max(0.0001,exp(-zw2fact)*(w_est(ig,l)-zdw2bis)+zdw2)
    416416
    417417
     
    478478    &     + detr_q_coef*(zdqt(ig,l)/zw2m)**detr_q_power))
    479479
    480 !         detr_star(ig,l)=(zdz/zdzbis)*detr_star(ig,l)+ &
    481 !    &                    ((zdzbis-zdz)/zdzbis)*detr_star(ig,l-1)
     480!          detr_star(ig,l)=(zdz/zdzbis)*detr_star(ig,l)+ &
     481!    &                          ((zdzbis-zdz)/zdzbis)*detr_star(ig,l-1)
    482482
    483483          zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l)
     
    496496
    497497
    498 !         entr_star(ig,l)=(zdz/zdzbis)*entr_star(ig,l)+ &
    499 !    &                    ((zdzbis-zdz)/zdzbis)*entr_star(ig,l-1)
     498!          entr_star(ig,l)=(zdz/zdzbis)*entr_star(ig,l)+ &
     499!    &                          ((zdzbis-zdz)/zdzbis)*entr_star(ig,l-1)
    500500
    501501!          entr_star(ig,l)=Max(0.,f_star(ig,l)*zdz*zbetalpha*  &     
     
    576576!    &                     (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2))
    577577            if (iflag_thermals_ed==8) then
    578             zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2)+zdw2)
     578            zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2)+zdw2)
    579579            else
    580             zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2)
     580            zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2)
    581581            endif
    582582!            zw2(ig,l+1)=Max(0.0001,(zdz/(zdz+zdzbis))*(exp(-zw2fact)* &
     
    599599!    &                     (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2))
    600600!            zw2(ig,l+1)=Max(0.0001,(zw2(ig,l)+zdw2*zw2fact)*exp(-zw2fact))
    601             zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2)
     601            zw2(ig,l+1)=Max(0.0001,exp(-zw2fact)*(zw2(ig,l)-zdw2bis)+zdw2)
    602602
    603603           endif
     
    672672#undef wrgrads_thermcell
    673673#ifdef wrgrads_thermcell
    674          call wrgradsfi(1,klev,entr_star(igout,1:klev),'esta      ','esta      ')
    675          call wrgradsfi(1,klev,detr_star(igout,1:klev),'dsta      ','dsta      ')
    676          call wrgradsfi(1,klev,zbuoy(igout,1:klev),'buoy      ','buoy      ')
    677          call wrgradsfi(1,klev,zdqt(igout,1:klev),'dqt      ','dqt      ')
    678          call wrgradsfi(1,klev,w_est(igout,1:klev),'w_est     ','w_est     ')
    679          call wrgradsfi(1,klev,w_est(igout,2:klev+1),'w_es2     ','w_es2     ')
    680          call wrgradsfi(1,klev,zw2(igout,1:klev),'zw2A      ','zw2A      ')
     674         call wrgradsfi(1,nlay,entr_star(igout,1:nlay),'esta      ','esta      ')
     675         call wrgradsfi(1,nlay,detr_star(igout,1:nlay),'dsta      ','dsta      ')
     676         call wrgradsfi(1,nlay,zbuoy(igout,1:nlay),'buoy      ','buoy      ')
     677         call wrgradsfi(1,nlay,zdqt(igout,1:nlay),'dqt      ','dqt      ')
     678         call wrgradsfi(1,nlay,w_est(igout,1:nlay),'w_est     ','w_est     ')
     679         call wrgradsfi(1,nlay,w_est(igout,2:nlay+1),'w_es2     ','w_es2     ')
     680         call wrgradsfi(1,nlay,zw2(igout,1:nlay),'zw2A      ','zw2A      ')
    681681#endif
    682682
    683683
    684      return
     684   include "dump_param.h" ! replay automatic include
     685 RETURN
    685686     end
    686 
    687 
    688 
    689 
    690 
    691 
    692 
    693 
    694 
    695 
    696 
    697 
    698 
    699 
    700 
    701 
    702 
    703 
    704 
    705 
    706 
    707 
    708 
    709 
    710 
    711 
    712 
    713 
    714687
    715688
     
    725698!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    726699!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    727  SUBROUTINE thermcell_plume_5B(itap,ngrid,klev,ptimestep,ztv,zthl,po,zl,rhobarz,  &
     700 SUBROUTINE thermcell_plume_5B(itap,ngrid,nlay,ptimestep,ztv,zthl,po,zl,rhobarz,  &
    728701&           zlev,pplev,pphi,zpspsk,alim_star,alim_star_tot,  &
    729702&           lalim,f0,detr_star,entr_star,f_star,csc,ztva,  &
     
    743716      INTEGER itap
    744717      INTEGER lunout1,igout
    745       INTEGER ngrid,klev
     718      INTEGER ngrid,nlay
    746719      REAL ptimestep
    747       REAL ztv(ngrid,klev)
    748       REAL zthl(ngrid,klev)
    749       REAL po(ngrid,klev)
    750       REAL zl(ngrid,klev)
    751       REAL rhobarz(ngrid,klev)
    752       REAL zlev(ngrid,klev+1)
    753       REAL pplev(ngrid,klev+1)
    754       REAL pphi(ngrid,klev)
    755       REAL zpspsk(ngrid,klev)
    756       REAL alim_star(ngrid,klev)
     720      REAL ztv(ngrid,nlay)
     721      REAL zthl(ngrid,nlay)
     722      REAL po(ngrid,nlay)
     723      REAL zl(ngrid,nlay)
     724      REAL rhobarz(ngrid,nlay)
     725      REAL zlev(ngrid,nlay+1)
     726      REAL pplev(ngrid,nlay+1)
     727      REAL pphi(ngrid,nlay)
     728      REAL zpspsk(ngrid,nlay)
     729      REAL alim_star(ngrid,nlay)
    757730      REAL f0(ngrid)
    758731      INTEGER lalim(ngrid)
     
    762735      real alim_star_tot(ngrid)
    763736
    764       REAL ztva(ngrid,klev)
    765       REAL ztla(ngrid,klev)
    766       REAL zqla(ngrid,klev)
    767       REAL zqta(ngrid,klev)
    768       REAL zha(ngrid,klev)
    769 
    770       REAL detr_star(ngrid,klev)
     737      REAL ztva(ngrid,nlay)
     738      REAL ztla(ngrid,nlay)
     739      REAL zqla(ngrid,nlay)
     740      REAL zqta(ngrid,nlay)
     741      REAL zha(ngrid,nlay)
     742
     743      REAL detr_star(ngrid,nlay)
    771744      REAL coefc
    772       REAL entr_star(ngrid,klev)
    773       REAL detr(ngrid,klev)
    774       REAL entr(ngrid,klev)
    775 
    776       REAL csc(ngrid,klev)
    777 
    778       REAL zw2(ngrid,klev+1)
    779       REAL w_est(ngrid,klev+1)
    780       REAL f_star(ngrid,klev+1)
    781       REAL wa_moy(ngrid,klev+1)
    782 
    783       REAL ztva_est(ngrid,klev)
    784       REAL zqla_est(ngrid,klev)
    785       REAL zqsatth(ngrid,klev)
    786       REAL zta_est(ngrid,klev)
    787       REAL zbuoyjam(ngrid,klev)
     745      REAL entr_star(ngrid,nlay)
     746      REAL detr(ngrid,nlay)
     747      REAL entr(ngrid,nlay)
     748
     749      REAL csc(ngrid,nlay)
     750
     751      REAL zw2(ngrid,nlay+1)
     752      REAL w_est(ngrid,nlay+1)
     753      REAL f_star(ngrid,nlay+1)
     754      REAL wa_moy(ngrid,nlay+1)
     755
     756      REAL ztva_est(ngrid,nlay)
     757      REAL zqla_est(ngrid,nlay)
     758      REAL zqsatth(ngrid,nlay)
     759      REAL zta_est(ngrid,nlay)
     760      REAL zbuoyjam(ngrid,nlay)
    788761      REAL ztemp(ngrid),zqsat(ngrid)
    789762      REAL zdw2
    790763      REAL zw2modif
    791764      REAL zw2fact
    792       REAL zeps(ngrid,klev)
     765      REAL zeps(ngrid,nlay)
    793766
    794767      REAL linter(ngrid)
     
    799772      INTEGER ig,l,k
    800773
    801       real zdz,zbuoy(ngrid,klev),zalpha,gamma(ngrid,klev),zdqt(ngrid,klev),zw2m
     774      real zdz,zbuoy(ngrid,nlay),zalpha,gamma(ngrid,nlay),zdqt(ngrid,nlay),zw2m
    802775      real zbuoybis
    803776      real zcor,zdelta,zcvm5,qlbef,zdz2
     
    807780      LOGICAL active(ngrid),activetmp(ngrid)
    808781      REAL fact_gamma,fact_epsilon,fact_gamma2,fact_epsilon2
    809       REAL c2(ngrid,klev)
     782      REAL c2(ngrid,nlay)
    810783      Zsat=.false.
    811784! Initialisation
     
    869842! Definition de l'alimentation
    870843!-------------------------------------------------------------------------
    871       do l=1,klev-1
     844      do l=1,nlay-1
    872845         do ig=1,ngrid
    873846            if (ztv(ig,l)> ztv(ig,l+1) .and. ztv(ig,1)>=ztv(ig,l) ) then
     
    879852         enddo
    880853      enddo
    881       do l=1,klev
     854      do l=1,nlay
    882855         do ig=1,ngrid
    883856            if (alim_star_tot(ig) > 1.e-10 ) then
     
    917890!boucle de calcul de la vitesse verticale dans le thermique
    918891!==============================================================================
    919 do l=2,klev-1
     892do l=2,nlay-1
    920893!==============================================================================
    921894
     
    11171090#undef wrgrads_thermcell
    11181091#ifdef wrgrads_thermcell
    1119          call wrgradsfi(1,klev,entr_star(igout,1:klev),'esta      ','esta      ')
    1120          call wrgradsfi(1,klev,detr_star(igout,1:klev),'dsta      ','dsta      ')
    1121          call wrgradsfi(1,klev,zbuoy(igout,1:klev),'buoy      ','buoy      ')
    1122          call wrgradsfi(1,klev,zdqt(igout,1:klev),'dqt      ','dqt      ')
    1123          call wrgradsfi(1,klev,w_est(igout,1:klev),'w_est     ','w_est     ')
    1124          call wrgradsfi(1,klev,w_est(igout,2:klev+1),'w_es2     ','w_es2     ')
    1125          call wrgradsfi(1,klev,zw2(igout,1:klev),'zw2A      ','zw2A      ')
     1092         call wrgradsfi(1,nlay,entr_star(igout,1:nlay),'esta      ','esta      ')
     1093         call wrgradsfi(1,nlay,detr_star(igout,1:nlay),'dsta      ','dsta      ')
     1094         call wrgradsfi(1,nlay,zbuoy(igout,1:nlay),'buoy      ','buoy      ')
     1095         call wrgradsfi(1,nlay,zdqt(igout,1:nlay),'dqt      ','dqt      ')
     1096         call wrgradsfi(1,nlay,w_est(igout,1:nlay),'w_est     ','w_est     ')
     1097         call wrgradsfi(1,nlay,w_est(igout,2:nlay+1),'w_es2     ','w_es2     ')
     1098         call wrgradsfi(1,nlay,zw2(igout,1:nlay),'zw2A      ','zw2A      ')
    11261099#endif
    11271100
Note: See TracChangeset for help on using the changeset viewer.