diff --git a/src/advance_mod.f90 b/src/advance_mod.f90 index 98e944237f2cf44a541bce3213ac4a5c7e9dc989..e9691ab957d1a353c8978eb7d17b802f32564d69 100644 --- a/src/advance_mod.f90 +++ b/src/advance_mod.f90 @@ -410,14 +410,14 @@ subroutine adv_above_pbl(itime,itimec,dxsave,dysave,ux,vy,tropop,nrand,ipart) call get_settling(xts,yts,zts,nsp,part(ipart)%settling) #ifdef ETA call update_zeta_to_z(itime,ipart) - if (part(ipart)%z+part(ipart)%settling*dt.lt.0) then + if ((ldirect.eq.1).and.(part(ipart)%z+part(ipart)%settling*dt.lt.0.)) then part(ipart)%settling=-part(ipart)%z/dt endif call w_to_weta(itime,dt,part(ipart)%xlon,part(ipart)%ylat, & part(ipart)%z,part(ipart)%zeta,part(ipart)%settling,weta_settling) weta=weta+weta_settling #else - if (part(ipart)%z+part(ipart)%settling*dt.lt.0) then + if ((ldirect.eq.1).and.(part(ipart)%z+part(ipart)%settling*dt.lt.0.)) then part(ipart)%settling=-part(ipart)%z/dt endif w=w+part(ipart)%settling @@ -592,7 +592,7 @@ subroutine adv_in_pbl(itime,itimec, dxsave,dysave,dawsave,dcwsave, abovePBL, & endif if (density(nsp).gt.0.) then call get_settling(xts,yts,zts,nsp,part(ipart)%settling) !bugfix - if (part(ipart)%z+part(ipart)%settling*dt.lt.0) then + if ((ldirect.eq.1).and.(part(ipart)%z+part(ipart)%settling*dt.lt.0.)) then part(ipart)%settling=-part(ipart)%z/dt endif w=w+part(ipart)%settling @@ -721,7 +721,8 @@ subroutine petterssen_corr(itime,ipart) call update_z_to_zeta(itime+part(ipart)%idt,ipart) zts=real(part(ipart)%z) call get_settling(xts,yts,zts,nsp,part(ipart)%settling) !bugfix - if (part(ipart)%z+part(ipart)%settling*part(ipart)%idt.lt.0) then + if ((ldirect.eq.1).and. & + (part(ipart)%z+part(ipart)%settling*part(ipart)%idt.lt.0)) then part(ipart)%settling=-part(ipart)%z/part(ipart)%idt endif call w_to_weta( & @@ -733,7 +734,8 @@ subroutine petterssen_corr(itime,ipart) !real(part(ipart)%zeta-part(ipart)%zeta_prev)/real(part(ipart)%idt*ldirect) #else call get_settling(xts,yts,zts,nsp,part(ipart)%settling) - if (part(ipart)%z+part(ipart)%settling*part(ipart)%idt.lt.0) then + if ((ldirect.eq.1).and. & + (part(ipart)%z+part(ipart)%settling*part(ipart)%idt.lt.0)) then part(ipart)%settling=-part(ipart)%z/part(ipart)%idt endif w=w+part(ipart)%settling