C C $Id: getpar.F,v 1.6 1998/07/16 16:39:55 jjv5 Exp arjan $ C C------------------------------------------------------------------------ SUBROUTINE GETPAR C C ASSIGNS SEMIEMPIRICAL PARAMETERS BASED ON WHICH HAMILTONIAN THE C USER HAS SELECTED. C IMPLICIT DOUBLE PRECISION (A-H,O-Z) #include "divcon.dim" #include "divcon.h" C if (extrn) then DO 30 IAT=1,83 DO 10 L=0,2 UCORE(L,IAT) = UCORE4(L,IAT) EXPNT(L,IAT) = EXPNT4(L,IAT) AL(L,IAT) = AL4(L,IAT) IF(L.NE.0) DL(L,IAT) = DL4(L,IAT) BETA(L,IAT) = BETA4(L,IAT) 10 CONTINUE GSS(IAT) = GSS4(IAT) GPP(IAT) = GPP4(IAT) GSP(IAT) = GSP4(IAT) GP2(IAT) = GP24(IAT) HSP(IAT) = HSP4(IAT) ACORE(IAT) = ACORE4(IAT) DO 20 IGAUS=1,4 AGAUS(IGAUS,IAT) = AGAUS4(IGAUS,IAT) BGAUS(IGAUS,IAT) = BGAUS4(IGAUS,IAT) CGAUS(IGAUS,IAT) = CGAUS4(IGAUS,IAT) 20 CONTINUE EEATM(IAT) = EEATM4(IAT) HFATM(IAT) = HFATM4(IAT) 30 CONTINUE C C . BARRIER HEIGHT (eV) FOR PEPTIDE TORSION: C EPEPMX = epepmx4/23.061D0 elseIF(MNDO)THEN DO 100 IAT=1,83 DO 90 L=0,2 UCORE(L,IAT) = UCORE1(L,IAT) EXPNT(L,IAT) = EXPNT1(L,IAT) AL(L,IAT) = AL1(L,IAT) IF(L.NE.0) DL(L,IAT) = DL1(L,IAT) BETA(L,IAT) = BETA1(L,IAT) 90 CONTINUE GSS(IAT) = GSS1(IAT) GPP(IAT) = GPP1(IAT) GSP(IAT) = GSP1(IAT) GP2(IAT) = GP21(IAT) HSP(IAT) = HSP1(IAT) ACORE(IAT) = ACORE1(IAT) EEATM(IAT) = EEATM1(IAT) HFATM(IAT) = HFATM1(IAT) 100 CONTINUE EPEPMX = epepmx1/23.061D0 ELSEIF(AM1)THEN DO 200 IAT=1,83 DO 110 L=0,2 UCORE(L,IAT) = UCORE2(L,IAT) EXPNT(L,IAT) = EXPNT2(L,IAT) AL(L,IAT) = AL2(L,IAT) IF(L.NE.0) DL(L,IAT) = DL2(L,IAT) BETA(L,IAT) = BETA2(L,IAT) 110 CONTINUE GSS(IAT) = GSS2(IAT) GPP(IAT) = GPP2(IAT) GSP(IAT) = GSP2(IAT) GP2(IAT) = GP22(IAT) HSP(IAT) = HSP2(IAT) ACORE(IAT) = ACORE2(IAT) DO 120 IGAUS=1,4 AGAUS(IGAUS,IAT) = AGAUS2(IGAUS,IAT) BGAUS(IGAUS,IAT) = BGAUS2(IGAUS,IAT) CGAUS(IGAUS,IAT) = CGAUS2(IGAUS,IAT) 120 CONTINUE EEATM(IAT) = EEATM2(IAT) HFATM(IAT) = HFATM2(IAT) 200 CONTINUE EPEPMX = epepmx2/23.061D0 ELSEIF(RM1)THEN DO 201 IAT=1,83 DO 111 L=0,2 UCORE(L,IAT) = UCORE5(L,IAT) EXPNT(L,IAT) = EXPNT5(L,IAT) AL(L,IAT) = AL5(L,IAT) IF(L.NE.0) DL(L,IAT) = DL5(L,IAT) BETA(L,IAT) = BETA5(L,IAT) 111 CONTINUE GSS(IAT) = GSS5(IAT) GPP(IAT) = GPP5(IAT) GSP(IAT) = GSP5(IAT) GP2(IAT) = GP25(IAT) HSP(IAT) = HSP5(IAT) ACORE(IAT) = ACORE5(IAT) DO 121 IGAUS=1,4 AGAUS(IGAUS,IAT) = AGAUS5(IGAUS,IAT) BGAUS(IGAUS,IAT) = BGAUS5(IGAUS,IAT) CGAUS(IGAUS,IAT) = CGAUS5(IGAUS,IAT) 121 CONTINUE EEATM(IAT) = EEATM5(IAT) HFATM(IAT) = HFATM5(IAT) 201 CONTINUE EPEPMX = epepmx5/23.061D0 ELSEIF(AM1D)THEN DO 202 IAT=1,83 DO 112 L=0,2 UCORE(L,IAT) = UCORE6(L,IAT) EXPNT(L,IAT) = EXPNT6(L,IAT) AL(L,IAT) = AL6(L,IAT) IF(L.NE.0) DL(L,IAT) = DL6(L,IAT) BETA(L,IAT) = BETA6(L,IAT) 112 CONTINUE GSS(IAT) = GSS6(IAT) GPP(IAT) = GPP6(IAT) GSP(IAT) = GSP6(IAT) GP2(IAT) = GP26(IAT) HSP(IAT) = HSP6(IAT) ACORE(IAT) = ACORE6(IAT) DO 122 IGAUS=1,4 AGAUS(IGAUS,IAT) = AGAUS6(IGAUS,IAT) BGAUS(IGAUS,IAT) = BGAUS6(IGAUS,IAT) CGAUS(IGAUS,IAT) = CGAUS6(IGAUS,IAT) 122 CONTINUE EEATM(IAT) = EEATM6(IAT) HFATM(IAT) = HFATM6(IAT) 202 CONTINUE EPEPMX = epepmx6/23.061D0 ELSEIF(PM3PDDG)THEN DO IAT=1,83 DO L=0,2 UCORE(L,IAT) = UCORE7(L,IAT) EXPNT(L,IAT) = EXPNT7(L,IAT) AL(L,IAT) = AL7(L,IAT) IF(L.NE.0) DL(L,IAT) = DL7(L,IAT) BETA(L,IAT) = BETA7(L,IAT) END DO GSS(IAT) = GSS7(IAT) GPP(IAT) = GPP7(IAT) GSP(IAT) = GSP7(IAT) GP2(IAT) = GP27(IAT) HSP(IAT) = HSP7(IAT) ACORE(IAT) = ACORE7(IAT) DO IGAUS=1,4 AGAUS(IGAUS,IAT) = AGAUS7(IGAUS,IAT) BGAUS(IGAUS,IAT) = BGAUS7(IGAUS,IAT) CGAUS(IGAUS,IAT) = CGAUS7(IGAUS,IAT) END DO EEATM(IAT) = EEATM7(IAT) HFATM(IAT) = HFATM7(IAT) END DO EPEPMX = epepmx7/23.061D0 ELSEIF(PM3)THEN DO 400 IAT=1,83 DO 310 L=0,2 UCORE(L,IAT) = UCORE3(L,IAT) EXPNT(L,IAT) = EXPNT3(L,IAT) AL(L,IAT) = AL3(L,IAT) IF(L.NE.0) DL(L,IAT) = DL3(L,IAT) BETA(L,IAT) = BETA3(L,IAT) 310 CONTINUE GSS(IAT) = GSS3(IAT) GPP(IAT) = GPP3(IAT) GSP(IAT) = GSP3(IAT) GP2(IAT) = GP23(IAT) HSP(IAT) = HSP3(IAT) ACORE(IAT) = ACORE3(IAT) DO 320 IGAUS=1,2 AGAUS(IGAUS,IAT) = AGAUS3(IGAUS,IAT) BGAUS(IGAUS,IAT) = BGAUS3(IGAUS,IAT) CGAUS(IGAUS,IAT) = CGAUS3(IGAUS,IAT) 320 CONTINUE EEATM(IAT) = EEATM3(IAT) HFATM(IAT) = HFATM3(IAT) 400 CONTINUE EPEPMX = epepmx3/23.061D0 ENDIF C C COMPUTE AUXILIARY QUANTITIES FOR OVERLAP INTEGRLS. C SQRHLF = DSQRT(0.5D0) DO 500 IAT=1,83 NA = NQUANT(IAT) POWER = NA + 0.5D0 DO 420 LA=0,MIN(2,NA) EXHALF(LA,IAT) = SQRHLF*EXPNT(LA,IAT)**POWER 420 CONTINUE 500 CONTINUE RETURN END