00001 subroutine calc_radius_CF_rsurf
00002 use phys_constant, only : long, pi
00003 use grid_parameter, only : r_surf, nrf, ntf, npf, &
00004 & ntfpolp, ntfeq, ntfxy, npfxzp, npfyzp
00005 use def_metric_on_SFC_CF
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
00019 call alloc_array1d(sou, 0, nrf)
00020
00021 it = ntfxy ; ip = npfxzp
00022 sou(0:nrf) = psif(0:nrf,it,ip)**2
00023 call radial_int_fluid(sou,radius,it,ip)
00024 proper_radius_x = r_surf*radi*radius
00025 coord_radius_x = r_surf*radi*rs(it,ip)
00026
00027 it = ntfxy ; ip = npfyzp
00028 sou(0:nrf) = psif(0:nrf,it,ip)**2
00029 call radial_int_fluid(sou,radius,it,ip)
00030 proper_radius_y = r_surf*radi*radius
00031 coord_radius_y = r_surf*radi*rs(it,ip)
00032
00033 it = ntfpolp ; ip = npfxzp
00034 sou(0:nrf) = psif(0:nrf,it,ip)**2
00035 call radial_int_fluid(sou,radius,it,ip)
00036 proper_radius_z = r_surf*radi*radius
00037 coord_radius_z = r_surf*radi*rs(it,ip)
00038
00039 deallocate(sou)
00040 end subroutine calc_radius_CF_rsurf