[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