Changeset 54cbd6c in flexpart.git for src/timemanager.f90


Ignore:
Timestamp:
Sep 30, 2016, 11:01:54 AM (8 years ago)
Author:
Sabine <sabine.eckhardt@…>
Branches:
master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
Children:
9669e1e
Parents:
dced13c
Message:

all f90 files for dry/wet backward mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/timemanager.f90

    r462f74b r54cbd6c  
    115115  real :: xold,yold,zold,xmassfract
    116116  real, parameter :: e_inv = 1.0/exp(1.0)
     117  logical :: firstdepocalc
    117118  !double precision xm(maxspec,maxpointspec_act),
    118119  !    +                 xm_depw(maxspec,maxpointspec_act),
     
    171172           write (*,*) 'timemanager> call wetdepo'
    172173        endif     
    173          call wetdepo(itime,lsynctime,loutnext)
     174         call wetdepo(itime,lsynctime,loutnext,.false.)
    174175    endif
    175176
     
    541542        zold=ztra1(j)
    542543
     544   
     545  ! RECEPTOR: dry/wet depovel
     546  !****************************
     547  ! Before the particle is moved
     548  ! the calculation of the scavenged mass shall only be done once after release
     549  ! xscav_frac1 was initialised with a negative value
     550      do ks=1,nspec
     551         if  (DRYBKDEP.and.(xscav_frac1(j,ks).lt.0)) then
     552         if (ks.eq.1) then
     553         call advance_rec(itime,npoint(j),idt(j),uap(j),ucp(j),uzp(j), &
     554            us(j),vs(j),ws(j),nstop,xtra1(j),ytra1(j),ztra1(j),prob, &
     555            cbt(j))
     556         endif
     557            if (decay(ks).gt.0.) then             ! radioactive decay
     558                decfact=exp(-real(abs(lsynctime))*decay(ks))
     559            else
     560                 decfact=1.
     561            endif
     562            if (DRYDEPSPEC(ks)) then        ! dry deposition
     563               drydeposit(ks)=xmass1(j,ks)*prob(ks)*decfact
     564               xscav_frac1(j,ks)=xscav_frac1(j,ks)*(-1.)* &
     565               drydeposit(ks)/xmass1(j,ks)
     566               if (decay(ks).gt.0.) then   ! correct for decay (see wetdepo)
     567                  drydeposit(ks)=drydeposit(ks)* &
     568                  exp(real(abs(ldeltat))*decay(ks))
     569                endif
     570             else
     571                xmass1(j,ks)=0
     572                xscav_frac1(j,ks)=0.
     573             endif
     574         endif
     575       enddo
     576
     577       firstdepocalc=.false.
     578       do ks=1,nspec
     579          if ((WETBKDEP).and.(xscav_frac1(j,ks).lt.0) &
     580                 .and.firstdepocalc.eqv..false.) then
     581             ! Backward wetdeposition and first timestep after release
     582             call wetdepo(itime,lsynctime,loutnext,.true.)
     583             firstdepocalc=.true.
     584          endif
     585       enddo
     586
    543587  ! Integrate Lagevin equation for lsynctime seconds
    544588  !*************************************************
    545589
    546         call advance(itime,npoint(j),idt(j),uap(j),ucp(j),uzp(j), &
    547              us(j),vs(j),ws(j),nstop,xtra1(j),ytra1(j),ztra1(j),prob, &
    548              cbt(j))
     590        if (verbosity.gt.0) then
     591           if (j.eq.1) then
     592           write (*,*) 'timemanager> call advance'
     593        endif     
     594        endif     
     595         call advance(itime,npoint(j),idt(j),uap(j),ucp(j),uzp(j), &
     596            us(j),vs(j),ws(j),nstop,xtra1(j),ytra1(j),ztra1(j),prob, &
     597            cbt(j))
    549598
    550599  ! Calculate the gross fluxes across layer interfaces
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG