00001 subroutine faraday_raise_CF
00002 use phys_constant, only : long
00003 use make_array_3d
00004 use grid_parameter, only : nrg, ntg, npg
00005 use def_faraday_tensor, only : fxd, fyd, fzd, fxu, fyu, fzu, &
00006 & fijd, fiju, fijdu, fidfiu fijfij
00007 use interface_interpo_linear_type0
00008 implicit none
00009 real(8) :: fijdc(3,3), fijuc(3,3), fid(3), fiu(3)
00010 integer :: irg, itg, ipg, ia, ib, ic
00011
00012
00013
00014
00015 fxu(1:nrg,1:ntg,1:npg) = fxd(1:nrg,1:ntg,1:npg)
00016 fyu(1:nrg,1:ntg,1:npg) = fyd(1:nrg,1:ntg,1:npg)
00017 fzu(1:nrg,1:ntg,1:npg) = fzd(1:nrg,1:ntg,1:npg)
00018
00019 fiju(1:nrg,1:ntg,1:npg,1) = fijd(1:nrg,1:ntg,1:npg,1)
00020 fiju(1:nrg,1:ntg,1:npg,2) = fijd(1:nrg,1:ntg,1:npg,2)
00021 fiju(1:nrg,1:ntg,1:npg,3) = fijd(1:nrg,1:ntg,1:npg,3)
00022
00023 fijdu(1:nrg,1:ntg,1:npg,1,1) = 0.0d0
00024 fijdu(1:nrg,1:ntg,1:npg,1,2) = fijd(1:nrg,1:ntg,1:npg,1)
00025 fijdu(1:nrg,1:ntg,1:npg,1,3) = fijd(1:nrg,1:ntg,1:npg,2)
00026 fijdu(1:nrg,1:ntg,1:npg,2,1) = - fijd(1:nrg,1:ntg,1:npg,1)
00027 fijdu(1:nrg,1:ntg,1:npg,2,2) = 0.0d0
00028 fijdu(1:nrg,1:ntg,1:npg,2,3) = fijd(1:nrg,1:ntg,1:npg,3)
00029 fijdu(1:nrg,1:ntg,1:npg,3,1) = - fijd(1:nrg,1:ntg,1:npg,2)
00030 fijdu(1:nrg,1:ntg,1:npg,3,2) = - fijd(1:nrg,1:ntg,1:npg,3)
00031 fijdu(1:nrg,1:ntg,1:npg,3,3) = 0.0d0
00032
00033 do ipg = 1, npg
00034 do itg = 1, ntg
00035 do irg = 1, nrg
00036
00037 fijdc(1,1) = 0.0d0
00038 fijdc(1,2) = fijd(irg,itg,ipg,1)
00039 fijdc(1,3) = fijd(irg,itg,ipg,2)
00040 fijdc(2,1) = - fijdc(1,2)
00041 fijdc(2,2) = 0.0d0
00042 fijdc(2,3) = fijd(irg,itg,ipg,3)
00043 fijdc(3,1) = - fijdc(1,3)
00044 fijdc(3,2) = - fijdc(2,3)
00045 fijdc(3,3) = 0.0d0
00046
00047 fijuc(1,1) = 0.0d0
00048 fijuc(1,2) = fiju(irg,itg,ipg,1)
00049 fijuc(1,3) = fiju(irg,itg,ipg,2)
00050 fijuc(2,1) = - fijuc(1,2)
00051 fijuc(2,2) = 0.0d0
00052 fijuc(2,3) = fiju(irg,itg,ipg,3)
00053 fijuc(3,1) = - fijuc(1,3)
00054 fijuc(3,2) = - fijuc(2,3)
00055 fijuc(3,3) = 0.0d0
00056
00057 fid(1) = fxd(irg,itg,ipg) ; fiu(1) = fxu(irg,itg,ipg)
00058 fid(2) = fyd(irg,itg,ipg) ; fiu(2) = fyu(irg,itg,ipg)
00059 fid(3) = fzd(irg,itg,ipg) ; fiu(3) = fzu(irg,itg,ipg)
00060
00061 fidfiu(irg,itg,ipg) = fid(1)*fiu(1) + fid(2)*fiu(2) + fid(3)*fiu(3)
00062 fijfij(irg,itg,ipg) = 0.0d0
00063 do ib = 1, 3
00064 do ia = 1, 3
00065 fijfij(irg,itg,ipg) = fijfij(irg,itg,ipg) &
00066 & + fijdc(ia,ib)*fijuc(ia,ib)
00067 end do
00068 end do
00069
00070 end do
00071 end do
00072 end do
00073
00074 end subroutine faraday_raise_CF