Ignore:
Timestamp:
Apr 5, 2013, 1:49:35 PM (11 years ago)
Author:
idelkadi
Message:

1- Inclusion des developpements de la these de Romain Pilon sur le
lessivage des aerosols :

a/ par les pluies convectives (modifs cv30_routines et cv3_routines pour

sortir les champs nécessaires au calcul off-line ; modif cvltr)

b/ par les pluies stratiformes (modifs phytrac et introduction

lsc_scav).

2- Choix entre plusieurs schemas pour les pluies stratiformes, commande
par iflag_lscav.

3- Quelques corrections dans la convection "Nouvelle Physique" pour
assurer la conservation des traceurs (cv3p1_mixing et cva_driver) (travail
de Robin Locatelli).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cv_driver.F

    r965 r1742  
    99     &                   icb1,inb1,
    1010     &                   delt,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1,
    11      &                   da1,phi1,mp1)
     11     &                   da1,phi1,mp1,phi21,d1a1,dam1,sij1,clw1,elij1,
     12     &                   evap1,ep1,epmlmMm1,eplaMm1,
     13     &                   wdtrainA1,wdtrainM1)
    1214C
    1315      USE dimphy
     
    6769cym#include "dimensions.h"
    6870cym#include "dimphy.h"
    69 
     71c
     72c Input
    7073      integer len
    7174      integer nd
     
    7477      integer iflag_con
    7578      integer ntra
     79      real delt
    7680      real t1(len,nd)
    7781      real q1(len,nd)
     
    7983      real u1(len,nd)
    8084      real v1(len,nd)
     85      real tra1(len,nd,ntra)
    8186      real p1(len,nd)
    8287      real ph1(len,ndp1)
     88c
     89c Output
    8390      integer iflag1(len)
    8491      real ft1(len,nd)
     
    8693      real fu1(len,nd)
    8794      real fv1(len,nd)
     95      real ftra1(len,nd,ntra)
    8896      real precip1(len)
    8997      real cbmf1(len)
    90       real VPrecip1(len,nd+1)
     98      real sig1(klon,klev)
     99      real w01(klon,klev)
     100      real VPrecip1(len,nd+1)
     101      real evap1(len,nd)                    !RomP
     102      real ep1(len,nd)                      !RomP
    91103      real Ma1(len,nd)
    92104      real upwd1(len,nd)
     
    98110      real cape1(len)     
    99111
     112! RomP >>>
     113      real wdtrainA1(len,nd), wdtrainM1(len,nd)
     114      real sij1(len,nd,nd),elij1(len,nd,nd)
    100115      real da1(len,nd),phi1(len,nd,nd),mp1(len,nd)
    101       real da(len,nd),phi(len,nd,nd),mp(len,nd)
    102       real tra1(len,nd,ntra)
    103       real ftra1(len,nd,ntra)
    104 
    105       real delt
     116
     117      real phi21(len,nd,nd)
     118      real d1a1(len,nd), dam1(len,nd)
     119      real epmlmMm1(len,nd,nd),eplaMm1(len,nd)
     120! RomP <<<
     121
    106122
    107123!-------------------------------------------------------------------
     
    243259      real tvp1(klon,klev)
    244260      real clw1(klon,klev)
    245       real sig1(klon,klev)
    246       real w01(klon,klev)
    247261      real th1(klon,klev)
    248262c
     
    277291      real ments(nloc,klev,klev), qents(nloc,klev,klev)
    278292      real sij(nloc,klev,klev), elij(nloc,klev,klev)
     293! RomP >>>
     294      real da(nloc,klev),phi(nloc,klev,klev),mp(nloc,klev)
     295      real epmlmMm(nloc,klev,klev),eplaMm(nloc,klev) 
     296      real phi2(nloc,klev,klev)
     297      real d1a(nloc,klev), dam(nloc,klev)
     298      real wdtrainA(nloc,klev),wdtrainM(nloc,klev)
     299      real sigd(nloc)
     300! RomP <<<
    279301      real qp(nloc,klev), up(nloc,klev), vp(nloc,klev)
    280302      real wt(nloc,klev), water(nloc,klev), evap(nloc,klev)
     
    295317! --- SET CONSTANTS AND PARAMETERS
    296318!-------------------------------------------------------------------
    297 
     319      print *, '-> cv_driver'      !jyg
    298320c -- set simulation flags:
    299321c   (common cvflag)
     
    325347!---------------------------------------------------------------------
    326348
    327       do 20 k=1,nd
    328         do 10 i=1,len
    329          ft1(i,k)=0.0
    330          fq1(i,k)=0.0
    331          fu1(i,k)=0.0
    332          fv1(i,k)=0.0
    333          tvp1(i,k)=0.0
    334          tp1(i,k)=0.0
    335          clw1(i,k)=0.0
     349         ft1(:,:)=0.0
     350         fq1(:,:)=0.0
     351         fu1(:,:)=0.0
     352         fv1(:,:)=0.0
     353         tvp1(:,:)=0.0
     354         tp1(:,:)=0.0
     355         clw1(:,:)=0.0
    336356cym
    337          clw(i,k)=0.0   
    338          gz1(i,k) = 0.
    339          VPrecip1(i,k) = 0.
    340          Ma1(i,k)=0.0
    341          upwd1(i,k)=0.0
    342          dnwd1(i,k)=0.0
    343          dnwd01(i,k)=0.0
    344          qcondc1(i,k)=0.0
    345  10     continue
    346  20   continue
    347 
    348       do 30 j=1,ntra
    349        do 31 k=1,nd
    350         do 32 i=1,len
    351          ftra1(i,k,j)=0.0
    352  32     continue   
    353  31    continue   
    354  30   continue   
    355 
    356       do 60 i=1,len
    357         precip1(i)=0.0
    358         iflag1(i)=0
    359         wd1(i)=0.0
    360         cape1(i)=0.0
    361         VPrecip1(i,nd+1)=0.0
    362  60   continue
     357         clw(:,:)=0.0   
     358         gz1(:,:) = 0.
     359         VPrecip1(:,:) = 0.
     360         Ma1(:,:)=0.0
     361         upwd1(:,:)=0.0
     362         dnwd1(:,:)=0.0
     363         dnwd01(:,:)=0.0
     364         qcondc1(:,:)=0.0
     365
     366         ftra1(:,:,:)=0.0
     367
     368        elij1(:,:,:) = 0.0
     369        sij1(:,:,:) = 0.0
     370
     371        precip1(:)=0.0
     372        iflag1(:)=0
     373        wd1(:)=0.0
     374        cape1(:)=0.0
    363375
    364376      if (iflag_con.eq.30) then
     
    441453 400  continue
    442454
    443 c       print*,'klon, ncum = ',len,ncum
     455         print*,'cv_driver : klon, ncum = ',len,ncum
    444456
    445457      IF (ncum.gt.0) THEN
     
    541553
    542554      if (iflag_con.eq.30) then
    543        CALL cv30_unsat(nloc,ncum,nd,nd,ntra,icb,inb    ! na->nd
     555!RomP >>>
     556       CALL cv30_unsat(nloc,ncum,nd,nd,ntra,icb,inb         ! na->nd
    544557     :               ,t,q,qs,gz,u,v,tra,p,ph
    545558     :               ,th,tv,lv,cpn,ep,sigp,clw
    546559     :               ,m,ment,elij,delt,plcl
    547      o          ,mp,qp,up,vp,trap,wt,water,evap,b)
     560     :          ,mp,qp,up,vp,trap,wt,water,evap,b
     561     o          ,wdtrainA,wdtrainM)
     562!RomP <<<
    548563      endif
    549564
     
    588603
    589604      if (iflag_con.eq.30) then
     605!RomP >>>
    590606       CALL cv30_tracer(nloc,len,ncum,nd,nd,
    591      :                  ment,sij,da,phi)
     607     :                  ment,sij,da,phi,phi2,d1a,dam,
     608     :                  ep,VPrecip,elij,clw,epmlmMm,eplaMm,
     609     :                  icb,inb)
     610!RomP <<<
    592611      endif
    593612
     
    603622       CALL cv30_uncompress(nloc,len,ncum,nd,ntra,idcum
    604623     :          ,iflag
    605      :          ,precip,VPrecip,sig,w0
     624     :          ,precip,VPrecip,evap,ep,sig,w0        !RomP
    606625     :          ,ft,fq,fu,fv,ftra
    607      :          ,inb 
     626     :          ,inb
    608627     :          ,Ma,upwd,dnwd,dnwd0,qcondc,wd,cape
    609      :          ,da,phi,mp
     628     :          ,da,phi,mp,phi2,d1a,dam,sij           !RomP
     629     :          ,elij,clw,epmlmMm,eplaMm              !RomP 
     630     :          ,wdtrainA,wdtrainM                    !RomP
    610631     o          ,iflag1
    611      o          ,precip1,VPrecip1,sig1,w01
     632     o          ,precip1,VPrecip1,evap1,ep1,sig1,w01     !RomP
    612633     o          ,ft1,fq1,fu1,fv1,ftra1
    613634     o          ,inb1
    614635     o          ,Ma1,upwd1,dnwd1,dnwd01,qcondc1,wd1,cape1
    615      o          ,da1,phi1,mp1)
     636     o          ,da1,phi1,mp1,phi21,d1a1,dam1,sij1       !RomP
     637     o          ,elij1,clw1,epmlmMm1,eplaMm1             !RomP
     638     o          ,wdtrainA1,wdtrainM1)                    !RomP
    616639      endif
    617640
     
    6326559999  continue
    633656
     657      print *, 'fin cv_driver ->'      !jyg
    634658      return
    635659      end
Note: See TracChangeset for help on using the changeset viewer.