real function DF63(F, H)
!   F,  ,   
real, intent(in):: F(:), H
double precision S, F12
integer i, n, n2
!begin
    n=size(F)
    if(n<3) then
        if(n<2) then
            DF63=0.0; goto 10
        endif
        DF63=0.5*H*(F(1)+F(2))
10      return
    endif
    S=0.0D0; n2=1
    if(mod(n,2)==0) then
        F12=(5.0D0*F(1)+15.0D0*F(2)-5.0D0*F(3)+F(4))/16.0D0
        S=(F(1)+4.0D0*F12+F(2))/2.0D0
        n2=2
    endif
    S=S+F(n2)-F(n)
    n2=n2+1
    do i=n2, n, 2
        S=S+4.0D0*F(i)+2.0D0*F(i+1)
    enddo
    DF63=sngl(H*S/3.0D0)
    return
end function DF63
