Code: Select all
170 if (present(symrec)) then
171 if(.not. present(nsym)) then
172 TETRA_ERROR("need both symrec and nsym arguments together")
173 end if
174 do ikpt=1,nkpt
175 ! itim == 1 for positive, and itim==2 gives Kramers opposite of k-point
176 ! favor the former by looping it last
177 do itim = timrev, 1, -1
178 do isym = 1, nsym
179 symkpt = (-1)**(timrev+1) * matmul(symrec(:,:,isym), kpt(:, ikpt))
180 symkptrank = krank%get_rank(symkpt(:))
181 krank%invrank(symkptrank) = ikpt
182 end do
183 end do
184 end do
185 end if
Code: Select all
149 timrev = 2
150 krank%time_reversal = .true.
151 if (present(time_reversal)) then
152 if (.not. time_reversal) timrev = 1
153 end if