hdiff output

r33359/amber_mutations.F90 2017-09-28 15:30:14.929613118 +0100 r33358/amber_mutations.F90 2017-09-28 15:30:16.077627926 +0100
 13:   TYPE RESIDUE_MUTATION 13:   TYPE RESIDUE_MUTATION
 14:      INTEGER                           :: RESNUM          !residue number 14:      INTEGER                           :: RESNUM          !residue number
 15:      INTEGER                           :: NMUTATIONS      !number of mutations so far 15:      INTEGER                           :: NMUTATIONS      !number of mutations so far
 16:      INTEGER                           :: NENTRIES        !number of possible residues 16:      INTEGER                           :: NENTRIES        !number of possible residues
 17:      CHARACTER(LEN=4)                  :: CURRENT_RES     !current residue 17:      CHARACTER(LEN=4)                  :: CURRENT_RES     !current residue
 18:      CHARACTER(LEN=4) , DIMENSION(:) , ALLOCATABLE :: RESCHOICE       !residues to choose for mutations 18:      CHARACTER(LEN=4) , DIMENSION(:) , ALLOCATABLE :: RESCHOICE       !residues to choose for mutations
 19:      DOUBLE PRECISION , DIMENSION(:) , ALLOCATABLE :: PROBABILITIES   !selection probability for selection 19:      DOUBLE PRECISION , DIMENSION(:) , ALLOCATABLE :: PROBABILITIES   !selection probability for selection
 20:   END TYPE RESIDUE_MUTATION 20:   END TYPE RESIDUE_MUTATION
 21:  21: 
 22:   CHARACTER(LEN=4), ALLOCATABLE , SAVE :: AMBER12_RESNAME(:) 22:   CHARACTER(LEN=4), ALLOCATABLE , SAVE :: AMBER12_RESNAME(:)
 23:   INTEGER , SAVE :: NRESIDUES , NRESMUT , MUNIT, NRESRB 23:   INTEGER , SAVE :: NRESIDUES , NRESMUT , MUNIT
 24:   INTEGER , ALLOCATABLE , SAVE :: TERMINI_RES(:), AMBER12_RESSTART(:), AMBER12_RESEND(:), AMBER12_RESNATOM(:), RESFORRB(:,:) 24:   INTEGER , ALLOCATABLE , SAVE :: TERMINI_RES(:), AMBER12_RESSTART(:), AMBER12_RESEND(:), AMBER12_RESNATOM(:)
 25:   TYPE(RESIDUE_MUTATION) , DIMENSION(:) , ALLOCATABLE ,SAVE :: MUTATION_INFO , PREVIOUS_MUTATION 25:   TYPE(RESIDUE_MUTATION) , DIMENSION(:) , ALLOCATABLE ,SAVE :: MUTATION_INFO , PREVIOUS_MUTATION
 26:   DOUBLE PRECISION, ALLOCATABLE, SAVE :: CA_REFERENCE(:) 26:   DOUBLE PRECISION, ALLOCATABLE, SAVE :: CA_REFERENCE(:)
 27:  27: 
 28:   CONTAINS 28:   CONTAINS
 29:   !setup mutational system, initialise coordinates correctly, and according to the right size 29:   !setup mutational system, initialise coordinates correctly, and according to the right size
 30:   SUBROUTINE AMBERMUTATION_SETUP()   30:   SUBROUTINE AMBERMUTATION_SETUP()  
 31:      IMPLICIT NONE 31:      IMPLICIT NONE
 32:      INTEGER :: MIUNIT,GETUNIT,J1,J2,NENTRIES,NTERMINI,TESTINT 32:      INTEGER :: MIUNIT,GETUNIT,J1,J2,NENTRIES,NTERMINI,TESTINT
 33:      LOGICAL :: YESNO , NTERT 33:      LOGICAL :: YESNO , NTERT
 34:      CHARACTER(200) :: ENTRY_ 34:      CHARACTER(200) ENTRY_
 35:      CHARACTER(25) , DIMENSION(:) , ALLOCATABLE :: ENTRIES 35:      CHARACTER(25) , DIMENSION(:) , ALLOCATABLE :: ENTRIES
 36:  36: 
 37:      !check there is a file contianing the mutational information 37:      !check there is a file contianing the mutational information
 38:      YESNO = .FALSE. 38:      YESNO = .FALSE.
 39:      INQUIRE(FILE='amber_mutations',EXIST=YESNO) 39:      INQUIRE(FILE='amber_mutations',EXIST=YESNO)
 40:      IF (.NOT.YESNO) THEN 40:      IF (.NOT.YESNO) THEN
 41:         WRITE(MYUNIT,'(A)') ' ambermut> No mutation information given' 41:         WRITE(MYUNIT,'(A)') ' ambermut> No mutation information given'
 42:         STOP 42:         STOP
 43:      ENDIF 43:      ENDIF
 44:      !get the number of residues, and their atom positions 44:      !get the number of residues, and their atom positions
