initialize_integration_class_6d Subroutine

private 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)

Initialize the 6D integration class. Must be called before integration is performed.

Arguments

TypeIntentOptionalAttributesName
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


Contents


Source Code

    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