00001 subroutine interpolation_cartesian
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrf, ntf, npf
00004 use coordinate_grav_r, only : rg
00005 use trigonometry_grav_theta, only : sinthg
00006 use trigonometry_grav_phi, only : sinphig, cosphig
00007 use def_metric
00008 use def_matter, only : emd, rs, omef
00009 use def_metric_cartesian
00010 use def_matter_cartesian
00011 use def_matter_velocity
00012 use interface_modules_cartesian
00013 implicit none
00014 real(long) :: xxxx, yyyy, omega
00015 integer :: ir, it, ip
00016
00017 call interpolation_metric(psi,psica)
00018 call interpolation_metric(alph,alphca)
00019 call interpolation_metric(bvxd,bvxdca)
00020 call interpolation_metric(bvyd,bvydca)
00021 call interpolation_metric(bvzd,bvzdca)
00022
00023 call allocate_matter_velocity
00024
00025 write(6,*) ' Flow field is circular.'
00026 do ip = 0, npf
00027 do it = 0, ntf
00028 do ir = 0, nrf
00029 omega = omef(ir,it,ip)
00030 xxxx = rg(ir)*rs(it,ip)*sinthg(it)*cosphig(ip)
00031 yyyy = rg(ir)*rs(it,ip)*sinthg(it)*sinphig(ip)
00032 vxu(ir,it,ip) = - omega*yyyy
00033 vyu(ir,it,ip) = omega*xxxx
00034 vzu(ir,it,ip) = 0.0d0
00035 end do
00036 end do
00037 end do
00038
00039 call interpolation_matter(emd,emdca)
00040 call interpolation_matter(omef,omeca)
00041 call interpolation_matter(vxu,vxca)
00042 call interpolation_matter(vyu,vyca)
00043 call interpolation_matter(vzu,vzca)
00044
00045 end subroutine interpolation_cartesian