anchor.diff:      real(kind=kreal) :: mat(6)     !< tensor
       real(kind=kreal) :: xj(3,3)
   
  -	xj(1,1)=mat(1); xj(2,2)=mat(2); xj(3,3)=mat(3)
  +    xj(1,1)=mat(1); xj(2,2)=mat(2); xj(3,3)=mat(3)
       xj(1,2)=mat(4); xj(2,1)=xj(1,2)
       xj(2,3)=mat(5); xj(3,2)=xj(2,3)
       xj(3,1)=mat(6); xj(1,3)=xj(3,1)
  
positive.code:   end subroutine cross_product
  
    subroutine transformation(jacob, tm)
    real(kind=kreal),intent(in)	::	jacob(3,3)   !< Jacobian
    real(kind=kreal),intent(out)	::	tm(6,6)      !< transform matrix
  
    integer		::	i,j,k,m,nDim,nTensorDim
  
      do i=1,3
        do j=1,3
  	    tm(i,j)= jacob(i,j)*jacob(i,j)
        enddo
        tm(i,4) = jacob(i,1)*jacob(i,2)
        tm(i,5) = jacob(i,2)*jacob(i,3)
  
negative.code: !
  !======================================================================!
  module m_utilities
    use hecmw
    implicit none
  
    real(kind=kreal), parameter, private :: PI=3.14159265358979d0
  
    contains
  
    !> Record used memeory
    SUBROUTINE memget(var,dimn,syze)
      INTEGER :: var,dimn,syze,bite
      PARAMETER(bite=1)
      var = var + dimn*syze*bite
    END SUBROUTINE memget
  
  
    !> Insert an integer at end of a file name
    subroutine append_int2name( n, fname, n1 )
      integer, intent(in)             :: n
      integer, intent(in), optional  ::  n1
      character(len=*), intent(inout) :: fname
      integer            :: npos, nlen
      character(len=128) :: tmpname, tmp
  
      npos = scan( fname, '.')
      nlen = len_trim( fname )
      if( nlen>128 ) stop "String too long(>128) in append_int2name"
      if( n>100000 ) stop "Integer too big>100000 in append_int2name"
      tmpname = fname
      if( npos==0 ) then
        write( fname, '(a,i6)') fname(1:nlen),n
      else
        write( tmp, '(i6,a)') n,tmpname(npos:nlen)
        fname = tmpname(1:npos-1) // adjustl(tmp)
      endif
      if(present(n1).and.n1/=0)then
        write(tmp,'(i8)')n1
        fname = fname(1:len_trim(fname))//'.'//adjustl(tmp)
      endif
    end subroutine
  
    !> Insert an integer into a integer array
    subroutine insert_int2array( iin, carray )
      integer, intent(in) :: iin
      integer, pointer :: carray(:)
  
      integer :: i, oldsize
      integer, pointer :: dumarray(:) => null()
      if( .not. associated(carray) ) then
        allocate( carray(1) )
        carray(1) = iin
      else
        oldsize = size( carray )
        allocate( dumarray(oldsize) )
        do i=1,oldsize
          dumarray(i) = carray(i)
        enddo
        deallocate( carray )
        allocate( carray(oldsize+1) )
        do i=1,oldsize
          carray(i) = dumarray(i)
        enddo
        carray(oldsize+1) = iin
      endif
      if( associated(dumarray) ) deallocate( dumarray )
    end subroutine
  
    !> Given symmetric 3x3 matrix M, compute the eigenvalues
  