hdiff output

r31951/commons.f90 2017-02-20 22:30:08.587565703 +0000 r31950/commons.f90 2017-02-20 22:30:09.707580725 +0000
112:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, POLYT, SANDBOXT, &112:      &        CHARMMDFTBT, PERMINVOPT, BLOCKMOVET, MAXERISE_SET, PYT, BINARY_EXAB, CHIROT, POLYT, SANDBOXT, &
113:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &113:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &
114:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &114:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &
115:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &115:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &
116:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &116:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, READMASST, SPECMASST, NEWTSALLIST, &
117:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 117:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, & 
118:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, &118:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, &
119:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &119:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &
120:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &120:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &
121:      &        MLP3T, MKTRAPT, MLPB3T, MLPB3NEWT, MULTIPOTT, QCIAMBERT, MLPNEWREG, DJWRBT, STEALTHYT, LJADDT, QCINOREPINT, RIGIDMDT, &121:      &        MLP3T, MKTRAPT, MLPB3T, MLPB3NEWT, MULTIPOTT, QCIAMBERT, MLPNEWREG, DJWRBT, STEALTHYT, LJADDT, QCINOREPINT, RIGIDMDT, &
122:      &        DUMPMQT, MLQT, MLQPROB, LJADD2T, MLPVB3T, NOREGBIAS, PYADDT, PYADD2T, LJADD3T, REORDERADDT122:      &        DUMPMQT, MLQT, MLQPROB, LJADD2T, MLPVB3T, NOREGBIAS, PYADDT, PYADD2T
123: !123: !
124:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 124:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:) 
125:       DOUBLE PRECISION, ALLOCATABLE :: ATMASS(:)125:       DOUBLE PRECISION, ALLOCATABLE :: ATMASS(:)
126:       DOUBLE PRECISION, ALLOCATABLE :: SPECMASS(:) 126:       DOUBLE PRECISION, ALLOCATABLE :: SPECMASS(:) 
127: 127: 
128: ! csw34> FREEZEGROUP variables128: ! csw34> FREEZEGROUP variables
129: !129: !
130:       INTEGER :: GROUPCENTRE130:       INTEGER :: GROUPCENTRE
131:       DOUBLE PRECISION :: GROUPRADIUS131:       DOUBLE PRECISION :: GROUPRADIUS
132:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE132:       CHARACTER (LEN=2) :: FREEZEGROUPTYPE
619:       INTEGER :: INTCONMAX=10, NCPCONMAX=10619:       INTEGER :: INTCONMAX=10, NCPCONMAX=10
620:       DOUBLE PRECISION, ALLOCATABLE :: EPSALPHA(:), DISTREF(:)620:       DOUBLE PRECISION, ALLOCATABLE :: EPSALPHA(:), DISTREF(:)
621:       DOUBLE PRECISION, ALLOCATABLE :: CPDISTREF(:)621:       DOUBLE PRECISION, ALLOCATABLE :: CPDISTREF(:)
622:       DOUBLE PRECISION, ALLOCATABLE :: MIN1REDO(:), MIN2REDO(:)622:       DOUBLE PRECISION, ALLOCATABLE :: MIN1REDO(:), MIN2REDO(:)
623:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREF(:), CONDISTREFLOCAL(:), CONDISTREFON(:), CONDISTREFLOCALON(:)623:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREF(:), CONDISTREFLOCAL(:), CONDISTREFON(:), CONDISTREFLOCALON(:)
624:       DOUBLE PRECISION, ALLOCATABLE :: CONCUT(:), CONCUTLOCAL(:)624:       DOUBLE PRECISION, ALLOCATABLE :: CONCUT(:), CONCUTLOCAL(:)
625:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREFFIX(:), CONCUTFIX(:)625:       DOUBLE PRECISION, ALLOCATABLE :: CONDISTREFFIX(:), CONCUTFIX(:)
626:       DOUBLE PRECISION, ALLOCATABLE :: CPCONDISTREF(:)626:       DOUBLE PRECISION, ALLOCATABLE :: CPCONDISTREF(:)
627:       DOUBLE PRECISION, ALLOCATABLE :: CONGEOM(:,:)627:       DOUBLE PRECISION, ALLOCATABLE :: CONGEOM(:,:)
628:       DOUBLE PRECISION, ALLOCATABLE :: LJADDEPS(:,:)628:       DOUBLE PRECISION, ALLOCATABLE :: LJADDEPS(:,:)
629:       DOUBLE PRECISION, ALLOCATABLE :: LJADDREP(:,:), LJADDATT(:,:) 
630:       DOUBLE PRECISION, ALLOCATABLE :: PYADDEPS(:,:)629:       DOUBLE PRECISION, ALLOCATABLE :: PYADDEPS(:,:)
631:       DOUBLE PRECISION, ALLOCATABLE :: PYADDREP(:,:), PYADDATT(:,:)630:       DOUBLE PRECISION, ALLOCATABLE :: PYADDREP(:,:), PYADDATT(:,:)
632:       LOGICAL, ALLOCATABLE :: CONACTIVE(:)631:       LOGICAL, ALLOCATABLE :: CONACTIVE(:)
633:       LOGICAL, ALLOCATABLE :: ATOMACTIVE(:)632:       LOGICAL, ALLOCATABLE :: ATOMACTIVE(:)
634:       INTEGER, ALLOCATABLE :: ORDERI(:), ORDERJ(:), REPPOW(:)633:       INTEGER, ALLOCATABLE :: ORDERI(:), ORDERJ(:), REPPOW(:)
635:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)634:       INTEGER, ALLOCATABLE :: CONI(:), CONJ(:), CONION(:), CONJON(:)
636:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)635:       INTEGER, ALLOCATABLE :: CONIFIX(:), CONJFIX(:), REPIFIX(:), REPJFIX(:)
637:       INTEGER, ALLOCATABLE :: REPI(:), REPJ(:)636:       INTEGER, ALLOCATABLE :: REPI(:), REPJ(:)
638:       INTEGER, ALLOCATABLE :: CPCONI(:), CPCONJ(:)637:       INTEGER, ALLOCATABLE :: CPCONI(:), CPCONJ(:)
639:       INTEGER, ALLOCATABLE :: CPREPI(:), CPREPJ(:)638:       INTEGER, ALLOCATABLE :: CPREPI(:), CPREPJ(:)


