anchor.diff:  
   
   !
  -!PROCEDURE MQC_Print_Scalar_Integer
  -      Subroutine MQC_Print_Scalar_Integer(iOut,scalar,Header,Blank_At_Top, &
  -        Blank_At_Bottom,formatString)
  -!
  -!     This subroutine is used to print an integer scalar.
  -!
  -!     L. M. Thompson, 2016.
  -!     H. P. Hratchian, 2017.
  -!
  -!
  -!     Variable Declarations.
  -      Implicit None
  -      Integer,Intent(In)::iOut
  -      Integer,Intent(In)::scalar
  -      Character(Len=*),Intent(In),optional::Header,formatString
  -      Logical,Intent(In),Optional::Blank_At_Top,Blank_At_Bottom
  -      character(len=256)::lineToPrint
  -!
  -      if(PRESENT(Blank_At_Top)) then
  -        if(Blank_At_Top) write(iOut,*)
  -      endIf
  -      if(PRESENT(header)) then
  -        lineToPrint = TRIM(header)
  -      else
  -        lineToPrint = ' '
  -      endIf
  -      if(PRESENT(formatString)) then
  -        lineToPrint = TRIM(lineToPrint)//' '//TRIM(integer2character(scalar,formatString))
  -      else
  -        lineToPrint = TRIM(lineToPrint)//' '//TRIM(integer2character(scalar))
  -      endIf
  -      lineToPrint = ADJUSTL(lineToPrint)
  -      write(iOut,'(A)') TRIM(lineToPrint)
  -      if(PRESENT(Blank_At_Bottom)) then
  -        if(Blank_At_Bottom) write(iOut,*)
  -      endIf
  -!
  -      return
  -      end subroutine MQC_Print_Scalar_Integer
  -
  -
  -!
  -!PROCEDURE MQC_Print_Scalar_Real
  -      Subroutine MQC_Print_Scalar_Real(iOut,scalar,Header,Blank_At_Top, &
  -        Blank_At_Bottom,formatString)
  -!
  -!     This subroutine is used to print an real scalar.
  -!
  -!     L. M. Thompson, 2016.
  -!     H. P. Hratchian, 2017.
  -!
  -!
  -!     Variable Declarations.
  -      Implicit None
  -      Integer,Intent(In)::iOut
  -      Real,Intent(In)::scalar
  -      Character(Len=*),Intent(In),optional::Header,formatString
  -      Logical,Intent(In),Optional::Blank_At_Top,Blank_At_Bottom
  -      character(len=256)::lineToPrint
  -!
  -      if(PRESENT(Blank_At_Top)) then
  -        if(Blank_At_Top) write(iOut,*)
  -      endIf
  -      if(PRESENT(header)) then
  -        lineToPrint = TRIM(header)
  -      else
  -        lineToPrint = ' '
  -      endIf
  -      if(PRESENT(formatString)) then
  -        lineToPrint = TRIM(lineToPrint)//' '//TRIM(real2character(scalar,formatString))
  -      else
  -        lineToPrint = TRIM(lineToPrint)//' '//TRIM(real2character(scalar))
  -      endIf
  -      lineToPrint = ADJUSTL(lineToPrint)
  -      write(iOut,'(A)') TRIM(lineToPrint)
  -      if(PRESENT(Blank_At_Bottom)) then
  -        if(Blank_At_Bottom) write(iOut,*)
  -      endIf
  -!
  -      return
  -      end subroutine MQC_Print_Scalar_Real
  -
  -
  -!
  -!PROCEDURE MQC_Print_Matrix_Array_Integer
  -      Subroutine MQC_Print_Matrix_Array_Integer(IOut,Array,Header,Blank_At_Top, &
  -        Blank_At_Bottom)
  -!
  -!     This subroutine is used to print an integer Matrix array variable.
  -!
  -!     L. M. Thompson, 2016.
  -!     H. P. Hratchian, 2017.
  -!
  -!
  -!     Variable Declarations.
  -      Implicit None
  -      Integer,Intent(In)::IOut
  -      Integer,dimension(:,:),Intent(In)::Array
  -      Character(Len=*),Intent(In),Optional::Header
  -      Logical,Intent(In),Optional::Blank_At_Top,Blank_At_Bottom
  -      Integer::I,J,NCols,NRows,IFirst,ILast
  -      Integer,Parameter::ColWidth=10 ! Xianghai: can we make it bigger?
  -!
  -!
  - 1000 Format(1x,A)
  - 1001 Format(5x,10(7x,I7))
  - 2001 Format(1x,I7,10I14)
  -
  -      NRows = Size(Array,1)
  -      NCols = Size(Array,2)
  -
  -      If(PRESENT(Blank_At_Top)) then
  -        If(Blank_At_Top) Write(IOut,*)
  -      EndIf
  -      Write(IOut,1000) TRIM(Header)
  -
  -      Do IFirst = 1,NCols,ColWidth
  -        ILast = Min(IFirst+ColWidth-1,NCols)
  -        Write(IOut,1001) (I,I=IFirst,ILast)
  -        Do I = 1,NRows
  -          Write(IOut,2001) I, (Array(I,J),J=IFirst,ILast)
  -        EndDo
  -      EndDo
  -
  -      If(PRESENT(Blank_At_Bottom)) then
  -        If(Blank_At_Bottom) Write(IOut,*)
  -      EndIf
  -!
  -      Return
  -    End Subroutine MQC_Print_Matrix_Array_Integer
  -
  -
  -!PROCEDURE MQC_Print_Matrix_Array_Real
  -      Subroutine MQC_Print_Matrix_Array_Real(IOut,Array,Header,Blank_At_Top, &
  -        Blank_At_Bottom)
  -!
  -!     This subroutine is used to print a real Matrix array variable.
  -!
  -!     L. M. Thompson, 2016.
  -!     H. P. Hratchian, 2017.
  -!
  -!
  -!     Variable Declarations.
  -      Implicit None
  -      Integer,Intent(In)::IOut
  -      Real,dimension(:,:),Intent(In)::Array
  -      Character(Len=*),Intent(In),Optional::Header
  -      Logical,Intent(In),Optional::Blank_At_Top,Blank_At_Bottom
  -      Integer::I,J,NCols,NRows,IFirst,ILast
  -      Integer,Parameter::ColWidth=10 ! Xianghai: can we make it bigger?
  -!
  - 1000 Format(1x,A)
  - 1001 Format(5x,10(7x,I7))
  - 2002 Format(1x,I7,10F14.6)
  -!
  -      NRows = Size(Array,1)
  -      NCols = Size(Array,2)
  -!
  -      If(PRESENT(Blank_At_Top)) then
  -        If(Blank_At_Top) Write(IOut,*)
  -      EndIf
  -      Write(IOut,1000) TRIM(Header)
  -
  -      Do IFirst = 1,NCols,ColWidth
  -        ILast = Min(IFirst+ColWidth-1,NCols)
  -        Write(IOut,1001) (I,I=IFirst,ILast)
  -        do I = 1,NRows
  -          Write(IOut,2002) I, (Array(I,J),J=IFirst,ILast)
  -        enddo
  -      EndDo
  -
  -      If(PRESENT(Blank_At_Bottom)) then
  -        If(Blank_At_Bottom) Write(IOut,*)
  -      EndIf
  -!
  -      Return
  -      End Subroutine MQC_Print_Matrix_Array_Real
  -
  -
  -!PROCEDURE MQC_Print_Vector_Array_Integer
  -      subroutine MQC_Print_Vector_Array_Integer(IOut,Vector,Header,Blank_At_Top, &
  -        Blank_At_Bottom)
  -!
  -!     This subroutine is used to print a Vector array type variable.
  -!
  -!     L. M. Thompson, 2016.
  -!     H. P. Hratchian, 2017.
  -!
  -!
  -!     Variable Declarations.
  -      implicit none
  -      integer,Intent(In)::IOut
  -      integer,Dimension(:),Intent(In)::Vector
  -      character(Len=*),Intent(In),Optional::Header
  -      logical,Intent(In),Optional::Blank_At_Top,Blank_At_Bottom
  -      integer::I,Length
  -!
  - 1000 Format(1x,A)
  - 1001 Format(1x,I7,2x,I14)
  - 1002 Format(1x,I7,2X,F14.6)
  - 1003 Format(1x,I7,2x,A)
  -!
  -      If(PRESENT(Blank_At_Top)) then
  -        If(Blank_At_Top) Write(IOut,*)
  -      EndIf
  -      if(Present(Header)) Write(IOut,1000) TRIM(Header)
  -      Length = Size(Vector)
  -      Do I = 1, Length
  -        Write(IOut,1001) I, Vector(I)
  -      EndDo
  -      If(PRESENT(Blank_At_Bottom)) then
  -        If(Blank_At_Bottom) Write(IOut,*)
  -      EndIf
  -!
  -      Return
  -      End Subroutine MQC_Print_Vector_Array_Integer
  -
  -
  -!PROCEDURE MQC_Print_Vector_Array_Real
  -      Subroutine MQC_Print_Vector_Array_Real(IOut,Vector,Header,Blank_At_Top, &
  -        Blank_At_Bottom)
  -!
  -!     This subroutine is used to print a Vector array type variable.
  -!
  -!     L. M. Thompson, 2016.
  -!     H. P. Hratchian, 2017.
  -!
  -!
  -!     Variable Declarations.
  -      Implicit None
  -      Integer,Intent(In)::IOut
  -      Real,Dimension(:),Intent(In)::Vector
  -      Character(Len=*),Intent(In),Optional::Header
  -      Logical,Intent(In),Optional::Blank_At_Top,Blank_At_Bottom
  -      Integer::I,Length
  -!
  - 1000 Format(1x,A)
  - 1002 Format(1x,I7,2X,F14.6)
  -!
  -      If(PRESENT(Blank_At_Top)) then
  -        If(Blank_At_Top) Write(IOut,*)
  -      EndIf
  -      Write(IOut,1000) TRIM(Header)
  -      Length = Size(Vector)
  -      Do I = 1, Length
  -        Write(IOut,1002) I, Vector(I)
  -      EndDo
  -
  -      If(PRESENT(Blank_At_Bottom)) then
  -        If(Blank_At_Bottom) Write(IOut,*)
  -      EndIf
  -!
  -      Return
  -      End Subroutine MQC_Print_Vector_Array_Real
  -
  -
  +!----------------------------------------------------------------
  +!                                                               |
  +!     Algebra                                                   |
  +!                                                               |
  +!----------------------------------------------------------------
  +!
   !
   !PROCEDURE mqc_packedDiagonalMatrix2FullMatrix_integer
         Subroutine mqc_packedDiagonalMatrix2FullMatrix_integer(matrixDiagonal,  &
  
positive.code: !
  !
  !     This module includes procedures that provide a variety of general purpose
  !     utilities.
  !
  !
  !
  
negative.code: !
        CONTAINS
  !
  !
  !----------------------------------------------------------------
  !                                                               |
  !     MQC Suite Control and System Interaction                  |
  !                                                               |
  !----------------------------------------------------------------
  !
  !PROCEDURE mqc_error
        Subroutine mqc_error(Message,IOut)
  !
  