00001 subroutine excurve_CF_gridpoint_export(alph,bvxd,bvyd,bvzd,tfkxx,tfkxy,tfkxz,tfkyy,tfkyz,tfkzz)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, ntg, npg
00004
00005
00006 use interface_grgrad_4th_gridpoint
00007 implicit none
00008 integer :: ia, ib, info, irg, itg, ipg
00009 real(long) :: ainvh, diver, cdivbv, fa23,
00010 dbvxdx, dbvxdy, dbvxdz, &
00011 dbvydx, dbvydy, dbvydz, &
00012 dbvzdx, dbvzdy, dbvzdz
00013 real(8), pointer :: alph(:,:,:), bvxd(:,:,:), bvyd(:,:,:), bvzd(:,:,:), tfkxx(:,:,:),
00014 tfkxy(:,:,:), tfkxz(:,:,:), tfkyy(:,:,:), tfkyz(:,:,:), tfkzz(:,:,:)
00015
00016
00017
00018
00019 fa23 = 2.0d0/3.0d0
00020
00021 do ipg = 0, npg
00022 do itg = 0, ntg
00023 do irg = 0, nrg
00024
00025 call grgrad_4th_gridpoint(bvxd,dbvxdx,dbvxdy,dbvxdz,irg,itg,ipg)
00026 call grgrad_4th_gridpoint(bvyd,dbvydx,dbvydy,dbvydz,irg,itg,ipg)
00027 call grgrad_4th_gridpoint(bvzd,dbvzdx,dbvzdy,dbvzdz,irg,itg,ipg)
00028
00029 ainvh = 0.5d0/alph(irg,itg,ipg)
00030 cdivbv = dbvxdx + dbvydy + dbvzdz
00031 diver = fa23*cdivbv
00032
00033 tfkxx(irg,itg,ipg) = ainvh*(2.0d0*dbvxdx - diver)
00034 tfkyy(irg,itg,ipg) = ainvh*(2.0d0*dbvydy - diver)
00035 tfkzz(irg,itg,ipg) = ainvh*(2.0d0*dbvzdz - diver)
00036 tfkxy(irg,itg,ipg) = ainvh*(dbvydx + dbvxdy)
00037 tfkxz(irg,itg,ipg) = ainvh*(dbvzdx + dbvxdz)
00038 tfkyz(irg,itg,ipg) = ainvh*(dbvzdy + dbvydz)
00039
00040
00041
00042 end do
00043 end do
00044 end do
00045
00046 end subroutine excurve_CF_gridpoint_export