#
EZspline3_r8

**type EZspline3_r8 **

`! `

`! 3-d Spline/Akima Hermite/Piecewise Linear interpolation `

`! `

`! Grid `

`! `

` real(ezspline_r8), dimension(:), pointer :: x1, x2, x3
`

`! `

`! The boundary condition values (for slope and 2nd derivative). `

`! Can be optionally set by the user. Not used for periodic and `

`! not a knot boundary conditions. `

`! `

` real(ezspline_r8), dimension(:,:), pointer :: bcval1min, bcval1max
`

` real(ezspline_r8), dimension(:,:), pointer :: bcval2min, bcval2max
`

` real(ezspline_r8), dimension(:,:), pointer :: bcval3min, bcval3max
`

`! `

`! Select between spline (0) and Akima spline (1); default=0 (spline) `

`! `

` integer :: isHermite``! set after EZspline_init call... `

`! `

`! set =0 for Spline, Akima or Hybrid; =1 for piecewise linear: this is set `

`! by EZspline_init, EZhybrid_init, or EZlinear_init; DO NOT SET DIRECTLY: `

`! `

` integer :: isLinear
`

`! `

`! set =0 by init routines other than EZhybrid_init which sets it =1: `

` integer :: isHybrid
`

`! `

`! the following is set by EZhybrid_init; other EZ*_init routines clear: `

` integer :: hspline(3)``! interpolation code along each dimension `

`! -1: zonal step fcn; =0: pc linear; =1: Akima Hermite; =2: Spline `

`! `

`! Grid sizes (set during EZ*_init call). `

`! `

` integer :: n1, n2, n3
`

`! `

`! Grid zone lookup method `

`! `

` integer :: klookup1,klookup2,klookup3
`

`! `

`! Type of boundary conditions (set during EZspline_init call) on left `

`! and right hand side. Possible values are: `

`! `

`! -1 periodic `

`! 0 not a knot `

`! +1 1st derivative imposed `

`! +2 2nd derivative imposed `

`! `

`! For instance, ibctype1 =(/1, 0/) for 1st derivative set on left-hand `

`! and not a knot boundary conditions on right-hand side. The values of `

`! the derivatives a set via bcval1min. (See above.) `

`! `

` integer ibctype1(2), ibctype2(2), ibctype3(2)
`

`! `

`! Grid lengths. DO NOT SET. `

`! `

` real(ezspline_r8) :: x1min, x1max, x2min, x2max, x3min, x3max
`

`! `

`! Compact cubic coefficient arrays. DO NOT SET. `

`! `

` real(ezspline_r8), dimension(:,:,:,:), pointer :: fspl
`

`! `

`! Control/Other. DO NOT SET. `

`! `

` integer :: isInitialized, isAllocated, isReady
`

` integer :: ilin1, ilin2, ilin3
`

` real(ezspline_r8), dimension(:,:), pointer :: x1pkg, x2pkg, x3pkg
`

`! `

` integer :: nguard
`

` end type EZspline3_r8
`

Send comments about this document to pletzer@pppl.gov.
Tue Apr 24 14:01:03 2007