Subroutine chebsolve_b

subroutine chebsolve_b

        ! Variables
    integer, intent(in) :: n1
    integer, intent(in) :: m1
    integer, intent(in) :: nun
    integer, intent(in) :: flag1
    integer, intent(in) :: flag2
    integer, intent(in) :: fdim1
    integer, intent(in) :: fdim2
    double precision, intent(in) :: alpha
    double precision, intent(in) :: beta
    double precision, intent(inout), dimension (0:n1-1,0:m1-1) :: f
    double precision, intent(in), dimension (0:nun-1,9) :: un
    integer :: odd
    integer :: even
    integer :: dim1
    integer :: dim2
    integer :: retning
    integer :: flag3
    integer :: flag4
    integer :: i
    integer :: j
    double precision, dimension (0:n1-1,0:m1-1) :: u
    double precision, dimension (3*(n1)+30) :: cosn
    double precision, dimension (3*(m1)+30) :: cosm
    real, dimension (2) :: tt
    double precision :: pi
    double precision, dimension(:), allocatable :: d1
    double precision, dimension(:), allocatable :: p1
    double precision, dimension(:,:), allocatable :: a1
    double precision, dimension(:,:), allocatable :: a2
    double precision, dimension(:,:), allocatable :: c1
    double precision, dimension(:,:), allocatable :: c2
    double precision, dimension(:), allocatable :: d2
    double precision, dimension(:), allocatable :: p2
    double precision, dimension(:,:), allocatable :: Id1
    double precision, dimension(:,:), allocatable :: Id1inv
    double precision, dimension(:,:), allocatable :: Id2
    double precision, dimension(:,:), allocatable :: Id2inv
    double precision, dimension(:), allocatable :: Diag1
    double precision, dimension(:), allocatable :: Diag2

end subroutine chebsolve_b
subroutine chebsolve_b(n1,m1,alpha,beta,f,flag1,flag2,fdim1,fdim2,un,nun)

Solve the 2D Helmholtz equation: alpha*u - u_xx - beta u_yy= f with Nonhomogeneous Dirichlet B.C. in IxI.

Input:

Output:

Author: Jan Ivar Moldekleiv

Version: 0.8


Description of Variables

n1

integer, intent(in) :: n1
The dimensions of the righthandside f(n1,m1)

m1

integer, intent(in) :: m1
The dimensions of the righthandside f(n1,m1)

nun

integer, intent(in) :: nun
The dimension of the Bd.Array un(0:nun-1,9)

flag1

integer, intent(in) :: flag1
Parameters generated in startup. Will be moved inside the subroutine in the next version

flag2

integer, intent(in) :: flag2
Parameters generated in startup. Will be moved inside the subroutine in the next version

fdim1

integer, intent(in) :: fdim1
Parameters generated in startup. Will be moved inside the subroutine in the next version

fdim2

integer, intent(in) :: fdim2
Parameters generated in startup. Will be moved inside the subroutine in the next version

alpha

double precision, intent(in) :: alpha
Parameters in the Helmholtz equation

beta

double precision, intent(in) :: beta
Parameters in the Helmholtz equation

f

double precision, intent(inout), dimension (0:n1-1,0:m1-1) :: f
The righthandside at input. Solution at output.

un

double precision, intent(in), dimension (0:nun-1,9) :: un
The Rh.Side at the boundaries.

odd

integer :: odd

even

integer :: even

dim1

integer :: dim1

dim2

integer :: dim2

retning

integer :: retning

flag3

integer :: flag3

flag4

integer :: flag4

i

integer :: i

j

integer :: j

u

double precision, dimension (0:n1-1,0:m1-1) :: u

cosn

double precision, dimension (3*(n1)+30) :: cosn

cosm

double precision, dimension (3*(m1)+30) :: cosm

tt

real, dimension (2) :: tt

pi

double precision :: pi

d1

double precision, dimension(:), allocatable :: d1

p1

double precision, dimension(:), allocatable :: p1

a1

double precision, dimension(:,:), allocatable :: a1

a2

double precision, dimension(:,:), allocatable :: a2

c1

double precision, dimension(:,:), allocatable :: c1

c2

double precision, dimension(:,:), allocatable :: c2

d2

double precision, dimension(:), allocatable :: d2

p2

double precision, dimension(:), allocatable :: p2

Id1

double precision, dimension(:,:), allocatable :: Id1

Id1inv

double precision, dimension(:,:), allocatable :: Id1inv

Id2

double precision, dimension(:,:), allocatable :: Id2

Id2inv

double precision, dimension(:,:), allocatable :: Id2inv

Diag1

double precision, dimension(:), allocatable :: Diag1

Diag2

double precision, dimension(:), allocatable :: Diag2