anchor.diff:  
   allocate(WORK(1))
   call zheev(JOBZ,UPLO,N,A,N,W,WORK,-1,RWORK,INFO)
  -print*, WORK(1)
   if(info.eq.0) then
   LWORK=int(WORK(1))
   if(LWORK.le.0) then
  
positive.code: end if
  
  if(JOBR.eq.'V') then
  LDVR=N; allocate(VL(LDVR,N))
  else
  LDVR=1; allocate(VR(1,1))
  end if
  
negative.code: complex(kind=8), intent(inout), dimension(N,N) :: A
  complex(kind=8), intent(out), dimension(N) :: W
  integer(kind=4), intent(out) :: INFO
  real(kind=8), dimension(2*N) :: RWORK
  complex(kind=8), allocatable, dimension(:,:) :: VL,VR
  complex(kind=8), allocatable, dimension(:) :: WORK
  integer(kind=4) :: LWORK, LDVL, LDVR
  
  
  
  if(JOBR.eq.'V'.and.JOBL.eq.'V') then
  info=2790
  return
  end if
  
  if(JOBL.eq.'V') then
  LDVL=N; allocate(VL(LDVL,N))
  else
  LDVL=1; allocate(VL(1,1))
  end if
  
  if(JOBR.eq.'V') then
  LDVR=N; allocate(VR(LDVR,N))
  else
  LDVR=1; allocate(VR(1,1))
  end if
  