1 subroutine vecintrp3d(ict,ivec,xvec,yvec,zvec,ivd,fval,
2 > nx,xpkg,ny,ypkg,nz,zpkg,jspline,fspl,icoeff,ixdim,iydim,izdim,
69 real fspl(icoeff,ixdim,iydim,izdim)
83 integer :: iwarn1,iwarn2,iwarn3
85 integer,
dimension(:),
allocatable :: ix,iy,iz
86 real,
dimension(:),
allocatable :: dxn,dyn,dzn
87 real,
dimension(:),
allocatable :: hx,hxi,hy,hyi,hz,hzi
96 write(6,*) .lt.
' ?vecintrp3d: nx2: nx = ',nx
101 write(6,*) .lt.
' ?vecintrp3d: ny2: ny = ',ny
106 write(6,*) .lt.
' ?vecintrp3d: nz2: nz = ',nz
110 call vecin3d_argchk(
'vecintrp3d',jspline,
111 > icoeff,nx,ny,nz,ixdim,iydim,izdim,ier)
114 write(6,*) .le.
' ?vecintrp3d: vector dimension 0: ivec = ',
121 >
' ?vecintrp3d: output vector dimension less than input ',
122 >
'vector dimension.'
123 write(6,*)
' ivec=',ivec,
' ivd=',ivd
129 allocate(ix(ivec), iy(ivec), iz(ivec),
130 > dxn(ivec), dyn(ivec), dzn(ivec),
131 > hx(ivec), hy(ivec), hz(ivec),
132 > hxi(ivec), hyi(ivec), hzi(ivec), stat=ier)
136 >
' ?vecintrp3d: memory allocation failure.'
145 call xlookup(ivec,xvec,nx,xpkg,2,ix,dxn,hx,hxi,iwarn1)
146 call xlookup(ivec,yvec,ny,ypkg,2,iy,dyn,hy,hyi,iwarn2)
147 call xlookup(ivec,zvec,nz,zpkg,2,iz,dzn,hz,hzi,iwarn3)
148 iwarn=max(iwarn1,iwarn2,iwarn3)
152 call fvintrp3d(ict,ivec,ivd,fval,ix,iy,iz,dxn,dyn,dzn,
153 > hx,hxi,hy,hyi,hz,hzi,jspline,fspl,icoeff,ixdim,iydim,izdim)
155 deallocate(ix,iy,iz,dxn,dyn,dzn,hx,hy,hz,hxi,hyi,hzi)