Ignore:
Timestamp:
Nov 30, 2016, 1:28:41 PM (8 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2664:2719 into testing branch

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/phytrac_mod.F90

    r2641 r2720  
    9797    USE tracreprobus_mod
    9898    USE indice_sol_mod
    99 
    10099    USE mod_phys_lmdz_mpi_data, ONLY :  is_mpi_root
    101100    USE print_control_mod, ONLY: lunout
    102101    USE aero_mod, ONLY : naero_grp
     102
     103#ifdef CPP_StratAer
     104    USE traccoag_mod
     105    USE phys_local_var_mod, ONLY: mdw, sulf_dep_dry, sulf_dep_wet
     106    USE infotrac, ONLY: nbtr_sulgas, id_SO2_strat, id_H2SO4_strat
     107    USE aerophys
     108#endif
    103109
    104110    IMPLICIT NONE
     
    208214    !--------------
    209215    !
    210     !
    211216    REAL,DIMENSION(:),INTENT(IN)   :: cdragh          ! (klon) coeff drag pour T et Q
    212217    REAL,DIMENSION(:,:),INTENT(IN) :: coefh           ! (klon,klev) coeff melange CL (m**2/s)
     
    215220    REAL,DIMENSION(:),INTENT(IN)   :: yu1             ! (klon) vents au premier niveau
    216221    REAL,DIMENSION(:),INTENT(IN)   :: yv1             ! (klon) vents au premier niveau
    217 
    218222    !
    219223    !Lessivage:
     
    238242    REAL,DIMENSION(klon,nbsrf),INTENT(IN) :: pctsrf ! Pourcentage de sol (nature du sol)
    239243
    240 
     244#ifdef CPP_StratAer
     245    REAL,DIMENSION(klon)           :: v_dep_dry !dry deposition velocity of stratospheric sulfate in m/s
     246#endif
    241247    ! Output argument
    242248    !----------------
    243249    REAL,DIMENSION(klon,klev,nbtr),INTENT(INOUT) :: tr_seri ! Concentration Traceur [U/KgA]
    244250    REAL,DIMENSION(klon,klev)                    :: sourceBE
     251
    245252    !=======================================================================================
    246253    !                        -- LOCAL VARIABLES --
     
    267274    INTEGER                   :: itau_w      ! pas de temps ecriture = nstep + itau_phy
    268275    LOGICAL,PARAMETER         :: ok_sync=.TRUE.
    269 
    270276    !
    271277    ! Nature du traceur
     
    369375    END DO
    370376
     377    DO it=1, nbtr
     378       DO i=1,klon
     379          d_tr_dry(i,it)=0.
     380          flux_tr_dry(i,it)=0.
     381       END DO
     382    END DO
     383
    371384    DO k = 1, klev
    372385       DO i = 1, klon
     
    456469       CASE('repr')
    457470          source(:,:)=0.
     471#ifdef CPP_StratAer
     472       CASE('coag')
     473          source(:,:)=0.
     474          DO it= 1, nbtr_sulgas
     475            aerosol(it)=.FALSE.
     476            IF (it==id_H2SO4_strat) aerosol(it)=.TRUE.
     477          ENDDO
     478          DO it= nbtr_sulgas+1, nbtr
     479            aerosol(it)=.TRUE.
     480          ENDDO
     481#endif
    458482       END SELECT
    459483
     
    504528                !--for now we do not scavenge in cvltr
    505529                flag_cvltr(it)=.false.
     530
     531#ifdef CPP_StratAer
     532             CASE('coag')
     533                IF (convscav.and.aerosol(it)) THEN
     534                   flag_cvltr(it)=.true.
     535                   ccntrAA(it) =ccntrAA_in   
     536                   ccntrENV(it)=ccntrENV_in
     537                   coefcoli(it)=coefcoli_in
     538                ELSE
     539                   flag_cvltr(it)=.false.
     540                ENDIF
     541#endif
     542
    506543             END SELECT
    507544          ENDDO
     
    572609       ! Appel fait en fin de phytrac pour avoir les emissions modifiees par
    573610       ! la couche limite et la convection avant le calcul de la chimie
     611
    574612    CASE('repr')
    575613       !   -- CHIMIE REPROBUS --
    576 
    577614       CALL tracreprobus(pdtphys, gmtime, debutphy, julien, &
    578615            presnivs, xlat, xlon, pphis, pphi, &
     
    580617            tr_seri)
    581618
     619#ifdef CPP_StratAer
     620    CASE('coag')
     621       !   --STRATOSPHERIC AER IN THE STRAT --
     622       CALL traccoag(pdtphys, gmtime, debutphy, julien, &
     623            presnivs, xlat, xlon, pphis, pphi, &
     624            t_seri, pplay, paprs, sh, rh , &
     625            tr_seri)
     626#endif
     627
    582628    END SELECT
    583629    !======================================================================
     
    591637          IF (iflag_con.LT.2) THEN
    592638             !--pas de transport convectif
    593 
    594639             d_tr_cv(:,:,it)=0.
     640
    595641          ELSE IF (iflag_con.EQ.2) THEN
    596642             !--ancien transport convectif de Tiedtke
     
    648694
    649695       END DO ! nbtr
     696
     697#ifdef CPP_StratAer
     698       IF (type_trac=='coag') THEN
     699         ! initialize wet deposition flux of sulfur
     700         sulf_dep_wet(:)=0.0
     701         ! compute wet deposition flux of sulfur (sum over gases and particles)
     702         ! and convert to kg(S)/m2/s
     703         DO i = 1, klon
     704         DO k = 1, klev
     705         DO it = 1, nbtr
     706         !do not include SO2 because most of it comes trom the troposphere
     707           IF (it==id_H2SO4_strat) THEN
     708             sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol) &
     709                            & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     710           ELSEIF (it.GT.nbtr_sulgas) THEN
     711             sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_cv(i,k,it)*(mSatom/mH2SO4mol)  &
     712                            & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 &
     713                            & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     714           ENDIF
     715         ENDDO
     716         ENDDO
     717         ENDDO
     718       ENDIF
     719#endif
    650720
    651721    END IF ! convection
     
    692762       !  Injection during BL mixing
    693763       !
     764#ifdef CPP_StratAer
     765       IF (type_trac=='coag') THEN
     766
     767         ! initialize dry deposition flux of sulfur
     768         sulf_dep_dry(:)=0.0
     769
     770         ! compute dry deposition velocity as function of surface type (numbers
     771         ! from IPSL note 23, 2002)
     772         v_dep_dry(:) =  pctsrf(:,is_ter) * 2.5e-3 &
     773                     & + pctsrf(:,is_oce) * 0.5e-3 &
     774                     & + pctsrf(:,is_lic) * 2.5e-3 &
     775                     & + pctsrf(:,is_sic) * 2.5e-3
     776
     777         ! compute surface dry deposition flux
     778         zrho(:,1)=pplay(:,1)/t_seri(:,1)/RD
     779
     780         DO it=1, nbtr
     781          source(:,it) = - v_dep_dry(:) * tr_seri(:,1,it) * zrho(:,1)
     782         ENDDO
     783
     784       ENDIF
     785#endif
     786
    694787       DO it=1, nbtr
    695788          !
     
    703796             tr_seri(:,:,it)=tr_seri(:,:,it)+d_tr_cl(:,:,it)
    704797             !
    705           END IF
     798#ifdef CPP_StratAer
     799             IF (type_trac=='coag') THEN
     800               ! compute dry deposition flux of sulfur (sum over gases and particles)
     801               IF (it==id_H2SO4_strat) THEN
     802                 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol)
     803               ELSEIF (it.GT.nbtr_sulgas) THEN
     804                 sulf_dep_dry(:)=sulf_dep_dry(:)-source(:,it)*(mSatom/mH2SO4mol)*dens_aer_dry &
     805                                & *4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3
     806               ENDIF
     807             ENDIF
     808#endif
     809             !
     810          ENDIF
    706811          !
    707        END DO
     812       ENDDO
    708813       !
    709814    ELSE IF (iflag_vdf_trac==0) THEN
     
    720825       !
    721826       ! Nothing happens
    722        !
    723827       d_tr_cl=0.
    724828       !
     
    772876
    773877          END DO  !tr
     878
     879#ifdef CPP_StratAer
     880         IF (type_trac=='coag') THEN
     881           ! compute wet deposition flux of sulfur (sum over gases and
     882           ! particles) and convert to kg(S)/m2/s
     883           ! adding contribution of d_tr_ls to d_tr_cv (above)
     884           DO i = 1, klon
     885           DO k = 1, klev
     886           DO it = 1, nbtr
     887             IF (it==id_H2SO4_strat) THEN
     888               sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol) &
     889                              & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     890             ELSEIF (it.GT.nbtr_sulgas) THEN
     891               sulf_dep_wet(i)=sulf_dep_wet(i)+d_tr_ls(i,k,it)*(mSatom/mH2SO4mol)  &
     892                              & *dens_aer_dry*4./3.*RPI*(mdw(it-nbtr_sulgas)/2.)**3 &
     893                              & *(paprs(i,k)-paprs(i,k+1))/RG/pdtphys
     894             ENDIF
     895           ENDDO
     896           ENDDO
     897           ENDDO
     898         ENDIF
     899#endif
    774900
    775901       ELSE IF (iflag_lscav .EQ. 2) THEN ! frac_impa, frac_nucl
Note: See TracChangeset for help on using the changeset viewer.