00001 subroutine liegmab_gridpoint
00002 use grid_parameter, only : nrg, ntg, npg
00003 use def_Lie_derivatives_grid, only : elpxx_grid, elpxy_grid, elpxz_grid, &
00004 & elpyy_grid, elpyz_grid, elpzz_grid, &
00005 & rlpxx_grid, rlpxy_grid, rlpxz_grid, &
00006 & rlpyy_grid, rlpyz_grid, rlpzz_grid
00007 use def_metric_hij, only : hxxd, hxyd, hxzd, hyyd, hyzd, hzzd, &
00008 & hxxu, hxyu, hxzu, hyyu, hyzu, hzzu
00009 use def_dvphi, only : dphiu
00010 use interface_grdphi_gridpoint_type0
00011 implicit none
00012 real(8) :: dhxxdp, dhxxdx, dhxxdy, dhxxdz,
00013 dhxydp, dhxydx, dhxydy, dhxydz, &
00014 dhxzdp, dhxzdx, dhxzdy, dhxzdz, &
00015 dhyxdp, dhyxdx, dhyxdy, dhyxdz, &
00016 dhyydp, dhyydx, dhyydy, dhyydz, &
00017 dhyzdp, dhyzdx, dhyzdy, dhyzdz, &
00018 dhzxdp, dhzxdx, dhzxdy, dhzxdz, &
00019 dhzydp, dhzydx, dhzydy, dhzydz, &
00020 dhzzdp, dhzzdx, dhzzdy, dhzzdz, &
00021 fa13, trlie, &
00022 gmxxd, gmxyd, gmxzd, gmxxu, gmxyu, gmxzu, &
00023 gmyxd, gmyyd, gmyzd, gmyxu, gmyyu, gmyzu, &
00024 gmzxd, gmzyd, gmzzd, gmzxu, gmzyu, gmzzu
00025 integer :: ipg, irg, itg
00026
00027
00028
00029
00030
00031 fa13 = 1.0d0/3.0d0
00032 dphiu(1:3,1:3) = 0.0d0
00033 dphiu(1,2) =-1.0d0
00034 dphiu(2,1) = 1.0d0
00035
00036 do ipg = 0, npg
00037 do itg = 0, ntg
00038 do irg = 0, nrg
00039
00040 gmxxd=hxxd(irg,itg,ipg)
00041 gmxyd=hxyd(irg,itg,ipg)
00042 gmxzd=hxzd(irg,itg,ipg)
00043 gmyyd=hyyd(irg,itg,ipg)
00044 gmyzd=hyzd(irg,itg,ipg)
00045 gmzzd=hzzd(irg,itg,ipg)
00046 gmxxd = gmxxd + 1.0d0
00047 gmyyd = gmyyd + 1.0d0
00048 gmzzd = gmzzd + 1.0d0
00049 gmyxd = gmxyd
00050 gmzxd = gmxzd
00051 gmzyd = gmyzd
00052 gmxxu=hxxu(irg,itg,ipg)
00053 gmxyu=hxyu(irg,itg,ipg)
00054 gmxzu=hxzu(irg,itg,ipg)
00055 gmyyu=hyyu(irg,itg,ipg)
00056 gmyzu=hyzu(irg,itg,ipg)
00057 gmzzu=hzzu(irg,itg,ipg)
00058 gmxxu = gmxxu + 1.0d0
00059 gmyyu = gmyyu + 1.0d0
00060 gmzzu = gmzzu + 1.0d0
00061 gmyxu = gmxyu
00062 gmzxu = gmxzu
00063 gmzyu = gmyzu
00064
00065 call grdphi_gridpoint_type0(hxxd,dhxxdp,irg,itg,ipg)
00066 call grdphi_gridpoint_type0(hxyd,dhxydp,irg,itg,ipg)
00067 call grdphi_gridpoint_type0(hxzd,dhxzdp,irg,itg,ipg)
00068 call grdphi_gridpoint_type0(hyyd,dhyydp,irg,itg,ipg)
00069 call grdphi_gridpoint_type0(hyzd,dhyzdp,irg,itg,ipg)
00070 call grdphi_gridpoint_type0(hzzd,dhzzdp,irg,itg,ipg)
00071
00072 rlpxx_grid(irg,itg,ipg) = dhxxdp + gmxyd*dphiu(2,1) + gmyxd*dphiu(2,1)
00073 rlpxy_grid(irg,itg,ipg) = dhxydp + gmxxd*dphiu(1,2) + gmyyd*dphiu(2,1)
00074 rlpxz_grid(irg,itg,ipg) = dhxzdp + gmyzd*dphiu(2,1)
00075 rlpyy_grid(irg,itg,ipg) = dhyydp + gmyxd*dphiu(1,2) + gmxyd*dphiu(1,2)
00076 rlpyz_grid(irg,itg,ipg) = dhyzdp + gmxzd*dphiu(1,2)
00077 rlpzz_grid(irg,itg,ipg) = dhzzdp
00078
00079 dhxxdp = rlpxx_grid(irg,itg,ipg)
00080 dhxydp = rlpxy_grid(irg,itg,ipg)
00081 dhxzdp = rlpxz_grid(irg,itg,ipg)
00082 dhyydp = rlpyy_grid(irg,itg,ipg)
00083 dhyzdp = rlpyz_grid(irg,itg,ipg)
00084 dhzzdp = rlpzz_grid(irg,itg,ipg)
00085 dhyxdp = dhxydp
00086 dhzxdp = dhxzdp
00087 dhzydp = dhyzdp
00088
00089 trlie = gmxxu*dhxxdp + gmxyu*dhxydp + gmxzu*dhxzdp &
00090 & + gmyxu*dhyxdp + gmyyu*dhyydp + gmyzu*dhyzdp &
00091 & + gmzxu*dhzxdp + gmzyu*dhzydp + gmzzu*dhzzdp
00092
00093 elpxx_grid(irg,itg,ipg) = dhxxdp - fa13*gmxxd*trlie
00094 elpxy_grid(irg,itg,ipg) = dhxydp - fa13*gmxyd*trlie
00095 elpxz_grid(irg,itg,ipg) = dhxzdp - fa13*gmxzd*trlie
00096 elpyy_grid(irg,itg,ipg) = dhyydp - fa13*gmyyd*trlie
00097 elpyz_grid(irg,itg,ipg) = dhyzdp - fa13*gmyzd*trlie
00098 elpzz_grid(irg,itg,ipg) = dhzzdp - fa13*gmzzd*trlie
00099
00100 end do
00101 end do
00102 end do
00103
00104 end subroutine liegmab_gridpoint