Module legendre

module legendre

        ! Interfaces
    public interface bddhmz2
    public interface jacobl
    public interface le_disk
    public interface ledeig
    public interface ledhmz1
    public interface ledhmz2
    public interface ledhmz2b
    public interface lednhmz
    public interface lednstof
    public interface ledsyklisk
    public interface legdb
    public interface leinit
    public interface lendhmz
    public interface lendstof
    public interface leneig
    public interface lenhmz1ny
    public interface lenhmz2
    public interface lenstof2
    public interface leptos
    public interface leptos2
    public interface lestof2

end module legendre
f90 module containing all the interfaces to the Legendre routines in SpecPack.

Author: Jan Ivar Moldekleiv, Jie Shen


Description of Interfaces

bddhmz2

public interface bddhmz2
    subroutine bddhmz2 (n, m, un, nun, bn, bm)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(inout), dimension (0:nun,9) :: un
        integer, intent(in) :: nun
        double precision, intent(in), dimension (0:n,0:n) :: bn
        double precision, intent(in), dimension (0:m,0:m) :: bm
    end subroutine bddhmz2
end interface bddhmz2

jacobl

public interface jacobl
    subroutine jacobl (n, alpha, beta, xjac)
        integer, intent(in) :: n
        double precision, intent(in) :: alpha
        double precision, intent(in) :: beta
        double precision, intent(inout) :: xjac
    end subroutine jacobl
end interface jacobl

le_disk

public interface le_disk
    subroutine le_disk (N, d, u, flag)
        integer, intent(in) :: N
        double precision, intent(out), dimension (1:N) :: d
        double precision, intent(out), dimension (1:N) :: u
        integer, intent(in) :: flag
    end subroutine le_disk
end interface le_disk

ledeig

public interface ledeig
    subroutine ledeig (n1, d, z, wk, flag)
        integer, intent(in) :: n1
        double precision, intent(out), dimension (n1) :: d
        double precision, intent(out), dimension (n1,n1) :: z
        double precision, intent(inout), dimension (n1*(n1+2)) :: wk
        integer, intent(in) :: flag
    end subroutine ledeig
end interface ledeig

ledhmz1

public interface ledhmz1
    subroutine ledhmz1 (n, f, rm, alpha, flag)
        integer, intent(in) :: n
        double precision, intent(inout), dimension (0:n-1) :: f
        double precision, intent(in) :: rm
        double precision, intent(in) :: alpha
        integer, intent(in) :: flag
    end subroutine ledhmz1
end interface ledhmz1

ledhmz2

public interface ledhmz2
    subroutine ledhmz2 (n1, m1, rm, beta, f, nf, u, nu, e1, e2, w1, w2, init, flag1, flag2, fdim1, fdim2)
        integer, intent(in) :: n1
Leading dimension of rh.side
        integer, intent(in) :: m1
Second dimension of rh. side
        double precision, intent(in) :: rm
The constant rm in the helmholtz equation.
        double precision, intent(in) :: beta
The constant beta in the helmholtz equation.
        double precision, intent(inout), dimension (0:nf,0:m1) :: f
The righthandside after letrfm2
        integer, intent(in) :: nf
Leading dim. of array containing rh. side. nf >= n1
        double precision, intent(inout), dimension (0:nu,0:m1) :: u
The solution before letrfm2
        integer, intent(in) :: nu
Leading dim. of array containing solution. nu >= n1
        double precision, intent(in), dimension (fdim1,fdim1) :: e1
First part of eigenfunctions from ledeig.
        double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2
Second part of eigenfunctions.
        double precision, intent(in), dimension (fdim1) :: w1
Eigenvalues from ledeig.
        double precision, intent(in), dimension (fdim1-flag1) :: w2
Second part of eigenvalues from ledeig.
        integer, intent(in) :: init
initialization flag: init=1, initialize ws
        integer, intent(in) :: flag1
Determines the dimension of e1 & e2
        integer, intent(in) :: flag2
Determines the dimension of e1 & e2
        integer, intent(in) :: fdim1
Determines the dimension of e1 & e2
        integer, intent(in) :: fdim2
Determines the dimension of e1 & e2
    end subroutine ledhmz2
end interface ledhmz2

ledhmz2b

