calc_radius_WL.f90

Go to the documentation of this file.
00001 subroutine calc_radius_WL
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_metric_hij, only : hxxd, hyyd, hzzd
00007   use def_matter, only : rs
00008   use def_matter_parameter, only : radi
00009   use def_quantities, only : proper_radius_x,proper_radius_y,proper_radius_z, &
00010   &                          coord_radius_x, coord_radius_y, coord_radius_z
00011   use make_array_1d
00012   use make_array_3d
00013   use interface_interpo_gr2fl
00014   use interface_radial_int_fluid
00015   implicit none
00016   integer             :: it, ip, ir
00017   real(long)          :: radius
00018   real(long), pointer :: sou(:)
00019   real(long), pointer :: psif(:,:,:)
00020   real(long), pointer :: hxxdf(:,:,:), hyydf(:,:,:), hzzdf(:,:,:)
00021 !
00022   call alloc_array1d(sou, 0, nrf)
00023   call alloc_array3d(psif, 0, nrf, 0, ntf, 0, npf)
00024   call alloc_array3d(hxxdf, 0, nrf, 0, ntf, 0, npf)
00025   call alloc_array3d(hyydf, 0, nrf, 0, ntf, 0, npf)
00026   call alloc_array3d(hzzdf, 0, nrf, 0, ntf, 0, npf)
00027 !
00028   call interpo_gr2fl(psi, psif)
00029   call interpo_gr2fl(hxxd, hxxdf)
00030   call interpo_gr2fl(hyyd, hyydf)
00031   call interpo_gr2fl(hzzd, hzzdf)
00032 !
00033   it = ntfxy ; ip = npfxzp
00034   sou(0:nrf) = psif(0:nrf,it,ip)**2*sqrt(1.0d0 + hxxdf(0:nrf,it,ip))
00035   call radial_int_fluid(sou,radius,it,ip)
00036   proper_radius_x = radi*radius
00037   coord_radius_x  = radi*rs(it,ip)
00038 !
00039   it = ntfxy ; ip = npfyzp
00040   sou(0:nrf) = psif(0:nrf,it,ip)**2*sqrt(1.0d0 + hyydf(0:nrf,it,ip))
00041   call radial_int_fluid(sou,radius,it,ip)
00042   proper_radius_y = radi*radius
00043   coord_radius_y  = radi*rs(it,ip)
00044 !
00045   it = ntfpolp ; ip = npfxzp
00046   sou(0:nrf) = psif(0:nrf,it,ip)**2*sqrt(1.0d0 + hzzdf(0:nrf,it,ip))
00047   call radial_int_fluid(sou,radius,it,ip)
00048   proper_radius_z = radi*radius
00049   coord_radius_z  = radi*rs(it,ip)
00050 !
00051   deallocate(sou)
00052   deallocate(psif)
00053 end subroutine calc_radius_WL

Generated on 27 Oct 2011 for Cocal by  doxygen 1.6.1