da_interp_obs_lin_2d_adj.inc

References to this file elsewhere.
1 subroutine da_interp_obs_lin_2d_adj(fm2d, xp, i, j, dx, dy, dxm, dym, fo2d, z)
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
6 
7    implicit none
8 
9    type (xpose_type),     intent(in)    :: xp    ! Dimensions and xpose buffers.
10    integer,               intent(in)    :: i, j
11    real,                  intent(in)    :: dx, dxm, dy, dym, z, fo2d
12 
13    real, dimension(xp%ims:xp%ime,xp%jms:xp%jme,xp%kms:xp%kme), &
14                           intent(inout) :: fm2d    ! Input variable
15 
16    integer                              :: k, kk
17    real                                 :: dz, dzm
18    real, dimension(xp%kms:xp%kme)       :: fmz
19 
20    call da_togrid(z, xp%kts, xp%kte, k, dz, dzm)
21 
22    fmz(k)   = dzm*fo2d
23    fmz(k+1) = dz *fo2d
24 
25    do kk = k,k+1
26       fm2d(i  ,j  ,kk) = dym*dxm* fmz(kk) + fm2d(i  ,j  ,kk)
27       fm2d(i+1,j  ,kk) = dym*dx * fmz(kk) + fm2d(i+1,j  ,kk)
28       fm2d(i  ,j+1,kk) = dy *dxm* fmz(kk) + fm2d(i  ,j+1,kk)
29       fm2d(i+1,j+1,kk) = dy *dx * fmz(kk) + fm2d(i+1,j+1,kk)
30    end do
31 
32 end subroutine da_interp_obs_lin_2d_adj
33 
34