Changeset 4514 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Apr 21, 2023, 11:09:09 AM (15 months ago)
Author:
oboucher
Message:

cleaning up lsc_scav.F90

Location:
LMDZ6/trunk/libf/phylmd
Files:
2 edited

Legend:

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

    r2351 r4514  
    11!$Id $
    22
    3 SUBROUTINE lsc_scav(pdtime,it,iflag_lscav,  &
    4 !jyg<
    5                     aerosol,  &
    6 !>jyg
     3SUBROUTINE lsc_scav(pdtime,it,iflag_lscav, aerosol,  &
    74                    oliq,flxr,flxs,rneb,beta_fisrt,  &
    8                     beta_v1,pplay,paprs,t,tr_seri,d_tr_insc,          &
    9                     d_tr_bcscav,d_tr_evap,qPrls)
     5                    beta_v1,pplay,paprs,t,tr_seri,   &
     6                    d_tr_insc,d_tr_bcscav,d_tr_evap,qPrls)
    107  USE ioipsl
    118  USE dimphy
     
    2724  include "YOECUMF.h"
    2825
     26! inputs
    2927  REAL,INTENT(IN)                        :: pdtime ! time step (s)
    3028  INTEGER,INTENT(IN)                     :: it     ! tracer number
    31   INTEGER,INTENT(IN)                     :: iflag_lscav ! LS scavenging param:
    32 !                                             3=Reddy_Boucher2004, 4=3+RPilon.
     29  INTEGER,INTENT(IN)                     :: iflag_lscav ! LS scavenging param: 3=Reddy_Boucher2004, 4=3+RPilon.
    3330  REAL,DIMENSION(klon,klev+1),INTENT(IN) :: flxr     ! flux precipitant de pluie
    3431  REAL,DIMENSION(klon,klev+1),INTENT(IN) :: flxs     ! flux precipitant de neige
     
    5148  REAL,DIMENSION(klon,klev) :: dxbc       ! tendance temporaire de traceur bc
    5249
    53 
    5450!  variables locales     
    55  LOGICAL,SAVE :: debut=.true.
     51 LOGICAL,SAVE :: debut=.TRUE.
    5652!$OMP THREADPRIVATE(debut)
    5753!
     
    9086!$OMP THREADPRIVATE(alpha_r, alpha_s, R_r, R_s)
    9187  REAL           :: pr, ps, ice, water
    92   real :: conserv
    93 !
    94 !!!!!!!!!!!!!!!!!!!! choix lessivage !!!!!!!!!!!!!!!!!!!!!!!!
    95 !!  logical,save  :: inscav_fisrt
    96 !!! $OMP THREADPRIVATE(inscav_first)
    97 !
    98 !!!!!!!!!!!!!!!!!!!!!!!!!!!
     88!  REAL :: conserv
     89!
     90!
    9991  IF (debut) THEN
    100 !
    101 !  inscav_fisrt=.true.
    102 !  call getin('inscav_fisrt',inscav_fisrt)
    103 !  if(inscav_fisrt) then
    104 !   print*,'beta from fisrtilp.F90, beta = (z_cond - z_oliq)/z_cond, inscav_fisrt=',inscav_fisrt
    105 !  else
    106 !   print*,'beta from Reddy and Bocuher 2004 (original version), inscav_fisrt=',inscav_fisrt
    107 !  endif
    10892!
    10993      alpha_r=0.001        !  coefficient d'impaction pour la pluie
     
    11397      frac_fine_scav=0.7
    11498      frac_coar_scav=0.7
    115 !     frac_aer=0.5 ~ droplet size shrinks by evap
     99!     Droplet size shrinks by evap
    116100      frac_aer=0.5
    117101!
     
    125109      READ(99,*,end=9998)  frac_coar_scav
    126110      READ(99,*,end=9998)  frac_aer
    127 9998  Continue
     1119998  CONTINUE
    128112      CLOSE(99)
    129 9999  Continue
     1139999  CONTINUE
    130114
    131115   print*,'alpha_r',alpha_r
     
    136120   print*,'frac_coar_scav',frac_coar_scav
    137121   print*,'frac_aer ev',frac_aer
    138 
    139122!
    140123  ENDIF !(debut)
     
    158141  ENDDO
    159142
    160   DO k=1,klev
    161     DO i=1, klon
    162      d_tr_insc(i,k,it)=0.
    163      d_tr_bcscav(i,k,it)=0.
    164      d_tr_evap(i,k,it)=0.
    165     ENDDO
    166   ENDDO
    167 
    168143!  pressure and size of the layer
    169   DO k=klev-1, 1, -1
     144  DO k=klev, 1, -1
    170145   DO i=1, klon
    171146     zrho(i,k)=pplay(i,k)/t(i,k)/RD   
     
    176151
    177152!jyg<
    178 !!    IF (it.gt.1) THEN                               !  aerosol   
    179153!! Temporary correction: all non-aerosol tracers are dealt with in the same way.
    180154!! Should be updated once it has been decided how gases should be dealt with.
    181     IF (aerosol(it)) THEN
    182 !>jyg
     155  IF (aerosol(it)) THEN
    183156      frac_ev=frac_aer
    184     ELSE                                                !  gas
     157  ELSE                                                !  gas
    185158      frac_ev=frac_gas
    186     ENDIF
    187 
     159  ENDIF
     160!
    188161!jyg<
    189 !!    IF (it.gt.1) THEN                               !  aerosol   
    190     IF (aerosol(it)) THEN
    191 !>jyg
    192      DO k=1, klev
     162  IF (aerosol(it)) THEN ! aerosol
     163    DO k=1, klev
    193164      DO i=1, klon
    194165       scav(i,k)=frac_fine_scav
    195166      ENDDO
    196      ENDDO
    197     ELSE                  ! gas
    198      DO k=1, klev
     167    ENDDO
     168  ELSE                  ! gas
     169    DO k=1, klev
    199170      DO i=1, klon
    200171       henry_t=henry*exp(-kk*(1./298.-1./t(i,k)))    !  mol/l/atm
     
    202173       scav(i,k)=f_a/(1.+f_a)
    203174      ENDDO
    204      ENDDO
    205     ENDIF
    206 
    207    DO k=klev-1, 1, -1
     175    ENDDO
     176  ENDIF
     177
     178  DO k=klev-1, 1, -1
    208179    DO i=1, klon
    209180!  incloud scavenging
    210 !   if(inscav_fisrt) then
    211    if (iflag_lscav .eq. 4) then
    212       beta=beta_fisrt(i,k)*rneb(i,k)
    213    else
    214       beta=flxr(i,k)-flxr(i,k+1)+flxs(i,k)-flxs(i,k+1)
    215 !      beta=beta/zdz(i,k)/oliq/zrho(i,k)
    216       beta=beta/zmass(i,k)/oliq
    217       beta=MAX(0.,beta)
    218    endif ! (iflag_lscav .eq. 4)
    219    beta_v1(i,k)=beta    !! for output
     181      IF (iflag_lscav .EQ. 4) THEN
     182        beta=beta_fisrt(i,k)*rneb(i,k)
     183      ELSE
     184        beta=flxr(i,k)-flxr(i,k+1)+flxs(i,k)-flxs(i,k+1)
     185        beta=beta/zmass(i,k)/oliq
     186        beta=MAX(0.,beta)
     187      ENDIF ! (iflag_lscav .eq. 4)
     188      beta_v1(i,k)=beta    !! for output
    220189!
    221190      dxin=tr_seri(i,k,it)*(exp(-scav(i,k)*beta*pdtime)-1.)
    222 !      his_dh(i)=his_dh(i)-dxin*zrho(i,k)*zdz(i,k)/pdtime !  kg/m2/s
    223191      his_dh(i)=his_dh(i)-dxin*zmass(i,k)/pdtime !  kg/m2/s
    224       d_tr_insc(i,k,it)=dxin
     192      d_tr_insc(i,k,it)=dxin                     !  kg/kg/timestep
    225193
    226194!  below-cloud impaction
    227195!jyg<
    228 !!    IF (it.eq.1) THEN
    229     IF (.NOT.aerosol(it)) THEN
    230 !>jyg
    231       d_tr_bcscav(i,k,it)=0.
    232     ELSE
    233      pr=0.5*(flxr(i,k)+flxr(i,k+1))
    234      ps=0.5*(flxs(i,k)+flxs(i,k+1))
    235      water=pr*alpha_r/R_r/rho_water
    236      ice=ps*alpha_s/R_s/rho_ice
    237      dxbc(i,k)=-3./4.*tr_seri(i,k,it)*pdtime*(water+ice)
    238 !   add tracers from below cloud scav in his_dh
    239      his_dh(i)=his_dh(i)-dxbc(i,k)*zmass(i,k)/pdtime !  kg/m2/s
    240      d_tr_bcscav(i,k,it)=dxbc(i,k)
    241     ENDIF
     196      IF (.NOT.aerosol(it)) THEN
     197        d_tr_bcscav(i,k,it)=0.
     198      ELSE
     199        pr=0.5*(flxr(i,k)+flxr(i,k+1))
     200        ps=0.5*(flxs(i,k)+flxs(i,k+1))
     201        water=pr*alpha_r/R_r/rho_water
     202        ice=ps*alpha_s/R_s/rho_ice
     203        dxbc(i,k)=-3./4.*tr_seri(i,k,it)*pdtime*(water+ice)
     204!      add tracers from below cloud scav in his_dh
     205        his_dh(i)=his_dh(i)-dxbc(i,k)*zmass(i,k)/pdtime !  kg/m2/s
     206        d_tr_bcscav(i,k,it)=dxbc(i,k)                   !  kg/kg/timestep
     207      ENDIF
    242208
    243209!  reevaporation
     
    245211      deltaP(i,k)=max(deltaP(i,k),0.)
    246212
    247       if(flxr(i,k+1)+flxs(i,k+1).gt.1.e-16) then
    248        beta_ev(i,k)=deltaP(i,k)/(flxr(i,k+1)+flxs(i,k+1))
    249       else
    250        beta_ev(i,k)=0.
    251       endif
     213      IF (flxr(i,k+1)+flxs(i,k+1).GT.1.e-16) THEn
     214        beta_ev(i,k)=deltaP(i,k)/(flxr(i,k+1)+flxs(i,k+1))
     215      ELSE
     216        beta_ev(i,k)=0.
     217      ENDIF
    252218
    253219      beta_ev(i,k)=max(min(1.,beta_ev(i,k)),0.)
    254220
    255221!jyg
    256      
    257       if(abs(1-(1-frac_ev)*beta_ev(i,k)).gt.1.e-16) then
     222      IF (ABS(1.-(1.-frac_ev)*beta_ev(i,k)).GT.1.e-16) THEN
    258223! remove tracers from precipitation owing to release by evaporation in his_dh
    259 !      dxev=frac_ev*beta_ev(i,k)*his_dh(i) *pdtime/(zrho(i,k)*zdz(i,k)) &
    260       dxev=frac_ev*beta_ev(i,k)*his_dh(i) *pdtime/(zmass(i,k)) &
    261                                       /(1 -(1-frac_ev)*beta_ev(i,k))
    262        his_dh(i)=his_dh(i)*(1 - frac_ev*beta_ev(i,k) / (1 -(1-frac_ev)*beta_ev(i,k)))
    263       else
    264 !       dxev=his_dh(i) *pdtime/(zrho(i,k)*zdz(i,k))
    265        dxev=his_dh(i) *pdtime/(zmass(i,k))
    266        his_dh(i)=0.
    267       endif
     224        dxev=frac_ev*beta_ev(i,k)*his_dh(i)*pdtime/zmass(i,k)/(1.-(1.-frac_ev)*beta_ev(i,k))
     225        his_dh(i)=his_dh(i)*(1.-frac_ev*beta_ev(i,k)/(1.-(1.-frac_ev)*beta_ev(i,k)))
     226      ELSE
     227        dxev=his_dh(i)*pdtime/zmass(i,k)
     228        his_dh(i)=0.
     229      ENDIF
     230!
    268231!      print*,  k, 'beta_ev',beta_ev
    269232! remove tracers from precipitation owing to release by evaporation in his_dh
    270 !!      dxev=frac_ev*deltaP(i,k)*pdtime * his_dh(i) /(zrho(i,k)*zdz(i,k))
     233!      dxev=frac_ev*deltaP(i,k)*pdtime * his_dh(i) /(zrho(i,k)*zdz(i,k))
    271234!rplmd
    272 !!      dxev=frac_ev*deltaP(i,k)*his_dh(i) *pdtime/(zrho(i,k)*zdz(i,k)) &
    273 !!                                      /max(flxr(i,k)+flxs(i,k),1.e-16)
    274 
    275 
    276       d_tr_evap(i,k,it)=dxev
    277 !!     tendency is further added in phytrac x = x + dx
    278     ENDDO !!  do i
    279    ENDDO  !! do k
    280 
    281 !jyg (20130114)
    282    DO i = 1,klon
     235!      dxev=frac_ev*deltaP(i,k)*his_dh(i) *pdtime/(zrho(i,k)*zdz(i,k))/max(flxr(i,k)+flxs(i,k),1.e-16)
     236
     237      d_tr_evap(i,k,it)=dxev       !  kg/kg/timestep
     238!
     239    ENDDO
     240  ENDDO
     241!
     242  DO i = 1,klon
    283243     qPrls(i,it) = his_dh(i)/max(flxr(i,1)+flxs(i,1),1.e-16)
    284    ENDDO
    285 !jyg end
    286 
    287 
     244  ENDDO
     245!
    288246! test de conservation
    289       conserv=0.
     247!      conserv=0.
    290248!      DO k= klev,1,-1
    291249!        DO i=1, klon
  • LMDZ6/trunk/libf/phylmd/phytrac_mod.F90

    r4412 r4514  
    4242  REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_lessi_impa ! Td du lessivage par impaction
    4343  REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: d_tr_lessi_nucl ! Td du lessivage par nucleation
    44   REAL,DIMENSION(:,:),ALLOCATABLE,SAVE      :: qPrls      !jyg: concentration tra dans pluie LS a la surf.
    45   REAL,DIMENSION(:,:),ALLOCATABLE,SAVE      :: d_tr_dry ! Td depot sec/traceur (1st layer),ALLOCATABLE,SAVE  jyg
    46   REAL,DIMENSION(:,:),ALLOCATABLE,SAVE      :: flux_tr_dry ! depot sec/traceur (surface),ALLOCATABLE,SAVE    jyg
     44  REAL,DIMENSION(:,:),ALLOCATABLE,SAVE   :: qPrls      !jyg: concentration tra dans pluie LS a la surf.
     45  REAL,DIMENSION(:,:),ALLOCATABLE,SAVE   :: d_tr_dry ! Td depot sec/traceur (1st layer),ALLOCATABLE,SAVE  jyg
     46  REAL,DIMENSION(:,:),ALLOCATABLE,SAVE   :: flux_tr_dry ! depot sec/traceur (surface),ALLOCATABLE,SAVE    jyg
    4747
    4848!$OMP THREADPRIVATE(qPa,qMel,qTrdi,dtrcvMA,d_tr_th,d_tr_lessi_impa,d_tr_lessi_nucl)
     
    5151!$OMP THREADPRIVATE(d_tr_cl,d_tr_dry,flux_tr_dry,d_tr_dec,d_tr_cv)
    5252
    53 
    5453CONTAINS
    5554
    5655  SUBROUTINE phytrac_init()
     56
    5757    USE dimphy
    5858    USE infotrac_phy, ONLY: nbtr, type_trac
    5959    USE tracco2i_mod, ONLY: tracco2i_init
     60   
    6061    IMPLICIT NONE
    6162
    62        ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
    63        ALLOCATE(flux_tr_dry(klon,nbtr),d_tr_dec(klon,klev,nbtr),d_tr_cv(klon,klev,nbtr))
    64        ALLOCATE(d_tr_insc(klon,klev,nbtr),d_tr_bcscav(klon,klev,nbtr))
    65        ALLOCATE(d_tr_evapls(klon,klev,nbtr),d_tr_ls(klon,klev,nbtr))
    66        ALLOCATE(qPrls(klon,nbtr),d_tr_trsp(klon,klev,nbtr))
    67        ALLOCATE(d_tr_sscav(klon,klev,nbtr),d_tr_sat(klon,klev,nbtr))
    68        ALLOCATE(d_tr_uscav(klon,klev,nbtr),qPr(klon,klev,nbtr),qDi(klon,klev,nbtr))
    69        ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
    70        ALLOCATE(qTrdi(klon,klev,nbtr),dtrcvMA(klon,klev,nbtr))
    71        ALLOCATE(d_tr_th(klon,klev,nbtr))
    72        ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr),d_tr_lessi_nucl(klon,klev,nbtr))
    73 
    74 
     63    ALLOCATE(d_tr_cl(klon,klev,nbtr),d_tr_dry(klon,nbtr))
     64    ALLOCATE(flux_tr_dry(klon,nbtr),d_tr_dec(klon,klev,nbtr),d_tr_cv(klon,klev,nbtr))
     65    ALLOCATE(d_tr_insc(klon,klev,nbtr),d_tr_bcscav(klon,klev,nbtr))
     66    ALLOCATE(d_tr_evapls(klon,klev,nbtr),d_tr_ls(klon,klev,nbtr))
     67    ALLOCATE(qPrls(klon,nbtr),d_tr_trsp(klon,klev,nbtr))
     68    ALLOCATE(d_tr_sscav(klon,klev,nbtr),d_tr_sat(klon,klev,nbtr))
     69    ALLOCATE(d_tr_uscav(klon,klev,nbtr),qPr(klon,klev,nbtr),qDi(klon,klev,nbtr))
     70    ALLOCATE(qPa(klon,klev,nbtr),qMel(klon,klev,nbtr))
     71    ALLOCATE(qTrdi(klon,klev,nbtr),dtrcvMA(klon,klev,nbtr))
     72    ALLOCATE(d_tr_th(klon,klev,nbtr))
     73    ALLOCATE(d_tr_lessi_impa(klon,klev,nbtr),d_tr_lessi_nucl(klon,klev,nbtr))
    7574
    7675    !===============================================================================
     
    7978    !===============================================================================
    8079    !   -- CO2 interactif --
    81     IF(ANY(type_trac == ['co2i','inco'])) CALL tracco2i_init()
     80    IF (ANY(type_trac == ['co2i','inco'])) CALL tracco2i_init()
    8281
    8382       !   -- type_trac == 'co2i' ! PC
     
    242241    REAL,DIMENSION(klon,klev),INTENT(IN)      :: clw
    243242    ! RomP <<<
    244 
    245243    !
    246244    REAL,DIMENSION(klon,klev),INTENT(IN)     :: mp
     
    374372          zrho(i,k)=0.
    375373          zdz(i,k)=0.
    376        END DO
    377     END DO
     374       ENDDO
     375    ENDDO
    378376
    379377    DO it=1, nbtr
     
    401399             zmfdam(i,k,it)=0.
    402400             zmfphi2(i,k,it)=0.
    403           END DO
    404        END DO
    405     END DO
     401          ENDDO
     402       ENDDO
     403    ENDDO
    406404
    407405    DO it=1, nbtr
     
    409407          d_tr_dry(i,it)=0.
    410408          flux_tr_dry(i,it)=0.
    411        END DO
    412     END DO
     409       ENDDO
     410    ENDDO
    413411
    414412    DO k = 1, klev
    415413       DO i = 1, klon
    416414          delp(i,k) = paprs(i,k)-paprs(i,k+1)
    417        END DO
    418     END DO
     415       ENDDO
     416    ENDDO
    419417
    420418    IF (debutphy) THEN
     
    491489
    492490       ! Initialize module for specific tracers
    493        IF(type_trac == 'inca') THEN
     491       IF (type_trac == 'inca') THEN
    494492          source(:,:)=init_source(:,:)
    495493          CALL tracinca_init(aerosol,lessivage)
    496        ELSE IF(type_trac == 'repr') THEN
     494       ELSE IF (type_trac == 'repr') THEN
    497495          source(:,:)=0.
    498        ELSE IF(type_trac == 'co2i') THEN
     496       ELSE IF (type_trac == 'co2i') THEN
    499497          source(:,:)=0.
    500498          lessivage  = .FALSE.
     
    504502          iflag_vdf_trac= 1
    505503          iflag_con_trac= 1
    506        ELSE IF(type_trac == 'inco') THEN
     504       ELSE IF (type_trac == 'inco') THEN
    507505          source(:,1:nqCO2) = 0.                          ! from CO2i ModThL
    508506          source(:,nqCO2+1:nbtr)=init_source(:,:)         ! from INCA ModThL
     
    514512          iflag_con_trac = 1                              ! From CO2i
    515513#ifdef CPP_StratAer
    516        ELSE IF(type_trac == 'coag') THEN
     514       ELSE IF (type_trac == 'coag') THEN
    517515          source(:,:)=0.
    518516          DO it= 1, nbtr_sulgas
     
    524522          ENDDO
    525523#endif
    526        ELSE IF(type_trac == 'lmdz') THEN
     524       ELSE IF (type_trac == 'lmdz') THEN
    527525          CALL traclmdz_init(pctsrf,xlat,xlon,ftsol,tr_seri,t_seri,pplay,sh,pdtphys,aerosol,lessivage)
    528        END IF
     526       ENDIF
    529527
    530528       !
     
    539537          !
    540538          DO it=1, nbtr
    541              IF(type_trac == 'repr') THEN
     539             IF (type_trac == 'repr') THEN
    542540                 flag_cvltr(it)=.FALSE.
    543              ELSE IF(type_trac == 'inca') THEN
     541             ELSE IF (type_trac == 'inca') THEN
    544542!                IF ((it.EQ.id_Rn222) .OR. ((it.GE.id_SO2) .AND. (it.LE.id_NH3)) ) THEN
    545543!                   !--gas-phase species
     
    565563                !--for now we do not scavenge in cvltr
    566564                flag_cvltr(it)=.FALSE.
    567              ELSE IF(type_trac == 'co2i') THEN
     565             ELSE IF (type_trac == 'co2i') THEN
    568566                !--co2 tracers are not scavenged
    569567                flag_cvltr(it)=.FALSE.
    570              ELSE IF(type_trac == 'inco') THEN     ! Add ThL
     568             ELSE IF (type_trac == 'inco') THEN     ! Add ThL
    571569                flag_cvltr(it)=.FALSE.
    572570#ifdef CPP_StratAer
    573              ELSE IF(type_trac == 'coag') THEN
     571             ELSE IF (type_trac == 'coag') THEN
    574572                IF (convscav.and.aerosol(it)) THEN
    575573                   flag_cvltr(it)=.TRUE.
     
    581579                ENDIF
    582580#endif
    583              ELSE IF(type_trac == 'lmdz') THEN
     581             ELSE IF (type_trac == 'lmdz') THEN
    584582                IF (convscav.and.aerosol(it)) THEN
    585583                   flag_cvltr(it)=.TRUE.
     
    590588                   flag_cvltr(it)=.FALSE.
    591589                ENDIF
    592              END IF
     590             ENDIF
    593591          ENDDO
    594592          !
     
    623621       DO i=1,klon
    624622          zmasse(i,k)=(paprs(i,k)-paprs(i,k+1))/rg
    625        END DO
    626     END DO
     623       ENDDO
     624    ENDDO
    627625    !
    628626    IF (id_be .GT. 0) THEN
     
    630628          DO i=1,klon
    631629             sourceBE(i,k)=srcbe(i,k)       !RomP  -> pour sortie histrac
    632           END DO
    633        END DO
     630          ENDDO
     631       ENDDO
    634632    ENDIF
    635633
     
    638636    !     
    639637    !===============================================================================
    640     IF(type_trac == 'inca') THEN
     638    IF (type_trac == 'inca') THEN
    641639       !    -- CHIMIE INCA  config_inca = aero or chem --
    642640       ! Appel fait en fin de phytrac pour avoir les emissions modifiees par
    643641       ! la couche limite et la convection avant le calcul de la chimie
    644642
    645     ELSE IF(type_trac == 'repr') THEN
     643    ELSE IF (type_trac == 'repr') THEN
    646644       !   -- CHIMIE REPROBUS --
    647645       CALL tracreprobus(pdtphys, gmtime, debutphy, julien, &
     
    650648            tr_seri)
    651649
    652     ELSE IF(type_trac == 'co2i') THEN
     650    ELSE IF (type_trac == 'co2i') THEN
    653651       !   -- CO2 interactif --
    654652       !   -- source is updated with FF and BB emissions
     
    659657            xlat, xlon, pphis, pphi, &
    660658            t_seri, pplay, paprs, tr_seri, source)
    661     ELSE IF(type_trac == 'inco') THEN      ! Add ThL
     659    ELSE IF (type_trac == 'inco') THEN      ! Add ThL
    662660       CALL tracco2i(pdtphys, debutphy, &
    663661            xlat, xlon, pphis, pphi, &
     
    665663
    666664#ifdef CPP_StratAer
    667     ELSE IF(type_trac == 'coag') THEN
     665    ELSE IF (type_trac == 'coag') THEN
    668666       !   --STRATOSPHERIC AER IN THE STRAT --
    669667       CALL traccoag(pdtphys, gmtime, debutphy, julien, &
     
    672670            tr_seri)
    673671#endif
    674     ELSE IF(type_trac == 'lmdz') THEN
     672    ELSE IF (type_trac == 'lmdz') THEN
    675673       !    -- Traitement des traceurs avec traclmdz
    676674       CALL traclmdz(nstep, julien, gmtime, pdtphys, t_seri, paprs, pplay, &
     
    678676            rh, pphi, ustar, wstar, ale_bl, ale_wake,  u10m, v10m, &
    679677            tr_seri, source, d_tr_cl,d_tr_dec, zmasse)               !RomP
    680     END IF
     678    ENDIF
    681679    !======================================================================
    682680    !       -- Calcul de l'effet de la convection --
     
    738736             DO i = 1, klon       
    739737                tr_seri(i,k,it) = tr_seri(i,k,it) + d_tr_cv(i,k,it)
    740              END DO
    741           END DO
     738             ENDDO
     739          ENDDO
    742740
    743741          CALL minmaxqfi(tr_seri(:,:,it),0.,1.e33,'convection it = '//TRIM(int2str(it)))
    744742
    745        END DO ! nbtr
     743       ENDDO ! nbtr
    746744
    747745#ifdef CPP_StratAer
     
    795793!             tr_seri(i,k,it)=MIN(tr_seri(i,k,it),1.e10)
    796794!#endif
    797           END DO
    798        END DO
    799     END DO
     795          ENDDO
     796       ENDDO
     797    ENDDO
    800798
    801799    IF (iflag_thermals.GT.0.AND.iflag_the_trac>0) THEN   
     
    811809                d_tr_th(i,k,it)=pdtphys*d_tr_th(i,k,it)
    812810                tr_seri(i,k,it)=MAX(tr_seri(i,k,it)+d_tr_th(i,k,it),0.)
    813              END DO
    814           END DO
    815 
    816        END DO ! it
     811             ENDDO
     812          ENDDO
     813
     814       ENDDO ! it
    817815
    818816    ENDIF ! Thermiques
     
    854852       DO it=1, nbtr
    855853          !
    856           IF( pbl_flg(it) /= 0 ) THEN
     854          IF (pbl_flg(it) /= 0) THEN
    857855             !
    858856             CALL cltrac(pdtphys, coefh,t_seri,       &
     
    929927             ! Liu (2001) proposed to use 1.5e-3 kg/kg
    930928
    931 !jyg<
    932 !!             CALL lsc_scav(pdtphys,it,iflag_lscav,ql_incl,prfl,psfl,rneb,beta_fisrt,  &
    933929             CALL lsc_scav(pdtphys,it,iflag_lscav,aerosol,ql_incl,prfl,psfl,rneb,beta_fisrt,  &
    934 !>jyg
    935                   beta_v1,pplay,paprs,t_seri,tr_seri,d_tr_insc,   &
    936                   d_tr_bcscav,d_tr_evapls,qPrls)
     930                           beta_v1,pplay,paprs,t_seri,tr_seri,d_tr_insc,d_tr_bcscav,d_tr_evapls,qPrls)
    937931
    938932             !large scale scavenging tendency
     
    946940             ENDIF
    947941
    948           END DO  !tr
     942          ENDDO  !tr
    949943
    950944#ifdef CPP_StratAer
Note: See TracChangeset for help on using the changeset viewer.