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