anchor.diff:  complex(kind=4), intent(inout), dimension(N,N) :: A
   complex(kind=4), intent(out), dimension(N) :: W
   integer(kind=4), intent(out) :: INFO
  +real(kind=4), dimension(2*N) :: RWORK
   complex(kind=4), allocatable, dimension(:,:) :: VL,VR
   complex(kind=4), allocatable, dimension(:) :: WORK
   integer(kind=4) :: LWORK, LDVL, LDVR
   
   
   
  -if(JOBR.eq.'V'.and.JOBR.eq.'V') then
  +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))
  +LDVL=N; allocate(VL(N,LDVL))
   else
   LDVL=1; allocate(VL(1,1))
   end if
   
   if(JOBR.eq.'V') then
  -LDVR=N; allocate(VL(LDVR,N))
  +LDVR=N; allocate(VR(N,LDVR))
   else
   LDVR=1; allocate(VR(1,1))
   end if
  
positive.code: 
  
  allocate(WORK(1))
  call cgeev(JOBL,JOBR,N,A,N,W,VL,LDVL,VR,LDVR,WORK,-1,INFO)
  if(info.eq.0) then
  LWORK=int(WORK(1))
  deallocate(WORK)
  allocate(WORK(LWORK))
  else
  return
  end if
  
  call cgeev(JOBL,JOBR,N,A,N,W,VL,LDVL,VR,LDVR,WORK,LWORK,INFO)
  
  if(JOBL.eq.'V') then
  A=VL
  
negative.code: end if
  
  if(JOBR.eq.'V') then
  LDVR=N; allocate(VR(N,LDVR))
  else
  LDVR=1; allocate(VR(1,1))
  end if
  