Initialize the 6D integration class. Must be called before integration is performed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(integration_class_6d), | intent(inout) | :: | me | |||
procedure(func_6d) | :: | fxyzqrs | 6d function: f(x,y,z,q,r,s) |
|||
real(kind=wp), | intent(in) | :: | xl | x integration lower bound |
||
real(kind=wp), | intent(in) | :: | xu | x integration upper bound |
||
real(kind=wp), | intent(in) | :: | yl | y integration lower bound |
||
real(kind=wp), | intent(in) | :: | yu | y integration upper bound |
||
real(kind=wp), | intent(in) | :: | zl | z integration lower bound |
||
real(kind=wp), | intent(in) | :: | zu | z integration upper bound |
||
real(kind=wp), | intent(in) | :: | ql | q integration lower bound |
||
real(kind=wp), | intent(in) | :: | qu | q integration upper bound |
||
real(kind=wp), | intent(in) | :: | rl | r integration lower bound |
||
real(kind=wp), | intent(in) | :: | ru | r integration upper bound |
||
real(kind=wp), | intent(in) | :: | sl | s integration lower bound |
||
real(kind=wp), | intent(in) | :: | su | s integration upper bound |
||
real(kind=wp), | intent(in) | :: | tolx | error tolerance for dx integration |
||
real(kind=wp), | intent(in) | :: | toly | error tolerance for dy integration |
||
real(kind=wp), | intent(in) | :: | tolz | error tolerance for dz integration |
||
real(kind=wp), | intent(in) | :: | tolq | error tolerance for dq integration |
||
real(kind=wp), | intent(in) | :: | tolr | error tolerance for dr integration |
||
real(kind=wp), | intent(in) | :: | tols | error tolerance for ds integration |
||
integer, | intent(in) | :: | methodx | quadrature method to use for x |
||
integer, | intent(in) | :: | methody | quadrature method to use for y |
||
integer, | intent(in) | :: | methodz | quadrature method to use for z |
||
integer, | intent(in) | :: | methodq | quadrature method to use for q |
||
integer, | intent(in) | :: | methodr | quadrature method to use for r |
||
integer, | intent(in) | :: | methods | quadrature method to use for s |
subroutine initialize_integration_class_6d(me,fxyzqrs,&
xl,xu,yl,yu,zl,zu,ql,qu,rl,ru,sl,su,&
tolx,toly,tolz,tolq,tolr,tols,&
methodx,methody,methodz,methodq,methodr,methods)
implicit none
class(integration_class_6d),intent(inout) :: me
procedure(func_6d) :: fxyzqrs !! 6d function: f(x,y,z,q,r,s)
real(wp),intent(in) :: xl !! x integration lower bound
real(wp),intent(in) :: xu !! x integration upper bound
real(wp),intent(in) :: yl !! y integration lower bound
real(wp),intent(in) :: yu !! y integration upper bound
real(wp),intent(in) :: zl !! z integration lower bound
real(wp),intent(in) :: zu !! z integration upper bound
real(wp),intent(in) :: ql !! q integration lower bound
real(wp),intent(in) :: qu !! q integration upper bound
real(wp),intent(in) :: rl !! r integration lower bound
real(wp),intent(in) :: ru !! r integration upper bound
real(wp),intent(in) :: sl !! s integration lower bound
real(wp),intent(in) :: su !! s integration upper bound
real(wp),intent(in) :: tolx !! error tolerance for dx integration
real(wp),intent(in) :: toly !! error tolerance for dy integration
real(wp),intent(in) :: tolz !! error tolerance for dz integration
real(wp),intent(in) :: tolq !! error tolerance for dq integration
real(wp),intent(in) :: tolr !! error tolerance for dr integration
real(wp),intent(in) :: tols !! error tolerance for ds integration
integer,intent(in) :: methodx !! quadrature method to use for x
integer,intent(in) :: methody !! quadrature method to use for y
integer,intent(in) :: methodz !! quadrature method to use for z
integer,intent(in) :: methodq !! quadrature method to use for q
integer,intent(in) :: methodr !! quadrature method to use for r
integer,intent(in) :: methods !! quadrature method to use for s
procedure(func_1d),pointer :: dummy => null() !! these will be set in [[integrate_3d]]
me%fxyzqrs => fxyzqrs !the user-defined f(x,y,z,q,r,s) function to integrate
! individual integrators:
call me%ix%initialize(dummy,xl,xu,tolx,methodx)
call me%iy%initialize(dummy,yl,yu,toly,methody)
call me%iz%initialize(dummy,zl,zu,tolz,methodz)
call me%iq%initialize(dummy,ql,qu,tolq,methodq)
call me%ir%initialize(dummy,rl,ru,tolr,methodr)
call me%is%initialize(dummy,sl,su,tols,methods)
end subroutine initialize_integration_class_6d