00001 subroutine helmholtz_solver(sou,pot)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, npg, ntg
00004 use def_matter_parameter, only : ome
00005 use radial_green_fn_hrethadv
00006 use make_array_3d
00007 use interface_copy_to_bsjy_and_sbsjy
00008 use interface_helmholtz_solver_vol_int
00009 implicit none
00010 real(long), pointer :: pot(:,:,:), sou(:,:,:)
00011 real(long), pointer :: pot_vol(:,:,:)
00012
00013 call alloc_array3d(pot_vol,0,nrg,0,ntg,0,npg)
00014 call calc_radial_green_fn_hrethadv(ome)
00015 call copy_to_bsjy_and_sbsjy(bsjy_hrha,sbsjy_hrha,sbsjyp_hrha)
00016
00017 call helmholtz_solver_vol_int(sou,pot_vol)
00018 pot(0:nrg,0:ntg,0:npg) = &
00019 & pot_vol(0:nrg,0:ntg,0:npg)
00020
00021 deallocate(pot_vol)
00022
00023 end subroutine helmholtz_solver