00001 subroutine grgrad_midpoint_r3rd_nsbh(fnc,dfdx,dfdy,dfdz,cobj)
00002 use phys_constant, only : long
00003 use grid_parameter, only : nrg, ntg, npg
00004 use interface_grgrad_midpoint_r3rd_type0_ns
00005 use interface_grgrad_midpoint_r3rd_type0_bh
00006 implicit none
00007 real(long), pointer :: fnc(:,:,:)
00008 real(long), pointer :: dfdx(:,:,:), dfdy(:,:,:), dfdz(:,:,:)
00009 real(long) :: dfncdx, dfncdy, dfncdz
00010 integer :: irg, itg, ipg
00011 character(len=2), intent(in) :: cobj
00012
00013
00014
00015
00016
00017 if(cobj=='ns') then
00018 do irg = 1, nrg
00019 do itg = 1, ntg
00020 do ipg = 1, npg
00021 call grgrad_midpoint_r3rd_type0_ns(fnc,dfncdx,dfncdy,dfncdz,irg,itg,ipg)
00022 dfdx(irg,itg,ipg) = dfncdx
00023 dfdy(irg,itg,ipg) = dfncdy
00024 dfdz(irg,itg,ipg) = dfncdz
00025 end do
00026 end do
00027 end do
00028 else
00029 do irg = 1, nrg
00030 do itg = 1, ntg
00031 do ipg = 1, npg
00032 call grgrad_midpoint_r3rd_type0_bh(fnc,dfncdx,dfncdy,dfncdz,irg,itg,ipg)
00033 dfdx(irg,itg,ipg) = dfncdx
00034 dfdy(irg,itg,ipg) = dfncdy
00035 dfdz(irg,itg,ipg) = dfncdz
00036 end do
00037 end do
00038 end do
00039 end if
00040
00041 end subroutine grgrad_midpoint_r3rd_nsbh