C @@ 2004 12/26 MODIFY EVOU2 VER.1.3D@@ C---------------------------------------------------------------- SUBROUTINE EVOU2(IRATIO,HCPHEX,ALFA) IMPLICIT REAL(A-H,O-Y) IMPLICIT COMPLEX(Z) INCLUDE 'PACVPP' DIMENSION BONDL(KATM,KATM),BSORT(KATM*KATM) & ,IBIA(KATM*KATM),IBIB(KATM*KATM) C AUAA = 0.529177D0 AUAA2 = AUAA*AUAA AUAA3 = AUAA2*AUAA AUEV = 27.2D0 C REWIND 11 REWIND 20 REWIND 25 WRITE (20,300) EF 300 FORMAT(1H ,'E-K CURVE EF =',F12.6) DO 100 NNN=1,KV3 WRITE(20,303) VX(NNN),VY(NNN),VZ(NNN) 303 FORMAT((1H ,3(F10.6,2X))) WRITE(20,302) (EKO(I,NNN),I=1,KEG) 302 FORMAT((1H ,5(F10.6,2X))) 100 CONTINUE C'''''WRITE 11!''''''''''''''''''''''''''''''''''''''''''''''''''' WRITE(11,399) ITEMAX,PINIT,CONV,GMAX,ICONT 399 FORMAT(' ',I6,F8.4,D12.4,F8.4,I4) DO 400 I=1,3 WRITE(11,500) ALTV(1,I),ALTV(2,I),ALTV(3,I) 400 CONTINUE WRITE(11,*) KCOTYP,' COORDINATES 0:NORMALIZED 1:CARTESIAN ' IF(KCOTYP.EQ.0) THEN DO 410 IA=1,KATM PPOS(IA) = ALINV(1,1)*CATX(IA) & + ALINV(1,2)*CATY(IA) + ALINV(1,3)*CATZ(IA) QPOS(IA) = ALINV(2,1)*CATX(IA) & + ALINV(2,2)*CATY(IA) + ALINV(2,3)*CATZ(IA) RPOS(IA) = ALINV(3,1)*CATX(IA) & + ALINV(3,2)*CATY(IA) + ALINV(3,3)*CATZ(IA) WRITE (6,*) CATX(IA),CATY(IA),CATZ(IA) WRITE (6,*) PPOS(IA),QPOS(IA),RPOS(IA) 410 CONTINUE WRITE(11,500)(PPOS(IA),QPOS(IA),RPOS(IA),IA=1,KATM) WRITE (6,*) ALINV(1,1),ALINV(1,2),ALINV(1,3) WRITE (6,*) ALINV(2,1),ALINV(2,2),ALINV(2,3) WRITE (6,*) ALINV(3,1),ALINV(3,2),ALINV(3,3) ELSE WRITE(11,500)(CATX(IA),CATY(IA),CATZ(IA),IA=1,KATM) END IF NNATM=0 DO 420 IT=1,KTYP NNATM=NNATM+IATOM(IT) WRITE(11,*) IATOM(IT),NLSPD(IT) WRITE(11,502) AICHG(NNATM),ALFA WRITE(11,502) ACHG(IT),AC(IT,1),AC(IT,2),BC(IT,1),BC(IT,2) 420 CONTINUE 500 FORMAT(3(F20.10)) 502 FORMAT(5(F15.8)) WRITE(11,503) HCPHEX,IRATIO 503 FORMAT(F12.6,I6) C C BORH (a.u.) ---> A C a.u. ---> eV C c/a RATIO C WRITE(6,*) "A.U. : ATOMIC UNIT = BORH" WRITE(6,*) "AA : ANGSTROME = 0.529177*A.U." WRITE(25,*) "A.U. : ATOMIC UNIT = BORH" WRITE(25,*) "AA : ANGSTROME = 0.529177*A.U." WRITE(6,*) "VOLUME OF UNIT CELL = ",UNIVOL," A.U.^3" WRITE(25,*) "VOLUME OF UNIT CELL = ",UNIVOL," A.U.^3" WRITE(6,*) "VOLUME OF UNIT CELL = ",AUAA3*UNIVOL," AA^3" WRITE(25,*) "VOLUME OF UNIT CELL = ",AUAA3*UNIVOL," AA^3" WRITE(6,*) "ALTV : A.U." WRITE(25,*) "ALTV : A.U." DO 1400 I=1,3 WRITE(6,500) ALTV(1,I),ALTV(2,I),ALTV(3,I) WRITE(25,500) ALTV(1,I),ALTV(2,I),ALTV(3,I) 1400 CONTINUE WRITE(6,*) "ALTV : A.U. --> AA" WRITE(25,*) "ALTV : A.U. --> AA" DO 1401 I=1,3 WRITE(6,500) AUAA*ALTV(1,I),AUAA*ALTV(2,I),AUAA*ALTV(3,I) WRITE(25,500) AUAA*ALTV(1,I),AUAA*ALTV(2,I),AUAA*ALTV(3,I) 1401 CONTINUE C WRITE (25,*) "C <-- ALTV(1,1)" WRITE (6,*) "C <-- ALTV(1,1)" WRITE (25,*) "B <-- ALTV(2,2)" WRITE (6,*) "B <-- ALTV(2,2)" WRITE (25,*) "A <-- ALTV(3,3)" WRITE (6,*) "A <-- ALTV(3,3)" C RCB = ALTV(1,1)/ALTV(2,2) RCA = ALTV(1,1)/ALTV(3,3) RBC = ALTV(2,2)/ALTV(3,3) WRITE (25,*) "C/B RATIO = ",RCB," <-- HEXAGONAL C/A" WRITE (6,*) "C/B RATIO = ",RCB," <-- HEXAGONAL C/A" WRITE (25,*) "C/A RATIO = ",RCA WRITE (6,*) "C/A RATIO = ",RCA WRITE (25,*) "B/A RATIO = ",RBC WRITE (6,*) "B/A RATIO = ",RBC C WRITE (6,*) "CATX,Y,Z : A.U." DO 1410 IA=1,KATM C PPOS(IA) = ALINV(1,1)*CATX(IA) C & + ALINV(1,2)*CATY(IA) + ALINV(1,3)*CATZ(IA) C QPOS(IA) = ALINV(2,1)*CATX(IA) C & + ALINV(2,2)*CATY(IA) + ALINV(2,3)*CATZ(IA) C RPOS(IA) = ALINV(3,1)*CATX(IA) C & + ALINV(3,2)*CATY(IA) + ALINV(3,3)*CATZ(IA) WRITE (6,500) CATX(IA),CATY(IA),CATZ(IA) 1410 CONTINUE WRITE (6,*) "PQRPOS" WRITE (25,*) "PQRPOS" DO 1411 IA=1,KATM WRITE (6,500) PPOS(IA),QPOS(IA),RPOS(IA) WRITE (25,500) PPOS(IA),QPOS(IA),RPOS(IA) 1411 CONTINUE WRITE (6,*) "CATX,Y,Z : A.U. --> AA" WRITE (25,*)"CATX,Y,Z : A.U. --> AA" DO 1412 IA=1,KATM WRITE (6,500) AUAA*CATX(IA),AUAA*CATY(IA),AUAA*CATZ(IA) WRITE (25,500) AUAA*CATX(IA),AUAA*CATY(IA),AUAA*CATZ(IA) 1412 CONTINUE WRITE (25,*)"CATX,Y,Z : A.U." WRITE(25,500)(CATX(IA),CATY(IA),CATZ(IA),IA=1,KATM) WRITE (25,*)"PQRPOS" WRITE(25,500)(PPOS(IA),QPOS(IA),RPOS(IA),IA=1,KATM) C WRITE (6,*) "BOND LENGTH <--- CATX : A.U." WRITE (25,*) "BOND LENGTH <--- CATX : A.U." DO 1600 IA=1,KATM DO 1610 IB=IA+1,KATM BLX = CATX(IB) - CATX(IA) BLY = CATY(IB) - CATY(IA) BLZ = CATZ(IB) - CATZ(IA) BLT = BLX*BLX + BLY*BLY + BLZ*BLZ BLT = DSQRT(BLT) BONDL(IA,IB) = BLT WRITE (6,*) "IA - IB = ",IA,IB," BOND LENGTH = ",BLT," a.u." WRITE (25,*) "IA - IB = ",IA,IB," BOND LENGTH = ",BLT," a.u." 1610 CONTINUE 1600 CONTINUE C WRITE (6,*) "BOND LENGTH <--- CATX : AA" WRITE (25,*) "BOND LENGTH <--- CATX : AA" DO 1601 IA=1,KATM DO 1611 IB=IA+1,KATM BLT = AUAA*BONDL(IA,IB) WRITE (6,*) "IA - IB = ",IA,IB," BOND LENGTH = ",BLT," AA" WRITE (25,*) "IA - IB = ",IA,IB," BOND LENGTH = ",BLT," AA" 1611 CONTINUE 1601 CONTINUE C C SEARCH MINIMUM BOND LENGTH C BMIN = BONDL(1,2) DO 1602 IA=1,KATM DO 1612 IB=IA+1,KATM BLT = BONDL(IA,IB) IF (BLT .LE. BMIN) THEN BMIN = BLT IAMIN= IA IBMIN= IB END IF 1612 CONTINUE 1602 CONTINUE WRITE(6,*) "IA,IB = ",IAMIN,IBMIN," MIN OF BL = ",BMIN," a.u." WRITE(25,*) "IA,IB = ",IAMIN,IBMIN," MIN OF BL = ",BMIN," a.u." WRITE(6,*) "IA,IB = ",IAMIN,IBMIN," MIN OF BL = ",AUAA*BMIN," AA" WRITE(25,*) "IA,IB = ",IAMIN,IBMIN," MIN OF BL = ",AUAA*BMIN," AA" C C SORT BOND LENGTH C I = 1 DO 1603 IA=1,KATM DO 1613 IB=IA+1,KATM BSORT(I) = BONDL(IA,IB) IBIA(I) = IA IBIB(I) = IB I = I + 1 1613 CONTINUE 1603 CONTINUE IMAX = I - 1 WRITE(6,*) "NUMBER OF BONDS = ",IMAX WRITE(25,*) "NUMBER OF BONDS = ",IMAX DO 1604 J = 1,IMAX DO 1614 K = J,IMAX IF (BSORT(J) .LT. BSORT(K)) THEN BLT = BSORT(J) IBSA= IBIA(J) IBSB= IBIB(J) BSORT(J) = BSORT(K) IBIA(J) = IBIA(K) IBIB(J) = IBIB(K) BSORT(K) = BLT IBIA(K) = IBSA IBIB(K) = IBSB END IF 1614 CONTINUE 1604 CONTINUE C WRITE(6,*) "RESULTS OF SORT OF BOND LENGTH" WRITE(25,*) "RESULTS OF SORT OF BOND LENGTH" DO 1605 J = 1,IMAX BLT = BSORT(J) IA = IBIA(J) IB = IBIB(J) WRITE (6,*) "IA - IB = ",IA,IB," BOND LENGTH = ",BLT," a.u." WRITE (25,*) "IA - IB = ",IA,IB," BOND LENGTH = ",BLT," a.u." 1605 CONTINUE C''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' RETURN END