00001 function d2fdx2_2nd(xg,fnc,rv)
00002   implicit none
00003   real(8) :: xg(1:4),fnc(1:4), rv, d2fdx2_2nd
00004   real(8) :: dr01, dr02, dr03, dr12, dr13, 
00005             dr23, dr10, dr20, dr21, dr30, dr31, dr32, &
00006             wer0, wer1, wer2, wer3, &
00007             rrv0, rrv1, rrv2, rrv3
00008   integer :: ir0, ir1, ir2, ir3
00009 
00010   ir0 = 1
00011   ir1 = 2
00012   ir2 = 3
00013   ir3 = 4
00014   dr01 = xg(ir0) - xg(ir1)
00015   dr02 = xg(ir0) - xg(ir2)
00016   dr03 = xg(ir0) - xg(ir3)
00017   dr12 = xg(ir1) - xg(ir2)
00018   dr13 = xg(ir1) - xg(ir3)
00019   dr23 = xg(ir2) - xg(ir3)
00020   dr10 = - dr01
00021   dr20 = - dr02
00022   dr21 = - dr12
00023   dr30 = - dr03
00024   dr31 = - dr13
00025   dr32 = - dr23
00026   rrv0 = rv - xg(ir0)
00027   rrv1 = rv - xg(ir1)
00028   rrv2 = rv - xg(ir2)
00029   rrv3 = rv - xg(ir3)
00030   wer0 = 2.0d0*(rrv2*rrv3 + rrv1*rrv3 + rrv1*rrv2) &
00031      &          /(dr01*dr02*dr03)
00032   wer1 = 2.0d0*(rrv2*rrv3 + rrv0*rrv3 + rrv0*rrv2) &
00033      &          /(dr10*dr12*dr13)
00034   wer2 = 2.0d0*(rrv1*rrv3 + rrv0*rrv3 + rrv0*rrv1) &
00035      &          /(dr20*dr21*dr23)
00036   wer3 = 2.0d0*(rrv1*rrv2 + rrv0*rrv2 + rrv0*rrv1) &
00037      &          /(dr30*dr31*dr32)
00038 
00039   d2fdx2_2nd = wer0*fnc(ir0) + wer1*fnc(ir1) &
00040      &       + wer2*fnc(ir2) + wer3*fnc(ir3)
00041 
00042 end function d2fdx2_2nd