1C...............................................................
2C
3      subroutine read_ev(ii2,nat,ivmin,ivmax,evr,freq)
4C
5C     reads selected modes only from ii2 ('vector' file),
6C     check for consistency, and keeps selected modes only
7C     (ivmin to ivmax)
8C
9      implicit none
10      integer ii2,ii,nat,iat,ivmin,ivmax,iev,idum
11      double precision qq(3),dummy(3),small,
12     .                 freq(ivmin:ivmax),evr(3,nat,ivmin:ivmax)
13      data small/10.e-4/
14C
15      rewind (ii2)
16      read (ii2,100,err=301)   !  leading line
17      read (ii2,101,err=301) (qq(ii),ii=1,3)
18      if (sqrt(qq(1)**2+qq(2)**2+qq(3)**2).gt.small) then
19        write (6,*) ' Cannot vizualize for q.ne.0 !'
20        stop
21      endif
22      do iev=1,nat*3
23        read (ii2,102,err=302,end=401) idum
24        if (idum.ne.iev) then
25          write (6,*) ' Stop in read_ev: expected eigenvector ',iev,
26     .                ' but found ',idum
27          stop
28        endif
29        if (iev.lt.ivmin.or.iev.gt.ivmax) then  ! -- skip these modes
30          read (ii2,103,err=303) dummy(1)
31          read (ii2,100)   !  Eigenvector, real part follows
32          do iat=1,nat
33            read (ii2,104,err=304) (dummy(ii),ii=1,3)
34          enddo
35          read (ii2,100)   !  Eigenvector, imag part follows
36          do iat=1,nat
37            read (ii2,104,err=305) (dummy(ii),ii=1,3)
38          enddo
39	    if ((dummy(1)**2+dummy(2)**2+dummy(3)**2).gt.small) then
40              print *,' For iev =',iev,' iat =',iat,
41     .                ' Imag. part of eigenvector is not zero!',
42     .                ' - Unsuited for visualization'
43              stop
44            endif
45       else  ! --- selected modes...
46          read (ii2,103,err=303) freq(iev)
47          read (ii2,100)   !  Eigenvector, real part follows
48          do iat=1,nat
49            read (ii2,104,err=304) (evr(ii,iat,iev),ii=1,3)
50          enddo
51          read (ii2,100)   !  Eigenvector, imag part follows
52          do iat=1,nat
53            read (ii2,104,err=305) (dummy(ii),ii=1,3)
54          enddo
55	    if ((dummy(1)**2+dummy(2)**2+dummy(3)**2).gt.small) then
56              print *,' For iev =',iev,' iat =',iat,
57     .                ' Imag. part of eigenvector is not zero!',
58     .                ' - Unsuited for visualization'
59              stop
60            endif
61       endif
62      enddo
63      return
64  301 print *,' Error in 1st or 2d line of .vector file'
65      stop
66  302 print *,' Error reading Eigenvector line, last iev=',iev
67      stop
68  303 print *,' Error reading Frequency line, iev=',iev
69      stop
70  304 print *,' Error reading real part of eigenvector ',iev,
71     .        ' iat=',iat
72      stop
73  305 print *,' Error reading imag part of eigenvector ',iev,
74     .        ' iat=',iat
75      stop
76  401 print *,' End of file while expecting eigenvector ',iev
77      stop
78  100 format()
79  101 format(15x,3f12.6)
80  102 format(14x,i6)
81  103 format(14x,f13.6)
82  104 format(3e12.4)
83      end
84