anchor.diff:        allocate(dz(n))
         allocate(ddx(n))
         allocate(totx(n))
  +      allocate(dot4(m))
  +      allocate(dot5(m))
         do j = 1 , n
           do i = 1 , n
             utmask(i,j) = (j-i) > 0
  
positive.code:       real , dimension(n) , intent(in) :: ap
        real , dimension(n) , intent(out) :: xhat_new
        real , intent(out) :: d2
        call init_1DVar_arr(shape(fmK))
        fmKT = transpose(fmK)
        call dotprod(fmKT,SEInv,KtSeInv)
        call dotprod(KtSeInv,fmK,KtSeInvK)
  
negative.code:   interface dotprod
      module procedure dotprod_matrix_matrix
      module procedure dotprod_matrix_array
      module procedure dotprod_array_matrix
      module procedure dotprod_array_array
    end interface
  
  