00001 subroutine surf_source_adm_mass(surf_sou_adm,irg)
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : ntg, npg
00004 use def_metric, only : tfkijkij, psi, alph
00005 use make_array_2d
00006 use interface_interpo_linear_type0_2Dsurf
00007 use interface_grdr_gridpoint_type0_nosym
00008 implicit none
00009 real(long), pointer :: dpsi_surf(:,:), surf_sou_adm(:,:)
00010 integer :: irg,itg,ipg
00011 real(long) :: deriv, val
00012
00013 call alloc_array2d(dpsi_surf, 0, ntg, 0, npg)
00014
00015 do ipg = 0, npg
00016 do itg = 0, ntg
00017 call grdr_gridpoint_type0_nosym(psi,deriv,irg,itg,ipg)
00018 dpsi_surf(itg,ipg) = deriv
00019 end do
00020 end do
00021
00022 do ipg = 1, npg
00023 do itg = 1, ntg
00024 call interpo_linear_type0_2Dsurf(val,dpsi_surf,itg,ipg)
00025 surf_sou_adm(itg,ipg) = val
00026 end do
00027 end do
00028
00029 deallocate(dpsi_surf)
00030 end subroutine surf_source_adm_mass
00031
00032
00033