interp_linear_multiD Subroutine

public subroutine interp_linear_multiD(xc, xp, wc, wp, nwc)

Arguments

Type IntentOptional Attributes Name
double precision :: xc(0:1,0:1,0:1,1:ndim)
double precision :: xp(1:ndim)
double precision :: wc(0:1,0:1,0:1,1:nwc)
double precision :: wp(1:nwc)
integer :: nwc

Calls

proc~~interp_linear_multid~~CallsGraph proc~interp_linear_multid interp_linear_multiD proc~get_interp_factor_linear get_interp_factor_linear proc~interp_linear_multid->proc~get_interp_factor_linear

Called by

proc~~interp_linear_multid~~CalledByGraph proc~interp_linear_multid interp_linear_multiD proc~interp_from_grid_linear interp_from_grid_linear proc~interp_from_grid_linear->proc~interp_linear_multid

Source Code

  subroutine interp_linear_multiD(xc,xp,wc,wp,nwc)
    ! get point values from nearby cells via linear interpolation
    ! multi-D method

    integer :: nwc
    double precision :: xc(0:1,0:1,0:1,1:ndim),xp(1:ndim)
    double precision :: wc(0:1,0:1,0:1,1:nwc),wp(1:nwc)

    integer :: ix1,ix2,ix3,iw
    double precision :: factor(0:1,0:1,0:1)

    call get_interp_factor_linear(xc,xp,factor)    

    wp=0.d0
    do iw=1,nwc
      do ix3=0,1
      do ix2=0,1
      do ix1=0,1
        wp(iw)=wp(iw)+wc(ix1,ix2,ix3,iw)*factor(ix1,ix2,ix3)
      enddo
      enddo
      enddo
    enddo

  end subroutine interp_linear_multiD