r31951/finalio.f90 2017-02-20 22:30:08.819568817 +0000 r31950/finalio.f90 2017-02-20 22:30:10.059585444 +0000
 28:   USE MODCHARMM 28:   USE MODCHARMM
 29:   USE AMHGLOBALS, ONLY:NMRES,IRES 29:   USE AMHGLOBALS, ONLY:NMRES,IRES
 30:   USE BGUPMOD 30:   USE BGUPMOD
 31:   USE PERMU 31:   USE PERMU
 32:   USE MODHESS, ONLY : HESS, MASSWT 32:   USE MODHESS, ONLY : HESS, MASSWT
 33:   USE CONVEX_POLYHEDRA_MODULE, ONLY: VIEW_POLYHEDRA 33:   USE CONVEX_POLYHEDRA_MODULE, ONLY: VIEW_POLYHEDRA
 34:    34:   
 35:   IMPLICIT NONE 35:   IMPLICIT NONE
 36:    36:   
 37:   !   MCP 37:   !   MCP
 38:   INTEGER III, I3,  GLY_COUNT, ID, NUMCRD, NUMPRO, NCPHST, GETUNIT, AMHUNIT1, AMHUNIT2, LUNIT, NSYMOPS, NCLOSE 38:   INTEGER III, I3,  GLY_COUNT, ID, NUMCRD, NUMPRO, NCPHST, GETUNIT, AMHUNIT1, AMHUNIT2, LUNIT, NSYMOPS
 39:   INTEGER J1, J2, J3, J4, J5, MYUNIT2, I1, NDUMMY, MYUNIT3, NC, NRBS1, NRBS2, MYUNIT4, LJGOUNIT, MJ2, REORDERUNIT 39:   INTEGER J1, J2, J3, J4, J5, MYUNIT2, I1, NDUMMY, MYUNIT3, NC, NRBS1, NRBS2, MYUNIT4
 40:   DOUBLE PRECISION RBCOORDS(NRBSITES*3), DCOORDS(3*NATOMS), EDUMMY, ITDET, DIST 40:   DOUBLE PRECISION RBCOORDS(NRBSITES*3), DCOORDS(3*NATOMS), EDUMMY, ITDET
 41:   ! 41:   !
 42:   !ds656> Symmetry detection for clusters on a substrate... 42:   !ds656> Symmetry detection for clusters on a substrate...
 43:   INTEGER :: ISITES(MIEF_NSITES), NSITES, COMBO_N 43:   INTEGER :: ISITES(MIEF_NSITES), NSITES, COMBO_N
 44:   DOUBLE PRECISION :: SITES(3*MIEF_NSITES), DISTS(MIEF_NSITES) 44:   DOUBLE PRECISION :: SITES(3*MIEF_NSITES), DISTS(MIEF_NSITES)
 45:   INTEGER, ALLOCATABLE :: COMBO_LABELS(:) 45:   INTEGER, ALLOCATABLE :: COMBO_LABELS(:)
 46:   DOUBLE PRECISION, ALLOCATABLE :: COMBO_COORDS(:) 46:   DOUBLE PRECISION, ALLOCATABLE :: COMBO_COORDS(:)
 47:   !<ds656 47:   !<ds656
 48:     ! 48:     !
 49:   DOUBLE PRECISION P3(3,3), P(3), DU(3), RMI(3,3), DRMI(3,3), PI, PHI, THT, CHI 49:   DOUBLE PRECISION P3(3,3), P(3), DU(3), RMI(3,3), DRMI(3,3), PI, PHI, THT, CHI
 50:   !DOUBLE PRECISION, ALLOCATABLE :: XCOORDS(:), YCOORDS(:) 50:   !DOUBLE PRECISION, ALLOCATABLE :: XCOORDS(:), YCOORDS(:)
 51:   CHARACTER(LEN=13) J1CHAR,J1CHAR2                  !for gay-berne output files 51:   CHARACTER(LEN=13) J1CHAR,J1CHAR2                  !for gay-berne output files
 52:   CHARACTER(LEN=6) ZSTR 52:   CHARACTER(LEN=6) ZSTR
 53:   CHARACTER(LEN=2)  DUMMYSTR 53:   CHARACTER(LEN=2)  DUMMYSTR
 54:   DOUBLE PRECISION EulerPhi,EulerPsi,EulerTheta,EulerThetadeg,EulerPhiDeg,EulerPsiDeg  ! Euler angles for ellipsoids of revolution 54:   DOUBLE PRECISION EulerPhi,EulerPsi,EulerTheta,EulerThetadeg,EulerPhiDeg,EulerPsiDeg  ! Euler angles for ellipsoids of revolution
 55:    55:   
 56:   DOUBLE PRECISION EPS2, RAD, HEIGHT,sumx,sumy,sumz,CM(3),SYMOPS(120,3,3) 56:   DOUBLE PRECISION EPS2, RAD, HEIGHT,sumx,sumy,sumz,CM(3),SYMOPS(120,3,3)
 57:   LOGICAL :: GTEST, ADDDONE(NATOMS), ADDORDER(NATOMS) 57:   LOGICAL :: GTEST
 58:   COMMON /CAPS/ EPS2, RAD, HEIGHT 58:   COMMON /CAPS/ EPS2, RAD, HEIGHT
 59:    59:   
 60:   CHARACTER(LEN=4) :: FPGRP 60:   CHARACTER(LEN=4) :: FPGRP
 61:   CHARACTER(LEN=6) :: CRMS 61:   CHARACTER(LEN=6) :: CRMS
 62:   CHARACTER(LEN=20) :: MYFILENAME2, ISTR, DBNUM, MYFILENAME3 62:   CHARACTER(LEN=20) :: MYFILENAME2, ISTR, DBNUM, MYFILENAME3
 63:   CHARACTER(LEN=15), ALLOCATABLE :: DBNAME(:) 63:   CHARACTER(LEN=15), ALLOCATABLE :: DBNAME(:)
 64:   CHARACTER(LEN=80) :: tempstring 64:   CHARACTER(LEN=80) :: tempstring
 65:    65:   
 66:   CHARACTER(LEN=6) :: J1_STRING, MYNODE_STRING 66:   CHARACTER(LEN=6) :: J1_STRING, MYNODE_STRING
 67:    67:   
 68:   !  AMH 68:   !  AMH
 69:   CHARACTER(LEN=3) :: RES_TYPE 69:   CHARACTER(LEN=3) :: RES_TYPE
 70:   CHARACTER(LEN=2) :: ATOM_TYPE 70:   CHARACTER(LEN=2) :: ATOM_TYPE
 71:   CHARACTER*1 COUNTTT 71:   CHARACTER*1 COUNTTT
 72:   INTEGER COUNTT 72:   INTEGER COUNTT
 73:   DOUBLE PRECISION  PPPCORD(NMRES*3*3,3,3,5) 73:   DOUBLE PRECISION  PPPCORD(NMRES*3*3,3,3,5)
 74:   EXTERNAL NUM_TO_CHAR 74:   EXTERNAL NUM_TO_CHAR
 75:   DOUBLE PRECISION TEND, DMIN 75:   DOUBLE PRECISION TEND
 76:   INTEGER ITERATIONS, BRUN,QDONE, NP, CLOSEST(NADDTARGET) 76:   INTEGER ITERATIONS, BRUN,QDONE, NP
 77:   DOUBLE PRECISION SCREENC(3*NATOMSALLOC), TIME 77:   DOUBLE PRECISION SCREENC(3*NATOMSALLOC), TIME
 78:   CHARACTER(LEN=2) :: ALPHABET(26)=(/'ja','jb','jc','jd','je','jf','jg','jh','ji','jj','jk','jl', & 
 79:   &                                  'jm','jn','jo','jp','jq','jr','js','jt','ju','jv','jw','jx','jy','jz'/) 
 80:    78:   
 81:   ! ds656> Extra stuff for HSA in OPTIM's min.data format 79:   ! ds656> Extra stuff for HSA in OPTIM's min.data format
 82:   INTEGER :: NUM_ZERO_EVS, INFO 80:   INTEGER :: NUM_ZERO_EVS, INFO
 83:   DOUBLE PRECISION :: LOG_PROD, EVALS(3*NATOMS), WORK(9*NATOMS) 81:   DOUBLE PRECISION :: LOG_PROD, EVALS(3*NATOMS), WORK(9*NATOMS)
 84:    82:   
 85:    83:   
 86:   PI = 4.D0*DATAN(1.D0) 84:   PI = 4.D0*DATAN(1.D0)
 87:    85:   
 88:   !ds656> test 86:   !ds656> test
 89:   !write(*,*) "finalio> START, PI=", PI 87:   !write(*,*) "finalio> START, PI=", PI
