anchor.diff:        eigval(3)=rtemp
       end if
   
  -		do i=1,3
  +    do i=1,3
         if (eigval(i)/(eigval(1)+eigval(2)+eigval(3)) < 1.0d-10 )then
           eigval(i) = 0.0d0
           princ(i,:) = 0.0d0
           exit
         end if
         ml = ( s23*s13 - s12*(s33-eigval(i)) ) / ( -s23**2 + (s22-eigval(i))*(s33-eigval(i)) )
  -     	nl = ( s12**2 - (s22-eigval(i))*(s11-eigval(i)) ) / ( s12*s23 - s13*(s22-eigval(i)) ) 
  +       nl = ( s12**2 - (s22-eigval(i))*(s11-eigval(i)) ) / ( s12*s23 - s13*(s22-eigval(i)) ) 
         if (abs(ml) >= huge(ml)) then
          ml=0.0d0
         end if
         if (abs(nl) >= huge(nl)) then
          nl=0.0d0
         end if      
  -			princ(i,1) = eigval(i)/sqrt( 1 + ml**2 + nl**2)
  -			princ(i,2) = ml * princ(i,1)
  -			princ(i,3) = nl * princ(i,1)
  -		end do
  -
  -		write(*,*)
  +      princ(i,1) = eigval(i)/sqrt( 1 + ml**2 + nl**2)
  +      princ(i,2) = ml * princ(i,1)
  +      princ(i,3) = nl * princ(i,1)
  +    end do
  +
  +    write(*,*)
     end subroutine eigen3d
     
     subroutine cardano(a,b,c,x1,x2,x3)
  
positive.code: !
  !======================================================================!
  module m_utilities
    implicit none
  
    integer, parameter, private :: kreal = kind(0.0d0)
    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
  
negative.code:       princnormal(:,2)=princnormal(:,3)
        princnormal(:,3)=tempv(:)
      end if
      
      do j=1,3
        do i=1,3
          princmatrix(i,j) = princnormal(i,j) * eigval(j)
  