1 subroutine r8mktricubw(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)
16 INTEGER,
PARAMETER :: R8=selected_real_kind(12,100)
17 INTEGER itest,iadfp,isiz1,iadfw,inwk
20 real*8 hxlast,hylast,hzlast
34 real*8 f(8,nf2,nf3,nz)
56 integer ibcxmin,ibcxmax
57 integer ibcymin,ibcymax
58 integer ibczmin,ibczmax
60 real*8 bcxmin(inb1x,nz),bcxmax(inb1x,nz)
61 real*8 bcymin(inb1y,nz),bcymax(inb1y,nz)
62 real*8 bczmin(inb1z,ny),bczmax(inb1z,ny)
126 if(nwk.lt.itest)
then
127 write(6,9901) nwk,itest
128 9901
format(
' ?mktricubw: workspace too small:'/
129 >
' user supplied: nwk=',i7,
'; need at least: ',i7/
130 >
' nwk = at least 21*nx*ny is required.')
140 call r8mktricop(f,nf2,nf3,wk(iadfp),nx,ny,nz)
144 call r8tcspline(x,nx,y,ny,z,nz,wk(iadfp),nx,ny,
145 > ibcxmin,bcxmin,ibcxmax,bcxmax,inb1x,
146 > ibcymin,bcymin,ibcymax,bcymax,inb1y,
147 > ibczmin,bczmin,ibczmax,bczmax,inb1z,
148 > wk(iadfw),inwk,ilinx,iliny,ilinz,ier)
155 call r8mktricon(f,nf2,nf3,wk(iadfp),nx,ny,nz,hxlast,hylast,hzlast)
162 subroutine r8mktricop(fin,nf2,nf3,fwk,nx,ny,nz)
167 INTEGER,
PARAMETER :: R8=selected_real_kind(12,100)
168 INTEGER nf3,nx,ny,nz,nf2,iz,iy,ix
170 real*8 fin(8,nf2,nf3,nz)
171 real*8 fwk(4,4,4,nx,ny,nz)
176 fwk(1,1,1,ix,iy,iz)=fin(1,ix,iy,iz)
187 subroutine r8mktricon(fin,nf2,nf3,fwk,nx,ny,nz,
188 > hxlast,hylast,hzlast)
193 INTEGER,
PARAMETER :: R8=selected_real_kind(12,100)
194 INTEGER nf3,nx,ny,nz,nf2,iz,iy,ix,iflag,ixuse,iyuse,izuse,j
197 real*8 hxlast,hylast,hzlast,dxuse,dyuse,dzuse
199 real*8 fin(8,nf2,nf3,nz)
200 real*8 fwk(4,4,4,nx,ny,nz)
207 data iselect/-1,0,0,0,0,0,0,0,0,0/
242 call r8tcspevfn(iselect,1,1,zvalues,
243 > ixuse,iyuse,izuse,dxuse,dyuse,dzuse,
246 fin(j,ix,iy,iz)=zvalues(j)
249 fin(2,ix,iy,iz)=2.0_r8*fwk(3,1,1,ix,iy,iz)
250 fin(3,ix,iy,iz)=2.0_r8*fwk(1,3,1,ix,iy,iz)
251 fin(4,ix,iy,iz)=2.0_r8*fwk(1,1,3,ix,iy,iz)
252 fin(5,ix,iy,iz)=4.0_r8*fwk(3,3,1,ix,iy,iz)
253 fin(6,ix,iy,iz)=4.0_r8*fwk(3,1,3,ix,iy,iz)
254 fin(7,ix,iy,iz)=4.0_r8*fwk(1,3,3,ix,iy,iz)
255 fin(8,ix,iy,iz)=8.0_r8*fwk(3,3,3,ix,iy,iz)