gaussquad Module Subroutine

module subroutine gaussquad(N, x, w)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: N
real(kind=wp), intent(out), dimension(N):: x
real(kind=wp), intent(out), dimension(N):: w

Calls

proc~~gaussquad~~CallsGraph proc~gaussquad gaussquad proc~gaussquad_rosetta gaussquad_rosetta proc~gaussquad->proc~gaussquad_rosetta

Called by

proc~~gaussquad~~CalledByGraph proc~gaussquad gaussquad interface~gaussquad gaussquad interface~gaussquad->proc~gaussquad proc~integrate2d integrate2D proc~integrate2d->interface~gaussquad proc~integrate1d integrate1D proc~integrate1d->interface~gaussquad interface~integrate integrate interface~integrate->proc~integrate2d interface~integrate->proc~integrate1d proc~integrate_basis_1d_ie integrate_basis_1d_Ie proc~integrate_basis_1d_ie->interface~integrate proc~assembleelementalmatrix2d assembleElementalMatrix2D proc~assembleelementalmatrix2d->interface~integrate proc~assembleelementalmatrix1d assembleElementalMatrix1D proc~assembleelementalmatrix1d->proc~integrate_basis_1d_ie

Contents

Source Code


Source Code

    module subroutine gaussquad(N, x, w)
        integer,  intent(in)                :: N
        real(wp), intent(out), dimension(N) :: x, w

        select case (N)
        case (1)
            x = [ 0._wp ]
            w = [ 2._wp ]

        case (2)
            x = [ -0.5773502691896257_wp, &
                0.5773502691896257_wp ]
            w = [ 1._wp, &
                1._wp ]

        case (3)
            x = [ -0.7745966692414834_wp, &
                0._wp, &
                0.7745966692414834_wp ]
            w = [ 0.5555555555555556_wp, &
                0.8888888888888888_wp, &
                0.5555555555555556_wp ]

        case (4)
            x = [ -0.8611363115940526_wp, &
                -0.3399810435848563_wp, &
                0.3399810435848563_wp, &
                0.8611363115940526_wp ]
            w = [ 0.3478548451374538_wp, &
                0.6521451548625461_wp, &
                0.6521451548625461_wp, &
                0.3478548451374538_wp ]

        case (5)
            x = [ -0.9061798459386640_wp, &
                -0.5384693101056831_wp, &
                0._wp, &
                0.5384693101056831_wp, &
                0.9061798459386640_wp ]
            w = [ 0.2369268850561891_wp, &
                0.4786286704993665_wp, &
                0.5688888888888889_wp, &
                0.4786286704993665_wp, &
                0.2369268850561891_wp ]

        case default

            ! call lgwt(-1._wp, 1._wp, N, x, w)
            ! call cgwt(N, x, w)
            call gaussquad_rosetta(N, x, w)

        end select

        return
    end subroutine gaussquad