192:         IF (QENERGIES(J1).LT.HUGE(1.0D0)/10.0) THEN190:         IF (QENERGIES(J1).LT.HUGE(1.0D0)/10.0) THEN
193:            WRITE(MYUNIT3,'(I10)') J1191:            WRITE(MYUNIT3,'(I10)') J1
194:            WRITE(MYUNIT3,'(A,2G20.10)') 'energy=',QPE(J1),QENERGIES(J1)192:            WRITE(MYUNIT3,'(A,2G20.10)') 'energy=',QPE(J1),QENERGIES(J1)
195:            DO J2=1,J1193:            DO J2=1,J1
196:               WRITE(MYUNIT3,'(A2,1X,3G20.10)') 'AX',QCOORDINATES(J1,3*(J2-1)+1:3*(J2-1)+3)194:               WRITE(MYUNIT3,'(A2,1X,3G20.10)') 'AX',QCOORDINATES(J1,3*(J2-1)+1:3*(J2-1)+3)
197:            ENDDO195:            ENDDO
198:         ENDIF196:         ENDIF
199:      ENDDO197:      ENDDO
200:      CLOSE(MYUNIT3)198:      CLOSE(MYUNIT3)
201:   ENDIF199:   ENDIF
202:  
203:   IF (LJADD3T) THEN  
204:      LJGOUNIT=GETUNIT() 
205:      OPEN(LJGOUNIT,FILE='ljadd3.xyz',STATUS='UNKNOWN') 
206:   ENDIF 
207:   IF (REORDERADDT) THEN  
208:      REORDERUNIT=GETUNIT() 
209:      OPEN(REORDERUNIT,FILE='reorder.xyz',STATUS='UNKNOWN') 
210:   ENDIF 
211:   200:   
212:   savemin: DO J1=1,NSAVE201:   savemin: DO J1=1,NSAVE
213:      !202:      !
214:      NATOMS=QMINNATOMS(J1)203:      NATOMS=QMINNATOMS(J1)
215:      IF (AMHT) THEN204:      IF (AMHT) THEN
216:         COUNTT=J1205:         COUNTT=J1
217:         CALL NUM_TO_CHAR(COUNTT,COUNTTT)206:         CALL NUM_TO_CHAR(COUNTT,COUNTTT)
218:         OPEN(UNIT=27,FILE='movie_gmin.'//COUNTTT//'.pdb',STATUS='UNKNOWN')207:         OPEN(UNIT=27,FILE='movie_gmin.'//COUNTTT//'.pdb',STATUS='UNKNOWN')
219:      ENDIF208:      ENDIF
220:      209:      
873:            WRITE(MYUNIT2,40) (QMINP(J1,J2),J2=3*(NATOMS-NS)+1,3*NATOMS)862:            WRITE(MYUNIT2,40) (QMINP(J1,J2),J2=3*(NATOMS-NS)+1,3*NATOMS)
874: 40         FORMAT('Si',3F20.10)863: 40         FORMAT('Si',3F20.10)
875:         ELSE IF (MSTRANST) THEN864:         ELSE IF (MSTRANST) THEN
876:            WRITE(MYUNIT2,40) (QMINP(J1,J2),J2=3*(NATOMS-NS)+1,3*NATOMS)865:            WRITE(MYUNIT2,40) (QMINP(J1,J2),J2=3*(NATOMS-NS)+1,3*NATOMS)
877:         ELSE866:         ELSE
878:            WRITE(MYUNIT2,50) (QMINP(J1,J2),J2=3*(NATOMS-NS)+1,3*NATOMS)867:            WRITE(MYUNIT2,50) (QMINP(J1,J2),J2=3*(NATOMS-NS)+1,3*NATOMS)
879: 50         FORMAT('LB',3F20.10)868: 50         FORMAT('LB',3F20.10)
880:         ENDIF869:         ENDIF
881:      ENDIF870:      ENDIF
882:      IF (AMBER) CALL AMBERDUMP(J1,QMINP)871:      IF (AMBER) CALL AMBERDUMP(J1,QMINP)
883: ! 
884: ! Reorder the addressable particles into clusters. 
885: ! 
886:      IF (REORDERADDT) THEN 
887:         WRITE(REORDERUNIT,'(I10)') NATOMS 
888:         WRITE(REORDERUNIT,10) J1, QMIN(J1), FF(J1), NPCALL_QMIN(J1) 
889:         ADDDONE(1:NATOMS)=.FALSE. 
890:         DO J2=1,NATOMS/NADDTARGET 
891:            MJ2=(J2-1)*NADDTARGET+1 
892:            CLOSEST(1)=MJ2 
893:            WRITE(REORDERUNIT,'(A2,1X,3G20.10)') 'LA ',QMINP(J1,3*(MJ2-1)+1),QMINP(J1,3*(MJ2-1)+2),QMINP(J1,3*(MJ2-1)+3) 
894:            ADDDONE(MJ2)=.TRUE. 
895:            DO J3=2,NADDTARGET 
896:               DMIN=1.0D100 
897:               DO J4=1,NATOMS/NADDTARGET 
898:                  IF (ADDDONE((J4-1)*NADDTARGET+J3)) CYCLE 
899:                  DIST=(QMINP(J1,3*(MJ2-1)+1)-QMINP(J1,3*((J4-1)*NADDTARGET+J3-1)+1))**2+ & 
900:   &                   (QMINP(J1,3*(MJ2-1)+2)-QMINP(J1,3*((J4-1)*NADDTARGET+J3-1)+2))**2+ & 
901:   &                   (QMINP(J1,3*(MJ2-1)+3)-QMINP(J1,3*((J4-1)*NADDTARGET+J3-1)+3))**2 
902:                  IF (DIST.LT.DMIN) THEN 
903:                     DMIN=DIST 
904:                     NCLOSE=(J4-1)*NADDTARGET+J3 
905:                  ENDIF 
906:                  WRITE(MYUNIT,'(A,4I6,2G20.10)') 'J2,MJ2,J3,NCLOSE,DIST,DMIN=',J2,MJ2,J3,NCLOSE,DIST,DMIN 
907:               ENDDO 
908:               CLOSEST(J3)=NCLOSE 
909:               ADDDONE(NCLOSE)=.TRUE. 
910:               WRITE(MYUNIT,'(A,4I6)') 'J2,MJ2,J3, final closest=',J2,MJ2,J3,NCLOSE 
911:               WRITE(REORDERUNIT,'(A2,1X,3G20.10)') 'LA ',QMINP(J1,3*(NCLOSE-1)+1),QMINP(J1,3*(NCLOSE-1)+2),QMINP(J1,3*(NCLOSE-1)+3) 
912:            ENDDO 
913:         ENDDO 
914:      ENDIF 
915:      IF (LJADD3T.AND.(NADDTARGET.LE.26)) THEN 
916:         WRITE(LJGOUNIT,'(I10)') NATOMS 
917:         WRITE(LJGOUNIT,10) J1, QMIN(J1), FF(J1), NPCALL_QMIN(J1) 
918:         DO J2=1,NATOMS 
919:            MJ2=MOD(J2-1,NADDTARGET)+1 
920:            WRITE(LJGOUNIT,'(A2,1X,3G20.10)') ALPHABET(MJ2),QMINP(J1,3*(J2-1)+1),QMINP(J1,3*(J2-1)+2),QMINP(J1,3*(J2-1)+3) 
921:         ENDDO 
922:      ENDIF 
923:      !872:      !
924:   ENDDO savemin873:   ENDDO savemin
925:   !874:   !
926:   ! End of loop over dump to file lowest or equivalent. 875:   ! End of loop over dump to file lowest or equivalent. 
927:   !876:   !
928:   CLOSE(MYUNIT2)877:   CLOSE(MYUNIT2)
929:   IF (CSMT.AND.(.NOT.SYMMETRIZECSM)) CLOSE(MYUNIT3)878:   IF (CSMT.AND.(.NOT.SYMMETRIZECSM)) CLOSE(MYUNIT3)
930:   !879:   !
931:   !     csw34> New loop for dumping interaction energy files if A9INTE is specified880:   !     csw34> New loop for dumping interaction energy files if A9INTE is specified
932:   !     Added the missing IF block to test for A9INTE 9/12/09 DJW881:   !     Added the missing IF block to test for A9INTE 9/12/09 DJW


r31951/keywords.f 2017-02-20 22:30:09.039571766 +0000 r31950/keywords.f 2017-02-20 22:30:10.279588395 +0000
1166: !1166: !
1167:       MLQT=.FALSE.1167:       MLQT=.FALSE.
1168:       MLQPROB=.FALSE.1168:       MLQPROB=.FALSE.
1169:       MLQDONE=.FALSE.1169:       MLQDONE=.FALSE.
1170:       MLQNORM=.FALSE.1170:       MLQNORM=.FALSE.
1171:       MLQLAMBDA=0.0D01171:       MLQLAMBDA=0.0D0
1172:       MLQSTART=11172:       MLQSTART=1
1173: 1173: 
1174:       LJADDT=.FALSE.1174:       LJADDT=.FALSE.
1175:       LJADD2T=.FALSE.1175:       LJADD2T=.FALSE.
1176:       LJADD3T=.FALSE. 
1177:       REORDERADDT=.FALSE. 
1178:       PYADDT=.FALSE.1176:       PYADDT=.FALSE.
1179:       PYADD2T=.FALSE.1177:       PYADD2T=.FALSE.
1180: 1178: 
1181:       DUMPMQT=.FALSE.1179:       DUMPMQT=.FALSE.
1182: 1180: 
1183: 1181: 
1184: ! OPEP stuff1182: ! OPEP stuff
1185:       OPEPT = .FALSE.1183:       OPEPT = .FALSE.
1186:       OPEP_RNAT = .FALSE.1184:       OPEP_RNAT = .FALSE.
1187:              1185:              
4546:          LUNIT=GETUNIT()4544:          LUNIT=GETUNIT()
4547:          OPEN(LUNIT,FILE='epsilon',STATUS='OLD')4545:          OPEN(LUNIT,FILE='epsilon',STATUS='OLD')
4548:          IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NADDTARGET,NADDTARGET))4546:          IF (.NOT.ALLOCATED(LJADDEPS)) ALLOCATE(LJADDEPS(NADDTARGET,NADDTARGET))
4549:          DO J1=1,NADDTARGET4547:          DO J1=1,NADDTARGET
4550:             DO J2=1,NADDTARGET4548:             DO J2=1,NADDTARGET
4551:                READ(LUNIT,*) LJADDEPS(J2,J1)4549:                READ(LUNIT,*) LJADDEPS(J2,J1)
4552:                WRITE(MYUNIT,'(2I6,G20.10)') J1,J2,LJADDEPS(J2,J1)4550:                WRITE(MYUNIT,'(2I6,G20.10)') J1,J2,LJADDEPS(J2,J1)
4553:             ENDDO4551:             ENDDO
4554:          ENDDO4552:          ENDDO
4555:          CLOSE(LUNIT)4553:          CLOSE(LUNIT)
4556:       ELSE IF (WORD.EQ.'LJADD3') THEN 
4557:          LJADDT=.TRUE. 
4558:          LJADD3T=.TRUE. 
4559:          CALL READI(NADDTARGET) 
4560:          WRITE(MYUNIT,'(A,I6)') 'keyword> Target cluster size is ',NADDTARGET 
4561:          IF (MOD(NATOMS,NADDTARGET).NE.0) THEN 
4562:             WRITE(MYUNIT,'(A,I6)') 'keyword> ERROR, target cluster size is not a factor of the number of the atoms ',NATOMS 
4563:             STOP 
4564:          ENDIF 
4565:          LUNIT=GETUNIT() 
4566:          OPEN(LUNIT,FILE='epsilon',STATUS='OLD') 
4567:          IF (.NOT.ALLOCATED(LJADDREP)) ALLOCATE(LJADDREP(NADDTARGET,NADDTARGET)) 
4568:          IF (.NOT.ALLOCATED(LJADDATT)) ALLOCATE(LJADDATT(NADDTARGET,NADDTARGET)) 
4569:          DO J1=1,NADDTARGET 
4570:             DO J2=1,NADDTARGET 
4571:                READ(LUNIT,*) LJADDREP(J2,J1), LJADDATT(J2,J1) 
4572:                WRITE(MYUNIT,'(2I6,2G20.10)') J1,J2,LJADDREP(J2,J1),LJADDATT(J2,J1) 
4573:             ENDDO 
4574:          ENDDO 
4575:          CLOSE(LUNIT) 
4576: !4554: !
4577: ! LJAT4555: ! LJAT
4578: !4556: !
4579:       ELSE IF (WORD.EQ.'LJAT') THEN4557:       ELSE IF (WORD.EQ.'LJAT') THEN
4580:          LJATT=.TRUE.4558:          LJATT=.TRUE.
4581:          CALL READF(ZSTAR)4559:          CALL READF(ZSTAR)
4582:          LJATTOC=2.423D04560:          LJATTOC=2.423D0
4583:          IF (NITEMS.EQ.3) CALL READF(LJATTOC)4561:          IF (NITEMS.EQ.3) CALL READF(LJATTOC)
4584:       ELSE IF (WORD.EQ.'LOCALSAMPLE') THEN4562:       ELSE IF (WORD.EQ.'LOCALSAMPLE') THEN
4585:          LOCALSAMPLET=.TRUE.4563:          LOCALSAMPLET=.TRUE.
5676:                CALL READF(SPECMASS(J1))5654:                CALL READF(SPECMASS(J1))
5677:             ENDDO5655:             ENDDO
5678:          ELSE5656:          ELSE
5679:             WRITE(MYUNIT,'(A)')' keywords> ERROR *** not enough arguments for SPECMASS'5657:             WRITE(MYUNIT,'(A)')' keywords> ERROR *** not enough arguments for SPECMASS'
5680:             STOP5658:             STOP
5681:          ENDIF5659:          ENDIF
5682:          IF (ALLOCATED(ATMASS)) DEALLOCATE(ATMASS)5660:          IF (ALLOCATED(ATMASS)) DEALLOCATE(ATMASS)
5683:          ALLOCATE(ATMASS(NATOMSALLOC))5661:          ALLOCATE(ATMASS(NATOMSALLOC))
5684:          ATMASS(:) = 1.0D0 ! Just initialisation5662:          ATMASS(:) = 1.0D0 ! Just initialisation
5685: !5663: !
5686: ! Reorder addressable potentials in an attempt to cluster particle in order. 
5687: ! 
5688:  
5689:       ELSE IF (WORD.EQ.'REORDERADD') THEN 
5690:          REORDERADDT=.TRUE. 
5691: ! 
5692: ! Low temperature replica will use min.data and points.min entries.5664: ! Low temperature replica will use min.data and points.min entries.
5693: !5665: !
5694:       ELSE IF (WORD.EQ.'RESERVOIR') THEN5666:       ELSE IF (WORD.EQ.'RESERVOIR') THEN
5695:          RESERVOIRT=.TRUE.5667:          RESERVOIRT=.TRUE.
5696:          IF (NITEMS.GT.2) THEN5668:          IF (NITEMS.GT.2) THEN
5697:             CALL READI(USERES)5669:             CALL READI(USERES)
5698:             CALL READF(RES_PSWAP)5670:             CALL READF(RES_PSWAP)
5699:          ENDIF5671:          ENDIF
5700:          INQUIRE(FILE='min.data',EXIST=YESNO)5672:          INQUIRE(FILE='min.data',EXIST=YESNO)
5701:          IF (.NOT.YESNO) THEN5673:          IF (.NOT.YESNO) THEN


