Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_radar / da_radial_velocity.inc
blobcfac24d6f133c41c04ca17e9564c4740ae180288
1 subroutine da_radial_velocity(rv,p,u,v,w,qrn,ps,x,y,z,rho)
3    !-----------------------------------------------------------------------
4    ! Purpose: calculate radial velocity following Sun and Crook (1997)
5    ! History:
6    !    08/2017 - bug fix for Vt (Siou-Ying Jiang, CWB, Taiwan)
7    !-----------------------------------------------------------------------
9    implicit none
11    real, intent(in)  :: x, y, z
12    real, intent(in)  :: p, u, v, w, qrn, ps
13    real, intent(in)  :: rho
14    real, intent(out) :: rv
16    real :: r, alpha, vt
17    real :: qrrc
18    real :: qrn_g
20    qrn_g= qrn*1000. ! kg/kg -> g/kg
21    qrrc = 0.01      ! g/kg
22    vt = 0.0
24    if (trace_use) call da_trace_entry("da_radial_velocity")
26    r=sqrt(x*x+y*y+z*z)
27    alpha=(ps/p)**0.4
29    if (qrn_g <= qrrc)then
30       vt=0.0
31    else
32       vt=5.4*alpha*qrn_g**0.125*rho**0.125
33    end if
35    rv=u*x+v*y+(w-vt)*z
36    rv=rv/r
38    if (trace_use) call da_trace_exit("da_radial_velocity")
40 end subroutine da_radial_velocity