hdiff output

r31567/CMakeLists.txt 2017-01-21 10:35:01.930250000 +0000 r31566/CMakeLists.txt 2017-01-21 10:35:05.010250000 +0000
  1: ########################################################### 
  2: # 
  3: # CMAKE FILE TO GENERATE libOPEP.a  
  4: #  
  5: ############################################################ 
  6:  
  7: include_directories(${CMAKE_BINARY_DIR})  1: include_directories(${CMAKE_BINARY_DIR})
  8: file(GLOB OPEP_SOURCES *.f90 *.f *.F *.F90)  2: file(GLOB OPEP_SOURCES *.f90 *.f *.F *.F90)
  9:  
 10: # Remove the interface file 
 11: file(GLOB NOT_OPEP_SOURCES opep_interface.F90) 
 12: list(REMOVE_ITEM OPEP_SOURCES ${NOT_OPEP_SOURCES} ) 
 13:  
 14: # Create the library 
 15: add_library(OPEP ${OPEP_SOURCES})  3: add_library(OPEP ${OPEP_SOURCES})
 16: add_dependencies(OPEP optimlib)  4: add_dependencies(OPEP optimlib)
 17:  


r31567/dumpit.f 2017-01-21 10:35:03.182250000 +0000 r31566/dumpit.f 2017-01-21 10:35:06.446250000 +0000
 16: C   along with this program; if not, write to the Free Software 16: C   along with this program; if not, write to the Free Software
 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18: C 18: C
 19: C 19: C
 20: C  Produce a new input deck at the end of the run. 20: C  Produce a new input deck at the end of the run.
 21: C 21: C
 22:       SUBROUTINE DUMPIT(Q,FNAMEF) 22:       SUBROUTINE DUMPIT(Q,FNAMEF)
 23:       USE COMMONS 23:       USE COMMONS
 24:       USE KEY 24:       USE KEY
 25:       USE AMBER12_INTERFACE_MOD 25:       USE AMBER12_INTERFACE_MOD
 26:       USE OPEP_INTERFACE_MOD, ONLY: OPEP_WRITE_PDB 
 27:       IMPLICIT NONE 26:       IMPLICIT NONE
 28:       INTEGER J1, NTYPEA, J2, J3 27:       INTEGER J1, NTYPEA, J2, J3
 29:       DOUBLE PRECISION S, EPSAB, EPSBB, SIGAB, SIGBB, CAPSCOORDS(18), Q(3*NATOMS), DSHIFT 28:       DOUBLE PRECISION S, EPSAB, EPSBB, SIGAB, SIGBB, CAPSCOORDS(18), Q(3*NATOMS), DSHIFT
 30:       CHARACTER ESTRING*87, GPSTRING*80, NSTRING*80, FSTRING*80, FNAME*16 29:       CHARACTER ESTRING*87, GPSTRING*80, NSTRING*80, FSTRING*80, FNAME*16
 31:       CHARACTER(LEN=*) FNAMEF 30:       CHARACTER(LEN=*) FNAMEF
 32:       COMMON /STRINGS/ ESTRING, GPSTRING, NSTRING, FSTRING 31:       COMMON /STRINGS/ ESTRING, GPSTRING, NSTRING, FSTRING
 33:       COMMON /BIN/ EPSAB, EPSBB, SIGAB, SIGBB, NTYPEA 32:       COMMON /BIN/ EPSAB, EPSBB, SIGAB, SIGBB, NTYPEA
 34:       DOUBLE PRECISION CAPSRHO, EPS2, RAD, HEIGHT, XS(3*NTSITES) 33:       DOUBLE PRECISION CAPSRHO, EPS2, RAD, HEIGHT, XS(3*NTSITES)
 35:       COMMON /CAPS/ CAPSRHO, EPS2, RAD, HEIGHT 34:       COMMON /CAPS/ CAPSRHO, EPS2, RAD, HEIGHT
 36:  35: 