r31951/ljadd.f 2017-02-20 22:30:09.259574716 +0000 r31950/ljadd.f 2017-02-20 22:30:10.603592761 +0000
342:             DUMMYX=DUMMYX+XMUL2*(X(J3-2)-X(J2-2))342:             DUMMYX=DUMMYX+XMUL2*(X(J3-2)-X(J2-2))
343:             DUMMYY=DUMMYY+XMUL2*(X(J3-1)-X(J2-1))343:             DUMMYY=DUMMYY+XMUL2*(X(J3-1)-X(J2-1))
344:             DUMMYZ=DUMMYZ+XMUL2*(X(J3)  -X(J2))344:             DUMMYZ=DUMMYZ+XMUL2*(X(J3)  -X(J2))
345:          ENDDO345:          ENDDO
346:          V(J3-2)=DUMMYX346:          V(J3-2)=DUMMYX
347:          V(J3-1)=DUMMYY347:          V(J3-1)=DUMMYY
348:          V(J3)=DUMMYZ348:          V(J3)=DUMMYZ
349:       ENDDO349:       ENDDO
350: 350: 
351:       IF (.NOT.STEST) RETURN351:       IF (.NOT.STEST) RETURN
352:       CALL LJADDS2(G,F,R2,R14,R8,X,N)352:       CALL LJADDS(G,F,R2,R14,R8,X,N)
353: 353: 
354:       RETURN354:       RETURN
355:       END355:       END
356: 356: 
357: C*****************************************************************************357: C*****************************************************************************
358: 358: 
359:       SUBROUTINE LJADDS2(G,F,R2,R14,R8,X,N)359:       SUBROUTINE LJADDS2(G,F,R2,R14,R8,X,N)
360:       USE MODHESS360:       USE MODHESS
361:       USE COMMONS, ONLY : LJADDEPS, NADDTARGET361:       USE COMMONS, ONLY : LJADDEPS, NADDTARGET
362:       IMPLICIT NONE362:       IMPLICIT NONE
395:             F(J1,J2)=F(J2,J1)395:             F(J1,J2)=F(J2,J1)
396:          ENDDO396:          ENDDO
397:       ENDDO397:       ENDDO
398: C398: C
399: C  Now do the hessian. First are the entirely diagonal terms.399: C  Now do the hessian. First are the entirely diagonal terms.
400: C400: C
401:       DO J1=1,N401:       DO J1=1,N
402:          DO J2=1,3402:          DO J2=1,3
403:             J3=3*(J1-1)+J2403:             J3=3*(J1-1)+J2
404:             DUMMY=0.0D0404:             DUMMY=0.0D0
405:             DO J4=1,N 
406:                DUMMY=DUMMY+F(J4,J1)*R2(J4,J1)* 
407:      1                 (X(J3)-X(3*(J4-1)+J2))**2 + G(J4,J1)    
408:             ENDDO 
409:             HESS(J3,J3)=DUMMY 
410:          ENDDO 
411:       ENDDO 
412: C 
413: C  Next are the terms where x_i and x_j are on the same atom 
414: C  but are different, e.g. y and z. 
415: C 
416:       DO J1=1,N 
417:          DO J2=1,3 
418:             J3=3*(J1-1)+J2 
419:             DO J4=J2+1,3 
420:                DUMMY=0.0D0 
421:                DO J5=1,N 
422:                   DUMMY=DUMMY + F(J5,J1)*R2(J5,J1)*  
423:      1           (X(J3)-X(3*(J5-1)+J2))*(X(3*(J1-1)+J4)-X(3*(J5-1)+J4))  
424:                ENDDO 
425:                HESS(3*(J1-1)+J4,J3)=DUMMY 
426:             ENDDO 
427:          ENDDO 
428:       ENDDO 
429: C 
430: C  Case III, different atoms, same cartesian coordinate. 
431: C 
432:       DO J1=1,N 
433:          DO J2=1,3 
434:             J3=3*(J1-1)+J2 
435:             DO J4=J1+1,N 
436:                HESS(3*(J4-1)+J2,J3)=-F(J4,J1)*R2(J4,J1)* 
437:      1                           (X(J3)-X(3*(J4-1)+J2))**2-G(J4,J1)  
438:             ENDDO 
439:          ENDDO 
440:       ENDDO 
441: C 
442: C  Case IV: different atoms and different cartesian coordinates. 
443: C 
444:       DO J1=1,N 
445:          DO J2=1,3 
446:             J3=3*(J1-1)+J2 
447:             DO J4=J1+1,N 
448:                DO J5=1,J2-1 
449:                   J6=3*(J4-1)+J5 
450:                   HESS(J6,J3)=-F(J4,J1)*R2(J4,J1) 
451:      1                    *(X(J3)-X(3*(J4-1)+J2)) 
452:      2                    *(X(3*(J1-1)+J5)-X(J6)) 
453:                   HESS(3*(J4-1)+J2,3*(J1-1)+J5)=HESS(J6,J3) 
454:                ENDDO 
455:             ENDDO 
456:          ENDDO 
457:       ENDDO 
458: C 
459: C  Symmetrise Hessian 
460: C 
461:       DO J1=1,3*N 
462:          DO J2=J1+1,3*N 
463:             HESS(J1,J2)=HESS(J2,J1) 
464:          ENDDO 
465:       ENDDO 
466:       RETURN 
467:       END 
468:  
469:  
470: C 
471: C************************************************************************* 
472: C 
473: C  Subroutine LJADD3 calculates the cartesian gradient and second 
474: C  derivative matrix analytically for LJ with addressable epsilon values. Reduced units. 
475: C  This routine treats multiple copies of a target of cluster size NADDTARGET. 
476: C  The epsilon values are replicated via the MOD function. 
477: C  In LJADD3 we have separate scaling for repulsion and attraction. 
478: C 
479: C************************************************************************* 
480: C 
481:       SUBROUTINE LJADD3(N, X, V, ENERGY, GTEST, STEST) 
482:       USE COMMONS, ONLY : LJADDREP, LJADDATT, VT, NADDTARGET, MYUNIT 
483:       IMPLICIT NONE 
484:       INTEGER N, J1, J2, J3, J4, MJ1, MJ2 
485:       LOGICAL GTEST, STEST 
486:       DOUBLE PRECISION X(3*N), ENERGY, R6, 
487:      1                 V(3*N), R2(N,N), R2T, 
488:      2                 R8(N,N), G(N,N), XG(N,N), 
489:      3                 R14(N,N), F(N,N), DUMMY, DUMMYX, DUMMYY, DUMMYZ, DIST, XMUL2 
490: C  
491: C  Store distance matrices. 
492: C 
493: !     WRITE(MYUNIT,'(A)') 'coords in LJADD3:' 
494: !     WRITE(MYUNIT,'(3G20.10)') X(1:3*N) 
495:       ENERGY=0.0D0 
496:       DO J1=1,N 
497:          VT(J1)=0.0D0 
498:       ENDDO 
499:       IF (GTEST.AND.(.NOT.STEST)) THEN 
500:          DO J1=1,N 
501:             MJ1=MOD(J1-1,NADDTARGET)+1 
502:             J3=3*J1 
503:             XG(J1,J1)=0.0D0 
504:             DO J2=J1+1,N 
505:                MJ2=MOD(J2-1,NADDTARGET)+1 
506:                J4=3*J2 
507:                DIST=(X(J3-2)-X(J4-2))**2+(X(J3-1)-X(J4-1))**2+(X(J3)-X(J4))**2 
508:                DIST=1.0D0/DIST 
509:                R6=DIST**3 
510:                DUMMY=R6*(R6*LJADDREP(MJ2,MJ1)-1.0D0*LJADDATT(MJ2,MJ1)) 
511:                VT(J1)=VT(J1)+DUMMY 
512:                VT(J2)=VT(J2)+DUMMY 
513:                ENERGY=ENERGY+DUMMY 
514:                DIST=DIST*R6 
515:                XG(J2,J1)=-24.0D0*(2.0D0*R6*LJADDREP(MJ2,MJ1)-1.0D0*LJADDATT(MJ2,MJ1))*DIST 
516:                XG(J1,J2)=XG(J2,J1) 
517:             ENDDO 
518:          ENDDO 
519:       ELSEIF (GTEST) THEN 
520:          DO J1=1,N 
521:             MJ1=MOD(J1-1,NADDTARGET)+1 
522:             XG(J1,J1)=0.0D0 
523:             R2(J1,J1)=0.0D0 
524:             R8(J1,J1)=0.0D0 
525:             R14(J1,J1)=0.0D0 
526:             DO J2=J1+1,N 
527:                MJ2=MOD(J2-1,NADDTARGET)+1 
528:                R2(J2,J1)=(X(3*(J1-1)+1)-X(3*(J2-1)+1))**2 
529:      1                  +(X(3*(J1-1)+2)-X(3*(J2-1)+2))**2 
530:      2                  +(X(3*(J1-1)+3)-X(3*(J2-1)+3))**2 
531:                R2(J2,J1)=1.0D0/R2(J2,J1) 
532:                R6=R2(J2,J1)**3 
533:                DUMMY=R6*(R6*LJADDREP(MJ2,MJ1)-1.0D0*LJADDATT(MJ2,MJ1)) 
534:                VT(J1)=VT(J1)+DUMMY 
535:                VT(J2)=VT(J2)+DUMMY 
536:                ENERGY=ENERGY+DUMMY 
537:                R8(J2,J1)=R2(J2,J1)**4 
538:                R14(J2,J1)=R8(J2,J1)*R8(J2,J1)/R2(J2,J1) 
539:                R2(J1,J2)=R2(J2,J1) 
540:                XG(J2,J1)=-24.0D0*(2.0D0*R6*LJADDREP(MJ2,MJ1)-1.0D0*LJADDATT(MJ2,MJ1))*R2(J1,J2)*R6 
541:                XG(J1,J2)=XG(J2,J1) 
542:             ENDDO 
543:          ENDDO  
544:       ELSE 
545:          DO J1=1,N 
546:             MJ1=MOD(J1-1,NADDTARGET)+1 
547:             J3=3*(J1-1) 
548:             DO J2=J1+1,N 
549:                MJ2=MOD(J2-1,NADDTARGET)+1 
550:                J4=3*(J2-1) 
551:                R2T=(X(J3+1)-X(J4+1))**2+(X(J3+2)-X(J4+2))**2+(X(J3+3)-X(J4+3))**2 
552:                R2T=1.0D0/R2T 
553:                R6=R2T**3 
554:                ENERGY=ENERGY+R6*(R6*LJADDREP(MJ2,MJ1)-1.0D0*LJADDATT(MJ2,MJ1)) 
555:             ENDDO 
556:          ENDDO 
557:  
558:       ENDIF 
559:       ENERGY=4.0D0*ENERGY 
560:  
561:       IF (.NOT.GTEST) RETURN 
562:       DO J1=1,N 
563:          J3=3*J1 
564:          DUMMYX=0.0D0 
565:          DUMMYY=0.0D0 
566:          DUMMYZ=0.0D0 
567:          DO J4=1,N 
568:             J2=3*J4 
569:             XMUL2=XG(J4,J1) 
570:             DUMMYX=DUMMYX+XMUL2*(X(J3-2)-X(J2-2)) 
571:             DUMMYY=DUMMYY+XMUL2*(X(J3-1)-X(J2-1)) 
572:             DUMMYZ=DUMMYZ+XMUL2*(X(J3)  -X(J2)) 
573:          ENDDO 
574:          V(J3-2)=DUMMYX 
575:          V(J3-1)=DUMMYY 
576:          V(J3)=DUMMYZ 
577:       ENDDO 
578:  
579:       IF (.NOT.STEST) RETURN 
580:       CALL LJADDS3(G,F,R2,R14,R8,X,N) 
581:  
582:       RETURN 
583:       END 
584:  
585: C***************************************************************************** 
586:  
587:       SUBROUTINE LJADDS3(G,F,R2,R14,R8,X,N) 
588:       USE MODHESS 
589:       USE COMMONS, ONLY : LJADDREP, LJADDATT, NADDTARGET 
590:       IMPLICIT NONE 
591:       INTEGER N, J1, J2, J3, J4, J5, J6, MJ1, MJ2 
592:       DOUBLE PRECISION G(N,N), R14(N,N), R8(N,N), 
593:      1                 R2(N,N), F(N,N),  
594:      2                 X(3*N),DUMMY 
595:  
596: C 
597: C  Calculate the g tensor. 
598: C 
599:       DO J1=1,N 
600:          MJ1=MOD(J1-1,NADDTARGET)+1 
601:          G(J1,J1)=0.0D0 
602:          DO J2=J1+1,N 
603:             MJ2=MOD(J2-1,NADDTARGET)+1 
604:                G(J2,J1)=-24.0D0*(2.0D0*R14(J2,J1)*LJADDREP(J2,J1)-R8(J2,J1)*LJADDATT(J2,J1)) 
605:             G(J1,J2)=G(J2,J1) 
606:          ENDDO 
607:       ENDDO 
608:  
609:       DO J1=1,N 
610:          MJ1=MOD(J1-1,NADDTARGET)+1 
611:          F(J1,J1)=0.0D0 
612:          DO J2=J1+1,N  
613:             MJ2=MOD(J2-1,NADDTARGET)+1 
614:             F(J2,J1)=LJADDREP(MJ2,MJ1)*672.0D0*R14(J2,J1)-LJADDATT(MJ2,MJ1)*192.0D0*R8(J2,J1) 
615:             F(J1,J2)=F(J2,J1) 
616:          ENDDO 
617:       ENDDO 
618: C 
619: C  Now do the hessian. First are the entirely diagonal terms. 
620: C 
621:       DO J1=1,N 
622:          DO J2=1,3 
623:             J3=3*(J1-1)+J2 
624:             DUMMY=0.0D0 
625:             DO J4=1,N405:             DO J4=1,N
626:                DUMMY=DUMMY+F(J4,J1)*R2(J4,J1)*406:                DUMMY=DUMMY+F(J4,J1)*R2(J4,J1)*
627:      1                 (X(J3)-X(3*(J4-1)+J2))**2 + G(J4,J1)   407:      1                 (X(J3)-X(3*(J4-1)+J2))**2 + G(J4,J1)   
628:             ENDDO408:             ENDDO
629:             HESS(J3,J3)=DUMMY409:             HESS(J3,J3)=DUMMY
630:          ENDDO410:          ENDDO
631:       ENDDO411:       ENDDO
632: C412: C
633: C  Next are the terms where x_i and x_j are on the same atom413: C  Next are the terms where x_i and x_j are on the same atom
634: C  but are different, e.g. y and z.414: C  but are different, e.g. y and z.