public interface ledhmz2b
    subroutine ledhmz2b (n1, m1, rm, beta, un, nun, bn, bm, f, nf, u, nu, e1, e2, w1, w2, flag1, flag2, fdim1, fdim2, ws, initb, init)
        integer, intent(in) :: n1
        integer, intent(in) :: m1
        double precision, intent(in) :: rm
        double precision, intent(in) :: beta
        double precision, intent(in), dimension (0:nun,9) :: un
        integer, intent(in) :: nun
        double precision, intent(in), dimension (0:n1,0:n1) :: bn
        double precision, intent(in), dimension (0:m1,0:m1) :: bm
        double precision, intent(inout), dimension (0:nf,0:m1) :: f
        integer, intent(in) :: nf
        double precision, intent(inout), dimension (0:nu,0:m1) :: u
        integer, intent(in) :: nu
        double precision, intent(in), dimension (fdim1,fdim1) :: e1
        double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2
        double precision, intent(in), dimension (fdim1) :: w1
        double precision, intent(in), dimension (fdim1-flag1) :: w2
        integer, intent(in) :: flag1
        integer, intent(in) :: flag2
        integer, intent(in) :: fdim1
        integer, intent(in) :: fdim2
        double precision, intent(inout), dimension (3*(m1-1),0:n1-2) :: ws
        integer, intent(in) :: initb
        integer, intent(in) :: init
    end subroutine ledhmz2b
end interface ledhmz2b

lednhmz

public interface lednhmz
    subroutine lednhmz (n1, m1, rm, beta, f, nf, u, nu, e, w, aa, ww, ws, init)
        integer, intent(in) :: n1
        integer, intent(in) :: m1
        double precision, intent(in) :: rm
        double precision, intent(in) :: beta
        double precision, intent(inout), dimension (0:nf,0:m1) :: f
        integer, intent(in) :: nf
        double precision, intent(inout), dimension (0:nu,0:m1) :: u
        integer, intent(in) :: nu
        double precision, intent(in), dimension (n1/2,n1-1) :: e
        double precision, intent(in), dimension (0:n1-2) :: w
        double precision, intent(in), dimension (0:m1-2) :: aa
        double precision, intent(in), dimension (0:m1-2) :: ww
        double precision, intent(inout), dimension (3*(m1-1),0:n1-2) :: ws
        integer, intent(in) :: init
    end subroutine lednhmz
end interface lednhmz

lednstof

public interface lednstof
    subroutine lednstof (n, m, s, ns, ss, nss, aa, ww)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(inout), dimension (0:ns,0:m) :: s
        integer, intent(in) :: ns
        double precision, intent(inout), dimension (0:nss,0:m) :: ss
        integer, intent(in) :: nss
        double precision, intent(in), dimension (0:m-2) :: aa
        double precision, intent(in), dimension (0:m-2) :: ww
    end subroutine lednstof
end interface lednstof

ledsyklisk

public interface ledsyklisk
    subroutine ledsyklisk (n1, m1, rm, beta, f, nf, u, nu, ws, init, flag1, flag2, fdim1, fdim2)
        integer, intent(in) :: n1
        integer, intent(in) :: m1
        double precision, intent(in) :: rm
        double precision, intent(in) :: beta
        double precision, intent(inout), dimension (0:nf,0:m1) :: f
        integer, intent(in) :: nf
        double precision, intent(inout), dimension (0:nu,0:m1) :: u
        integer, intent(in) :: nu
        double precision, intent(inout), dimension (3*(m1-1),0:n1-2) :: ws
        integer, intent(in) :: init
        integer, intent(in) :: flag1
        integer, intent(in) :: flag2
        integer, intent(in) :: fdim1
        integer, intent(in) :: fdim2
    end subroutine ledsyklisk
end interface ledsyklisk

legdb

public interface legdb
    subroutine legdb (n, m, alpha, beta, f, s, flag1, flag2, fdim1, fdim2, un, nun, init, wtn, wtm)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(in) :: alpha
        double precision, intent(in) :: beta
        double precision, intent(inout), dimension (0:n,0:m) :: f
        double precision, intent(inout), dimension (0:n,0:m) :: s
        integer, intent(in) :: flag1
        integer, intent(in) :: flag2
        integer, intent(in) :: fdim1
        integer, intent(in) :: fdim2
        double precision, intent(inout), dimension (0:nun,9) :: un
        integer, intent(in) :: nun
        integer, intent(in) :: init
        double precision, intent(in), dimension (0:n) :: wtn
        double precision, intent(in), dimension (0:m) :: wtm
    end subroutine legdb
end interface legdb

leinit

public interface leinit
    subroutine leinit (n, xjac, wt, a, b)
        integer, intent(in) :: n
        double precision, intent(out), dimension (0:n) :: xjac
        double precision, intent(out), dimension (0:n) :: wt
        double precision, intent(out), dimension (0:n,0:n) :: a
        double precision, intent(out), dimension (0:n,0:n) :: b
    end subroutine leinit
end interface leinit

lendhmz

public interface lendhmz
    subroutine lendhmz (n1, m1, rm, beta, f, nf, u, nu, e, w, aa, ww, ws, init)
        integer, intent(in) :: n1
        integer, intent(in) :: m1
        double precision, intent(in) :: rm
        double precision, intent(in) :: beta
        double precision, intent(inout), dimension (0:nf,0:m1) :: f
        integer, intent(in) :: nf
        double precision, intent(inout), dimension (0:nu,0:m1) :: u
        integer, intent(in) :: nu
        double precision, intent(in), dimension (n1/2-1,n1-2) :: e
        double precision, intent(in), dimension (n1-2) :: w
        double precision, intent(in), dimension (0:n1-2) :: aa
        double precision, intent(in), dimension (0:n1-2) :: ww
        double precision, intent(inout), dimension (3*(m1-1),0:n1-2) :: ws
        integer, intent(in) :: init
    end subroutine lendhmz
