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