00001 subroutine source_MoC_CF(souvec)
00002 use grid_parameter, only : nrg, ntg, npg
00003 use coordinate_grav_r, only : rg
00004 use trigonometry_grav_phi, only : sinphig, cosphig
00005 use trigonometry_grav_theta, only : sinthg, costhg
00006 use interface_sourceterm_MoC_CF_drot
00007 use interface_sourceterm_MoC_CF_with_divshift
00008 use make_array_3d
00009 use make_array_4d
00010 implicit none
00011 real(8), pointer :: souvec(:,:,:,:)
00012 real(8), pointer :: souvec1(:,:,:,:), souvec2(:,:,:,:)
00013 real(8) :: xxx, yyy, zzz
00014 integer :: ipg, itg, irg
00015 character(len=1) :: chgra
00016
00017 call alloc_array4d(souvec1,0,nrg,0,ntg,0,npg,1,3)
00018 call alloc_array4d(souvec2,0,nrg,0,ntg,0,npg,1,3)
00019
00020 call sourceterm_MoC_CF_drot(souvec1)
00021 call sourceterm_MoC_CF_with_divshift(souvec2)
00022
00023 souvec(0:nrg,0:ntg,0:npg,1:3) = souvec1(0:nrg,0:ntg,0:npg,1:3) &
00024 & + souvec2(0:nrg,0:ntg,0:npg,1:3)
00025
00026 deallocate(souvec1)
00027 deallocate(souvec2)
00028
00029 end subroutine source_MoC_CF