00001 subroutine calc_ToverW_WL_MHD
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : nrg, ntg, npg, nrf, ntf, npf
00004 use def_matter, only : omef, omeg
00005 use def_matter_parameter, only : ome, radi
00006 use def_quantities
00007 use def_quantities_derived, only : omega
00008 use make_array_3d
00009 use interface_source_mp_minus_madm_peos
00010 use interface_vol_int_grav
00011 use interface_vol_int_fluid
00012 use interface_source_ang_mom_WL
00013 use interface_source_ang_mom_EMF
00014 implicit none
00015 real(long) :: fac2pi, fac8pi
00016 real(long) :: volg, volf
00017 real(long), pointer :: soug(:,:,:), souf(:,:,:), soug_EMF(:,:,:)
00018
00019 call alloc_array3d(soug, 0, nrg, 0, ntg, 0, npg)
00020 call alloc_array3d(soug_EMF, 0, nrg, 0, ntg, 0, npg)
00021 call alloc_array3d(souf, 0, nrf, 0, ntf, 0, npf)
00022
00023 omega = ome/radi
00024 call source_ang_mom_WL(soug,souf)
00025 call source_ang_mom_EMF(soug_EMF)
00026 soug(0:nrg,0:ntg,0:npg) = soug(0:nrg,0:ntg,0:npg) &
00027 & + soug_EMF(0:nrg,0:ntg,0:npg)
00028 souf(0:nrf,0:ntf,0:npf) = omef(0:nrf,0:ntf,0:npf)*souf(0:nrf,0:ntf,0:npf)
00029 soug(0:nrg,0:ntg,0:npg) = omeg(0:nrg,0:ntg,0:npg)*soug(0:nrg,0:ntg,0:npg)
00030 call vol_int_fluid(souf,volf)
00031 call vol_int_grav(soug,volg)
00032
00033 fac8pi = 0.125d0/pi
00034 T_kinene_omeJ = 0.5d0*(radi**3*volf + fac8pi*radi*volg)
00035 W_gravene_omeJ = admmass - propermass - T_kinene_omeJ
00036
00037
00038
00039
00040
00041
00042
00043
00044 ToverW_omeJ = T_kinene_omeJ/dabs(W_gravene_omeJ)
00045 I_inertia = angmom/omega
00046
00047 deallocate(soug)
00048 deallocate(soug_EMF)
00049 deallocate(souf)
00050 end subroutine calc_ToverW_WL_MHD