end interface lendhmz

lendstof

public interface lendstof
    subroutine lendstof (n, m, s, ns, ss, nss, aa, ww)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(in), dimension (0:ns,0:m) :: s
        integer, intent(in) :: ns
        double precision, intent(inout), dimension (0:nss,0:m) :: ss
        integer, intent(in) :: nss
        double precision, intent(in), dimension (0:n-2) :: aa
        double precision, intent(in), dimension (0:n-2) :: ww
    end subroutine lendstof
end interface lendstof

leneig

public interface leneig
    subroutine leneig (n1, d, z, wk, aa, ww, mx, flag)
        integer, intent(in) :: n1
        double precision, intent(out), dimension (n1) :: d
        double precision, intent(out), dimension (n1,n1) :: z
        double precision, intent(out), dimension (n1*(n1+2)) :: wk
        double precision, intent(inout), dimension (0:mx) :: aa
        double precision, intent(inout), dimension (0:mx) :: ww
        integer, intent(in) :: mx
        integer, intent(in) :: flag
    end subroutine leneig
end interface leneig

lenhmz1ny

public interface lenhmz1ny
    subroutine lenhmz1ny (n, n1, f, rm, alpha, aa, ww, mx, flag)
        integer, intent(in) :: n
        integer, intent(in) :: n1
        double precision, intent(out), dimension (0:n-1) :: f
        double precision, intent(in) :: rm
        double precision, intent(in) :: alpha
        double precision, intent(in), dimension (0:mx) :: aa
        double precision, intent(in), dimension (0:mx) :: ww
        integer, intent(in) :: mx
        integer, intent(in) :: flag
    end subroutine lenhmz1ny
end interface lenhmz1ny

lenhmz2

public interface lenhmz2
    subroutine lenhmz2 (n1, m1, rm, beta, f, u, e1, e2, w1, w2, aa, ww, mx, init, flag1, flag2, fdim1, fdim2)
        integer, intent(in) :: n1
        integer, intent(in) :: m1
        double precision, intent(in) :: rm
        double precision, intent(in) :: beta
        double precision, intent(inout), dimension (0:n1,0:m1) :: f
        double precision, intent(inout), dimension (0:n1,0:m1) :: u
        double precision, intent(in), dimension (fdim1,fdim1) :: e1
        double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2
        double precision, intent(in), dimension (fdim1) :: w1
        double precision, intent(in), dimension (fdim1-flag1) :: w2
        double precision, intent(in), dimension (0:mx) :: aa
        double precision, intent(in), dimension (0:mx) :: ww
        integer, intent(in) :: mx
        integer, intent(in) :: init
        integer, intent(in) :: flag1
        integer, intent(in) :: flag2
        integer, intent(in) :: fdim1
        integer, intent(in) :: fdim2
    end subroutine lenhmz2
end interface lenhmz2

lenstof2

public interface lenstof2
    subroutine lenstof2 (n, m, s, ns, ss, nss, aa, ww, mx)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(in), dimension (0:ns,0:m) :: s
        integer, intent(in) :: ns
        double precision, intent(inout), dimension (0:nss,0:m) :: ss
        integer, intent(in) :: nss
        double precision, intent(in), dimension (0:mx) :: aa
        double precision, intent(in), dimension (0:mx) :: ww
        integer, intent(in) :: mx
    end subroutine lenstof2
end interface lenstof2

leptos

public interface leptos
    subroutine leptos (n, p, s, b)
        integer, intent(in) :: n
        double precision, intent(in), dimension (0:n) :: p
        double precision, intent(inout), dimension (0:n) :: s
        double precision, intent(in), dimension (0:n,0:n) :: b
    end subroutine leptos
end interface leptos

leptos2

public interface leptos2
    subroutine leptos2 (n, m, f, nf, s, bn, bm)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(inout), dimension (0:nf,0:m) :: f
        integer, intent(in) :: nf
        double precision, intent(inout), dimension (0:n,0:m) :: s
        double precision, intent(in), dimension (0:n,0:n) :: bn
        double precision, intent(in), dimension (0:m,0:m) :: bm
    end subroutine leptos2
end interface leptos2

lestof2

public interface lestof2
    subroutine lestof2 (n, m, s, ns, ss, nss)
        integer, intent(in) :: n
        integer, intent(in) :: m
        double precision, intent(in), dimension (0:ns,0:m) :: s
        integer, intent(in) :: ns
        double precision, intent(inout), dimension (0:nss,0:(m-2)) :: ss
        integer, intent(in) :: nss
    end subroutine lestof2
end interface lestof2