00001 subroutine interpolation_cartesian_RNS_WL
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_metric_hij
00009 use def_matter, only : emd, rs, omef
00010 use def_matter_parameter, only : ome
00011 use def_metric_cartesian
00012 use def_metric_hij_cartesian
00013 use def_matter_cartesian
00014 use def_matter_velocity
00015 use interface_modules_cartesian
00016 implicit none
00017 real(long) :: xxxx, yyyy, omew
00018 integer :: ir, it, ip
00019
00020 call interpolation_metric(psi,psica)
00021 call interpolation_metric(alph,alphca)
00022 call interpolation_metric(bvxd,bvxdca)
00023 call interpolation_metric(bvyd,bvydca)
00024 call interpolation_metric(bvzd,bvzdca)
00025 call interpolation_metric(hxxd,hxxdca)
00026 call interpolation_metric(hxyd,hxydca)
00027 call interpolation_metric(hxzd,hxzdca)
00028 call interpolation_metric(hyyd,hyydca)
00029 call interpolation_metric(hyzd,hyzdca)
00030 call interpolation_metric(hzzd,hzzdca)
00031
00032 call invhij
00033 call calc_shift_down2up
00034 call interpolation_metric(bvxu,bvxuca)
00035 call interpolation_metric(bvyu,bvyuca)
00036 call interpolation_metric(bvzu,bvzuca)
00037
00038 do ip = 0, npf
00039 do it = 0, ntf
00040 do ir = 0, nrf
00041 xxxx = rg(ir)*rs(it,ip)*sinthg(it)*cosphig(ip)
00042 yyyy = rg(ir)*rs(it,ip)*sinthg(it)*sinphig(ip)
00043 omew = omef(ir,it,ip)
00044 vxu(ir,it,ip) = - omew*yyyy
00045 vyu(ir,it,ip) = omew*xxxx
00046 vzu(ir,it,ip) = 0.0d0
00047 end do
00048 end do
00049 end do
00050
00051 call interpolation_matter(emd,emdca)
00052 call interpolation_matter(vxu,vxca)
00053 call interpolation_matter(vyu,vyca)
00054 call interpolation_matter(vzu,vzca)
00055
00056 end subroutine interpolation_cartesian_RNS_WL