set linear interpolation terms
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer | :: | nx | ||||
integer | :: | mx | ||||
integer | :: | ix(mx) | ||||
real(kind=wp) | :: | dx(mx) |
subroutine linmxu(nx,mx,ix,dx) implicit none integer :: nx,mx,ix(mx),i,ii real(wp) :: dx(mx),dnx,dmx,x,xx ! set "virtual" uniform increments dnx = 1.0_wp/(nx-1) dmx = 1.0_wp/(mx-1) ! set ix(ii) = i s.t. i,i+1 can interpolate for ii do ii=1,mx xx = (ii-1)*dmx ix(ii) = min(int(xx/dnx)+1,nx-1) ! set scale term for linear i = ix(ii) x = (i-1)*dnx dx(ii) = (xx-x)/dnx end do end subroutine linmxu