r31951/potential.f90 2017-02-20 22:30:09.483577719 +0000 r31950/potential.f90 2017-02-20 22:30:10.935597193 +0000
181:       IF (FTEST) THEN181:       IF (FTEST) THEN
182:          RETURN182:          RETURN
183:       END IF183:       END IF
184:    ELSE IF (LJADDT) THEN184:    ELSE IF (LJADDT) THEN
185: 185: 
186:       IF (RIGIDINIT .AND. (.NOT. ATOMRIGIDCOORDT)) THEN186:       IF (RIGIDINIT .AND. (.NOT. ATOMRIGIDCOORDT)) THEN
187:           XRIGIDCOORDS(1:DEGFREEDOMS)=X(1:DEGFREEDOMS)187:           XRIGIDCOORDS(1:DEGFREEDOMS)=X(1:DEGFREEDOMS)
188:           CALL TRANSFORMRIGIDTOC(1, NRIGIDBODY, X, XRIGIDCOORDS)188:           CALL TRANSFORMRIGIDTOC(1, NRIGIDBODY, X, XRIGIDCOORDS)
189:       ENDIF189:       ENDIF
190: 190: 
191:       IF (LJADD3T) THEN191:       IF (LJADD2T) THEN
192:          CALL LJADD3(NATOMS, X, GRAD, EREAL, GRADT, SECT) 
193:       ELSEIF (LJADD2T) THEN 
194:          CALL LJADD2(NATOMS, X, GRAD, EREAL, GRADT, SECT)192:          CALL LJADD2(NATOMS, X, GRAD, EREAL, GRADT, SECT)
195:       ELSE193:       ELSE
196:          CALL LJADD(NATOMS, X, GRAD, EREAL, GRADT, SECT)194:          CALL LJADD(NATOMS, X, GRAD, EREAL, GRADT, SECT)
197:       ENDIF195:       ENDIF
198: 196: 
199:       IF ( RIGIDINIT .AND. (.NOT. ATOMRIGIDCOORDT)) THEN197:       IF ( RIGIDINIT .AND. (.NOT. ATOMRIGIDCOORDT)) THEN
200: 198: 
201:          X(DEGFREEDOMS+1:3*NATOMS)=0.0D0199:          X(DEGFREEDOMS+1:3*NATOMS)=0.0D0
202:          X(1:DEGFREEDOMS)=XRIGIDCOORDS(1:DEGFREEDOMS)200:          X(1:DEGFREEDOMS)=XRIGIDCOORDS(1:DEGFREEDOMS)
203: 201: 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0