SUBROUTINE PES(R,V) IMPLICIT REAL*8(A-H,O-Z) DIMENSION R(3) R1=R(1) R2=R(2) R3=R(3) V=VH2O_MC(R1,R2,R3) +2.78920D0/27.211652D0 !ZERO OF ENERGY FOR THE REACTANTS O(1D)+H2 C V=VH2O_MC(R1,R2,R3) +4.6211D0/27.211652D0 !zero of energy at H+OH entrance channel RETURN END SUBROUTINE DPES(R,DER) IMPLICIT REAL*8(A-H,O-Z) DIMENSION R(3),DER(3) R1=R(1) R2=R(2) R3=R(3) DO I=1,3 DER(I)=DVH2O_MC(R1,R2,R3,I) ENDDO xx=der(2) der(2)=der(3) der(3)=xx RETURN END SUBROUTINE VDIAT(RI,V2,I) IMPLICIT REAL*8 (A-H,O-Z) IF(I.EQ.2)THEN !cambio affinche' I=2 siano i reagenti V2=VHH(RI) + 4.7472D0/27.211652D0 !questo per portare lo zero della energia a equilibrio ELSE IF (I.EQ.1) THEN V2=VOH(RI) + 4.6211D0/27.211652D0 ELSE V2=VOH(RI) + 4.6211D0/27.211652D0 ENDIF RETURN END FUNCTION VH2O_MC(R1,R2,R3) IMPLICIT REAL*8(A-H,O-Z) DIMENSION R(3),RM(3),S(3) COMMON/UCOR/VO C********************************************* C SYSTEM OF COORDINATES: C R(1) O---H(a) C R(2) O---H(b) C R(3) H(a)---H(b) R(1)=R1 R(2)=R3 R(3)=R2 VH2O_MC=VO*F(R)/27.211652D0+VOH(R(1))+VHHO(R) + VHH(R(3)) 1 +VOH(R(2)) END FUNCTION DVH2O_MC(R1,R2,R3,IDR) IMPLICIT REAL*8(A-H,O-Z) DIMENSION R(3),RM(3),S(3) COMMON/UCOR/VO C********************************************* C SYSTEM OF COORDINATES: C R(1) O---H(a) C R(2) O---H(b) C R(3) H(a)---H(b) R(1)=R1 R(2)=R3 R(3)=R2 c DVH2O_MC=VO*DF(R,IDR)/27.211652D0+DVOH(R(1)) c 1+DVHHO(R,IDR)+DVHH(R(3))+DVOH(R(2)) DVH2O_MC=VO*DF(R,IDR)/27.211652D0+DVHHO(R,IDR) IF(IDR.EQ.1)THEN DVH2O_MC=DVH2O_MC+DVOH(R(1)) ELSE IF(IDR.EQ.2)THEN DVH2O_MC=DVH2O_MC+DVOH(R(2)) ELSE DVH2O_MC=DVH2O_MC+DVHH(R(3)) ENDIF END FUNCTION VHHO(R) IMPLICIT REAL*8(A-H,O-Z) DIMENSION R(3),C1(3),C2(3,3),C3(3,3,3),C4(3,3,3,3) DIMENSION GAMA(3),REF(3),RO(3) COMMON/COE1/C1 COMMON/COE2/C2 COMMON/COE3/C3 COMMON/COE4/C4 COMMON/GAMMA/GAMA,VIO COMMON/GREF/REF DO K=1,3 RO(K)=R(K)*0.529177D0-REF(K) ENDDO POL=0.0D0 DO I=1,3 POL=POL+(C1(I)*RO(I)) ENDDO DO I=1,3 DO J=I,3 POL=POL+(C2(I,J)*RO(I)*RO(J)) ENDDO ENDDO DO I=1,3 DO J=I,3 DO K=J,3 POL=POL+(C3(I,J,K)*RO(I)*RO(J)*RO(K)) ENDDO ENDDO ENDDO DO I=1,3 DO J=I,3 DO K=J,3 DO L=K,3 POL=POL+(C4(I,J,K,L)*RO(I)*RO(J)*RO(K)*RO(L)) ENDDO ENDDO ENDDO ENDDO DEC=1.D0 DO I=1,3 THETA=GAMA(I)*RO(I)/2.D0 DEC=DEC*(1.D0-TANH(THETA)) ENDDO VHHO=VIO*(1.D0+POL)*DEC VHHO=VHHO/27.211652D0 RETURN END C FUNCTION DVHHO(R, IDR) C::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: C::: Derivative of the Three body MC PES C:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: IMPLICIT REAL*8(A-H,O-Z) DIMENSION R(3),C1(3),C2(3,3),C3(3,3,3),C4(3,3,3,3) DIMENSION GAMA(3),REF(3),RO(3) COMMON/COE1/C1 COMMON/COE2/C2 COMMON/COE3/C3 COMMON/COE4/C4 COMMON/GAMMA/GAMA,VIO COMMON/GREF/REF DO K=1,3 RO(K)=R(K)*0.529177D0-REF(K) !scaled distance in A ENDDO POL=0.0D0 DO I=1,3 POL=POL+(C1(I)*RO(I)) ENDDO DO I=1,3 DO J=I,3 POL=POL+(C2(I,J)*RO(I)*RO(J)) ENDDO ENDDO DO I=1,3 DO J=I,3 DO K=J,3 POL=POL+(C3(I,J,K)*RO(I)*RO(J)*RO(K)) ENDDO ENDDO ENDDO DO I=1,3 DO J=I,3 DO K=J,3 DO L=K,3 POL=POL+(C4(I,J,K,L)*RO(I)*RO(J)*RO(K)*RO(L)) ENDDO ENDDO ENDDO ENDDO DEC=1.D0 DO I=1,3 THETA=GAMA(I)*RO(I)/2.D0 DEC=DEC*(1.D0-TANH(THETA)) ENDDO VHHO=VIO*(1.D0+POL)*DEC VHHO=VHHO/27.211652D0 ARGCOS1 = (GAMA(1)*RO(1)/2.0D0) !TO AVOID THE COSH PROBLEM IF (ARGCOS1 .GE. 100.)THEN ARGOCOS1 = 100. END IF ARGCOS2 = (GAMA(2)*RO(2)/2.0D0) !TO AVOID THE COSH PROBLEM IF (ARGCOS2 .GE. 100.)THEN ARGOCOS2 = 100. END IF ARGCOS3 = (GAMA(3)*RO(3)/2.0D0) !TO AVOID THE COSH PROBLEM IF (ARGCOS3 .GE. 100.)THEN ARGOCOS3 = 100. END IF D1POL =VIO*(C1(1)+2.0D0*C2(1,1)*RO(1)+C2(1,2)*RO(2)+C2(1,3)*RO(3) $ +3.0D0*C3(1,1,1)*RO(1)**2 +2.0D0*C3(1,1,2)*RO(1)*RO(2) $ +2.0D0*C3(1,1,3)*RO(1)*RO(3) $ +C3(1,2,2)*RO(2)**2+C3(1,2,3)*RO(2)*RO(3)+C3(1,3,3)*RO(3)**2 % +4.0D0*C4(1,1,1,1)*RO(1)**3 +3.0D0*C4(1,1,1,2)*RO(1)**2*RO(2) $ +3.0D0*C4(1,1,1,3)*RO(1)**2*RO(3) $ +2.0D0*C4(1,1,2,2)*RO(1)*RO(2)**2 + 2.0D0*C4(1,1,2,3) $ *RO(1)*RO(2)*RO(3) +2.0D0*C4(1,1,3,3)*RO(1)*RO(3)**2 $ +C4(1,2,2,2)*RO(2)**3 +C4(1,2,2,3)*RO(2)**2*RO(3) $ +C4(1,2,3,3)*RO(2)*RO(3)**2 $ +C4(1,3,3,3)*RO(3)**3)*DEC $- VIO*(1.D0+POL)*GAMA(1)/ $ (2.0D0*COSH(ARGCOS1)**2) $*(1.D0-TANH(GAMA(2)*RO(2)/2.0D0))*(1.D0-TANH(GAMA(3)*RO(3)/2.0D0)) D2POL = VIO*(C1(2)+2.0D0*C2(2,2)*RO(2)+C2(1,2)*RO(1)+C2(2,3)*RO(3) $ +3.0D0*C3(2,2,2)*RO(2)**2 +2.0D0*C3(1,2,2)*RO(1)*RO(2) $ +2.0D0*C3(2,2,3)*RO(2)*RO(3) $ +C3(1,1,2)*RO(1)**2+C3(1,2,3)*RO(1)*RO(3) +C3(2,3,3)*RO(3)**2 % +4.0D0*C4(2,2,2,2)*RO(2)**3 +3.0D0*C4(1,2,2,2)*RO(2)**2*RO(1) $ +3.0D0*C4(2,2,2,3)*RO(2)**2*RO(3) $ +2.0D0*C4(1,1,2,2)*RO(2)*RO(1)**2 + 2.0D0*C4(1,2,2,3) $ *RO(1)*RO(2)*RO(3) +2.0D0*C4(2,2,3,3)*RO(2)*RO(3)**2 $ +C4(1,1,1,2)*RO(1)**3 +C4(1,1,2,3)*RO(1)**2*RO(3) $ +C4(1,2,3,3)*RO(1)*RO(3)**2 $ +C4(2,3,3,3)*RO(3)**3)*DEC - VIO*(1.D0+POL)*GAMA(2)/ $ (2.0D0*COSH(ARGCOS2)**2) $*(1.D0-TANH(GAMA(1)*RO(1)/2.0D0))*(1.D0-TANH(GAMA(3)*RO(3)/2.0D0)) D3POL = VIO*(C1(3)+2.0D0*C2(3,3)*RO(3)+C2(1,3)*RO(1)+C2(2,3)*RO(2) $ +3.0D0*C3(3,3,3)*RO(3)**2 +2.0D0*C3(1,3,3)*RO(1)*RO(3) $ +2.0D0*C3(2,3,3)*RO(2)*RO(3) $ +C3(2,2,3)*RO(2)**2+C3(1,2,3)*RO(1)*RO(2) +C3(1,1,3)*RO(1)**2 $ +4.0D0*C4(3,3,3,3)*RO(3)**3 +3.0D0*C4(2,3,3,3)*RO(3)**2*RO(2) $ +3.0D0*C4(1,3,3,3)*RO(3)**2*RO(1) $ +2.0D0*C4(2,2,3,3)*RO(3)*RO(2)**2 + 2.0D0*C4(1,2,3,3) $ *RO(1)*RO(2)*RO(3) +2.0D0*C4(1,1,3,3)*RO(3)*RO(1)**2 $ +C4(2,2,2,3)*RO(2)**3 +C4(1,2,2,3)*RO(2)**2*RO(1) $ +C4(1,1,2,3)*RO(2)*RO(1)**2 $ +C4(1,1,1,3)*RO(1)**3)*DEC - VIO*(1.D0+POL)*GAMA(3)/ $ (2.0D0*COSH(ARGCOS3)**2) $*(1.D0-TANH(GAMA(1)*RO(1)/2.0D0))*(1.D0-TANH(GAMA(2)*RO(2)/2.0D0)) IF(IDR .EQ. 1) THEN DVHHO = D1POL/27.211652D0*0.529177D0 ELSE IF(IDR .EQ. 2) THEN DVHHO = D2POL/27.211652D0*0.529177D0 ELSE DVHHO = D3POL/27.211652D0*0.529177D0 END IF RETURN END C BLOCK DATA H2O IMPLICIT REAL*8(A-H,O-Z) DIMENSION C1(3),C2(3,3),C3(3,3,3),C4(3,3,3,3) DIMENSION GAMA(3),REF(3) COMMON/SFF/ALFA COMMON/BDPOTOH/REQOH,DOH,AOH1,AOH2,AOH3 COMMON/BDPOTHH/REQHH,DHH,AHH1,AHH2,AHH3 COMMON/COE1/C1 COMMON/COE2/C2 COMMON/COE3/C3 COMMON/COE4/C4 COMMON/GAMMA/GAMA,VIO COMMON/GREF/REF COMMON/UCOR/VO DATA ALFA/1.9018D0/ DATA REQOH,DOH,AOH1,AOH2,AOH3/0.9696D0,4.6211D0, 1 4.507D0,4.884D0,3.795D0/ DATA REQHH,DHH,AHH1,AHH2,AHH3/0.7414D0,4.7472D0, 1 3.961D0,4.064D0,3.574D0/ DATA C1/-13.488D0,-13.488D0,-34.802D0/ DATA C2(1,1),C2(1,2),C2(1,3),C2(2,2),C2(2,3),C2(3,3)/ 1 65.063D0,123.533D0,-429.933D0,65.063D0,-429.933D0,414.907D0/ DATA C3(1,1,1),C3(1,1,2),C3(1,1,3),C3(1,2,2),C3(1,2,3), 1 C3(1,3,3),C3(2,2,2),C3(2,2,3),C3(2,3,3),C3(3,3,3)/ 2 114.512D0,-374.139D0,-187.587D0,-374.139D0,-271.062D0, 3 209.543D0,114.512D0,-187.587D0,209.543D0,-56.338D0/ DATA C4(1,1,1,1),C4(1,1,1,2),C4(1,1,1,3),C4(1,1,2,2), 1 C4(1,1,2,3),C4(1,1,3,3),C4(1,2,2,2),C4(1,2,2,3), 2 C4(1,2,3,3),C4(1,3,3,3),C4(2,2,2,2),C4(2,2,2,3), 3 C4(2,2,3,3),C4(2,3,3,3),C4(3,3,3,3)/189.824D0, 4 502.244D0,-116.088D0,-560.202D0,139.484D0,-255.785D0, 5 502.244D0,139.484D0,153.098D0,-760.070D0,189.824D0, 6 -116.088D0,-255.785D0,-760.070D0,626.320D0/ DATA GAMA,VIO/2.6D0,2.6D0,1.5D0,0.01892D0/ DATA REF/0.9572D0,0.9572D0,1.5139D0/ DATA VO/1.958D0/ END FUNCTION F(R) C:: 1 body term IMPLICIT REAL*8(A-H,O-Z) COMMON/SFF/ALFA COMMON/GREF/REF DIMENSION R(3),RO(3),REF(3) DO I=1,3 RO(I)=R(I)*0.529177D0-REF(I) END DO THETA=(ALFA/2.D0)*(3.D0*RO(3)-RO(1)-RO(2)) F=0.5D0*(1.D0-TANH(THETA)) RETURN END FUNCTION DF(R,IDR) C:: Derivative of 1 body term IMPLICIT REAL*8(A-H,O-Z) COMMON/SFF/ALFA !1/A COMMON/GREF/REF DIMENSION R(3),RO(3),REF(3) PARAMETER (ang2au = 1.8897269D0) DO I=1,3 RO(I)=R(I)*0.529177D0-REF(I) !scaled distance in A END DO RO1 = RO(1) RO2 = RO(2) RO3 = RO(3) ARGCOS = 0.5D0*ALFA*(3.0D0*RO3 - RO1 - RO2) !TO AVOID THE COSH PROBLEM IF(ARGCOS .GE. 100.) THEN ARGCOS = 100. ENDIF CSH = 1.0D0/COSH(ARGCOS)**2 IF(IDR .EQ. 1) THEN DF = (ALFA/4.0D0*CSH) * 0.529177D0 ELSE IF (IDR .EQ. 2) THEN DF = ALFA/4.0D0*CSH / ang2au ELSE DF = -3.D0*ALFA/4.0D0*CSH /ang2au END IF RETURN END FUNCTION VOH(R) IMPLICIT REAL*8(A-H,O-Z) COMMON/BDPOTOH/REQOH,DOH,AOH1,AOH2,AOH3 RO=R*0.529177D0-REQOH VOH_ER=-DOH*(1.D0+AOH1*RO+AOH2*RO**2+AOH3*RO**3)* * EXP(-AOH1*RO) VOH_ER=VOH_ER/27.211652D0 !transformacao de Eh para eV VOH=VOH_ER RETURN END FUNCTION DVOH(R) IMPLICIT REAL*8(A-H,O-Z) COMMON/BDPOTOH/REQOH,DOH,AOH1,AOH2,AOH3 RO=R*0.529177D0-REQOH DVOH_ER=-DOH*(AOH1 + 2.0D0*AOH2*RO + 3.0D0*AOH3*RO**2)* . EXP(-AOH1*RO) . +DOH*(1.D0+AOH1*RO+AOH2*RO**2+AOH3*RO**3)*EXP(-AOH1*RO)*AOH1 DVOH_ER=DVOH_ER/27.211652D0*0.529177D0 DVOH=DVOH_ER RETURN END FUNCTION VHH(R) IMPLICIT REAL*8(A-H,O-Z) COMMON/BDPOTHH/REQHH,DHH,AHH1,AHH2,AHH3 RO=R*0.529177D0-REQHH VHH_ER=-DHH*(1.D0+AHH1*RO+AHH2*RO**2+AHH3*RO**3)* * EXP(-AHH1*RO) VHH_ER=VHH_ER/27.211652D0 VHH=VHH_ER RETURN END FUNCTION DVHH(R) IMPLICIT REAL*8(A-H,O-Z) COMMON/BDPOTHH/REQHH,DHH,AHH1,AHH2,AHH3 RO=R*0.529177D0-REQHH DVHH_ER=-DHH*(AHH1 + 2.0D0*AHH2*RO + 3.0D0*AHH3*RO**2)* . EXP(-AHH1*RO) . +DHH*(1.D0+AHH1*RO+AHH2*RO**2+AHH3*RO**3)*EXP(-AHH1*RO)*AHH1 DVHH_ER=DVHH_ER/27.211652D0*0.529177D0 DVHH=DVHH_ER RETURN END