Subroutine cld

subroutine cld

        ! Variables
    integer, intent(in) :: n1
    integer, intent(in) :: m1
    integer, intent(in) :: nf
    integer, intent(in) :: nu
    integer, intent(in) :: init
    integer, intent(in) :: flag1
    integer, intent(in) :: flag2
    integer, intent(in) :: fdim1
    integer, intent(in) :: fdim2
    double precision, intent(in) :: rm
    double precision, intent(in) :: beta
    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(inout), dimension (0:nu,0:m1) :: u
    double precision, intent(inout), dimension (0:nf,0:m1) :: f
    double precision, intent(inout), dimension (3*(m1-1),0:n1-2) :: ws
    integer :: i
    integer :: j
    integer :: k
    integer :: m
    integer :: m2
    integer :: n
    integer :: n2
    double precision, dimension (0:fdim1,0:fdim1) :: ainit1
    double precision, dimension (0:fdim1-flag1,0:fdim1-flag1) :: ainit2
    double precision, dimension (0:fdim1,0:fdim1) :: binit1
    double precision, dimension (0:fdim1-flag1,0:fdim1-flag1) :: binit2
    double precision, dimension (0:nf,0:m1) :: la
    double precision :: pi
    real, dimension (2) :: tt

end subroutine cld
subroutine cld(n1,m1,rm,beta,f,nf,u,nu,e1,e2,w1,w2,ws,init,flag1,flag2,fdim1,fdim2)

Solve the 2D Helmholtz equation rm*u -u_xx -beta u_yy = f with homogeneous Diriclet Boundary Conditions. in IxI by using the Chebychev-Legendre method presented in [paper here] Input in Chebychev - calls The legendre solver after transform. Output in Chebychev

Input:

Output:

Author: Jan Ivar Moldekleiv

Version: 0.8


Description of Variables

n1

integer, intent(in) :: n1

m1

integer, intent(in) :: m1

nf

integer, intent(in) :: nf

nu

integer, intent(in) :: nu

init

integer, intent(in) :: init

flag1

integer, intent(in) :: flag1

flag2

integer, intent(in) :: flag2

fdim1

integer, intent(in) :: fdim1

fdim2

integer, intent(in) :: fdim2

rm

double precision, intent(in) :: rm

beta

double precision, intent(in) :: beta

e1

double precision, intent(in), dimension (fdim1,fdim1) :: e1

e2

double precision, intent(in), dimension (fdim1-flag1,fdim1-flag1) :: e2

w1

double precision, intent(in), dimension (fdim1) :: w1

w2

double precision, intent(in), dimension (fdim1-flag1) :: w2

u

double precision, intent(inout), dimension (0:nu,0:m1) :: u

f

double precision, intent(inout), dimension (0:nf,0:m1) :: f

ws

double precision, intent(inout), dimension (3*(m1-1),0:n1-2) :: ws

i

integer :: i

j

integer :: j

k

integer :: k

m

integer :: m

m2

integer :: m2

n

integer :: n

n2

integer :: n2

ainit1

double precision, dimension (0:fdim1,0:fdim1) :: ainit1

ainit2

double precision, dimension (0:fdim1-flag1,0:fdim1-flag1) :: ainit2

binit1

double precision, dimension (0:fdim1,0:fdim1) :: binit1

binit2

double precision, dimension (0:fdim1-flag1,0:fdim1-flag1) :: binit2

la

double precision, dimension (0:nf,0:m1) :: la

pi

double precision :: pi

tt

real, dimension (2) :: tt