224: ! points.final.rst.<run_number>223: ! points.final.rst.<run_number>
225:             CALL AMBER12_WRITE_RESTART(Q(:),224:             CALL AMBER12_WRITE_RESTART(Q(:),
226:      &                                 'points.final.rst.'//TRIM(ADJUSTL(FILTHSTR)),225:      &                                 'points.final.rst.'//TRIM(ADJUSTL(FILTHSTR)),
227:      &                                 LEN('points.final.rst.'//TRIM(ADJUSTL(FILTHSTR))))226:      &                                 LEN('points.final.rst.'//TRIM(ADJUSTL(FILTHSTR))))
228: ! points.final.pdb.<run_number>227: ! points.final.pdb.<run_number>
229:             CALL AMBER12_WRITE_PDB(Q(:),228:             CALL AMBER12_WRITE_PDB(Q(:),
230:      &                             'points.final.pdb.'//TRIM(ADJUSTL(FILTHSTR)),229:      &                             'points.final.pdb.'//TRIM(ADJUSTL(FILTHSTR)),
231:      &                             LEN('points.final.pdb.'//TRIM(ADJUSTL(FILTHSTR))))230:      &                             LEN('points.final.pdb.'//TRIM(ADJUSTL(FILTHSTR))))
232:          END IF231:          END IF
233:          CLOSE(20)232:          CLOSE(20)
234:  
235: !OPEP dump 
236:       ELSE IF (OPEPT) THEN 
237:          IF (FILTH == 0) THEN 
238:             CALL OPEP_WRITE_PDB(NATOMS,Q(:),'points.final.pdb') 
239:          ELSE 
240:             CALL OPEP_WRITE_PDB(NATOMS,Q(:),'points.final.pdb.'//TRIM(ADJUSTL(FILTHSTR)))      
241:          END IF 
242:          CLOSE(20) 
243:  
244:       ELSE IF (VARIABLES) THEN233:       ELSE IF (VARIABLES) THEN
245:          WRITE(3,'(A)') 'VARIABLES'234:          WRITE(3,'(A)') 'VARIABLES'
246:          WRITE(3,'(G20.10)') (Q(J1),J1=1,NATOMS)235:          WRITE(3,'(G20.10)') (Q(J1),J1=1,NATOMS)
247:       ELSE IF (RINGPOLYMERT) THEN236:       ELSE IF (RINGPOLYMERT) THEN
248:          WRITE(3,'(A,I10,G20.10)') 'RINGPOLYMER  '//RPSYSTEM,RPIMAGES,RPBETA237:          WRITE(3,'(A,I10,G20.10)') 'RINGPOLYMER  '//RPSYSTEM,RPIMAGES,RPBETA
249:          WRITE(3,'(G20.10)') (Q(J1),J1=1,NOPT)238:          WRITE(3,'(G20.10)') (Q(J1),J1=1,NOPT)
250:       ELSE239:       ELSE
251:          WRITE(3,270)240:          WRITE(3,270)
252: 270      FORMAT('POINTS')241: 270      FORMAT('POINTS')
253:          WRITE(3,'(A2,3X,3G20.10)') (ZSYM(J1),Q(3*J1-2)*S,Q(3*J1-1)*S,Q(3*J1)*S,J1=1,NATOMS)242:          WRITE(3,'(A2,3X,3G20.10)') (ZSYM(J1),Q(3*J1-2)*S,Q(3*J1-1)*S,Q(3*J1)*S,J1=1,NATOMS)


r31567/fetchz.f 2017-01-21 10:35:03.426250000 +0000 r31566/fetchz.f 2017-01-21 10:35:06.714250000 +0000
 82:       INTEGER GLY_COUNT, III 82:       INTEGER GLY_COUNT, III
 83:       DOUBLE PRECISION X, Y, Z 83:       DOUBLE PRECISION X, Y, Z
 84:  84: 
 85: C 85: C
 86: C  Thomson problem: 86: C  Thomson problem:
 87: C 87: C
 88:       DOUBLE PRECISION, PARAMETER :: HALFPI=1.570796327D0 88:       DOUBLE PRECISION, PARAMETER :: HALFPI=1.570796327D0
 89:       DOUBLE PRECISION THTEMP(3*NATOMS), DIST 89:       DOUBLE PRECISION THTEMP(3*NATOMS), DIST
 90:       DOUBLE PRECISION, ALLOCATABLE :: FOCK(:,:), MOCOEFF(:,:) 90:       DOUBLE PRECISION, ALLOCATABLE :: FOCK(:,:), MOCOEFF(:,:)
 91:  91: 
 92:       IF (CHRMMT.OR.UNRST.OR.AMBERT.OR.NABT.OR.AMBER12T.OR.OPEPT) THEN 92:       IF (CHRMMT.OR.UNRST.OR.AMBERT.OR.NABT.OR.AMBER12T) THEN
 93:          IF (.NOT.ALLOCATED(IATNUM)) ALLOCATE (IATNUM(NATOMS))   ! ATMASS already set up 93:          IF (.NOT.ALLOCATED(IATNUM)) ALLOCATE (IATNUM(NATOMS))   ! ATMASS already set up
 94:       ELSE IF (PYGPERIODICT.OR.PYBINARYT.OR.PYGT.OR.MULTISITEPYT) THEN 94:       ELSE IF (PYGPERIODICT.OR.PYBINARYT.OR.PYGT.OR.MULTISITEPYT) THEN
 95:          IF (.NOT.ALLOCATED(IATNUM)) ALLOCATE (IATNUM(NATOMS),ATMASS(NATOMS)) 95:          IF (.NOT.ALLOCATED(IATNUM)) ALLOCATE (IATNUM(NATOMS),ATMASS(NATOMS))
 96:          ATMASS(:)=1.0D0 96:          ATMASS(:)=1.0D0
 97:       ELSE 97:       ELSE
 98:          IF (.NOT.ALLOCATED(IATNUM)) ALLOCATE (IATNUM(NATOMS)) 98:          IF (.NOT.ALLOCATED(IATNUM)) ALLOCATE (IATNUM(NATOMS))
 99:          IF (.NOT.ALLOCATED(ATMASS)) ALLOCATE (ATMASS(NATOMS)) 99:          IF (.NOT.ALLOCATED(ATMASS)) ALLOCATE (ATMASS(NATOMS))
100: C        sf344> initialise ATMASS values to not default to zero 100: C        sf344> initialise ATMASS values to not default to zero 
101: C               uninitialised stuff (may cause problems in INERTIA otherwise)101: C               uninitialised stuff (may cause problems in INERTIA otherwise)
102:          ! With RIGIDINIT, masses should now be specified by a separate file and will be initialised102:          ! With RIGIDINIT, masses should now be specified by a separate file and will be initialised
213:             ENDIF213:             ENDIF
214:          ENDIF214:          ENDIF
215:          IF ((PATHSDSTEPS.GT.0).AND.(INR.LE.6)) PRINT '(A,I8)',215:          IF ((PATHSDSTEPS.GT.0).AND.(INR.LE.6)) PRINT '(A,I8)',
216:      &                  ' fetchz> Maximum number of steps for pathway minimisation=',PATHSDSTEPS216:      &                  ' fetchz> Maximum number of steps for pathway minimisation=',PATHSDSTEPS
217:       ENDIF217:       ENDIF
218: 218: 
219:       IF (GRADSQ) WRITE(*,'(A)') ' fetchz> Using the modulus gradient as the objective function'219:       IF (GRADSQ) WRITE(*,'(A)') ' fetchz> Using the modulus gradient as the objective function'
220:       PRINT*220:       PRINT*
221:       CALL FLUSH(6)221:       CALL FLUSH(6)
222: 222: 
223:       IF (AMBERT.OR.NABT.OR.AMBER12T.OR.OPEPT) THEN223:       IF (AMBERT.OR.NABT.OR.AMBER12T) THEN
224:          NOPT=3*NATOMS224:          NOPT=3*NATOMS
225:          WRITE(*,'(A,I4,A,I4,A)') ' fetchz> ',NOPT,' Cartesian coordinates will be optimised for ',NATOMS,' AMBER atoms'225:          WRITE(*,'(A,I4,A,I4,A)') ' fetchz> ',NOPT,' Cartesian coordinates will be optimised for ',NATOMS,' AMBER atoms'
226:          IF (TWOENDS.OR.CONNECTT.OR.NEBT.OR.NEWNEBT.OR.DRAGT.OR.GUESSPATHT226:          IF (TWOENDS.OR.CONNECTT.OR.NEBT.OR.NEWNEBT.OR.DRAGT.OR.GUESSPATHT
227:      $     .OR.MECCANOT.OR.MORPHT.OR.GREATCIRCLET.OR.GROWSTRINGT.OR.BHINTERPT.OR.BISECTT.OR.CLOSESTALIGNMENT) THEN227:      $     .OR.MECCANOT.OR.MORPHT.OR.GREATCIRCLET.OR.GROWSTRINGT.OR.BHINTERPT.OR.BISECTT.OR.CLOSESTALIGNMENT) THEN
228:             OPEN (UNIT=7,FILE=FINSTRING,STATUS='OLD')228:             OPEN (UNIT=7,FILE=FINSTRING,STATUS='OLD')
229:           IF(AMBERT.OR.NABT.OR.AMBER12T.OR.OPEPT) THEN      ! read coordinates from file finish (containing only coordinates)229:           IF(AMBERT.OR.NABT.OR.AMBER12T) THEN      ! read coordinates from file finish (containing only coordinates)
230:             DO J1=1,NATOMS230:             DO J1=1,NATOMS
231:                READ(7,*)  FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)231:                READ(7,*)  FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)
232:             ENDDO232:             ENDDO
233:             CLOSE(7)233:             CLOSE(7)
234:           ELSE234:           ELSE
235:             DO J1=1,NATOMS235:             DO J1=1,NATOMS
236:                READ(7,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)236:                READ(7,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)
237: C              WRITE(*,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)237: C              WRITE(*,*) CD1, CD2, IDUM1, IDUM2, FIN(3*(J1-1)+1),FIN(3*(J1-1)+2),FIN(3*(J1-1)+3)
238:             ENDDO238:             ENDDO
239:           END IF239:           END IF
1592:      1                               ' first minimum at ',PARAM4,' second at ',PARAM4+2.0D0*PARAM61592:      1                               ' first minimum at ',PARAM4,' second at ',PARAM4+2.0D0*PARAM6
1593:       ENDIF1593:       ENDIF
1594:       IF (ZSYM(1)(1:1).EQ.'W') THEN ! must generalise for other rigid bodies somehow1594:       IF (ZSYM(1)(1:1).EQ.'W') THEN ! must generalise for other rigid bodies somehow
1595:          DEALLOCATE (IATNUM,ATMASS)1595:          DEALLOCATE (IATNUM,ATMASS)
1596:          ALLOCATE (IATNUM(3*(NATOMS/2)),ATMASS(3*(NATOMS/2)))1596:          ALLOCATE (IATNUM(3*(NATOMS/2)),ATMASS(3*(NATOMS/2)))
1597:       ENDIF1597:       ENDIF
1598: C1598: C
1599: C DAE ATMASS is set in CHSETZSYMATMASS for CHARMM. PERTABLE would overwrite1599: C DAE ATMASS is set in CHSETZSYMATMASS for CHARMM. PERTABLE would overwrite
1600: C jmc similarly for unres in UNRSETZSYMATMASS...1600: C jmc similarly for unres in UNRSETZSYMATMASS...
1601: C1601: C
1602:       IF (.NOT.(CHRMMT.OR.UNRST.OR.AMBERT.OR.NABT.OR.AMBER12T.OR.RINGPOLYMERT.OR.OPEPT)) CALL PERTABLE1602:       IF (.NOT.(CHRMMT.OR.UNRST.OR.AMBERT.OR.NABT.OR.AMBER12T.OR.RINGPOLYMERT)) CALL PERTABLE
1603:       IF (CASTEP) THEN1603:       IF (CASTEP) THEN
1604:          INQUIRE(FILE='castep.masses',EXIST=YESNO)1604:          INQUIRE(FILE='castep.masses',EXIST=YESNO)
1605:          IF (YESNO) THEN1605:          IF (YESNO) THEN
1606:             LUNIT=GETUNIT()1606:             LUNIT=GETUNIT()
1607:             OPEN(UNIT=LUNIT,FILE='castep.masses',STATUS='OLD')1607:             OPEN(UNIT=LUNIT,FILE='castep.masses',STATUS='OLD')
1608:             READ(LUNIT,*) (ATMASS(J1),J1=1,NATOMS)1608:             READ(LUNIT,*) (ATMASS(J1),J1=1,NATOMS)
1609:             CLOSE(LUNIT)1609:             CLOSE(LUNIT)
1610:             PRINT '(A)',' fetchz> Masses replaced by values from castep.masses file, Values are:'1610:             PRINT '(A)',' fetchz> Masses replaced by values from castep.masses file, Values are:'
1611:             WRITE(*,'(F20.10)') (ATMASS(J1),J1=1,NATOMS)1611:             WRITE(*,'(F20.10)') (ATMASS(J1),J1=1,NATOMS)
1612:          ENDIF1612:          ENDIF


r31567/getparams.f 2017-01-21 10:35:03.722250000 +0000 r31566/getparams.f 2017-01-21 10:35:06.958250000 +0000
 15: C   You should have received a copy of the GNU General Public License 15: C   You should have received a copy of the GNU General Public License
 16: C   along with this program; if not, write to the Free Software 16: C   along with this program; if not, write to the Free Software
 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 17: C   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18: C 18: C
 19:       PROGRAM OPTIM3 19:       PROGRAM OPTIM3
 20:       USE COMMONS 20:       USE COMMONS
 21:       USE PORFUNCS 21:       USE PORFUNCS
 22:       USE OPTIMHEADER 22:       USE OPTIMHEADER
 23:       USE KEY, ONLY: FILTHSTR,SEQ,NUMGLY,TARFL,CASTEPJOB,CP2KJOB,ONETEPJOB,QCHEMJOB,QCHEMJOBPARAMS,QCHEMSCALE,VASPJOB,  23:       USE KEY, ONLY: FILTHSTR,SEQ,NUMGLY,TARFL,CASTEPJOB,CP2KJOB,ONETEPJOB,QCHEMJOB,QCHEMJOBPARAMS,QCHEMSCALE,VASPJOB, 
 24:      &               QCHEMES,QCHEMESNAO,QCHEMESNELEC,QCHEMESNMO, MOLPROJOB, MOLPROSCALE, MOLPROJOBPARAMS, 24:      &               QCHEMES,QCHEMESNAO,QCHEMESNELEC,QCHEMESNMO, MOLPROJOB, MOLPROSCALE, MOLPROJOBPARAMS,
 25:      &               REAXFFJOB, AMBER12T,OPEPT 25:      &               REAXFFJOB, AMBER12T
 26:       USE MODAMBER9, ONLY: AMBERSTR,AMBERSTR1,INPCRD,ATMASS1 26:       USE MODAMBER9, ONLY: AMBERSTR,AMBERSTR1,INPCRD,ATMASS1
 27:       USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_SETUP 27:       USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_SETUP
 28:       USE OPEP_INTERFACE_MOD, ONLY: OPEP_GET_NATOMS 
 29:  28: 
 30:       IMPLICIT NONE 29:       IMPLICIT NONE
 31:  30: 
 32:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, IR, LAST, J1 31:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, IR, LAST, J1
 33:       LOGICAL VARIABLES,CASTEP,ONETEP,CP2K,DFTP,CPMD,END,CAT,SKIPBL,CLEAR 32:       LOGICAL VARIABLES,CASTEP,ONETEP,CP2K,DFTP,CPMD,END,CAT,SKIPBL,CLEAR
 34:       LOGICAL ECHO,AMBERT,NABT,RINGPOLYMERT,USERPOTT,QCHEM,VASP, MOLPRO,REAXFF 33:       LOGICAL ECHO,AMBERT,NABT,RINGPOLYMERT,USERPOTT,QCHEM,VASP, MOLPRO,REAXFF
 35:       COMMON /BUFINF/ ITEM, NITEMS, LOC(132), LINE, SKIPBL, CLEAR, NCR, 34:       COMMON /BUFINF/ ITEM, NITEMS, LOC(132), LINE, SKIPBL, CLEAR, NCR,
 36:      &                NERROR, IR, ECHO, LAST, CAT 35:      &                NERROR, IR, ECHO, LAST, CAT
 37:       DOUBLE PRECISION DUMMY 36:       DOUBLE PRECISION DUMMY
 38:       CHARACTER ZDUM*5 37:       CHARACTER ZDUM*5
320:                319:                
321:           NOGLY = 0320:           NOGLY = 0
322:           NUMGLY = 0321:           NUMGLY = 0
323:            DO I_RES=1,NRES322:            DO I_RES=1,NRES
324:              IF (SEQ(I_RES).NE.8) NOGLY = NOGLY +1323:              IF (SEQ(I_RES).NE.8) NOGLY = NOGLY +1
325:              IF (SEQ(I_RES).EQ.8) NUMGLY = NUMGLY +1324:              IF (SEQ(I_RES).EQ.8) NUMGLY = NUMGLY +1
326:            ENDDO325:            ENDDO
327:             NATOMS = NOGLY*3 + NUMGLY*2326:             NATOMS = NOGLY*3 + NUMGLY*2
328:             WRITE(6,*)'NATOMS NOGLY  NUMGLY  ',NATOMS,NOGLY,NUMGLY327:             WRITE(6,*)'NATOMS NOGLY  NUMGLY  ',NATOMS,NOGLY,NUMGLY
329:            GOTO 400328:            GOTO 400
330: ! 
331: !OPEP potential - use conf_initiale.pdb as we need it anyway  
332: ! 
333:        ELSE IF (WORD.EQ.'OPEP') THEN 
334:            OPEPT=.TRUE. 
335:            !leave the initialisation for keywords, only get natoms here 
336:            CALL OPEP_GET_NATOMS(NATOMS) 
337:            GOTO 400 
338:  
339: C davidg: introduced userpot here:329: C davidg: introduced userpot here:
340:        ELSE IF (WORD.EQ.'USERPOT') THEN330:        ELSE IF (WORD.EQ.'USERPOT') THEN
341: C           PRINT *,'IN THIS IF!'331: C           PRINT *,'IN THIS IF!'
342:            USERPOTT=.TRUE.332:            USERPOTT=.TRUE.
343:            CALL USERPOT_INIT333:            CALL USERPOT_INIT
344:            CALL USERPOT_GET_NATOMS(NATOMS)334:            CALL USERPOT_GET_NATOMS(NATOMS)
345:            GOTO 400335:            GOTO 400
346:            336:            
347:        ELSE IF (WORD.EQ.'CHARMM') THEN337:        ELSE IF (WORD.EQ.'CHARMM') THEN
348: ! DAE We are going to assume that there is a charmm format file in the directory called input.crd, and the first338: ! DAE We are going to assume that there is a charmm format file in the directory called input.crd, and the first


r31567/key.f90 2017-01-21 10:35:03.950250000 +0000 r31566/key.f90 2017-01-21 10:35:07.178250000 +0000
314: ! AMBER 12 variables314: ! AMBER 12 variables
315:       LOGICAL :: AMBER12T315:       LOGICAL :: AMBER12T
316:       LOGICAL :: CHIRALENDPOINTS316:       LOGICAL :: CHIRALENDPOINTS
317:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS317:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS
318: 318: 
319:       DOUBLE PRECISION, ALLOCATABLE ::  MLPDAT(:,:)319:       DOUBLE PRECISION, ALLOCATABLE ::  MLPDAT(:,:)
320:       INTEGER, ALLOCATABLE ::  MLPOUTCOME(:)320:       INTEGER, ALLOCATABLE ::  MLPOUTCOME(:)
321:       DOUBLE PRECISION, ALLOCATABLE ::  MLQDAT(:,:)321:       DOUBLE PRECISION, ALLOCATABLE ::  MLQDAT(:,:)
322:       INTEGER, ALLOCATABLE ::  MLQOUTCOME(:)322:       INTEGER, ALLOCATABLE ::  MLQOUTCOME(:)
323: 323: 
324: ! OPEP variables 
325:       LOGICAL :: OPEPT, OPEP_RNAT 
326:  
327: 324: 
328: END MODULE KEY325: END MODULE KEY


r31567/keywords.f 2017-01-21 10:35:04.182250000 +0000 r31566/keywords.f 2017-01-21 10:35:07.410250000 +0000
 59:          USE GENRIGID 59:          USE GENRIGID
 60:          USE MULTIPOT 60:          USE MULTIPOT
 61:          ! includes toggle for switching frames - required for RBAA 61:          ! includes toggle for switching frames - required for RBAA
 62:          USE MODHESS, ONLY : RBAANORMALMODET 62:          USE MODHESS, ONLY : RBAANORMALMODET
 63:          ! jdf43> for MMEINITWRAPPER 63:          ! jdf43> for MMEINITWRAPPER
 64:          USE ISO_C_BINDING, ONLY: C_NULL_CHAR 64:          USE ISO_C_BINDING, ONLY: C_NULL_CHAR
 65: ! AMBER12 65: ! AMBER12
 66:          USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_ATOM, AMBER12_RESIDUE, AMBER12_ATOMS, 66:          USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_ATOM, AMBER12_RESIDUE, AMBER12_ATOMS,
 67:      &                                    AMBER12_RESIDUES, AMBER12_GET_COORDS 67:      &                                    AMBER12_RESIDUES, AMBER12_GET_COORDS
 68:          USE CHIRALITY 68:          USE CHIRALITY
 69:          USE OPEP_INTERFACE_MOD, ONLY : OPEP_INIT 
 70:  69: 
 71:          IMPLICIT NONE 70:          IMPLICIT NONE
 72:  71: 
 73:          DOUBLE PRECISION ::  Q(3*NATOMS) 72:          DOUBLE PRECISION ::  Q(3*NATOMS)
 74:  73: 
 75:          INTEGER NDUM, LUNIT, FUNIT, GETUNIT, MLPDATSTART, MLQDATSTART 74:          INTEGER NDUM, LUNIT, FUNIT, GETUNIT, MLPDATSTART, MLQDATSTART
 76:          INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, IR, LAST, NTYPEA, J1, J2, J3, J, I 75:          INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, IR, LAST, NTYPEA, J1, J2, J3, J, I
 77:          COMMON /BUFINF/ ITEM, NITEMS, LOC(132), LINE, SKIPBL, CLEAR, NCR, 76:          COMMON /BUFINF/ ITEM, NITEMS, LOC(132), LINE, SKIPBL, CLEAR, NCR,
 78:      &   NERROR, IR, ECHO, LAST, CAT 77:      &   NERROR, IR, ECHO, LAST, CAT
 79:          ! DOUBLE PRECISION ::AAA,AAB,ABB,PAA,PAB,PBB,QAA,QAB,QBB,ZAA,ZAB 78:          ! DOUBLE PRECISION ::AAA,AAB,ABB,PAA,PAB,PBB,QAA,QAB,QBB,ZAA,ZAB
146:          DOUBLE PRECISION LPI145:          DOUBLE PRECISION LPI
147:          INTEGER DATA_UNIT146:          INTEGER DATA_UNIT
148:          CHARACTER(LEN=13) :: AAOPTION147:          CHARACTER(LEN=13) :: AAOPTION
149:          CHARACTER(LEN=20) :: AMBERSTR148:          CHARACTER(LEN=20) :: AMBERSTR
150: 149: 
151:          INTEGER :: MAXNSETS150:          INTEGER :: MAXNSETS
152: 151: 
153:          DOUBLE PRECISION :: DUMMY_FRQCONV  ! sn402: Used to ensure that the FRQCONV keyword always overrides152:          DOUBLE PRECISION :: DUMMY_FRQCONV  ! sn402: Used to ensure that the FRQCONV keyword always overrides
154:                                             ! the default value for a potential153:                                             ! the default value for a potential
155: 154: 
156:          CHARACTER(LEN=10) :: OPEP_DUMMY 
157:  
158:          LPI=3.14159265358979323846264338327950288419716939937510D0155:          LPI=3.14159265358979323846264338327950288419716939937510D0
159:          AAA=0156:          AAA=0
160:          AAB=0157:          AAB=0
161:          ABB=0158:          ABB=0
162:          PAA=0159:          PAA=0
163:          PAB=0160:          PAB=0
164:          PBB=0161:          PBB=0
165:          QAA=0162:          QAA=0
166:          QAB=0163:          QAB=0
167:          QBB=0164:          QBB=0
963:          MLQPROB=.FALSE.960:          MLQPROB=.FALSE.
964:          MLQDONE=.FALSE.961:          MLQDONE=.FALSE.
965:          MLQNORM=.FALSE.962:          MLQNORM=.FALSE.
966:          MLQLAMBDA=0.0D0963:          MLQLAMBDA=0.0D0
967:          MLQDATSTART=1964:          MLQDATSTART=1
968: 965: 
969:          MAXGAPT=.FALSE.966:          MAXGAPT=.FALSE.
970: 967: 
971:          MALONALDEHYDE=.FALSE.968:          MALONALDEHYDE=.FALSE.
972: 969: 
973: ! OPEP stuff 
974:          OPEPT = .FALSE. 
975:          OPEP_RNAT = .FALSE. 
976:  
977:          CLSTRINGT=.FALSE.970:          CLSTRINGT=.FALSE.
978:          CLSTRINGTST=.FALSE.971:          CLSTRINGTST=.FALSE.
979:          IF (FILTH2.EQ.0) THEN972:          IF (FILTH2.EQ.0) THEN
980:             OPEN (5,FILE='odata',STATUS='OLD')973:             OPEN (5,FILE='odata',STATUS='OLD')
981:          ELSE974:          ELSE
982:             WRITE(OTEMP,*) FILTH2975:             WRITE(OTEMP,*) FILTH2
983:             WRITE(OSTRING,'(A)') 'odata.' // TRIM(ADJUSTL(OTEMP))976:             WRITE(OSTRING,'(A)') 'odata.' // TRIM(ADJUSTL(OTEMP))
984:             OPEN (5,FILE=OSTRING,STATUS='OLD')977:             OPEN (5,FILE=OSTRING,STATUS='OLD')
985:          ENDIF978:          ENDIF
986:          DATA_UNIT=5979:          DATA_UNIT=5
4856:                ENDIF4849:                ENDIF
4857:             ENDDO4850:             ENDDO
4858: 24          CONTINUE4851: 24          CONTINUE
4859: 4852: 
4860:             ! sn4024853:             ! sn402
4861:             WRITE(*,*) "keywords> WARNING: there is currently no default frequency conversion set for ONETEP"4854:             WRITE(*,*) "keywords> WARNING: there is currently no default frequency conversion set for ONETEP"
4862:             WRITE(*,*) "keywords> Log products of frequencies will be computed in internal units."4855:             WRITE(*,*) "keywords> Log products of frequencies will be computed in internal units."
4863:             WRITE(*,*) "keywords> To learn how to set a default conversion factor, check the comments for 4856:             WRITE(*,*) "keywords> To learn how to set a default conversion factor, check the comments for 
4864:      &                            the FRQCONV keyword in keywords.f"4857:      &                            the FRQCONV keyword in keywords.f"
4865: 4858: 
4866: 4859: ! 
4867:  
4868:          ELSE IF (WORD.EQ.'OPEP') THEN 
4869:             OPEPT=.TRUE. 
4870:             CALL READA(OPEP_DUMMY) 
4871:             IF (OPEP_DUMMY.EQ.'RNA') THEN 
4872:                OPEP_RNAT = .TRUE. 
4873:                WRITE(*,'(A)') 'keyword> RNA simulation using OPEP' 
4874:             ELSE 
4875:                WRITE(*,'(A)') 'keyword> Protein simulation using OPEP' 
4876:             ENDIF 
4877:             IF (.NOT.ALLOCATED(ATMASS)) ALLOCATE(ATMASS(NATOMS)) 
4878:             CALL OPEP_INIT(NATOMS,Q(1:3*NATOMS),ATMASS(1:NATOMS),OPEP_RNAT) 
4879:  
4880:             !use same frequency conversion as AMBER does 
4881:             IF (DUMMY_FRQCONV .EQ. 0.0D0) THEN 
4882:                FRQCONV = 2.045483D13 
4883:                WRITE(*,*) "keywords> Set frequency conversion factor to the AMBER default value: ", FRQCONV 
4884:                WRITE(*,*) "keywords> This corresponds to frequencies being given in radians/s" 
4885:             ELSE 
4886:                FRQCONV = DUMMY_FRQCONV 
4887:                WRITE(*,*) "keywords> Set frequency conversion factor to the user-specified value: ", FRQCONV 
4888:             ENDIF 
4889:             FRQCONV2 = FRQCONV*FRQCONV 
4890:  
4891:             RETURN 
4892:  
4893: !   
4894: ! Optimise TS with SQVV4860: ! Optimise TS with SQVV
4895: ! 4861: ! 
4896:          ELSE IF (WORD == 'OPTIMIZETS') THEN4862:          ELSE IF (WORD == 'OPTIMIZETS') THEN
4897:             OPTIMIZETS=.TRUE.4863:             OPTIMIZETS=.TRUE.
4898: ! 4864: ! 
4899: ! Distance cutoff for distinguishing atoms in the same orbit for LPERMDIST and LOCALPERMDIST4865: ! Distance cutoff for distinguishing atoms in the same orbit for LPERMDIST and LOCALPERMDIST
4900: ! 4866: ! 
4901:          ELSE IF (WORD.EQ.'ORBITGEOMTOL') THEN4867:          ELSE IF (WORD.EQ.'ORBITGEOMTOL') THEN
4902:             CALL READF(LPDGEOMDIFFTOL)4868:             CALL READF(LPDGEOMDIFFTOL)
4903: ! 4869: ! 


r31567/md_initialise.F90 2017-01-21 10:35:02.462250000 +0000 r31566/md_initialise.F90 2017-01-21 10:35:05.538250000 +0000
  1: module md_initialise  1: module md_initialise
  2:   use md_defs  2:   use md_defs
  3:   use md_utils  3:   use md_utils
  4:   use restart_module  4:   use restart_module
  5: contains  5: contains
  6:   ! Initialisation of the simulation  6:   ! Initialisation of the simulation
  7:   subroutine initialise(conformation,rnat)  7:   subroutine initialise(conformation)
  8:     implicit none  8:     implicit none
  9:       9:     
 10:     logical , intent(in) :: rnat 
 11:     logical :: flag 10:     logical :: flag
 12:     character(len=20) :: dummy 11:     character(len=20) :: dummy
 13:     integer :: ierror, i, i3, j3, it 12:     integer :: ierror, i, i3, j3, it
 14:     double precision :: temperature 13:     double precision :: temperature
 15:     type(t_conformations), intent(inout) :: conformation 14:     type(t_conformations), intent(inout) :: conformation
 16:     double precision :: redum 15:     double precision :: redum
 17:     double precision :: m1, m2 16:     double precision :: m1, m2
 18:  17: 
 19:     ! We first initialise the various parameters 18:     ! We first initialise the various parameters
 20:     dt=TIMESTEP*timeunit; 19:     dt=TIMESTEP*timeunit;
 21:     dt1=0.5d0*dt; 20:     dt1=0.5d0*dt;
 22:     dt2=0.5d0*dt*dt; 21:     dt2=0.5d0*dt*dt;
 23:      22:     
 24:     ! We then initialise the potential 23:     ! We then initialise the potential
 25:     RNA_simulation = rnat 
 26:     call initialise_potential() 24:     call initialise_potential()
 27:  25: 
 28:     ! We also include the inverse mass 26:     ! We also include the inverse mass
 29:     if (.not.allocated(invmass))  allocate(invmass(vecsize)) 27:     if (.not.allocated(invmass))  allocate(invmass(vecsize))
 30:     if (.not.allocated(dt1_mass)) allocate(dt1_mass(vecsize)) 28:     if (.not.allocated(dt1_mass)) allocate(dt1_mass(vecsize))
 31:     if (.not.allocated(dt2_mass)) allocate(dt2_mass(vecsize)) 29:     if (.not.allocated(dt2_mass)) allocate(dt2_mass(vecsize))
 32:  30: 
 33:  31: 
 34:     invmass = 1.0d0/mass 32:     invmass = 1.0d0/mass
 35:     dt2_mass = dt2 * invmass 33:     dt2_mass = dt2 * invmass
 82:       redu2_mass(it) = redum / beq2(it)  80:       redu2_mass(it) = redum / beq2(it) 
 83:    81:   
 84:       reduAA(it) = redu2_mass(it)/m1 82:       reduAA(it) = redu2_mass(it)/m1
 85:       reduBB(it) = redu2_mass(it)/m2 83:       reduBB(it) = redu2_mass(it)/m2
 86:          84:         
 87:       ibeq2(it) = 1.0d0 / beq2(it) 85:       ibeq2(it) = 1.0d0 / beq2(it)
 88:     end do 86:     end do
 89:        87:       
 90:     ! Generate the list of temperatures for the thermalization 88:     ! Generate the list of temperatures for the thermalization
 91:     ! Each new temperature is 1.5 as high as the previous one 89:     ! Each new temperature is 1.5 as high as the previous one
 92: !kr366> not needed in OPTIM  90:     if (.not.allocated(temperatures)) allocate(temperatures(n_steps_thermalization))
 93:   ! if (.not.allocated(temperatures)) allocate(temperatures(n_steps_thermalization)) 91:     
 94:   !   92:     temperature = conformation%temperature
 95:   !  temperature = conformation%temperature 93: 
 96:   ! 94: 
 97:   ! 95:     do i=1, n_steps_thermalization
 98:   !  do i=1, n_steps_thermalization 96:        temperatures(n_steps_thermalization-i+1) = temperature
 99:   !     temperatures(n_steps_thermalization-i+1) = temperature 97:        temperature = temperature / 1.5
100:   !     temperature = temperature / 1.5 98:     end do
101:   !  end do 99:     
102:   !  100:     ! we then take care of the velocities
103:   !  ! we then take care of the velocities101:     if (restart .eq. 'new') then            ! New set of velocities
104:   !  if (restart .eq. 'new') then            ! New set of velocities102:        call initialise_velocities(temperature)
105:   !     call initialise_velocities(temperature)103:        restart_simulation_time = 0
106:   !     restart_simulation_time = 0104:     else if (restart .eq. 'restart') then  ! Reuse the previous velocities and position
107:   !  else if (restart .eq. 'restart') then  ! Reuse the previous velocities and position105:        write(501,*) 'On relance'
108:   !     write(501,*) 'On relance'106:        call read_restart(restart_simulation_time,conformation)
109:   !     call read_restart(restart_simulation_time,conformation)107:        n_steps_thermalization = 0         ! Make sure that there is no thermalization
110:   !     n_steps_thermalization = 0         ! Make sure that there is no thermalization108:     else if (restart .eq. 'new_velocities') then  ! Generates a new set of velocities
111:   !  else if (restart .eq. 'new_velocities') then  ! Generates a new set of velocities109:        call read_restart(restart_simulation_time,conformation)
112:   !     call read_restart(restart_simulation_time,conformation)110:        call initialise_velocities(temperature)
113:   !     call initialise_velocities(temperature)111:     else
114:   !  else112:        stop 'Wrong choice for restart'
115:   !     stop 'Wrong choice for restart'113:     endif
116:   !  endif114: 
117:   !115:     if (thermostat .eq. 'langevin') then
118:   !  if (thermostat .eq. 'langevin') then116:        ! Calculate the random force variance for the langevin thermostat
119:   !     ! Calculate the random force variance for the langevin thermostat117:        langevin_scalev = exp(-friction_coef*dt)
120:   !     langevin_scalev = exp(-friction_coef*dt)118:     endif
121:   !  endif 
122: 119: 
123: 120: 
124:     ! Check whether or not the filecounter file exists or not. If yes, reads it;121:     ! Check whether or not the filecounter file exists or not. If yes, reads it;
125:     ! if not, give a basic value to the counter. 122:     ! if not, give a basic value to the counter. 
126:     if (restart .ne. 'restart') then123:     if (restart .ne. 'restart') then
127:       inquire(file=COUNTER, exist=flag) 124:       inquire(file=COUNTER, exist=flag) 
128:       if (flag) then125:       if (flag) then
129:         open(unit=FCOUNTER,file=COUNTER,status='old',action='read',iostat=ierror)126:         open(unit=FCOUNTER,file=COUNTER,status='old',action='read',iostat=ierror)
130:         read(FCOUNTER,'(A13,I6)') dummy, mincounter127:         read(FCOUNTER,'(A13,I6)') dummy, mincounter
131:         close(FCOUNTER)128:         close(FCOUNTER)


r31567/OPTIM.F 2017-01-21 10:35:02.934250000 +0000 r31566/OPTIM.F 2017-01-21 10:35:06.194250000 +0000
 32:       USE NEWCONNECTMODULE 32:       USE NEWCONNECTMODULE
 33:       USE KEYNEB, NNNIMAGE=>NIMAGE 33:       USE KEYNEB, NNNIMAGE=>NIMAGE
 34:       USE MODGUESS 34:       USE MODGUESS
 35:       USE MODMEC 35:       USE MODMEC
 36:       USE PORFUNCS 36:       USE PORFUNCS
 37:       USE CHARUTILS 37:       USE CHARUTILS
 38:       USE CHIRALITY 38:       USE CHIRALITY
 39:       USE INTCOMMONS, ONLY : INTINTERPT, DESMINT, NATINT, INTMINPERMT !msb50 remove last 39:       USE INTCOMMONS, ONLY : INTINTERPT, DESMINT, NATINT, INTMINPERMT !msb50 remove last
 40:       USE INTCUTILS, ONLY : INTSETUP, INTCLEANUP ! msb50 last 40:       USE INTCUTILS, ONLY : INTSETUP, INTCLEANUP ! msb50 last
 41:       USE MODAMBER9, ONLY : DUMPMODEN,CHIARRAY1,GOODSTRUCTURE1 41:       USE MODAMBER9, ONLY : DUMPMODEN,CHIARRAY1,GOODSTRUCTURE1
 42:       USE OPEP_INTERFACE_MOD, ONLY : OPEP_FINISH 
 43: !     USE BENCHMARKS, ONLY : MINBMT, MINBM 42: !     USE BENCHMARKS, ONLY : MINBMT, MINBM
 44: ! hk286 43: ! hk286
 45:       USE GENRIGID 44:       USE GENRIGID
 46:  45: 
 47:       IMPLICIT NONE 46:       IMPLICIT NONE
 48: ! subroutine parameters   47: ! subroutine parameters  
 49:       INTEGER F1,F2 48:       INTEGER F1,F2
 50:       CHARACTER(LEN=80) FLSTRING 49:       CHARACTER(LEN=80) FLSTRING
 51:       CHARACTER(LEN=2) DUMMYS 50:       CHARACTER(LEN=2) DUMMYS
 52:  51: 
970:          GOTO 963969:          GOTO 963
971: 864      CONTINUE970: 864      CONTINUE
972:          PRINT '(A)',' OPTIM> End of multijob coordinates'971:          PRINT '(A)',' OPTIM> End of multijob coordinates'
973:       ENDIF972:       ENDIF
974:       CALL TSUMMARY973:       CALL TSUMMARY
975: 974: 
976:       IF (INTMINT.OR.DESMINT.OR.INTINTERPT.OR.NATINT) CALL INTCLEANUP975:       IF (INTMINT.OR.DESMINT.OR.INTINTERPT.OR.NATINT) CALL INTCLEANUP
977:       IF (UNRST) DEALLOCATE(UREFCOORD,UREFPPSANGLE,INTSTEP)976:       IF (UNRST) DEALLOCATE(UREFCOORD,UREFPPSANGLE,INTSTEP)
978:       IF (ZSYM(NATOMS).EQ.'SV') call cleanMemory977:       IF (ZSYM(NATOMS).EQ.'SV') call cleanMemory
979: 978: 
980:       IF (OPEPT) CALL OPEP_FINISH 
981:  
982:       ENDIF!Call to Dl-find for quantumrate stuff979:       ENDIF!Call to Dl-find for quantumrate stuff
983: 980: 
984:       IF (ALLOCATED(STPMAX)) DEALLOCATE(STPMAX)981:       IF (ALLOCATED(STPMAX)) DEALLOCATE(STPMAX)
985:       IF (ALLOCATED(NR)) DEALLOCATE(NR)982:       IF (ALLOCATED(NR)) DEALLOCATE(NR)
986:       IF (ALLOCATED(ZSYM)) DEALLOCATE(ZSYM)983:       IF (ALLOCATED(ZSYM)) DEALLOCATE(ZSYM)
987:       IF (ALLOCATED(FROZEN)) DEALLOCATE(FROZEN)984:       IF (ALLOCATED(FROZEN)) DEALLOCATE(FROZEN)
988:       IF (ALLOCATED(TAGNUM)) DEALLOCATE(TAGNUM)985:       IF (ALLOCATED(TAGNUM)) DEALLOCATE(TAGNUM)
989:       IF (ALLOCATED(TAGFAC)) DEALLOCATE(TAGFAC)986:       IF (ALLOCATED(TAGFAC)) DEALLOCATE(TAGFAC)
990:       IF (ALLOCATED(DUMPMODEN)) DEALLOCATE(DUMPMODEN)987:       IF (ALLOCATED(DUMPMODEN)) DEALLOCATE(DUMPMODEN)
991:       IF (ALLOCATED(BESTPERM)) DEALLOCATE(BESTPERM)988:       IF (ALLOCATED(BESTPERM)) DEALLOCATE(BESTPERM)


r31567/potential.f 2017-01-21 10:35:04.446250000 +0000 r31566/potential.f 2017-01-21 10:35:07.634250000 +0000
 29:          USE BOWMANWATER, ONLY : BOWMANPOT 29:          USE BOWMANWATER, ONLY : BOWMANPOT
 30:          USE FINITE_DIFFERENCES 30:          USE FINITE_DIFFERENCES
 31:          USE MODAMBER9,only : ifswitch,goodstructure1,irespa,cisarray1,checkcistransalways,checkcistransalwaysdna, 31:          USE MODAMBER9,only : ifswitch,goodstructure1,irespa,cisarray1,checkcistransalways,checkcistransalwaysdna,
 32:      1   checkcistransalwaysrna 32:      1   checkcistransalwaysrna
 33:          ! hk286 33:          ! hk286
 34:          USE GENRIGID 34:          USE GENRIGID
 35:          USE MULTIPOT, ONLY: MULTIPOT_CALL 35:          USE MULTIPOT, ONLY: MULTIPOT_CALL
 36:          USE CHIRALITY, ONLY: CIS_TRANS_CHECK, CHIRALITY_CHECK 36:          USE CHIRALITY, ONLY: CIS_TRANS_CHECK, CHIRALITY_CHECK
 37:          USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_ENERGY_AND_GRADIENT, POT_ENE_REC_C, AMBER12_NUM_HESS 37:          USE AMBER12_INTERFACE_MOD, ONLY: AMBER12_ENERGY_AND_GRADIENT, POT_ENE_REC_C, AMBER12_NUM_HESS
 38:          USE MODCUDALBFGS, ONLY: CUDA_ENEGRAD_WRAPPER 38:          USE MODCUDALBFGS, ONLY: CUDA_ENEGRAD_WRAPPER
 39:          USE OPEP_INTERFACE_MOD, ONLY: OPEP_ENERGY_AND_GRADIENT,OPEP_NUM_HESS 
 40:          ! use AMHGLOBALS 39:          ! use AMHGLOBALS
 41:  40: 
 42:          IMPLICIT NONE 41:          IMPLICIT NONE
 43:  42: 
 44:          DOUBLE PRECISION COORDS(NOPT) 43:          DOUBLE PRECISION COORDS(NOPT)
 45:          DOUBLE PRECISION ENERGY 44:          DOUBLE PRECISION ENERGY
 46:          DOUBLE PRECISION VNEW(NOPT) 45:          DOUBLE PRECISION VNEW(NOPT)
 47:          LOGICAL GTEST, STEST 46:          LOGICAL GTEST, STEST
 48:          DOUBLE PRECISION RMS 47:          DOUBLE PRECISION RMS
 49:          LOGICAL PTEST, BOXTEST, file_exists 48:          LOGICAL PTEST, BOXTEST, file_exists
3359:                   HESS(:,DEGFREEDOMS+1:3*NATOMS) = 0.0D03358:                   HESS(:,DEGFREEDOMS+1:3*NATOMS) = 0.0D0
3360:                   HESS(1:DEGFREEDOMS,1:DEGFREEDOMS) = XRIGIDHESS(1:DEGFREEDOMS,1:DEGFREEDOMS)3359:                   HESS(1:DEGFREEDOMS,1:DEGFREEDOMS) = XRIGIDHESS(1:DEGFREEDOMS,1:DEGFREEDOMS)
3361:                ENDIF3360:                ENDIF
3362:                CALL TRANSFORMGRAD(VNEW, XRIGIDCOORDS, XRIGIDGRAD)3361:                CALL TRANSFORMGRAD(VNEW, XRIGIDCOORDS, XRIGIDGRAD)
3363:                COORDS(DEGFREEDOMS+1:3*NATOMS) = 0.0D03362:                COORDS(DEGFREEDOMS+1:3*NATOMS) = 0.0D0
3364:                COORDS(1:DEGFREEDOMS) = XRIGIDCOORDS(1:DEGFREEDOMS)3363:                COORDS(1:DEGFREEDOMS) = XRIGIDCOORDS(1:DEGFREEDOMS)
3365:                VNEW(DEGFREEDOMS+1:3*NATOMS) = 0.0D03364:                VNEW(DEGFREEDOMS+1:3*NATOMS) = 0.0D0
3366:                VNEW(1:DEGFREEDOMS) = XRIGIDGRAD(1:DEGFREEDOMS)3365:                VNEW(1:DEGFREEDOMS) = XRIGIDGRAD(1:DEGFREEDOMS)
3367:             ENDIF3366:             ENDIF
3368: 3367: 
3369:          ELSE IF (OPEPT) THEN 
3370:             !used AMBER12 as example and simply replaced potential and 
3371:             !gradient calls accordingly 
3372:             VNEW = 0.0D0 
3373:             IF (RIGIDINIT .AND. (.NOT. ATOMRIGIDCOORDT)) THEN 
3374:                XRIGIDCOORDS(1:DEGFREEDOMS) = COORDS(1:DEGFREEDOMS) 
3375:                CALL TRANSFORMRIGIDTOC(1, NRIGIDBODY, COORDS,XRIGIDCOORDS) 
3376:             ENDIF 
3377:             CALL OPEP_ENERGY_AND_GRADIENT(NATOMS,COORDS,GRADATOMS,ENERGY,.TRUE.) 
3378:             VNEW(1:3*NATOMS) = GRADATOMS(:) 
3379:             ! Calculate the numerical hessian 
3380:             IF (STEST) THEN 
3381:                IF (.NOT. ALLOCATED(HESS)) ALLOCATE(HESS(3*NATOMS,3*NATOMS)) 
3382:                CALL OPEP_NUM_HESS(NATOMS, COORDS, DELTA=1.0D-5,HESSIAN=HESS(:,:)) 
3383:             END IF 
3384:             IF (PTEST) THEN 
3385:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'kcal/mol' 
3386:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'kcal/mol' 
3387:             ENDIF 
3388:             IF (RIGIDINIT .AND. (.NOT. ATOMRIGIDCOORDT) ) THEN 
3389:                IF (STEST) THEN 
3390:                   CALL TRANSFORMHESSIAN(HESS, GRADATOMS, XRIGIDCOORDS, XRIGIDHESS, RBAANORMALMODET) 
3391:                   HESS(DEGFREEDOMS+1:3*NATOMS,:) = 0.0D0 
3392:                   HESS(:,DEGFREEDOMS+1:3*NATOMS) = 0.0D0 
3393:                   HESS(1:DEGFREEDOMS,1:DEGFREEDOMS) =XRIGIDHESS(1:DEGFREEDOMS,1:DEGFREEDOMS) 
3394:                ENDIF 
3395:                CALL TRANSFORMGRAD(GRADATOMS, XRIGIDCOORDS, XRIGIDGRAD) 
3396:                COORDS(1:DEGFREEDOMS) = XRIGIDCOORDS(1:DEGFREEDOMS) 
3397:                COORDS(DEGFREEDOMS+1:3*NATOMS) = 0.0D0 
3398:                VNEW(1:DEGFREEDOMS) = XRIGIDGRAD(1:DEGFREEDOMS) 
3399:                VNEW(DEGFREEDOMS+1:3*NATOMS) = 0.0D0 
3400:             ENDIF 
3401:  
3402:          ELSE IF (UNRST) THEN3368:          ELSE IF (UNRST) THEN
3403:             CALL UENERGY(COORDS,VNEW,ENERGY,GTEST,SSTEST)3369:             CALL UENERGY(COORDS,VNEW,ENERGY,GTEST,SSTEST)
3404:             IF (PTEST) THEN3370:             IF (PTEST) THEN
3405:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,' kcal/mol'3371:                WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,' kcal/mol'
3406:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,' kcal/mol'3372:                WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,' kcal/mol'
3407:             ENDIF3373:             ENDIF
3408:             ! 3374:             ! 
3409:             ! Potentials identified by atom types corresponding to real atomic symbols must3375:             ! Potentials identified by atom types corresponding to real atomic symbols must
3410:             ! come at the end in case someone wants to use this atom in one of the electronic3376:             ! come at the end in case someone wants to use this atom in one of the electronic
3411:             ! strcuture codes identified by keywords above.3377:             ! strcuture codes identified by keywords above.


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0