00001 subroutine calc_EMenergy_axisym_WL
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg
00004 use def_matter_parameter, only : radi
00005 use def_quantities, only : M_torBene, M_polBene, M_eleEene, W_gravene, &
00006 & MtorBoverW, MpolBoverW, MeleEoverW
00007 use make_array_3d
00008 use interface_source_EMenergy_axisym_WL
00009 use interface_vol_int_grav
00010 implicit none
00011 real(long) :: volg, fac8pi
00012 real(long), pointer :: sou_MtorB(:,:,:), sou_MpolB(:,:,:),
00013 sou_MeleE(:,:,:)
00014
00015 call alloc_array3d(sou_MtorB, 0, nrg, 0, ntg, 0, npg)
00016 call alloc_array3d(sou_MpolB, 0, nrg, 0, ntg, 0, npg)
00017 call alloc_array3d(sou_MeleE, 0, nrg, 0, ntg, 0, npg)
00018
00019 call source_EMenergy_axisym_WL(sou_MtorB,sou_MpolB,sou_MeleE)
00020
00021 call vol_int_grav(sou_MtorB,volg)
00022 M_torBene = radi*volg
00023
00024 call vol_int_grav(sou_MpolB,volg)
00025 M_polBene = radi*volg
00026
00027 call vol_int_grav(sou_MeleE,volg)
00028 M_eleEene = radi*volg
00029
00030 MtorBoverW = M_torBene/dabs(W_gravene)
00031 MpolBoverW = M_polBene/dabs(W_gravene)
00032 MeleEoverW = M_eleEene/dabs(W_gravene)
00033
00034 deallocate(sou_MtorB)
00035 deallocate(sou_MpolB)
00036 deallocate(sou_MeleE)
00037
00038 end subroutine calc_EMenergy_axisym_WL