1 subroutine r8vecintrp3d(ict,ivec,xvec,yvec,zvec,ivd,fval,
2 > nx,xpkg,ny,ypkg,nz,zpkg,jspline,fspl,icoeff,ixdim,iydim,izdim,
15 INTEGER,
PARAMETER :: R8=selected_real_kind(12,100)
74 real*8 fspl(icoeff,ixdim,iydim,izdim)
88 integer :: iwarn1,iwarn2,iwarn3
90 integer,
dimension(:),
allocatable :: ix,iy,iz
91 REAL*8,
dimension(:),
allocatable :: dxn,dyn,dzn
92 real*8,
dimension(:),
allocatable :: hx,hxi,hy,hyi,hz,hzi
101 write(6,*) .lt.
' ?vecintrp3d: nx2: nx = ',nx
106 write(6,*) .lt.
' ?vecintrp3d: ny2: ny = ',ny
111 write(6,*) .lt.
' ?vecintrp3d: nz2: nz = ',nz
115 call vecin3d_argchk(
'vecintrp3d',jspline,
116 > icoeff,nx,ny,nz,ixdim,iydim,izdim,ier)
119 write(6,*) .le.
' ?vecintrp3d: vector dimension 0: ivec = ',
126 >
' ?vecintrp3d: output vector dimension less than input ',
127 >
'vector dimension.'
128 write(6,*)
' ivec=',ivec,
' ivd=',ivd
134 allocate(ix(ivec), iy(ivec), iz(ivec),
135 > dxn(ivec), dyn(ivec), dzn(ivec),
136 > hx(ivec), hy(ivec), hz(ivec),
137 > hxi(ivec), hyi(ivec), hzi(ivec), stat=ier)
141 >
' ?vecintrp3d: memory allocation failure.'
150 call r8xlookup(ivec,xvec,nx,xpkg,2,ix,dxn,hx,hxi,iwarn1)
151 call r8xlookup(ivec,yvec,ny,ypkg,2,iy,dyn,hy,hyi,iwarn2)
152 call r8xlookup(ivec,zvec,nz,zpkg,2,iz,dzn,hz,hzi,iwarn3)
153 iwarn=max(iwarn1,iwarn2,iwarn3)
157 call r8fvintrp3d(ict,ivec,ivd,fval,ix,iy,iz,dxn,dyn,dzn,
158 > hx,hxi,hy,hyi,hz,hzi,jspline,fspl,icoeff,ixdim,iydim,izdim)
160 deallocate(ix,iy,iz,dxn,dyn,dzn,hx,hy,hz,hxi,hyi,hzi)