subroutine cln
! 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
integer, intent(in) :: mx
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(in), dimension (0:mx) :: aa
double precision, intent(in), dimension (0:mx) :: ww
double precision, intent(inout), dimension (0:nu,0:m1) :: u
double precision, intent(inout), dimension (0:nf,0:m1) :: f
integer :: i
integer :: j
integer :: k
integer :: m
integer :: m2
integer :: n
integer :: n2
integer :: flag_1
integer :: flag_2
integer :: fdim_1
integer :: fdim_2
integer :: fdim_1a
integer :: fdim_1b
double precision, dimension(:,:), allocatable :: ainit1
double precision, dimension(:,:), allocatable :: ainit2
double precision, dimension(:,:), allocatable :: binit1
double precision, dimension(:,:), allocatable :: binit2
double precision, dimension (0:n1,0:m1) :: la
double precision :: pi
real, dimension (2) :: tt
end subroutine cln
subroutine cln(n1,m1,rm,beta,f,nf,u,nu,e1,e2,w1,w2,init,flag1,flag2,fdim1,fdim2,aa,ww,mx)
Solve the 2D Helmholtz equation rm*u -u_xx -beta u_yy = f with homogeneous Neumann 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:
Author: Jan Ivar Moldekleiv
Version: 0.8
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
integer, intent(in) :: mx
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(in), dimension (0:mx) :: aa
double precision, intent(in), dimension (0:mx) :: ww
double precision, intent(inout), dimension (0:nu,0:m1) :: u
double precision, intent(inout), dimension (0:nf,0:m1) :: f
integer :: iLocal variables
integer :: jLocal variables
integer :: kLocal variables
integer :: mLocal variables
integer :: m2Local variables
integer :: nLocal variables
integer :: n2Local variables
integer :: flag_1Local variables
integer :: flag_2Local variables
integer :: fdim_1Local variables
integer :: fdim_2Local variables
integer :: fdim_1aLocal variables
integer :: fdim_1bLocal variables
double precision, dimension(:,:), allocatable :: ainit1Local variables
double precision, dimension(:,:), allocatable :: ainit2Local variables
double precision, dimension(:,:), allocatable :: binit1Local variables
double precision, dimension(:,:), allocatable :: binit2Local variables
double precision, dimension (0:n1,0:m1) :: laLocal storage
double precision :: pilocal constant
real, dimension (2) :: ttFor timing purposes.