00001 subroutine transverse_part
00002 use grid_parameter, only : nrg, ntg, npg
00003 use def_metric_hij, only : hxxu, hxyu, hxzu, hyyu, hyzu, hzzu
00004 use def_transverse_part, only : Ftvx, Ftvy, Ftvz, &
00005 & Ftvx_grid, Ftvy_grid, Ftvz_grid
00006 use def_vector_x, only : vec_xg, hvec_xg
00007 use interface_grgrad_midpoint_type0
00008 use interface_grgrad_4th_gridpoint
00009 implicit none
00010 real(8) :: dhxxdx,dhxxdy,dhxxdz,dhxydx,dhxydy,dhxydz,dhxzdx,dhxzdy,dhxzdz,
00011 dhyxdx,dhyxdy,dhyxdz,dhyydx,dhyydy,dhyydz,dhyzdx,dhyzdy,dhyzdz, &
00012 dhzxdx,dhzxdy,dhzxdz,dhzydx,dhzydy,dhzydz,dhzzdx,dhzzdy,dhzzdz
00013 real(8) :: x, y, z, dgamma(3)
00014 integer :: ipg, itg, irg
00015
00016
00017
00018
00019
00020
00021
00022
00023 do ipg = 1, npg
00024 do itg = 1, ntg
00025 do irg = 1, nrg
00026
00027
00028
00029 call grgrad_midpoint_type0(hxxu,dhxxdx,dhxxdy,dhxxdz,irg,itg,ipg)
00030 call grgrad_midpoint_type0(hxyu,dhxydx,dhxydy,dhxydz,irg,itg,ipg)
00031 call grgrad_midpoint_type0(hxzu,dhxzdx,dhxzdy,dhxzdz,irg,itg,ipg)
00032 call grgrad_midpoint_type0(hyyu,dhyydx,dhyydy,dhyydz,irg,itg,ipg)
00033 call grgrad_midpoint_type0(hyzu,dhyzdx,dhyzdy,dhyzdz,irg,itg,ipg)
00034 call grgrad_midpoint_type0(hzzu,dhzzdx,dhzzdy,dhzzdz,irg,itg,ipg)
00035 dhyxdx = dhxydx ; dhyxdy = dhxydy ; dhyxdz = dhxydz
00036 dhzxdx = dhxzdx ; dhzxdy = dhxzdy ; dhzxdz = dhxzdz
00037 dhzydx = dhyzdx ; dhzydy = dhyzdy ; dhzydz = dhyzdz
00038
00039 Ftvx(irg,itg,ipg) = dhxxdx + dhxydy + dhxzdz
00040 Ftvy(irg,itg,ipg) = dhyxdx + dhyydy + dhyzdz
00041 Ftvz(irg,itg,ipg) = dhzxdx + dhzydy + dhzzdz
00042
00043 end do
00044 end do
00045 end do
00046
00047
00048
00049 do ipg = 0, npg
00050 do itg = 0, ntg
00051 do irg = 0, nrg
00052
00053
00054
00055 call grgrad_4th_gridpoint(hxxu,dhxxdx,dhxxdy,dhxxdz,irg,itg,ipg)
00056 call grgrad_4th_gridpoint(hxyu,dhxydx,dhxydy,dhxydz,irg,itg,ipg)
00057 call grgrad_4th_gridpoint(hxzu,dhxzdx,dhxzdy,dhxzdz,irg,itg,ipg)
00058 call grgrad_4th_gridpoint(hyyu,dhyydx,dhyydy,dhyydz,irg,itg,ipg)
00059 call grgrad_4th_gridpoint(hyzu,dhyzdx,dhyzdy,dhyzdz,irg,itg,ipg)
00060 call grgrad_4th_gridpoint(hzzu,dhzzdx,dhzzdy,dhzzdz,irg,itg,ipg)
00061 dhyxdx = dhxydx ; dhyxdy = dhxydy ; dhyxdz = dhxydz
00062 dhzxdx = dhxzdx ; dhzxdy = dhxzdy ; dhzxdz = dhxzdz
00063 dhzydx = dhyzdx ; dhzydy = dhyzdy ; dhzydz = dhyzdz
00064
00065 Ftvx_grid(irg,itg,ipg) = dhxxdx + dhxydy + dhxzdz
00066 Ftvy_grid(irg,itg,ipg) = dhyxdx + dhyydy + dhyzdz
00067 Ftvz_grid(irg,itg,ipg) = dhzxdx + dhzydy + dhzzdz
00068
00069 end do
00070 end do
00071 end do
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 end subroutine transverse_part