00001 subroutine calc_radius
00002   use phys_constant, only  : long, pi
00003   use grid_parameter, only : nrf, ntf, npf, &
00004   &                          ntfpolp, ntfeq, ntfxy, npfxzp, npfyzp
00005   use def_metric, only : psi
00006   use def_matter, only : rs
00007   use def_matter_parameter, only : radi
00008   use def_quantities, only : proper_radius_x,proper_radius_y,proper_radius_z, &
00009   &                          coord_radius_x, coord_radius_y, coord_radius_z
00010   use make_array_1d
00011   use make_array_3d
00012   use interface_interpo_gr2fl
00013   use interface_radial_int_fluid
00014   implicit none
00015   integer             :: it, ip, ir
00016   real(long)          :: radius
00017   real(long), pointer :: sou(:)
00018   real(long), pointer :: psif(:,:,:) 
00019 
00020   call alloc_array1d(sou, 0, nrf)
00021   call alloc_array3d(psif, 0, nrf, 0, ntf, 0, npf)
00022 
00023   call interpo_gr2fl(psi, psif)
00024 
00025   it = ntfxy ; ip = npfxzp
00026   sou(0:nrf) = psif(0:nrf,it,ip)**2
00027   call radial_int_fluid(sou,radius,it,ip)
00028   proper_radius_x = radi*radius
00029   coord_radius_x  = radi*rs(it,ip)
00030 
00031   it = ntfxy ; ip = npfyzp
00032   sou(0:nrf) = psif(0:nrf,it,ip)**2
00033   call radial_int_fluid(sou,radius,it,ip)
00034   proper_radius_y = radi*radius
00035   coord_radius_y  = radi*rs(it,ip)
00036 
00037   it = ntfpolp ; ip = npfxzp
00038   sou(0:nrf) = psif(0:nrf,it,ip)**2
00039   call radial_int_fluid(sou,radius,it,ip)
00040   proper_radius_z = radi*radius
00041   coord_radius_z  = radi*rs(it,ip)
00042 
00043   deallocate(sou)
00044   deallocate(psif)
00045 end subroutine calc_radius