00001 subroutine faraday_raise_gridpoint_WL
00002   use phys_constant,  only : long
00003   use grid_parameter, only : nrg, ntg, npg
00004   use def_metric_hij, only : hxxu, hxyu, hxzu, hyyu, hyzu, hzzu
00005   use def_faraday_tensor,  only : fxd_grid, fyd_grid, fzd_grid, &
00006   &                               fxu_grid, fyu_grid, fzu_grid, &
00007   &                               fijd_grid, fiju_grid, fijdu_grid, &
00008   &                               fidfiu_grid, fijfij_grid
00009   use interface_index_vec_down2up
00010   implicit none
00011   real(8) :: gmiju(3,3), fijdc(3,3), fijuc(3,3), fid(3), fiu(3)
00012   integer :: irg, itg, ipg, ia, ib, ic
00013 
00014 
00015 
00016 
00017   call index_vec_down2up(fxu_grid,fyu_grid,fzu_grid,fxd_grid,fyd_grid,fzd_grid)
00018 
00019   do ipg = 0, npg
00020     do itg = 0, ntg
00021       do irg = 0, nrg
00022         gmiju(1,1) = 1.0d0 + hxxu(irg,itg,ipg)
00023         gmiju(1,2) =         hxyu(irg,itg,ipg)
00024         gmiju(1,3) =         hxzu(irg,itg,ipg)
00025         gmiju(2,1) =         hxyu(irg,itg,ipg)
00026         gmiju(2,2) = 1.0d0 + hyyu(irg,itg,ipg)
00027         gmiju(2,3) =         hyzu(irg,itg,ipg)
00028         gmiju(3,1) =         hxzu(irg,itg,ipg)
00029         gmiju(3,2) =         hyzu(irg,itg,ipg)
00030         gmiju(3,3) = 1.0d0 + hzzu(irg,itg,ipg)
00031 
00032         fijdc(1,1) = 0.0d0
00033         fijdc(1,2) = fijd_grid(irg,itg,ipg,1)
00034         fijdc(1,3) = fijd_grid(irg,itg,ipg,2)
00035         fijdc(2,1) = - fijdc(1,2)
00036         fijdc(2,2) = 0.0d0
00037         fijdc(2,3) = fijd_grid(irg,itg,ipg,3)
00038         fijdc(3,1) = - fijdc(1,3)
00039         fijdc(3,2) = - fijdc(2,3)
00040         fijdc(3,3) = 0.0d0
00041 
00042         fiju_grid(irg,itg,ipg,1) = 0.0d0
00043         fiju_grid(irg,itg,ipg,2) = 0.0d0
00044         fiju_grid(irg,itg,ipg,3) = 0.0d0
00045         do ib = 1, 3
00046           do ia = 1, 3
00047             fiju_grid(irg,itg,ipg,1) = fiju_grid(irg,itg,ipg,1) &
00048             &                        + gmiju(1,ia)*gmiju(2,ib)*fijdc(ia,ib)
00049             fiju_grid(irg,itg,ipg,2) = fiju_grid(irg,itg,ipg,2) & 
00050             &                        + gmiju(1,ia)*gmiju(3,ib)*fijdc(ia,ib)
00051             fiju_grid(irg,itg,ipg,3) = fiju_grid(irg,itg,ipg,3) & 
00052             &                        + gmiju(2,ia)*gmiju(3,ib)*fijdc(ia,ib)
00053             fijdu_grid(irg,itg,ipg,ia,ib) = 0.0d0
00054             do ic = 1, 3
00055               fijdu_grid(irg,itg,ipg,ia,ib) = fijdu_grid(irg,itg,ipg,ia,ib) &
00056               &                             + gmiju(ib,ic)*fijdc(ia,ic)
00057             end do
00058           end do
00059         end do        
00060 
00061         fijuc(1,1) = 0.0d0
00062         fijuc(1,2) = fiju_grid(irg,itg,ipg,1)
00063         fijuc(1,3) = fiju_grid(irg,itg,ipg,2)
00064         fijuc(2,1) = - fijuc(1,2)
00065         fijuc(2,2) = 0.0d0
00066         fijuc(2,3) = fiju_grid(irg,itg,ipg,3)
00067         fijuc(3,1) = - fijuc(1,3)
00068         fijuc(3,2) = - fijuc(2,3)
00069         fijuc(3,3) = 0.0d0
00070 
00071         fid(1) = fxd_grid(irg,itg,ipg) ; fiu(1) = fxu_grid(irg,itg,ipg)
00072         fid(2) = fyd_grid(irg,itg,ipg) ; fiu(2) = fyu_grid(irg,itg,ipg)
00073         fid(3) = fzd_grid(irg,itg,ipg) ; fiu(3) = fzu_grid(irg,itg,ipg)
00074 
00075         fidfiu_grid(irg,itg,ipg) = fid(1)*fiu(1)+fid(2)*fiu(2)+fid(3)*fiu(3)
00076         fijfij_grid(irg,itg,ipg) = 0.0d0
00077         do ib = 1, 3
00078           do ia = 1, 3
00079             fijfij_grid(irg,itg,ipg) = fijfij_grid(irg,itg,ipg) &
00080             &                        + fijdc(ia,ib)*fijuc(ia,ib)
00081           end do
00082         end do
00083 
00084       end do
00085     end do
00086   end do
00087 
00088 end subroutine faraday_raise_gridpoint_WL