115:         READ(MIUNIT,'(A)',END=101) ENTRY_115:         READ(MIUNIT,'(A)',END=101) ENTRY_
116:         ENTRIES(:)=''116:         ENTRIES(:)=''
117:         CALL READ_LINE(ENTRY_,MUTATION_INFO(J1)%NENTRIES,ENTRIES)117:         CALL READ_LINE(ENTRY_,MUTATION_INFO(J1)%NENTRIES,ENTRIES)
118:         DO J2=1,MUTATION_INFO(J1)%NENTRIES118:         DO J2=1,MUTATION_INFO(J1)%NENTRIES
119:            READ(ENTRIES(J2),*) MUTATION_INFO(J1)%PROBABILITIES(J2)119:            READ(ENTRIES(J2),*) MUTATION_INFO(J1)%PROBABILITIES(J2)
120:         ENDDO120:         ENDDO
121:      ENDDO121:      ENDDO
122: 101  CONTINUE122: 101  CONTINUE
123:      CLOSE(MIUNIT)123:      CLOSE(MIUNIT)
124:      !call the grouprotation set up here (not in keywords)124:      !call the grouprotation set up here (not in keywords)
125:      CALL MUT_SETUP_GROUPROTATION(1,.FALSE.,.FALSE.,0)125:      CALL MUT_SETUP_GROUPROTATION(1,.FALSE.,.FALSE.,0)         
126:      IF (AMBERMUTRIGIDT) THEN 
127:         CALL CREATE_RIGID_FILES() 
128:      END IF     
129:      RETURN126:      RETURN
130:   END SUBROUTINE AMBERMUTATION_SETUP127:   END SUBROUTINE AMBERMUTATION_SETUP
131:  
132:   !setup rigid bodies for AMBERMUTATIONS 
133:   SUBROUTINE AMBERMUTRB_SETUP() 
134:      IMPLICIT NONE 
135:      INTEGER :: GETUNIT, RBUNIT, J1 
136:      LOGICAL :: YESNO 
137:      CHARACTER(200) :: ENTRY_ 
138:      CHARACTER(25) :: ENTRIES(2) 
139:  
140:      !check there is a file contianing the mutational information 
141:      YESNO = .FALSE. 
142:      INQUIRE(FILE='residues_rb',EXIST=YESNO) 
143:      IF (.NOT.YESNO) THEN 
144:         WRITE(MYUNIT,'(A)') ' ambermut> No information to recreate rigid body input' 
145:         STOP 
146:      ENDIF 
147:      RBUNIT = GETUNIT() 
148:      OPEN(UNIT=RBUNIT,FILE='residues_rb',status='unknown') 
149:      WRITE(MYUNIT,*) 'ambermut> Reading in information to create new rbodyconfig files' 
150:      READ(RBUNIT,*) NRESRB !number of rigid bodies 
151:      ALLOCATE(RESFORRB(NRESRB,2)) 
152:      DO J1=1,NRESRB 
153:         READ(RBUNIT,'(A)',END=159) ENTRY_ 
154:         ENTRIES(:)='' 
155:         CALL READ_LINE(ENTRY_,2,ENTRIES) 
156:         READ(ENTRIES(1),'(I8)') RESFORRB(J1,1) 
157:         READ(ENTRIES(2),'(I8)') RESFORRB(J1,2) 
158:      ENDDO 
159: 159  CONTINUE 
160:      CLOSE(RBUNIT) 
161:      RETURN 
162:   END SUBROUTINE AMBERMUTRB_SETUP 
163:   128:   
164:   !mutate protein129:   !mutate protein
165:   SUBROUTINE AMBERMUT_STEP(COORDINATES , RESNUMBER)130:   SUBROUTINE AMBERMUT_STEP(COORDINATES , RESNUMBER)
166:      INTEGER , INTENT(OUT) :: RESNUMBER131:      INTEGER , INTENT(OUT) :: RESNUMBER
167:      CHARACTER(LEN=4) :: OLDRES , OLDRES1 , NEWRES , NEWRES1132:      CHARACTER(LEN=4) :: OLDRES , OLDRES1 , NEWRES , NEWRES1
168:      CHARACTER(LEN=6) :: NMUT_STRING , STARTINDEX_STRING133:      CHARACTER(LEN=6) :: NMUT_STRING , STARTINDEX_STRING
169:      CHARACTER(LEN=25) :: OPTION_STRING134:      CHARACTER(LEN=25) :: OPTION_STRING
170:      DOUBLE PRECISION :: COORDINATES(3*NATOMS)135:      DOUBLE PRECISION :: COORDINATES(3*NATOMS)
171:  136:  
172:      !let's store all information first in case we have to go back!137:      !let's store all information first in case we have to go back!
210:      CALL SYSTEM('mv perm.allow perm.allow.'//TRIM(ADJUSTL(NMUT_STRING)))175:      CALL SYSTEM('mv perm.allow perm.allow.'//TRIM(ADJUSTL(NMUT_STRING)))
211:      CALL SYSTEM('mv perm.allow.new perm.allow')176:      CALL SYSTEM('mv perm.allow.new perm.allow')
212:      !create a new topology, update the residue information and adjust coordinates for unchanged residues177:      !create a new topology, update the residue information and adjust coordinates for unchanged residues
213:      CALL CREATE_NEW_TOPOLOGY(RESNUMBER ,  NEWRES , COORDS)178:      CALL CREATE_NEW_TOPOLOGY(RESNUMBER ,  NEWRES , COORDS)
214:      !create new atom groups179:      !create new atom groups
215: #ifdef _SVN_ROOT_180: #ifdef _SVN_ROOT_
216:      CALL SYSTEM('python ' // _SVN_ROOT_ // '/SCRIPTS/AMBER/BHmutation_steps/grouprotations.py tmp.pdb')181:      CALL SYSTEM('python ' // _SVN_ROOT_ // '/SCRIPTS/AMBER/BHmutation_steps/grouprotations.py tmp.pdb')
217: #else182: #else
218:      CALL SYSTEM('python ' // grouprotation_script // ' tmp.pdb')183:      CALL SYSTEM('python ' // grouprotation_script // ' tmp.pdb')
219: #endif184: #endif
220:      IF (AMBERMUTRIGIDT) THEN 
221:         CALL SYSTEM('mv rbodyconfig rbodyconfig.'//TRIM(ADJUSTL(NMUT_STRING))) 
222:         CALL SYSTEM('mv coordsinirigid coordsinirigid.'//TRIM(ADJUSTL(NMUT_STRING))) 
223:      ENDIF 
224:      CALL SYSTEM('rm tmp.pdb')185:      CALL SYSTEM('rm tmp.pdb')
225:      !finally reinitialise AMBER with new groups, coordinates and topology186:      !finally reinitialise AMBER with new groups, coordinates and topology
226:      CALL REINITIALISE_AMBER()187:      CALL REINITIALISE_AMBER()
227:      !now remove old chiral states used for checking (the rest is done when we initialise the chirality in mc.F)188:      !now remove old chiral states used for checking (the rest is done when we initialise the chirality in mc.F)
228:      CALL DEALLOC_STATES_MUTATION()189:      CALL DEALLOC_STATES_MUTATION()
229:      RETURN190:      RETURN
230:   END SUBROUTINE AMBERMUT_STEP191:   END SUBROUTINE AMBERMUT_STEP
231: 192: 
232:   SUBROUTINE SELECT_MUTATION(RESNUMBER , OLDRES , NEWRES)193:   SUBROUTINE SELECT_MUTATION(RESNUMBER , OLDRES , NEWRES)
233:      INTEGER , INTENT(OUT) :: RESNUMBER194:      INTEGER , INTENT(OUT) :: RESNUMBER
441:      !create a start file (format specifications are less strict here)402:      !create a start file (format specifications are less strict here)
442:      OPEN(CUNIT2 , FILE='start' , STATUS='NEW')403:      OPEN(CUNIT2 , FILE='start' , STATUS='NEW')
443:      DO J1 = 1,NATOMS+SHIFT404:      DO J1 = 1,NATOMS+SHIFT
444:         WRITE(CUNIT2 , '(3f12.7)') COORDS_NEW(3*J1-2) , COORDS_NEW(3*J1-1) , COORDS_NEW(3*J1)405:         WRITE(CUNIT2 , '(3f12.7)') COORDS_NEW(3*J1-2) , COORDS_NEW(3*J1-1) , COORDS_NEW(3*J1)
445:      ENDDO406:      ENDDO
446:      CLOSE(CUNIT2)407:      CLOSE(CUNIT2)
447:      !finally remove the files we dont need, except if we are in DEBUG mode408:      !finally remove the files we dont need, except if we are in DEBUG mode
448:      IF (.NOT.DEBUG) CALL SYSTEM('rm coords.newres coords.oldres leap.in leap.log tmp.inpcrd')409:      IF (.NOT.DEBUG) CALL SYSTEM('rm coords.newres coords.oldres leap.in leap.log tmp.inpcrd')
449:   END SUBROUTINE CREATE_NEW_TOPOLOGY410:   END SUBROUTINE CREATE_NEW_TOPOLOGY
450: 411: 
451:   SUBROUTINE CREATE_RIGID_FILES() 
452:      INTEGER :: J1, J2, GETUNIT, RBCONFUNIT, ID_START, ID_END, ATOMSINGROUP 
453:  
454:      RBCONFUNIT = GETUNIT() 
455:      OPEN(RBCONFUNIT , FILE='rbodyconfig' , STATUS='NEW') 
456:      DO J1=1,NRESRB 
457:         ID_START = AMBER12_RESSTART(RESFORRB(J1,1)) 
458:         ID_END = AMBER12_RESEND(RESFORRB(J1,2)) 
459:         ATOMSINGROUP = ID_END - ID_START + 1 
460:         WRITE(RBCONFUNIT, '(A,I8)') 'GROUP ',ATOMSINGROUP 
461:         DO J2=ID_START,ID_END 
462:            WRITE(RBCONFUNIT,'(I8)') J2 
463:         END DO 
464:      END DO 
465:      CLOSE(RBCONFUNIT) 
466:      CALL SYSTEM('cp start coordsinirigid') 
467:      RETURN 
468:   END SUBROUTINE CREATE_RIGID_FILES 
469:  
470:   SUBROUTINE REINITIALISE_AMBER()412:   SUBROUTINE REINITIALISE_AMBER()
471:         USE GENRIGID, ONLY: GENRIGID_READ_FROM_FILE, DEALLOCATE_GENRIGID 
472:         INTEGER :: NUMBER_OF_ATOMS , J1413:         INTEGER :: NUMBER_OF_ATOMS , J1
473:         CHARACTER(LEN=20) OSTRING414:         CHARACTER(LEN=20) OSTRING
474:         DOUBLE PRECISION , ALLOCATABLE :: COORDS1(:)415:         DOUBLE PRECISION , ALLOCATABLE :: COORDS1(:)
475: 416: 
476:         !first of all we close all open AMBER files, deallocate all internal arrays, and remove traces from the previous initialisation417:         !first of all we close all open AMBER files, deallocate all internal arrays, and remove traces from the previous initialisation
477:         CALL AMBER12_MUT_FINISH()418:         CALL AMBER12_MUT_FINISH()
478:         !new number of atoms and amber setup419:         !new number of atoms and amber setup
479:         NUMBER_OF_ATOMS=AMBER12_RESEND(NRESIDUES)420:         NUMBER_OF_ATOMS=AMBER12_RESEND(NRESIDUES)
480:         WRITE(OSTRING,'(A)') 'coords.inpcrd'421:         WRITE(OSTRING,'(A)') 'coords.inpcrd'
481:         !reinitialise AMBER with the new information422:         !reinitialise AMBER with the new information
488:         ALLOCATE(COORDS1(3*NATOMS))429:         ALLOCATE(COORDS1(3*NATOMS))
489:         IF(ALLOCATED(COORDS)) DEALLOCATE(COORDS)430:         IF(ALLOCATED(COORDS)) DEALLOCATE(COORDS)
490:         ! Read the coords from AMBER12 into COORDS1(:)431:         ! Read the coords from AMBER12 into COORDS1(:)
491:         CALL AMBER12_GET_COORDS(NATOMS, COORDS1(:))432:         CALL AMBER12_GET_COORDS(NATOMS, COORDS1(:))
492:         ALLOCATE(COORDS(3*NATOMS,NPAR))433:         ALLOCATE(COORDS(3*NATOMS,NPAR))
493:         DO J1=1,NPAR434:         DO J1=1,NPAR
494:            COORDS(:,J1) = COORDS1(:)435:            COORDS(:,J1) = COORDS1(:)
495:         END DO436:         END DO
496:         !setup the new group rotation information437:         !setup the new group rotation information
497:         CALL MUT_SETUP_GROUPROTATION(1,.FALSE.,.FALSE.,0)438:         CALL MUT_SETUP_GROUPROTATION(1,.FALSE.,.FALSE.,0)
498:         !setup new rigid body files and call reinitialisation 
499:         IF (AMBERMUTRIGIDT) THEN 
500:            CALL DEALLOCATE_GENRIGID() 
501:            CALL CREATE_RIGID_FILES() 
502:            CALL GENRIGID_READ_FROM_FILE() 
503:         ENDIF 
504:         !deallocate, reallocate and initialise a bunch of globals that we need to reset439:         !deallocate, reallocate and initialise a bunch of globals that we need to reset
505:         DEALLOCATE(QMINP)440:         DEALLOCATE(QMINP)
506:         ALLOCATE(QMINP(NSAVE,3*NATOMS))441:         ALLOCATE(QMINP(NSAVE,3*NATOMS))
507:         DEALLOCATE(QMINT)442:         DEALLOCATE(QMINT)
508:         ALLOCATE(QMINT(NSAVE,NATOMS))443:         ALLOCATE(QMINT(NSAVE,NATOMS))
509:         DEALLOCATE(COORDSO)444:         DEALLOCATE(COORDSO)
510:         ALLOCATE(COORDSO(3*NATOMS,NPAR))445:         ALLOCATE(COORDSO(3*NATOMS,NPAR))
511:         DEALLOCATE(VT)446:         DEALLOCATE(VT)
512:         ALLOCATE(VT(NATOMS))447:         ALLOCATE(VT(NATOMS))
513:         DEALLOCATE(VAT)448:         DEALLOCATE(VAT)


r33359/commons.f90 2017-09-28 15:30:15.161616111 +0100 r33358/commons.f90 2017-09-28 15:30:16.309630918 +0100
656:       DOUBLE PRECISION, ALLOCATABLE ::  MLQDAT(:,:)656:       DOUBLE PRECISION, ALLOCATABLE ::  MLQDAT(:,:)
657:       INTEGER, ALLOCATABLE ::  MLQOUTCOME(:)657:       INTEGER, ALLOCATABLE ::  MLQOUTCOME(:)
658:       INTEGER, ALLOCATABLE ::  LJADDNN(:,:)658:       INTEGER, ALLOCATABLE ::  LJADDNN(:,:)
659: 659: 
660:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS !for QCIAMBER660:       INTEGER, DIMENSION(:,:), ALLOCATABLE :: BONDS !for QCIAMBER
661: 661: 
662: !OPEP interface662: !OPEP interface
663:       LOGICAL :: OPEPT, OPEP_RNAT663:       LOGICAL :: OPEPT, OPEP_RNAT
664: 664: 
665: !AMBER mutational steps665: !AMBER mutational steps
666:       LOGICAL :: AMBERMUTATIONT, AMBERMUTRIGIDT666:       LOGICAL :: AMBERMUTATIONT
667:       INTEGER :: MUTUNIT,NMUTATION,MUTATIONFREQ,MUTTESTSTEPS,AMBERMUTFF,AMBERMUTIGB,MUTENERGY,MUTTERMID667:       INTEGER :: MUTUNIT,NMUTATION,MUTATIONFREQ,MUTTESTSTEPS,AMBERMUTFF,AMBERMUTIGB,MUTENERGY,MUTTERMID
668: 668: 
669: !Orbital variables669: !Orbital variables
670:       LOGICAL :: ORBITALS670:       LOGICAL :: ORBITALS
671:       INTEGER :: NROTS, NORBS, ORBVAREXPONENT671:       INTEGER :: NROTS, NORBS, ORBVAREXPONENT
672:       DOUBLE PRECISION, ALLOCATABLE :: R2INTS(:,:), DIPINTS(:,:,:)672:       DOUBLE PRECISION, ALLOCATABLE :: R2INTS(:,:), DIPINTS(:,:,:)
673: END MODULE COMMONS673: END MODULE COMMONS


r33359/genrigid.f90 2017-09-28 15:30:15.389619052 +0100 r33358/genrigid.f90 2017-09-28 15:30:16.533633806 +0100
399: ! vr274> Moved initialization of coordinates to GENRIGID_INITIALISE, here only read the setup399: ! vr274> Moved initialization of coordinates to GENRIGID_INITIALISE, here only read the setup
400: !        SITESRIGIDBODY(J2,:,J1) = COORDS(3*DUMMY-2:3*DUMMY,1)400: !        SITESRIGIDBODY(J2,:,J1) = COORDS(3*DUMMY-2:3*DUMMY,1)
401:      ENDDO401:      ENDDO
402:   ENDDO402:   ENDDO
403:   CLOSE(222)403:   CLOSE(222)
404:   CALL GENRIGID_INITIALISE(INICOORDS)404:   CALL GENRIGID_INITIALISE(INICOORDS)
405: END SUBROUTINE GENRIGID_READ_FROM_FILE405: END SUBROUTINE GENRIGID_READ_FROM_FILE
406: 406: 
407: !-----------------------------------------------------------407: !-----------------------------------------------------------
408: 408: 
409: SUBROUTINE DEALLOCATE_GENRIGID() 
410:  
411:   DEALLOCATE(NSITEPERBODY) 
412:   DEALLOCATE(SITESRIGIDBODY) 
413:   DEALLOCATE(RIGIDGROUPS) 
414:   DEALLOCATE(REFVECTOR) 
415:   DEALLOCATE(GR_WEIGHTS) 
416:   DEALLOCATE(IINVERSE) 
417:   DEALLOCATE(RIGIDISRIGID) 
418:   DEALLOCATE(RB_BY_ATOM) 
419:   DEALLOCATE(RIGIDSINGLES) 
420:   DEALLOCATE(RIGIDCOORDS) 
421:  
422: END SUBROUTINE DEALLOCATE_GENRIGID 
423:  
424: !-----------------------------------------------------------409: !-----------------------------------------------------------
425: 410: 
426: SUBROUTINE TRANSFORMRIGIDTOC (CMIN, CMAX, XCOORDS, XRIGIDCOORDS)411: SUBROUTINE TRANSFORMRIGIDTOC (CMIN, CMAX, XCOORDS, XRIGIDCOORDS)
427:       412:       
428:   USE COMMONS, ONLY: NATOMS, ORTHO, BOXDERIVT413:   USE COMMONS, ONLY: NATOMS, ORTHO, BOXDERIVT
429:   USE CARTDIST414:   USE CARTDIST
430:   IMPLICIT NONE415:   IMPLICIT NONE
431:   416:   
432:   INTEGER :: J1, J2, J5, J7, J9417:   INTEGER :: J1, J2, J5, J7, J9
433:   INTEGER :: CMIN, CMAX418:   INTEGER :: CMIN, CMAX


r33359/keywords.f 2017-09-28 15:30:15.621622044 +0100 r33358/keywords.f 2017-09-28 15:30:17.169642038 +0100
 27:       USE TWIST_MOD 27:       USE TWIST_MOD
 28: !       sf344> AMBER additions 28: !       sf344> AMBER additions
 29:       USE modamber9, only : coords1,amberstr,amberstr1,mdstept,inpcrd,amberenergiest, nocistransdna, nocistransrna, 29:       USE modamber9, only : coords1,amberstr,amberstr1,mdstept,inpcrd,amberenergiest, nocistransdna, nocistransrna,
 30:      &                      uachiral, ligrotscale, setchiral, STEEREDMINT, SMINATOMA, SMINATOMB, SMINK, SMINKINC, 30:      &                      uachiral, ligrotscale, setchiral, STEEREDMINT, SMINATOMA, SMINATOMB, SMINK, SMINKINC,
 31:      &                      SMINDISTSTART, SMINDISTFINISH, natomsina, natomsinb, natomsinc, atomsinalist, atomsinblist, 31:      &                      SMINDISTSTART, SMINDISTFINISH, natomsina, natomsinb, natomsinc, atomsinalist, atomsinblist,
 32:      &                      atomsinclist, atomsinalistlogical, atomsinblistlogical, atomsinclistlogical, ligcartstep, 32:      &                      atomsinclist, atomsinalistlogical, atomsinblistlogical, atomsinclistlogical, ligcartstep,
 33:      &                      ligtransstep, ligmovefreq, amchnmax, amchnmin, amchpmax, amchpmin, rotamert, rotmaxchange, 33:      &                      ligtransstep, ligmovefreq, amchnmax, amchnmin, amchpmax, amchpmin, rotamert, rotmaxchange,
 34:      &                      rotcentre, rotpselect, rotoccuw, rotcutoff, setchiralgeneric, PRMTOP, IGB, RGBMAX, CUT, 34:      &                      rotcentre, rotpselect, rotoccuw, rotcutoff, setchiralgeneric, PRMTOP, IGB, RGBMAX, CUT,
 35:      &                      SALTCON, macroiont, nmacroions, macroiondist 35:      &                      SALTCON, macroiont, nmacroions, macroiondist
 36:       USE modamber 36:       USE modamber
 37:       USE AMBER12_MUTATIONS, ONLY : AMBERMUTATION_SETUP, AMBERMUTRB_SETUP 37:       USE AMBER12_MUTATIONS, ONLY : AMBERMUTATION_SETUP
 38:       USE PORFUNCS 38:       USE PORFUNCS
 39:       USE MYGA_PARAMS 39:       USE MYGA_PARAMS
 40:       USE BGUPMOD 40:       USE BGUPMOD
 41:       USE GLJYMOD 41:       USE GLJYMOD
 42:       USE CHIRO_MODULE, ONLY: CHIRO_SIGMA, CHIRO_MU, CHIRO_GAMMA, CHIRO_L 42:       USE CHIRO_MODULE, ONLY: CHIRO_SIGMA, CHIRO_MU, CHIRO_GAMMA, CHIRO_L
 43:       USE CONVEX_POLYHEDRA_MODULE, ONLY: INITIALISE_POLYHEDRA, K_COMPRESS, K_OVERLAP 43:       USE CONVEX_POLYHEDRA_MODULE, ONLY: INITIALISE_POLYHEDRA, K_COMPRESS, K_OVERLAP
 44:       USE LJ_GAUSS_MOD, ONLY: LJ_GAUSS_MODE, LJ_GAUSS_RCUT, LJ_GAUSS_EPS, 44:       USE LJ_GAUSS_MOD, ONLY: LJ_GAUSS_MODE, LJ_GAUSS_RCUT, LJ_GAUSS_EPS,
 45:      &                        LJ_GAUSS_R0, LJ_GAUSS_SIGMASQ, LJ_GAUSS_PARAMS, 45:      &                        LJ_GAUSS_R0, LJ_GAUSS_SIGMASQ, LJ_GAUSS_PARAMS,
 46:      &                        LJ_GAUSS_INITIALISE 46:      &                        LJ_GAUSS_INITIALISE
 47:       USE OPP_MOD, ONLY: OPP_MODE, OPP_RCUT, OPP_K, OPP_PHI, OPP_PARAMS, 47:       USE OPP_MOD, ONLY: OPP_MODE, OPP_RCUT, OPP_K, OPP_PHI, OPP_PARAMS,
1246: 1246: 
1247: ! AMBER mutations1247: ! AMBER mutations
1248:       AMBERMUTATIONT = .FALSE.1248:       AMBERMUTATIONT = .FALSE.
1249:       MUTATIONFREQ = 10001249:       MUTATIONFREQ = 1000
1250:       MUTTESTSTEPS = 501250:       MUTTESTSTEPS = 50
1251:       NMUTATION = 01251:       NMUTATION = 0
1252:       AMBERMUTIGB = 21252:       AMBERMUTIGB = 2
1253:       AMBERMUTFF = 141253:       AMBERMUTFF = 14
1254:       MUTENERGY = 11254:       MUTENERGY = 1
1255:       MUTTERMID = 01255:       MUTTERMID = 0
1256:       AMBERMUTRIGIDT = .FALSE. 
1257: 1256: 
1258: ! Align routine variables1257: ! Align routine variables
1259:       FASTOVERLAPT = .FALSE.1258:       FASTOVERLAPT = .FALSE.
1260:       BNB_ALIGNT = .FALSE.1259:       BNB_ALIGNT = .FALSE.
1261:       KERNELWIDTH = -1 ! This is set to a sensible value in the ALIGN subroutine itself.1260:       KERNELWIDTH = -1 ! This is set to a sensible value in the ALIGN subroutine itself.
1262:       NPEAKS = 11261:       NPEAKS = 1
1263:       NDISPLACEMENTS = 11262:       NDISPLACEMENTS = 1
1264:       NROTATIONS = 11263:       NROTATIONS = 1
1265:       MAX_ANGMOM = 151264:       MAX_ANGMOM = 15
1266:       BNB_NSTEPS = 20001265:       BNB_NSTEPS = 2000
2152:            WRITE(MYUNIT,'(A)') 'keyword> use DSSP alpha helix'2151:            WRITE(MYUNIT,'(A)') 'keyword> use DSSP alpha helix'
2153:         ELSE IF (MUTENERGY.EQ.6) THEN2152:         ELSE IF (MUTENERGY.EQ.6) THEN
2154:            WRITE(MYUNIT,'(A)') 'keyword> use DSSP 3-10 helix'2153:            WRITE(MYUNIT,'(A)') 'keyword> use DSSP 3-10 helix'
2155:         ELSE IF (MUTENERGY.EQ.7) THEN2154:         ELSE IF (MUTENERGY.EQ.7) THEN
2156:            WRITE(MYUNIT,'(A)') 'keyword> use DSSP pi helix'2155:            WRITE(MYUNIT,'(A)') 'keyword> use DSSP pi helix'
2157:         ELSE2156:         ELSE
2158:            WRITE(MYUNIT,'(A)') 'keyword> option not available for scoring mutation'2157:            WRITE(MYUNIT,'(A)') 'keyword> option not available for scoring mutation'
2159:            STOP2158:            STOP
2160:         ENDIF2159:         ENDIF
2161: 2160: 
2162:       ELSE IF (WORD.EQ.'AMBERMUTRIGID') THEN 
2163:         AMBERMUTRIGIDT = .TRUE. 
2164:         RIGIDINIT = .TRUE. 
2165:         ATOMRIGIDCOORDT = .TRUE. 
2166:         AACONVERGENCET = .TRUE. 
2167:         CALL AMBERMUTRB_SETUP() 
2168:  
2169:       ELSE IF (WORD.EQ.'AMBER9') THEN2161:       ELSE IF (WORD.EQ.'AMBER9') THEN
2170:         AMBERT=.TRUE.2162:         AMBERT=.TRUE.
2171:         WRITE(MYUNIT,'(A)') 'keyword> RADIUS set to 999 for AMBER9 run'2163:         WRITE(MYUNIT,'(A)') 'keyword> RADIUS set to 999 for AMBER9 run'
2172:         RADIUS=9992164:         RADIUS=999
2173: 2165: 
2174: !2166: !
2175: ! csw34> if residues are frozen with FREEZERES, call the amber routine2167: ! csw34> if residues are frozen with FREEZERES, call the amber routine
2176: ! to fill the FROZEN array correctly (in amberinterface.f)2168: ! to fill the FROZEN array correctly (in amberinterface.f)
2177: !2169: !
2178:         IF (PERMDIST.OR.LOCALPERMDIST.OR.LPERMDIST) THEN2170:         IF (PERMDIST.OR.LOCALPERMDIST.OR.LPERMDIST) THEN


r33359/mc.F 2017-09-28 15:30:15.849624985 +0100 r33358/mc.F 2017-09-28 15:30:17.397644949 +0100
 95:  95: 
 96: ! khs26> Energy decomposition for AMBER 12 96: ! khs26> Energy decomposition for AMBER 12
 97: !      TYPE(POT_ENE_REC_C) :: AMBER12_ENERGY_DECOMP 97: !      TYPE(POT_ENE_REC_C) :: AMBER12_ENERGY_DECOMP
 98:  98: 
 99: ! ds656 > energy before and after BGUPTA swap (without relaxation) 99: ! ds656 > energy before and after BGUPTA swap (without relaxation)
100:       DOUBLE PRECISION :: EBSWAP=0.0D0, EASWAP=0.0D0, EASWAPQ=0.0D0, DE1=0.0D0, DE2=0.0D0100:       DOUBLE PRECISION :: EBSWAP=0.0D0, EASWAP=0.0D0, EASWAPQ=0.0D0, DE1=0.0D0, DE2=0.0D0
101: 101: 
102:       DOUBLE PRECISION QTEMP(3,NATOMSALLOC), Q4, Q6102:       DOUBLE PRECISION QTEMP(3,NATOMSALLOC), Q4, Q6
103: 103: 
104: ! kr366> AMBER mutation steps104: ! kr366> AMBER mutation steps
105:       DOUBLE PRECISION :: EMUTP = 0.0D0 , EMUTN=0.0D0 , MUTSCORE=0.0D0 105:       DOUBLE PRECISION :: EMUTP = 0.0D0 , EMUTN=0.0D0
106:       LOGICAL :: MUTATEDT=.FALSE. , DOMUTATIONSTEPT=.FALSE.106:       LOGICAL :: MUTATEDT=.FALSE. , DOMUTATIONSTEPT=.FALSE.
107:       CHARACTER(LEN=10) :: NMUT_STRING107:       CHARACTER(LEN=10) :: NMUT_STRING
108:       INTEGER :: MUTATEDRES = 0 , NMUTSTEP108:       INTEGER :: MUTATEDRES = 0 , NMUTSTEP
109:       INTEGER :: MUTSCOREUNIT 
110: 109: 
111: !kr366> as we may need to change the size of the coordinate arrays for mutational steps they are now allocatable110: !kr366> as we may need to change the size of the coordinate arrays for mutational steps they are now allocatable
112:       IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS)111:       IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS)
113:       ALLOCATE(BESTCOORDS(3*NATOMSALLOC,NPAR))112:       ALLOCATE(BESTCOORDS(3*NATOMSALLOC,NPAR))
114:       IF (ALLOCATED(SAVECOORDS)) DEALLOCATE(SAVECOORDS)113:       IF (ALLOCATED(SAVECOORDS)) DEALLOCATE(SAVECOORDS)
115:       ALLOCATE(SAVECOORDS(3*NATOMSALLOC))114:       ALLOCATE(SAVECOORDS(3*NATOMSALLOC))
116:       IF (ALLOCATED(TEMPCOORDS)) DEALLOCATE(TEMPCOORDS)115:       IF (ALLOCATED(TEMPCOORDS)) DEALLOCATE(TEMPCOORDS)
117:       ALLOCATE(TEMPCOORDS(3*NATOMSALLOC))116:       ALLOCATE(TEMPCOORDS(3*NATOMSALLOC))
118:       IF (.NOT.(ALLOCATED(SCREENC))) ALLOCATE(SCREENC(3*NATOMSALLOC))117:       IF (.NOT.(ALLOCATED(SCREENC))) ALLOCATE(SCREENC(3*NATOMSALLOC))
119: 118: 
120:       !also add tracking for penalty function used to evaluate mutations 
121:       IF (AMBERMUTATIONT) THEN 
122:          MUTSCOREUNIT = GETUNIT() 
123:          OPEN(UNIT=MUTSCOREUNIT, FILE='penalty.mutation', STATUS='NEW') 
124:       ENDIF 
125:       QNEWRES=0119:       QNEWRES=0
126:       QGCBH=0120:       QGCBH=0
127: 121: 
128: ! sf344> selectively unfreeze the last added building blocks (MODULARNINCR)122: ! sf344> selectively unfreeze the last added building blocks (MODULARNINCR)
129: !        for sequential MC loops in modular global optimization123: !        for sequential MC loops in modular global optimization
130:       IF(MODULART) THEN124:       IF(MODULART) THEN
131:         FROZEN(:)=.TRUE.125:         FROZEN(:)=.TRUE.
132:            IF(MODULARCURRENTN==MODULARNMIN) THEN   ! unfreeze every atom in the first step of MODULARNMIN molecules126:            IF(MODULARCURRENTN==MODULARNMIN) THEN   ! unfreeze every atom in the first step of MODULARNMIN molecules
133:                 J6=0127:                 J6=0
134:            ELSE128:            ELSE
364:       ENDIF358:       ENDIF
365:       WRITE(MYUNIT, '(A)')  'Calculating initial energy'359:       WRITE(MYUNIT, '(A)')  'Calculating initial energy'
366:       EPSSAVE=EPSSPHERE360:       EPSSAVE=EPSSPHERE
367:       EPSSPHERE=0.0D0361:       EPSSPHERE=0.0D0
368: 362: 
369:       CALL QUENCH(.FALSE.,JP,ITERATIONS,TIME,BRUN,QDONE,SCREENC)363:       CALL QUENCH(.FALSE.,JP,ITERATIONS,TIME,BRUN,QDONE,SCREENC)
370:       NQTOT=NQTOT+1364:       NQTOT=NQTOT+1
371:       WRITE(MYUNIT,'(A,I10,A,G20.10,A,I5,A,G12.5,A,G20.10,A,F11.1)') 'Qu ',NQ(JP),' E=',365:       WRITE(MYUNIT,'(A,I10,A,G20.10,A,I5,A,G12.5,A,G20.10,A,F11.1)') 'Qu ',NQ(JP),' E=',
372:      1           POTEL,' steps=',ITERATIONS,' RMS=',RMS,' Markov E=',POTEL,' t=',TIME-TSTART366:      1           POTEL,' steps=',ITERATIONS,' RMS=',RMS,' Markov E=',POTEL,' t=',TIME-TSTART
373:       CALL FLUSH(MYUNIT)367:       CALL FLUSH(MYUNIT)
 368: 
374:  369:  
375: !  EPREV saves the previous energy in the Markov chain.370: !  EPREV saves the previous energy in the Markov chain.
376: !  EBEST and JBEST record the lowest energy since the last reseeding and the371: !  EBEST and JBEST record the lowest energy since the last reseeding and the
377: !  step it was attained at. BESTCOORDS contains the corresponding coordinates.372: !  step it was attained at. BESTCOORDS contains the corresponding coordinates.
378:  373:  
379:       EPREV(JP)=POTEL374:       EPREV(JP)=POTEL
380: ! jwrm2> if we're using percolate with compression, we need to know whether EPREV was calculated with compression on375: ! jwrm2> if we're using percolate with compression, we need to know whether EPREV was calculated with compression on
381:       IF (DEBUG .AND. PERCOLATET) PERCCOMPMARKOV = COMPON376:       IF (DEBUG .AND. PERCOLATET) PERCCOMPMARKOV = COMPON
382: ! jwrm2> end377: ! jwrm2> end
383:       EPPREV(JP)=0.0D0378:       EPPREV(JP)=0.0D0
531:             GCNATOMSBEST(JP)=NATOMS526:             GCNATOMSBEST(JP)=NATOMS
532:             GCEBESTP(JP)=POTEL527:             GCEBESTP(JP)=POTEL
533:             GCJBESTP(JP)=0528:             GCJBESTP(JP)=0
534:             GCBESTCOORDSP(1:3*NATOMS,JP)=COORDS(1:3*NATOMS,JP)529:             GCBESTCOORDSP(1:3*NATOMS,JP)=COORDS(1:3*NATOMS,JP)
535:             GCBESTVATP(1:NATOMS,JP)=VAT(1:NATOMS,JP)530:             GCBESTVATP(1:NATOMS,JP)=VAT(1:NATOMS,JP)
536:                GCNATOMSBESTP(JP)=NATOMS531:                GCNATOMSBESTP(JP)=NATOMS
537:          ENDIF532:          ENDIF
538: ! hk286533: ! hk286
539:       ENDDO534:       ENDDO
540:       EPSSPHERE=EPSSAVE535:       EPSSPHERE=EPSSAVE
541:  
542: ! kr366 - save score for initial quench  
543:       IF (AMBERMUTATIONT) THEN 
544:          CALL MUTATION_E(MUTSCORE,COORDS(1:3*NATOMS,1),MUTENERGY,MUTTERMID) 
545:          WRITE(MUTSCOREUNIT, '(A,F20.10)') '  0  ',MUTSCORE 
546:          CALL FLUSH(MUTSCOREUNIT) 
547:       ENDIF 
548:  
549: #endif536: #endif
550: 537: 
551:       IF (THOMSONT .AND. (.NOT. GTHOMSONT)) THEN538:       IF (THOMSONT .AND. (.NOT. GTHOMSONT)) THEN
552: !539: !
553: ! Scale maximum step size for the Thomson problem according to the mean nearest-neighbour 540: ! Scale maximum step size for the Thomson problem according to the mean nearest-neighbour 
554: ! distance after the first quench.541: ! distance after the first quench.
555: !542: !
556:          DUMMY1=0.0D0543:          DUMMY1=0.0D0
557:          DO J1=1,NATOMS544:          DO J1=1,NATOMS
558:             DUMMY2=1.0D100545:             DUMMY2=1.0D100
1220:                IF (MACROIONT) THEN1207:                IF (MACROIONT) THEN
1221:                 CALL MACROION_MOVES(J1,COORDS(:,JP),movableatomlist,nmovableatoms,ligmovet,blockmovet,nblocks,1208:                 CALL MACROION_MOVES(J1,COORDS(:,JP),movableatomlist,nmovableatoms,ligmovet,blockmovet,nblocks,
1222:      1                              atomsinblock,STEP(JP))1209:      1                              atomsinblock,STEP(JP))
1223:                END IF1210:                END IF
1224: ! normal AMBER12 step taking (without MACROION model)              1211: ! normal AMBER12 step taking (without MACROION model)              
1225:                ELSE IF (AMBER12T.AND..NOT.MACROIONT) THEN1212:                ELSE IF (AMBER12T.AND..NOT.MACROIONT) THEN
1226:                   !kr366> mutational step,  otherwise continue with the normal steps 1213:                   !kr366> mutational step,  otherwise continue with the normal steps 
1227:                   IF (AMBERMUTATIONT.AND.DOMUTATIONSTEPT) THEN1214:                   IF (AMBERMUTATIONT.AND.DOMUTATIONSTEPT) THEN
1228:                      WRITE(MUTUNIT,'(A,I8)') 'Number of atoms before mutation: ',NATOMS1215:                      WRITE(MUTUNIT,'(A,I8)') 'Number of atoms before mutation: ',NATOMS
1229:                      WRITE(MYUNIT,'(A,I8)') ' mc> Number of atoms before mutation: ',NATOMS1216:                      WRITE(MYUNIT,'(A,I8)') ' mc> Number of atoms before mutation: ',NATOMS
1230:                      CALL MUTATION_E(EMUTP,BESTCOORDS,MUTENERGY,MUTTERMID) !get the energy for the old molecule before we reinitialise AMBER!1217:                      CALL MUTATION_E(EMUTP,COORDS(:,JP),MUTENERGY,MUTTERMID) !get the energy for the old molecule before we reinitialise AMBER!
1231:                      WRITE(MYUNIT,'(A)') ' mc> Sequence before mutation: '1218:                      WRITE(MYUNIT,'(A)') ' mc> Sequence before mutation: '
1232:                      CALL PRINT_CURRENT_SEQ()1219:                      CALL PRINT_CURRENT_SEQ()
1233:                      CALL AMBERMUT_STEP(COORDS(:,JP),MUTATEDRES)1220:                      CALL AMBERMUT_STEP(COORDS(:,JP),MUTATEDRES)
1234:                      IF (SETCHIRAL) THEN1221:                      IF (SETCHIRAL) THEN
1235:                         WRITE(MYUNIT,'(A)') ' mc> Storing chiral information for initial (mutated) structure'1222:                         WRITE(MYUNIT,'(A)') ' mc> Storing chiral information for initial (mutated) structure'
1236:                         CALL INIT_CHIRAL(COORDS(:,1))1223:                         CALL INIT_CHIRAL(COORDS(:,1))
1237:                      END IF1224:                      END IF
1238:                      IF (NOCISTRANS) THEN1225:                      IF (NOCISTRANS) THEN
1239:                         WRITE(MYUNIT,'(A)') ' mc> Storing cis/trans information for initial (mutated) structure'1226:                         WRITE(MYUNIT,'(A)') ' mc> Storing cis/trans information for initial (mutated) structure'
1240:                         CALL INIT_CIS_TRANS(COORDS(:,1))1227:                         CALL INIT_CIS_TRANS(COORDS(:,1))
1496:                         IF (HARMONICFLIST(J2)) THEN1483:                         IF (HARMONICFLIST(J2)) THEN
1497:                            COORDS(3*(J2-1)+1:3*(J2-1)+3,JP)=SAVECOORDS(3*(J2-1)+1:3*(J2-1)+3)1484:                            COORDS(3*(J2-1)+1:3*(J2-1)+3,JP)=SAVECOORDS(3*(J2-1)+1:3*(J2-1)+3)
1498:                         ENDIF1485:                         ENDIF
1499:                      ENDDO1486:                      ENDDO
1500:                   ENDIF1487:                   ENDIF
1501:                ENDIF1488:                ENDIF
1502:                CALL A9DUMPPDB(COORDS(:,1),'afterstep')1489:                CALL A9DUMPPDB(COORDS(:,1),'afterstep')
1503: ! csw34> Redefine rigid bodies if they are being changed by steps1490: ! csw34> Redefine rigid bodies if they are being changed by steps
1504:                IF (RIGIDINIT.AND.UPDATERIGIDREFT) THEN1491:                IF (RIGIDINIT.AND.UPDATERIGIDREFT) THEN
1505:                   CALL GENRIGID_UPDATE_REFERENCE(COORDS(:,JP))1492:                   CALL GENRIGID_UPDATE_REFERENCE(COORDS(:,JP))
1506:                ENDIF1493:                ENDIF 
1507:  1494:  
1508: !1495: !
1509: ! Reset switch variables for steps not done every time1496: ! Reset switch variables for steps not done every time
1510: !1497: !
1511:                DOGROUPROT=.FALSE.1498:                DOGROUPROT=.FALSE.
1512:                DODGROUPMOVET=.FALSE.1499:                DODGROUPMOVET=.FALSE.
1513:                DOEXPANDRIGID=.FALSE.1500:                DOEXPANDRIGID=.FALSE.
1514:                DOROTATERIGID=.FALSE.1501:                DOROTATERIGID=.FALSE.
1515:                DOTRANSLATERIGID=.FALSE.1502:                DOTRANSLATERIGID=.FALSE.
1516:                DOMUTATIONSTEPT=.FALSE. !kr366> MUTATEDT is still set for the rest of the routine!1503:                DOMUTATIONSTEPT=.FALSE. !kr366> MUTATEDT is still set for the rest of the routine!
1775: !     csw34> if RMS is also specified, prints the RMSD from the1762: !     csw34> if RMS is also specified, prints the RMSD from the
1776: !     comparison structure to the file 'rmsd'. Which RMSD depends on the1763: !     comparison structure to the file 'rmsd'. Which RMSD depends on the
1777: !     final arguement of the RMS keyword - see documentation!1764: !     final arguement of the RMS keyword - see documentation!
1778: 1765: 
1779:              IF (RMST.AND.CHRMMT) THEN1766:              IF (RMST.AND.CHRMMT) THEN
1780:                 WRITE(MYRUNIT,'(I10,F15.5)') NQ(JP),RMSD1767:                 WRITE(MYRUNIT,'(I10,F15.5)') NQ(JP),RMSD
1781:                 CALL FLUSH(MYRUNIT)1768:                 CALL FLUSH(MYRUNIT)
1782:              ENDIF1769:              ENDIF
1783:           ENDIF1770:           ENDIF
1784: 1771: 
1785:  
1786:           IF (AMBERMUTATIONT) THEN 
1787:              CALL MUTATION_E(MUTSCORE,COORDS(:,1),MUTENERGY,MUTTERMID) 
1788:              WRITE(MUTSCOREUNIT, '(I8,F20.10)') J1,MUTSCORE 
1789:              CALL FLUSH(MUTSCOREUNIT) 
1790:           ENDIF 
1791:  
1792:  
1793: ! DAESTAT keyword prints two files :1772: ! DAESTAT keyword prints two files :
1794: ! stat.all which contains all quenches and their energies1773: ! stat.all which contains all quenches and their energies
1795: ! stat.acc which contains only accepted quenches and their energies1774: ! stat.acc which contains only accepted quenches and their energies
1796: ! used to analyse how many new minima are being found1775: ! used to analyse how many new minima are being found
1797:  1776:  
1798:             IF (DAESTAT) THEN1777:             IF (DAESTAT) THEN
1799:                PRINT*,'DAESTAT block in mc.f not implemented'1778:                PRINT*,'DAESTAT block in mc.f not implemented'
1800:                STOP1779:                STOP
1801: !              CALL CALCMIND(JP,MIND)1780: !              CALL CALCMIND(JP,MIND)
1802: !              CALL CALCDIHE(DIHE)1781: !              CALL CALCDIHE(DIHE)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0