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
00009 use def_matter_parameter, only : ome
00010 use def_metric_cartesian
00011 use def_matter_cartesian
00012 use def_matter_velocity
00013 use interface_modules_cartesian
00014 implicit none
00015 real(long) :: xxxx, yyyy
00016 integer :: ir, it, ip
00017
00018 call interpolation_metric(psi,psica)
00019 call interpolation_metric(alph,alphca)
00020 call interpolation_metric(bvxd,bvxdca)
00021 call interpolation_metric(bvyd,bvydca)
00022 call interpolation_metric(bvzd,bvzdca)
00023
00024 call allocate_matter_velocity
00025
00026 write(6,*) ' Co-rotational model.'
00027 do ip = 0, npf
00028 do it = 0, ntf
00029 do ir = 0, nrf
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) = - ome*yyyy
00033 vyu(ir,it,ip) = ome*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(vxu,vxca)
00041 call interpolation_matter(vyu,vyca)
00042 call interpolation_matter(vzu,vzca)
00043
00044 end subroutine interpolation_cartesian