anchor.diff:    double precision               :: p,q
     integer                        :: a_x,b_x,c_x,d_x,a_y,b_y,c_y,d_y,a_z,b_z,c_z,d_z
     integer                        :: i, n_iter, n_pt, j
  -  double precision               :: accu,  I_f, pq_inv, p10_1, p10_2, p01_1, p01_2,rho,pq_inv_2
  +  double precision               :: I_f, pq_inv, p10_1, p10_2, p01_1, p01_2,rho,pq_inv_2
     integer :: ix,iy,iz, jx,jy,jz, sx,sy,sz
     
     j = ishft(n_pt,-1)
  -  accu = 0.d0
     ASSERT (n_pt > 1)
     pq_inv = 0.5d0/(p+q)
     pq_inv_2 = pq_inv + pq_inv
  
positive.code:     call I_x2_new(c,B_10,B_01,B_00,res,n_pt)
    else if (a==1) then
      call I_x2_new(c-1,B_10,B_01,B_00,res,n_pt)
      do i=1,n_pt
        res(i) = c * B_00(i) * res(i)
      enddo
    else
      call I_x1_new(a-2,c,B_10,B_01,B_00,res,n_pt)
      call I_x1_new(a-1,c-1,B_10,B_01,B_00,res2,n_pt)
      do i=1,n_pt
        res(i) = (a-1) * B_10(i) * res(i) &
                 + c * B_00(i) * res2(i)
  
negative.code:   integer                        :: i
    
    if(c==1)then
      !DIR$ VECTOR ALIGNED
      do i=1,n_pt
        res(i) = 0.d0
      enddo
    elseif(c==0) then
      !DIR$ VECTOR ALIGNED
      do i=1,n_pt
        res(i) = 1.d0
      enddo
    else
      call I_x1_new(0,c-2,B_10,B_01,B_00,res,n_pt)
      !DIR$ VECTOR ALIGNED
      do i=1,n_pt
        res(i) =  (c-1) * B_01(i) * res(i)
      enddo
  