da_interp_obs_lin_2d.inc

References to this file elsewhere.
1 subroutine da_interp_obs_lin_2d(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
12    real, dimension(xp%ims:xp%ime,xp%jms:xp%jme,xp%kms:xp%kme), &
13                           intent(in)  :: fm2d    ! Input variable
14    real   ,               intent(in)  :: z
15    real   ,               intent(out) :: fo2d  ! Output variable
16 
17    integer                            :: k, kk
18    real                               :: dz, dzm
19    real, dimension(xp%kms:xp%kme)     :: fmz
20 
21    call da_togrid(z, xp%kts, xp%kte, k, dz, dzm)
22 
23    do kk = k,k+1 
24       fmz(kk) = dym*(dxm*fm2d(i,j  ,kk) + dx*fm2d(i+1,j  ,kk)) &
25               + dy *(dxm*fm2d(i,j+1,kk) + dx*fm2d(i+1,j+1,kk))
26    end do
27 
28    fo2d = dzm*fmz(k) + dz*fmz(k+1)
29 
30 end subroutine da_interp_obs_lin_2d
31 
32