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