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