Ignore:
Timestamp:
Mar 13, 2022, 3:58:55 PM (2 years ago)
Author:
fhourdin
Message:

Nettoyage thermiques (suite)

File:
1 edited

Legend:

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

    r4089 r4093  
    22! $Id: thermcell_plume.F90 3074 2017-11-15 13:31:44Z fhourdin $
    33!
    4       SUBROUTINE thermcell_plume(itap,ngrid,klev,ptimestep,ztv,zthl,po,zl,rhobarz,  &
     4      SUBROUTINE thermcell_plume(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,  &
     
    2121!   = 29 : an other way to compute the modified buoyancy (to be tested)
    2222!--------------------------------------------------------------------------
     23
    2324       USE thermcell_ini_mod, ONLY: prt_level,fact_thermals_ed_dz,iflag_thermals_ed,RLvCP,RETV,RG
    2425       USE thermcell_ini_mod, ONLY: fact_epsilon, betalpha, afact, fact_shell
     
    2627       USE thermcell_ini_mod, ONLY: mix0, thermals_flag_alim
    2728
    28 
    2929       IMPLICIT NONE
    3030
    31       INTEGER itap
    32       INTEGER lunout1,igout
    33       INTEGER ngrid,klev
    34       REAL ptimestep
    35       REAL ztv(ngrid,klev)
    36       REAL zthl(ngrid,klev)
    37       REAL po(ngrid,klev)
    38       REAL zl(ngrid,klev)
    39       REAL rhobarz(ngrid,klev)
    40       REAL zlev(ngrid,klev+1)
    41       REAL pplev(ngrid,klev+1)
    42       REAL pphi(ngrid,klev)
    43       REAL zpspsk(ngrid,klev)
    44       REAL alim_star(ngrid,klev)
    45       REAL f0(ngrid)
    46       INTEGER lalim(ngrid)
    47       integer lev_out                           ! niveau pour les print
    48       integer nbpb
    49    
    50       real alim_star_tot(ngrid)
    51 
    52       REAL ztva(ngrid,klev)
    53       REAL ztla(ngrid,klev)
    54       REAL zqla(ngrid,klev)
    55       REAL zqta(ngrid,klev)
    56       REAL zha(ngrid,klev)
    57 
    58       REAL detr_star(ngrid,klev)
    59       REAL coefc
    60       REAL entr_star(ngrid,klev)
    61       REAL detr(ngrid,klev)
    62       REAL entr(ngrid,klev)
    63 
    64       REAL csc(ngrid,klev)
    65 
    66       REAL zw2(ngrid,klev+1)
    67       REAL w_est(ngrid,klev+1)
    68       REAL f_star(ngrid,klev+1)
    69       REAL wa_moy(ngrid,klev+1)
    70 
    71       REAL ztva_est(ngrid,klev)
    72       REAL ztv_est(ngrid,klev)
    73       REAL zqla_est(ngrid,klev)
    74       REAL zqsatth(ngrid,klev)
    75       REAL zta_est(ngrid,klev)
     31      integer,intent(in) :: itap,lev_out,lunout1,igout,ngrid,nlay
     32      real,intent(in) :: ptimestep
     33      real,intent(in),dimension(ngrid,nlay) :: ztv
     34      real,intent(in),dimension(ngrid,nlay) :: zthl
     35      real,intent(in),dimension(ngrid,nlay) :: po
     36      real,intent(in),dimension(ngrid,nlay) :: zl
     37      real,intent(in),dimension(ngrid,nlay) :: rhobarz
     38      real,intent(in),dimension(ngrid,nlay+1) :: zlev
     39      real,intent(in),dimension(ngrid,nlay+1) :: pplev
     40      real,intent(in),dimension(ngrid,nlay) :: pphi
     41      real,intent(in),dimension(ngrid,nlay) :: zpspsk
     42      real,intent(in),dimension(ngrid) :: f0
     43
     44      integer,intent(out) :: lalim(ngrid)
     45      real,intent(out),dimension(ngrid,nlay) :: alim_star
     46      real,intent(out),dimension(ngrid) :: alim_star_tot
     47      real,intent(out),dimension(ngrid,nlay) :: detr_star
     48      real,intent(out),dimension(ngrid,nlay) :: entr_star
     49      real,intent(out),dimension(ngrid,nlay+1) :: f_star
     50      real,intent(out),dimension(ngrid,nlay) :: csc
     51      real,intent(out),dimension(ngrid,nlay) :: ztva
     52      real,intent(out),dimension(ngrid,nlay) :: ztla
     53      real,intent(out),dimension(ngrid,nlay) :: zqla
     54      real,intent(out),dimension(ngrid,nlay) :: zqta
     55      real,intent(out),dimension(ngrid,nlay) :: zha
     56      real,intent(out),dimension(ngrid,nlay+1) :: zw2
     57      real,intent(out),dimension(ngrid,nlay+1) :: w_est
     58      real,intent(out),dimension(ngrid,nlay) :: ztva_est
     59      real,intent(out),dimension(ngrid,nlay) :: zqsatth
     60      integer,intent(out),dimension(ngrid) :: lmix(ngrid)
     61      integer,intent(out),dimension(ngrid) :: lmix_bis(ngrid)
     62      real,intent(out),dimension(ngrid) :: linter(ngrid)
     63
     64
     65      REAL wa_moy(ngrid,nlay+1)
     66      REAL entr(ngrid,nlay),detr(ngrid,nlay)
     67      REAL ztv_est(ngrid,nlay)
     68      REAL zqla_est(ngrid,nlay)
     69      REAL zta_est(ngrid,nlay)
    7670      REAL ztemp(ngrid),zqsat(ngrid)
    7771      REAL zdw2,zdw2bis
    7872      REAL zw2modif
    7973      REAL zw2fact,zw2factbis
    80       REAL zeps(ngrid,klev)
    81 
    82       REAL linter(ngrid)
    83       INTEGER lmix(ngrid)
    84       INTEGER lmix_bis(ngrid)
     74      REAL zeps(ngrid,nlay)
     75
    8576      REAL    wmaxa(ngrid)
    8677
    87       INTEGER ig,l,k,lt,it,lm
    88 
    89       real zdz,zbuoy(ngrid,klev),zalpha,gamma(ngrid,klev),zdqt(ngrid,klev),zw2m
    90       real zbuoyjam(ngrid,klev),zdqtjam(ngrid,klev)
     78      INTEGER ig,l,k,lt,it,lm,nbpb
     79
     80      real zdz,zbuoy(ngrid,nlay),zalpha,gamma(ngrid,nlay),zdqt(ngrid,nlay),zw2m
     81      real zbuoyjam(ngrid,nlay),zdqtjam(ngrid,nlay)
    9182      real zdz2,zdz3,lmel,entrbis,zdzbis
    9283      real d_temp(ngrid)
     
    10394
    10495
    105       REAL c2(ngrid,klev)
     96      REAL c2(ngrid,nlay)
    10697
    10798      if (ngrid==1) print*,'THERMCELL PLUME MODIFIE 2014/07/11'
     
    166157                   ! du panache
    167158!  Cet appel pourrait être fait avant thermcell_plume dans thermcell_main
    168       CALL thermcell_alim(thermals_flag_alim,ngrid,klev,ztv,d_temp,zlev,alim_star,lalim)
     159      CALL thermcell_alim(thermals_flag_alim,ngrid,nlay,ztv,d_temp,zlev,alim_star,lalim)
    169160
    170161!------------------------------------------------------------------------------
     
    195186!boucle de calcul de la vitesse verticale dans le thermique
    196187!==============================================================================
    197 do l=2,klev-1
     188do l=2,nlay-1
    198189!==============================================================================
    199190
     
    442433#undef wrgrads_thermcell
    443434#ifdef wrgrads_thermcell
    444          call wrgradsfi(1,klev,entr_star(igout,1:klev),'esta      ','esta      ')
    445          call wrgradsfi(1,klev,detr_star(igout,1:klev),'dsta      ','dsta      ')
    446          call wrgradsfi(1,klev,zbuoy(igout,1:klev),'buoy      ','buoy      ')
    447          call wrgradsfi(1,klev,zdqt(igout,1:klev),'dqt      ','dqt      ')
    448          call wrgradsfi(1,klev,w_est(igout,1:klev),'w_est     ','w_est     ')
    449          call wrgradsfi(1,klev,w_est(igout,2:klev+1),'w_es2     ','w_es2     ')
    450          call wrgradsfi(1,klev,zw2(igout,1:klev),'zw2A      ','zw2A      ')
     435         call wrgradsfi(1,nlay,entr_star(igout,1:nlay),'esta      ','esta      ')
     436         call wrgradsfi(1,nlay,detr_star(igout,1:nlay),'dsta      ','dsta      ')
     437         call wrgradsfi(1,nlay,zbuoy(igout,1:nlay),'buoy      ','buoy      ')
     438         call wrgradsfi(1,nlay,zdqt(igout,1:nlay),'dqt      ','dqt      ')
     439         call wrgradsfi(1,nlay,w_est(igout,1:nlay),'w_est     ','w_est     ')
     440         call wrgradsfi(1,nlay,w_est(igout,2:nlay+1),'w_es2     ','w_es2     ')
     441         call wrgradsfi(1,nlay,zw2(igout,1:nlay),'zw2A      ','zw2A      ')
    451442#endif
    452443
Note: See TracChangeset for help on using the changeset viewer.