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/traclmdz_mod.F90

    r1670 r1742  
    22!
    33MODULE traclmdz_mod
     4
    45!
    56! In this module all tracers specific to LMDZ are treated. This module is used
     
    117118    REAL, DIMENSION(klev)          :: mintmp, maxtmp
    118119    LOGICAL                        :: zero
    119 
     120! RomP >>> profil initial Be7
     121      integer ilesfil
     122      parameter (ilesfil=1)
     123      integer  irr,kradio
     124      real     beryllium(klon,klev)
     125! profil initial Pb210
     126      integer ilesfil2
     127      parameter (ilesfil2=1)
     128      integer  irr2,kradio2
     129      real     plomb(klon,klev)
     130!! RomP <<<
    120131! --------------------------------------------
    121132! Allocation
     
    148159
    149160    lessivage  = .TRUE.
     161!!jyg(20130206) : le choix d activation du lessivage est fait dans phytrac avec iflag_lscav
     162!!    call getin('lessivage',lessivage)
     163!!    if(lessivage) then
     164!!     print*,'lessivage lsc ON'
     165!!    else
     166!!     print*,'lessivage lsc OFF'
     167!!    endif
    150168    aerosol(:) = .FALSE.  ! Tous les traceurs sont des gaz par defaut
    151169   
     
    161179       ELSE IF ( tname(iiq) == "PB") THEN
    162180          id_pb=it ! plomb
     181! RomP >>> profil initial de PB210
     182     open (ilesfil2,file='prof.pb210',status='old',iostat=irr2)
     183     IF (irr2 == 0) THEN
     184      read(ilesfil2,*) kradio2
     185      print*,'number of levels for pb210 profile ',kradio2
     186      do k=kradio2,1,-1
     187       read (ilesfil2,*) plomb(:,k)
     188      enddo
     189      close(ilesfil2)
     190      do k=1,klev
     191       do i=1,klon
     192         tr_seri(i,k,id_pb)=plomb(i,k)
     193!!        print*, 'tr_seri',i,k,tr_seri(i,k,id_pb)
     194        enddo
     195      enddo
     196     ELSE
     197       print *, 'Prof.pb210 does not exist: use restart values'
     198     ENDIF
     199! RomP <<<
    163200       ELSE IF ( tname(iiq) == "Aga" .OR. tname(iiq) == "AGA" ) THEN
    164201          ! Age of stratospheric air
     
    183220          radio(id_be) = .TRUE.
    184221          aerosol(id_be) = .TRUE. ! le Be est un aerosol
    185           CALL init_be(pctsrf,masktr(:,id_be),tautr(id_be),vdeptr(id_be),scavtr(id_be),srcbe)
     222!jyg le 13/03/2013 ; ajout de pplay en argument de init_be
     223!!!          CALL init_be(pctsrf,masktr(:,id_be),tautr(id_be),vdeptr(id_be),scavtr(id_be),srcbe)
     224          CALL init_be(pctsrf,pplay,masktr(:,id_be),tautr(id_be),vdeptr(id_be),scavtr(id_be),srcbe)
    186225          WRITE(lunout,*) 'Initialisation srcBe: OK'
     226! RomP >>> profil initial de Be7
     227      open (ilesfil,file='prof.be7',status='old',iostat=irr)
     228      IF (irr == 0) THEN
     229       read(ilesfil,*) kradio
     230       print*,'number of levels for Be7 profile ',kradio
     231       do k=kradio,1,-1
     232        read (ilesfil,*) beryllium(:,k)
     233       enddo
     234       close(ilesfil)
     235       do k=1,klev
     236         do i=1,klon
     237          tr_seri(i,k,id_be)=beryllium(i,k)
     238!!        print*, 'tr_seri',i,k,tr_seri(i,k,id_be)
     239         enddo
     240       enddo
     241     ELSE
     242       print *, 'Prof.Be7 does not exist: use restart values'
     243     ENDIF
     244! RomP <<<
    187245       ELSE IF (tname(iiq)=="O3" .OR. tname(iiq)=="o3") THEN
    188246          ! Recherche de l'ozone : parametrization de la chimie par Cariolle
     
    280338       cdragh,  coefh, yu1, yv1, ftsol, pctsrf, xlat, xlon, couchelimite, sh, &
    281339       rh, pphi, ustar, zu10m, zv10m, &
    282        tr_seri, source, solsym, d_tr_cl, zmasse)
     340!!          tr_seri, source, solsym, d_tr_cl, zmasse)                      !RomP
     341          tr_seri, source, solsym, d_tr_cl,d_tr_dec, zmasse)               !RomP
    283342   
    284343    USE dimphy
     
    316375!--------------
    317376!
    318     REAL,DIMENSION(klon),INTENT(IN)      :: cdragh  ! coeff drag pour T et Q
    319     REAL,DIMENSION(klon,klev),INTENT(IN) :: coefh   ! diffusivite turb (m**2/s)
    320     REAL,DIMENSION(klon),INTENT(IN)      :: yu1     ! vents au premier niveau
    321     REAL,DIMENSION(klon),INTENT(IN)      :: yv1     ! vents au premier niveau
     377    REAL,DIMENSION(klon),INTENT(IN)      :: cdragh     ! coeff drag pour T et Q
     378    REAL,DIMENSION(klon,klev),INTENT(IN) :: coefh      ! coeff melange CL (m**2/s)
     379    REAL,DIMENSION(klon),INTENT(IN)      :: yu1        ! vents au premier niveau
     380    REAL,DIMENSION(klon),INTENT(IN)      :: yv1        ! vents au premier niveau
    322381    LOGICAL,INTENT(IN)                   :: couchelimite
    323     REAL,DIMENSION(klon,klev),INTENT(IN) :: sh      ! humidite specifique
     382    REAL,DIMENSION(klon,klev),INTENT(IN) :: sh         ! humidite specifique
    324383    REAL,DIMENSION(klon,klev),INTENT(IN) :: rh      ! Humidite relative
    325384    REAL,DIMENSION(klon,klev),INTENT(IN) :: pphi    ! geopotentie
Note: See TracChangeset for help on using the changeset viewer.