molscat
|
README,
README.jkl,
README.v12,
dblas.f,
dblas.f.Z,
dcs_save.f,
diag_eispack.f,
ghm_save.f,
ghm_subs.f,
ghm_vib.f,
ident2disting.f,
lapack.f,
lapack.f.Z,
prbr_save.f,
prbr_vib.f,
read_isigu.f,
restrt.v12.f,
sbe.doc,
sbe_save.f,
sig_save.f,
spline.f,
syminv.f,
test1.input,
test1.v12.out,
test1.v14.out,
test2.input,
test2.v12.out,
test2.v14.out,
test3.f,
test3.input,
test3.v12.input,
test3.v12.out,
test3.v14.out,
test5.f,
test5.input,
test5.v12.out,
test5.v14.out,
test6.input,
test6.v12.out,
test6.v14.out,
test8.input,
test8.v12.out,
test8.v14.out,
timers.f,
timers_c.c,
v12.f,
v14.doc.tar,
v14.f,
v14.f.Z,
version_12.doc,
version_14.doc,
version_14.tutorial,
|
|
|
SUBROUTINE H2H2
C
C FARRAR-LEE H2-H2 MSV POTENTIAL PLUS
C ANISOTROPIC TERMS USED BY ZARUR AND RABITZ.
C
C ENTRY VINIT(I,RM,EPSIL) INITIALIZES ROUTINE FOR LAM(I)
C SETS RM, EPSIL
C ENTRY VSTAR (I,R,V) GIVES POTENTIAL FOR LAM(I) AT R.
C ENTRY VSTAR1(I,R,V) GIVES DERIVATIVE FOR LAM(I) AT R.
C ENTRY VSTAR2(I,R,V) GIVES 2ND DERIV. FOR LAM(I) AT R.
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
SAVE
DIMENSION B(4),A(4,4)
DIMENSION CONST(4)
C
C DEFINE STATEMENT FUNCTIONS
E(R)=EXP(BETA*(1D0-R))
P4(C1,C2,C3,C4,R)=C1+R*(C2+R*(C3+R*C4))
P3(C1,C2,C3,R)=C1+R*(C2+R*C3)
P2(C1,C2,R)=C1+R*C2
C
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
ENTRY VINIT(I,RM,EPSIL)
C
C SET CONSTANT FACTORS . . .
C
RM=3.49D0
EPSIL=24.17D0
RMSAVE=RM
CONST(1)=(4D0*3.1415926D0)**( 1.5D0)
CONST(2)=(.14D0/5D0)*CONST(1)
CONST(3)=CONST(2)
CONST(4)=54836D0 / EPSIL
C
IF (I.EQ.4) GO TO 1400
IF (I.LT.1 .OR. I.GT.4) GO TO 9999
C
WRITE(6,601)
601 FORMAT('0',10X,'FARRAR-LEE MSV H2-H2 POTENTIAL / RM=3.49,',
1 ' EPSIL=24.17 SET INTERNALLY.')
IF (I.GT.1) WRITE(6,606)
606 FORMAT(16X,'ANISOTROPIC TERM IS .14/5.0 TIMES ISOTROPIC TERM')
C
C THE FOLLOWING PARAMETERS MUST BE SPECIFIED INTERNALLY.
C R1,R2 IN RM . C6,C8 IN (1/CM )/ANG**N BETA
C
C SCALE PARAMETERS WITH RM, EPS.
C
R1=1.0754D0
R2=1.4D0
C6=( 57913.D0 /EPSIL)/ RM**6
C8=( 156263.D0/EPSIL)/ RM**8
BETA=6.5D0
C
WRITE(6,602) R1,BETA,R2,C6,C8
602 FORMAT(20X,'FOR R LESS THAN',F8.4,', MORSE BETA =',F9.4/
1 20X,'FOR R GREATER THAN',F8.4,', VAN DER WAAL C6, C8 =',
2 2F10.5,' (EPSIL/RM**N).')
C
C SET-UP SPLINE COEFFS. B(J,I), J=1,4 FOR LAM(I).
C ** MAR 1979 CHANGED TO INCORPORATE PRECOMPUTED SPLINE COEFFS.
C
B(1)=-.6829 4444 3121 D1
B(2)= .7211 3009 9412 D1
B(3)=-.7689 9426 2915 D0
B(4)=-.7125 2209 5040 D0
C
1100 WRITE(6,605) (B(J ),J=1,4)
605 FORMAT(20X,'CUBIC SPLINE COEFFICIENTS, TO INCREASING POWERS OF R,
1ARE AS FOLLOWS'/25X,4D16.8)
RETURN
C
1400 WRITE(6,607)
607 FORMAT('0',10X,'QUADRUPOLE-QUADRUPOLE LONG-RANGE W/ Q=.662 BUC
1KINGHAM.')
AC=.0687D0
RETURN
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
ENTRY VSTAR (I,R,V)
IF (I.EQ.4) GO TO 2400
IF (R.LE.R1) GO TO 2100
IF (R.GE.R2) GO TO 2200
V=P4(B(1),B(2),B(3),B(4),R)
GO TO 5000
2100 T1=E(R)
V=T1*(T1-2D0)
GO TO 5000
2200 RSQ=1D0/(R*R)
R6=RSQ*RSQ*RSQ
V=- R6*(C6+C8*RSQ)
GO TO 5000 99.
2400 RR=R*RMSAVE
R12=R**(-12)
RRT=RR+AC*R12
V=RRT**(-5)
GO TO 5000
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
ENTRY VSTAR1(I,R,V)
IF (I.EQ.4) GO TO 3400
IF (R.LE.R1) GO TO 3100
IF (R.GE.R2) GO TO 3200
V=P3(B(2),2D0*B(3),3D0*B(4),R)
GO TO 5000
3100 T1=E(R)
V=-2D0*BETA* T1*(T1-1D0)
GO TO 5000
3200 RSQ=1D0/(R*R)
R6=RSQ*RSQ*RSQ/R
V= R6*(6D0*C6+8D0*C8*RSQ)
GO TO 5000
3400 RR=R*RMSAVE
R12=R**(-12)
RRT=RR+AC*R12
V=-5D0*RRT**(-6)*(1D0-12D0*AC*R12/RR)
GO TO 5000
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
ENTRY VSTAR2(I,R,V)
IF (I.EQ.4) GO TO 4400
IF (R.LE.R1) GO TO 4100
IF (R.GE.R2) GO TO 4200
V=P2(2D0*B(3),6D0*B(4),R)
GO TO 5000
4100 T1=E(R)
V=T1*BETA*BETA* (4D0*T1-2D0)
GO TO 5000
4200 RSQ=1D0/(R*R)
R6=RSQ*RSQ
R6=R6*R6
V=- R6*(42D0*C6+56D0*C8*RSQ)
GO TO 5000
4400 RR=R*RMSAVE
R12=R**(-12)
RRT=RR+AC*R12
XXX=1D0-12D0*AC*R12/RR
V=-5D0*RRT**(-6)*(156D0*AC*R12/(RR*RR)-6D0*XXX*XXX/RRT)
GO TO 5000
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
C UNIFIED RETURN POINT
5000 V=V*CONST(I)
RETURN
C
C
9999 WRITE(6,699) I
699 FORMAT('0 * * * ERROR. POTENTIAL NOT DEFINED FOR SYMMETRY=',I10)
STOP
END
SUBROUTINE VRTP(IDERIV,R,VV)
C
C FARRAR-LEE H2-H2 MSV POTENTIAL PLUS
C ANISOTROPIC TERMS USED BY ZARUR AND RABITZ.
C COMMON /ANGLES/ FOR VERSION 14
C
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
SAVE
DIMENSION B(4),A(4,4)
DIMENSION CONST(4),VI(4),FACT(4)
C
COMMON/ANGLES/COSANG(7),FACTOR,IHOMO,ICNSYM,IHOMO2,ICNSY2
C
C DEFINE STATEMENT FUNCTIONS
E(R)=EXP(BETA*(1D0-R))
P4(C1,C2,C3,C4,R)=C1+R*(C2+R*(C3+R*C4))
P3(C1,C2,C3,R)=C1+R*(C2+R*C3)
P2(C1,C2,R)=C1+R*C2
C
C
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
C
IF (IDERIV.EQ.-1) THEN
RM=3.49D0
RMSAVE=RM
EPSIL=24.17D0
C SET UP CONSTANTS
CONST(1)=(4D0*3.1415926D0)**( 1.5D0)
CONST(2)=(.14D0/5D0)*CONST(1)
CONST(3)=CONST(2)
CONST(4)=54836D0 / EPSIL
R1=1.0754D0
R2=1.4D0
C6=( 57913.D0 /EPSIL)/ RM**6
C8=( 156263.D0/EPSIL)/ RM**8
BETA=6.5D0
AC=.0687D0
C SET-UP SPLINE COEFFS. B(J,I), J=1,4 FOR LAM(I).
B(1)=-.6829 4444 3121 D1
B(2)= .7211 3009 9412 D1
B(3)=-.7689 9426 2915 D0
B(4)=-.7125 2209 5040 D0
WRITE(6,601) RM,EPSIL
601 FORMAT(10X,'FARRAR-LEE MSV H2-H2 POTENTIAL'/10X,'RM=',F8.3/
1 10X,'EPSIL=',F12.2)
WRITE(6,606)
606 FORMAT(10X,'ANISOTROPIC TERM IS .14/5.0 TIMES ISOTROPIC TERM')
WRITE(6,602) R1,BETA,R2,C6,C8
602 FORMAT(10X,'FOR R LESS THAN',F8.4,', MORSE BETA =',F9.4/
1 10X,'FOR R GREATER THAN',F8.4,', VAN DER WAAL C6, C8 =',
2 2F10.5,' (EPSIL/RM**N).')
WRITE(6,607)
607 FORMAT(10X,'QUADRUPOLE-QUADRUPOLE LONG-RANGE W/ Q=.662 BU',
1 'CKINGHAM.')
WRITE(6,605) (B(J),J=1,4)
605 FORMAT(10X,'CUBIC SPLINE COEFFICIENTS, TO INCREASING ',
1 'POWERS OF R, ARE AS FOLLOWS'/15X,4D16.8)
PI=ACOS(-1.D0)
PIF=4.D0*PI
FACT(1)=1.D0/SQRT(PIF*PIF*PIF)
FACT(2)=FACT(1)*2.5D0
FACT(3)=FACT(1)
FACT(4)=FACT(1)*(45.D0/4.D0)*SQRT(1.D0/7.D1)
C
IHOMO=2
ICNSYM=2
C RETURN RM EPSIL
R=RM
VV=EPSIL
RETURN
C
ELSEIF (IDERIV.EQ.0) THEN
C
IF (R.LE.R1) GO TO 2100
IF (R.GE.R2) GO TO 2200
V=P4(B(1),B(2),B(3),B(4),R)
GO TO 5000
2100 T1=E(R)
V=T1*(T1-2D0)
GO TO 5000
2200 RSQ=1D0/(R*R)
R6=RSQ*RSQ*RSQ
V=-R6*(C6+C8*RSQ)
5000 DO 5001 I=1,3
5001 VI(I)=V*CONST(I)
C QUADRUPOLE - QUADRUPOLE TERM
RR=R*RMSAVE
R12=R**(-12)
RRT=RR+AC*R12
V=RRT**(-5)
VI(4)=V*CONST(4)
C CT1=COSANG(1)
C ST1=SQRT(1.D0-CT1*CT1)
C CT2=COSANG(2)
C ST2=SQRT(1.D0-CT2*CT2)
C P21=3.D0*CT1*CT1-1.D0
C P22=3.D0*CT2*CT2-1.D0
C ADD THE PIECES WITH COSANG() VALUES - YRR GIVES ROTOR FUNCTIONS
VV=VI(1)*YRR(0,0,0,COSANG(1),COSANG(2),COSANG(3))
1 +VI(2)*YRR(2,0,2,COSANG(1),COSANG(2),COSANG(3))
2 +VI(3)*YRR(0,2,2,COSANG(1),COSANG(2),COSANG(3))
1 +VI(4)*YRR(2,2,4,COSANG(1),COSANG(2),COSANG(3))
RETURN
ELSE
C
WRITE(6,*) ' *** VRTP (H2-H2). NO SUPPORT FOR IDERIV',IDERIV
STOP
ENDIF
END
|