Skip to content
Snippets Groups Projects
Commit 3696fa08 authored by Lucie Bakels's avatar Lucie Bakels
Browse files

Set maximum for settling velocity: it cannot be larger than the height of the...

Set maximum for settling velocity: it cannot be larger than the height of the particle to avoid settling reflection


Former-commit-id: 25284cb5
parent 82284d97
No related branches found
No related tags found
No related merge requests found
...@@ -410,10 +410,16 @@ subroutine adv_above_pbl(itime,itimec,dxsave,dysave,ux,vy,tropop,nrand,ipart) ...@@ -410,10 +410,16 @@ subroutine adv_above_pbl(itime,itimec,dxsave,dysave,ux,vy,tropop,nrand,ipart)
call get_settling(xts,yts,zts,nsp,part(ipart)%settling) call get_settling(xts,yts,zts,nsp,part(ipart)%settling)
#ifdef ETA #ifdef ETA
call update_zeta_to_z(itime,ipart) call update_zeta_to_z(itime,ipart)
if (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, & call w_to_weta(itime,dt,part(ipart)%xlon,part(ipart)%ylat, &
part(ipart)%z,part(ipart)%zeta,part(ipart)%settling,weta_settling) part(ipart)%z,part(ipart)%zeta,part(ipart)%settling,weta_settling)
weta=weta+weta_settling weta=weta+weta_settling
#else #else
if (part(ipart)%z+part(ipart)%settling*dt.lt.0) then
part(ipart)%settling=-part(ipart)%z/dt
endif
w=w+part(ipart)%settling w=w+part(ipart)%settling
#endif #endif
end if end if
...@@ -586,6 +592,9 @@ subroutine adv_in_pbl(itime,itimec, dxsave,dysave,dawsave,dcwsave, abovePBL, & ...@@ -586,6 +592,9 @@ subroutine adv_in_pbl(itime,itimec, dxsave,dysave,dawsave,dcwsave, abovePBL, &
endif endif
if (density(nsp).gt.0.) then if (density(nsp).gt.0.) then
call get_settling(xts,yts,zts,nsp,part(ipart)%settling) !bugfix call get_settling(xts,yts,zts,nsp,part(ipart)%settling) !bugfix
if (part(ipart)%z+part(ipart)%settling*dt.lt.0) then
part(ipart)%settling=-part(ipart)%z/dt
endif
w=w+part(ipart)%settling w=w+part(ipart)%settling
end if end if
end if end if
...@@ -712,6 +721,9 @@ subroutine petterssen_corr(itime,ipart) ...@@ -712,6 +721,9 @@ subroutine petterssen_corr(itime,ipart)
call update_z_to_zeta(itime+part(ipart)%idt,ipart) call update_z_to_zeta(itime+part(ipart)%idt,ipart)
zts=real(part(ipart)%z) zts=real(part(ipart)%z)
call get_settling(xts,yts,zts,nsp,part(ipart)%settling) !bugfix call get_settling(xts,yts,zts,nsp,part(ipart)%settling) !bugfix
if (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( & call w_to_weta( &
itime+part(ipart)%idt, real(part(ipart)%idt), part(ipart)%xlon, & itime+part(ipart)%idt, real(part(ipart)%idt), part(ipart)%xlon, &
part(ipart)%ylat, part(ipart)%z, part(ipart)%zeta, & part(ipart)%ylat, part(ipart)%z, part(ipart)%zeta, &
...@@ -721,6 +733,9 @@ subroutine petterssen_corr(itime,ipart) ...@@ -721,6 +733,9 @@ subroutine petterssen_corr(itime,ipart)
!real(part(ipart)%zeta-part(ipart)%zeta_prev)/real(part(ipart)%idt*ldirect) !real(part(ipart)%zeta-part(ipart)%zeta_prev)/real(part(ipart)%idt*ldirect)
#else #else
call get_settling(xts,yts,zts,nsp,part(ipart)%settling) call get_settling(xts,yts,zts,nsp,part(ipart)%settling)
if (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 w=w+part(ipart)%settling
#endif #endif
end if end if
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment