1 subroutine mktricubw(x,nx,y,ny,z,nz,f,nf2,nf3,
2 > ibcxmin,bcxmin,ibcxmax,bcxmax,inb1x,
3 > ibcymin,bcymin,ibcymax,bcymax,inb1y,
4 > ibczmin,bczmin,ibczmax,bczmax,inb1z,
5 > wk,nwk,ilinx,iliny,ilinz,ier)
47 integer ibcxmin,ibcxmax
48 integer ibcymin,ibcymax
49 integer ibczmin,ibczmax
51 real bcxmin(inb1x,nz),bcxmax(inb1x,nz)
52 real bcymin(inb1y,nz),bcymax(inb1y,nz)
53 real bczmin(inb1z,ny),bczmax(inb1z,ny)
117 if(nwk.lt.itest)
then
118 write(6,9901) nwk,itest
119 9901
format(
' ?mktricubw: workspace too small:'/
120 >
' user supplied: nwk=',i7,
'; need at least: ',i7/
121 >
' nwk = at least 21*nx*ny is required.')
131 call mktricop(f,nf2,nf3,wk(iadfp),nx,ny,nz)
135 call tcspline(x,nx,y,ny,z,nz,wk(iadfp),nx,ny,
136 > ibcxmin,bcxmin,ibcxmax,bcxmax,inb1x,
137 > ibcymin,bcymin,ibcymax,bcymax,inb1y,
138 > ibczmin,bczmin,ibczmax,bczmax,inb1z,
139 > wk(iadfw),inwk,ilinx,iliny,ilinz,ier)
146 call mktricon(f,nf2,nf3,wk(iadfp),nx,ny,nz,hxlast,hylast,hzlast)
153 subroutine mktricop(fin,nf2,nf3,fwk,nx,ny,nz)
155 real fin(8,nf2,nf3,nz)
156 real fwk(4,4,4,nx,ny,nz)
161 fwk(1,1,1,ix,iy,iz)=fin(1,ix,iy,iz)
172 subroutine mktricon(fin,nf2,nf3,fwk,nx,ny,nz,
173 > hxlast,hylast,hzlast)
175 real fin(8,nf2,nf3,nz)
176 real fwk(4,4,4,nx,ny,nz)
183 data iselect/-1,0,0,0,0,0,0,0,0,0/
218 call tcspevfn(iselect,1,1,zvalues,
219 > ixuse,iyuse,izuse,dxuse,dyuse,dzuse,
222 fin(j,ix,iy,iz)=zvalues(j)
225 fin(2,ix,iy,iz)=2.0*fwk(3,1,1,ix,iy,iz)
226 fin(3,ix,iy,iz)=2.0*fwk(1,3,1,ix,iy,iz)
227 fin(4,ix,iy,iz)=2.0*fwk(1,1,3,ix,iy,iz)
228 fin(5,ix,iy,iz)=4.0*fwk(3,3,1,ix,iy,iz)
229 fin(6,ix,iy,iz)=4.0*fwk(3,1,3,ix,iy,iz)
230 fin(7,ix,iy,iz)=4.0*fwk(1,3,3,ix,iy,iz)
231 fin(8,ix,iy,iz)=8.0*fwk(3,3,3,ix,iy,iz)