Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_rain / da_transform_xtoy_rain_adj.inc
blobb423f8d0ece4bae6dbee9c0be680280bba039b14
1 subroutine da_transform_xtoy_rain_adj(grid, iv, jo_grad_y, a_hr_rainc, a_hr_rainnc)
3    !--------------------------------------------------------------------------
4    ! Purpose: TBD
5    !--------------------------------------------------------------------------
7    implicit none
9    type (domain),  intent(inout) :: grid
10    type (iv_type), intent(in)    :: iv          ! obs. inc vector (o-b).
11    type (y_type) , intent(inout) :: jo_grad_y   ! grad_y(jo)
12    real, dimension(ims:ime,jms:jme), intent(inout) :: a_hr_rainc, a_hr_rainnc
14    integer :: n        ! Loop counter.
15    integer :: i, j     ! Index dimension.
16    real    :: dx, dxm  ! Interpolation weights.
17    real    :: dy, dym  ! Interpolation weights.
19    real, allocatable :: model_rainnc(:)
20    real, allocatable :: model_rainc(:)
22    if (trace_use) call da_trace_entry("da_transform_xtoy_rain_adj")
24       allocate (model_rainnc(iv%info(rain)%n1:iv%info(rain)%n2))
25       allocate (model_rainc(iv%info(rain)%n1:iv%info(rain)%n2))
27       model_rainnc=0.0
28       model_rainc=0.0
30       do n=iv%info(rain)%n1,iv%info(rain)%n2
31          model_rainnc(n)  = model_rainnc(n) + jo_grad_y%rain(n)%rain
32          model_rainc(n)   = model_rainc(n) + jo_grad_y%rain(n)%rain
33          jo_grad_y%rain(n)%rain=0.0
34       end do
35       
36       call da_interp_lin_2d_adj (a_hr_rainc, iv%info(rain), 1, model_rainc)
37       call da_interp_lin_2d_adj (a_hr_rainnc, iv%info(rain), 1, model_rainnc)
39       deallocate (model_rainc)
40       deallocate (model_rainnc)
42    if (trace_use) call da_trace_exit("da_transform_xtoy_rain_adj")
44 end subroutine da_transform_xtoy_rain_adj