00001 subroutine source_HaC_WL(sou)
00002 use grid_parameter, only : nrg, ntg, npg, nrf, ntf, npf
00003 use interface_sourceterm_HaC_CF
00004
00005 use interface_sourceterm_HaC_drot_SFC
00006 use interface_sourceterm_HaC_WL
00007
00008 use interface_interpo_fl2gr_midpoint
00009 use interface_correct_matter_source_midpoint
00010 use make_array_3d
00011 implicit none
00012 real(8), pointer :: sou(:,:,:), sou1(:,:,:), sou2(:,:,:), sou3(:,:,:)
00013 real(8), pointer :: souf(:,:,:)
00014
00015 call alloc_array3d(sou1,0,nrg,0,ntg,0,npg)
00016 call alloc_array3d(sou2,0,nrg,0,ntg,0,npg)
00017 call alloc_array3d(sou3,0,nrg,0,ntg,0,npg)
00018 call alloc_array3d(souf,0,nrf,0,ntf,0,npf)
00019 call sourceterm_HaC_CF(sou1)
00020
00021 call sourceterm_HaC_drot_SFC(souf)
00022 call interpo_fl2gr_midpoint(souf,sou2)
00023 call correct_matter_source_midpoint(sou2)
00024
00025 call sourceterm_HaC_WL(sou3)
00026
00027
00028
00029
00030
00031 sou(0:nrg,0:ntg,0:npg) = sou1(0:nrg,0:ntg,0:npg) &
00032 & + sou2(0:nrg,0:ntg,0:npg) &
00033 & + sou3(0:nrg,0:ntg,0:npg)
00034 deallocate(sou1)
00035 deallocate(sou2)
00036 deallocate(sou3)
00037 deallocate(souf)
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 end subroutine source_HaC_WL