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