[Wien] [WIEN]A question on Procedure of Optical calculation

Jun Jiang czjiangjun at gmail.com
Thu Mar 15 15:58:30 CET 2007


Dear Professor:
   I have been confused about the segment of SUBROUTINE OUTSYM(O,nb1,nb2)
showed below in WIEN2K/SRC_Optic/outmat.f.

      do 772 l=1,iord
         do ii=1,3
         o1(ii)=0.0
         end do
       do   i=1,3
       do  ii=1,3
       o1(i)=o1(i)+opIMAT(ii,i,l)*O(ii)
       end do
       end do
         o2(1)=o2(1)+o1(1)*conjg(o1(1))
         o2(2)=o2(2)+o1(2)*conjg(o1(2))
         o2(3)=o2(3)+o1(3)*conjg(o1(3))
       if (det(l).LT.0) then
         o2(4)=o2(4)+conjg(o1(2))*o1(1)
         o2(5)=o2(5)+conjg(o1(3))*o1(1)
         o2(6)=o2(6)+conjg(o1(3))*o1(2)
                        else
         o2(4)=o2(4)+o1(2)*conjg(o1(1))
         o2(5)=o2(5)+o1(3)*conjg(o1(1))
         o2(6)=o2(6)+o1(3)*conjg(o1(2))
       end if
772   continue


   My First quyestion is that
       do   i=1,3
       do  ii=1,3
       o1(i)=o1(i)+opIMAT(ii,i,l)*O(ii)
       end do
       end do
is obviously a projecting operation.Why is it necessary?

  The second question is, if the first answer is Yes,then Why the cycling
body denoted by "do 722" must include  the below part:

         o2(1)=o2(1)+o1(1)*conjg(o1(1))
         o2(2)=o2(2)+o1(2)*conjg(o1(2))
         o2(3)=o2(3)+o1(3)*conjg(o1(3))
       if (det(l).LT.0) then
         o2(4)=o2(4)+conjg(o1(2))*o1(1)
         o2(5)=o2(5)+conjg(o1(3))*o1(1)
         o2(6)=o2(6)+conjg(o1(3))*o1(2)
                        else
         o2(4)=o2(4)+o1(2)*conjg(o1(1))
         o2(5)=o2(5)+o1(3)*conjg(o1(1))
         o2(6)=o2(6)+o1(3)*conjg(o1(2))
       end if

   Thank you very much!Best regards!
                                            Sincerely Jun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20070315/e208b480/attachment.html


More information about the Wien mailing list