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:
Author: Jan Ivar Moldekleiv
Version: 0.8
integer, intent(in) :: n1The dimensions of the righthandside f(n1,m1)
integer, intent(in) :: m1The dimensions of the righthandside f(n1,m1)
integer, intent(in) :: nunThe dimension of the Bd.Array un(0:nun-1,9)
integer, intent(in) :: flag1Parameters generated in startup. Will be moved inside the subroutine in the next version
integer, intent(in) :: flag2Parameters generated in startup. Will be moved inside the subroutine in the next version
integer, intent(in) :: fdim1Parameters generated in startup. Will be moved inside the subroutine in the next version
integer, intent(in) :: fdim2Parameters generated in startup. Will be moved inside the subroutine in the next version
double precision, intent(in) :: alphaParameters in the Helmholtz equation
double precision, intent(in) :: betaParameters in the Helmholtz equation
double precision, intent(inout), dimension (0:n1-1,0:m1-1) :: fThe righthandside at input. Solution at output.
double precision, intent(in), dimension (0:nun-1,9) :: unThe Rh.Side at the boundaries.
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