anchor.diff:  
       deallocate(list_nodeRelated)
   
  -    ndof = hecMAT%NDOF
  -    nn = ndof*ndof
       if(associated(hecMAT%AL)) deallocate(hecMAT%AL)
       allocate(hecMAT%AL(nn*hecMAT%NPL), stat=ierr)
       if ( ierr /= 0 ) stop " Allocation error, hecMAT%AL "
  
positive.code: 
    end subroutine getNewListOFrelatednodesANDLagrangeMultipliers
  
    !> Construct new stiffness matrix structure
    subroutine constructNewMatrixStructure(hecMAT,fstrMAT,numNon0_node,numNon0_lagrange,conMAT,is_contact_active)
  
      type(hecmwST_matrix)                 :: hecMAT !< type hecmwST_matrix
      type(fstrST_matrix_contact_lagrange) :: fstrMAT !< type fstrST_matrix_contact_lagrange
  
      integer(kind=kint)                   :: numNon0_node, numNon0_lagrange !< node-based number of non-zero items in half of the matrix
      integer(kind=kint)                   :: countNon0L_node, countNon0U_node, countNon0U_lagrange, countNon0L_lagrange !< counters of node-based number ofnon-zero items
      integer(kind=kint)                   :: i, j, ierr
      integer(kind=kint)                   :: numI_node, numI_lagrange
      integer(kind=kint)                   :: ndof, nn
      type(hecmwST_matrix)                 :: conMAT
      logical, intent(in)                  :: is_contact_active
  
      conMAT%N  = hecMAT%N
      conMAT%NP = hecMAT%NP
  
negative.code:     logical, intent(in)                  :: is_contact_active
  
      num_lagrange = infoCTChange%contactNode_current
  
      ! Get original list of related nodes
      call hecmw_init_nodeRelated_from_org(hecMAT%NP,num_lagrange,is_contact_active,list_nodeRelated_org,list_nodeRelated)
  