00001 function dfdx_2nd(x,f,v)
00002   implicit none
00003   real(8) :: dfdx_2nd
00004   real(8) :: x(3),f(3), v
00005   real(8) :: dx01, dx02, dx12
00006   real(8) :: dx10, dx20, dx21
00007   real(8) ::  xv0,  xv1,  xv2
00008   real(8) :: wex0, wex1, wex2
00009   integer ::  ir0,  ir1,  ir2
00010 
00011   ir0 = 1
00012   ir1 = 2
00013   ir2 = 3
00014   dx01 = x(ir0) - x(ir1)
00015   dx02 = x(ir0) - x(ir2)
00016   dx12 = x(ir1) - x(ir2)
00017   dx10 = - dx01
00018   dx20 = - dx02
00019   dx21 = - dx12
00020   xv0 = v - x(ir0)
00021   xv1 = v - x(ir1)
00022   xv2 = v - x(ir2)
00023 
00024   wex0 = (xv2 + xv1)/(dx01*dx02)
00025   wex1 = (xv2 + xv0)/(dx10*dx12)
00026   wex2 = (xv1 + xv0)/(dx20*dx21)
00027   dfdx_2nd = wex0*f(ir0) + wex1*f(ir1) + wex2*f(ir2)
00028 
00029 end function dfdx_2nd