hdiff output

r33312/gb_force.F90 2017-09-15 16:30:12.374407184 +0100 r33311/gb_force.F90 2017-09-15 16:30:13.922427726 +0100
391:     frc(:,:) = 0.d0391:     frc(:,:) = 0.d0
392:     return392:     return
393:   end if393:   end if
394: 394: 
395:   call zero_time()395:   call zero_time()
396:   call zero_gb_time()396:   call zero_gb_time()
397: 397: 
398: ! Calculate the non-bonded contributions:398: ! Calculate the non-bonded contributions:
399: 399: 
400:   frc(:,:) = 0.d0400:   frc(:,:) = 0.d0
 401: 
401:   call gb_ene(crd, frc, atm_gb_radii, atm_gb_fs, atm_qterm, atm_iac, &402:   call gb_ene(crd, frc, atm_gb_radii, atm_gb_fs, atm_qterm, atm_iac, &
402:               typ_ico, atm_numex, gbl_natex, atm_cnt, belly_atm_cnt, &403:               typ_ico, atm_numex, gbl_natex, atm_cnt, belly_atm_cnt, &
403:               pot_ene%gb, pot_ene%elec_tot, pot_ene%vdw_tot,         &404:               pot_ene%gb, pot_ene%elec_tot, pot_ene%vdw_tot,         &
404:               pot_ene%surf, irespa)405:               pot_ene%surf, irespa)
405: 406: 
406: ! Calculate the 1-4 vdw and electrostatics contributions:407: ! Calculate the 1-4 vdw and electrostatics contributions:
407: 408: 
408:   if (charmm_active) then409:   if (charmm_active) then
409:     call get_nb14_energy(atm_qterm, crd, frc, atm_iac, typ_ico, &410:     call get_nb14_energy(atm_qterm, crd, frc, atm_iac, typ_ico, &
410:                          gbl_cn114, gbl_cn214, cit_nb14, cit_nb14_cnt, &411:                          gbl_cn114, gbl_cn214, cit_nb14, cit_nb14_cnt, &


r33312/keywords.f 2017-09-15 16:30:12.646410792 +0100 r33311/keywords.f 2017-09-15 16:30:14.206431483 +0100
1241: 1241: 
1242: ! cs675 ORBITALS stuff1242: ! cs675 ORBITALS stuff
1243:       ORBITALS = .FALSE.1243:       ORBITALS = .FALSE.
1244:       ORBVAREXPONENT = -1!default to easily identifiable (quasi-)nonsense value.1244:       ORBVAREXPONENT = -1!default to easily identifiable (quasi-)nonsense value.
1245: 1245: 
1246: ! AMBER mutations1246: ! AMBER mutations
1247:       AMBERMUTATIONT = .FALSE.1247:       AMBERMUTATIONT = .FALSE.
1248:       MUTATIONFREQ = 10001248:       MUTATIONFREQ = 1000
1249:       MUTTESTSTEPS = 501249:       MUTTESTSTEPS = 50
1250:       NMUTATION = 01250:       NMUTATION = 0
 1251:       MUTUNIT = GETUNIT()
1251:       AMBERMUTIGB = 21252:       AMBERMUTIGB = 2
1252:       AMBERMUTFF = 141253:       AMBERMUTFF = 14
1253:       MUTENERGY = 11254:       MUTENERGY = 1
1254:       MUTTERMID = 01255:       MUTTERMID = 0
1255: 1256: 
1256: ! Align routine variables1257: ! Align routine variables
1257:       FASTOVERLAPT = .FALSE.1258:       FASTOVERLAPT = .FALSE.
1258:       BNB_ALIGNT = .FALSE.1259:       BNB_ALIGNT = .FALSE.
1259:       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.
1260:       NPEAKS = 11261:       NPEAKS = 1
2090:         CALL AMBER12_GET_COORDS(NATOMS, COORDS1(:))2091:         CALL AMBER12_GET_COORDS(NATOMS, COORDS1(:))
2091:         ALLOCATE(COORDS(3*NATOMS,NPAR))2092:         ALLOCATE(COORDS(3*NATOMS,NPAR))
2092:         DO J1=1,NPAR2093:         DO J1=1,NPAR
2093:            COORDS(:,J1) = COORDS1(:)2094:            COORDS(:,J1) = COORDS1(:)
2094:         END DO2095:         END DO
2095: !2096: !
2096: ! kr366> AMBER mutation steps2097: ! kr366> AMBER mutation steps
2097: !2098: !
2098:       ELSE IF (WORD.EQ.'AMBERMUTATION') THEN2099:       ELSE IF (WORD.EQ.'AMBERMUTATION') THEN
2099:         AMBERMUTATIONT = .TRUE.2100:         AMBERMUTATIONT = .TRUE.
2100:         MUTUNIT = GETUNIT() 
2101:         CALL READI(MUTATIONFREQ)2101:         CALL READI(MUTATIONFREQ)
2102:         CALL READI(MUTTESTSTEPS)2102:         CALL READI(MUTTESTSTEPS)
2103:         AMBER12T=.TRUE.2103:         AMBER12T=.TRUE.
2104:         SETCHIRAL=.TRUE.2104:         SETCHIRAL=.TRUE.
2105:         IF(.NOT.ALLOCATED(COORDS1)) ALLOCATE(COORDS1(3*NATOMS))2105:         IF(.NOT.ALLOCATED(COORDS1)) ALLOCATE(COORDS1(3*NATOMS))
2106:         IF(ALLOCATED(COORDS)) DEALLOCATE(COORDS)2106:         IF(ALLOCATED(COORDS)) DEALLOCATE(COORDS)
2107:         ALLOCATE(COORDS(3*NATOMS,NPAR))2107:         ALLOCATE(COORDS(3*NATOMS,NPAR))
2108:         CALL AMBER12_GET_COORDS(NATOMS,COORDS1(:))2108:         CALL AMBER12_GET_COORDS(NATOMS,COORDS1(:))
2109:         DO J1=1,NPAR2109:         DO J1=1,NPAR
2110:            COORDS(:,J1) = COORDS1(:)2110:            COORDS(:,J1) = COORDS1(:)
2111:         END DO2111:         END DO
2112:         OPEN(MUTUNIT,FILE='BHmutation.log',STATUS='REPLACE',ACTION='WRITE')2112:         OPEN(MUTUNIT,FILE='BHmutation.log',STATUS='UNKNOWN')
2113:         CALL AMBERMUTATION_SETUP()  !we initialise the group rotations here as well2113:         CALL AMBERMUTATION_SETUP()  !we initialise the group rotations here as well
2114:         2114:         
2115:       ELSE IF (WORD.EQ.'AMBERMUTIGB') THEN2115:       ELSE IF (WORD.EQ.'AMBERMUTIGB') THEN
2116:         CALL READI(AMBERMUTIGB)2116:         CALL READI(AMBERMUTIGB)
2117:         IF (AMBERMUTIGB.EQ.2) THEN2117:         IF (AMBERMUTIGB.EQ.2) THEN
2118:            WRITE(MYUNIT,'(A)') 'keyword> use igb2 with mbondi2 to create topology files for mutations'2118:            WRITE(MYUNIT,'(A)') 'keyword> use igb2 with mbondi2 to create topology files for mutations'
2119:         ELSE IF (AMBERMUTIGB.EQ.8) THEN2119:         ELSE IF (AMBERMUTIGB.EQ.8) THEN
2120:            WRITE(MYUNIT,'(A)') 'keyword> use igb8 with mbondi3 to create topology files for mutations'2120:            WRITE(MYUNIT,'(A)') 'keyword> use igb8 with mbondi3 to create topology files for mutations'
2121:         ELSE2121:         ELSE
2122:            WRITE(MYUNIT,'(A)') 'keyword> invalid choice for igb'2122:            WRITE(MYUNIT,'(A)') 'keyword> invalid choice for igb'


r33312/mc.F 2017-09-15 16:30:12.942414726 +0100 r33311/mc.F 2017-09-15 16:30:14.470434985 +0100
1603:                      ELSE1603:                      ELSE
1604:                         IF (.NOT.SUPPRESST) WRITE(MYUNIT,'(A,I10,A,G20.10,A,I5,A,G12.5,A,G20.10,A,F11.1)') 'Qu ',NQ(JP),' E=',1604:                         IF (.NOT.SUPPRESST) WRITE(MYUNIT,'(A,I10,A,G20.10,A,I5,A,G12.5,A,G20.10,A,F11.1)') 'Qu ',NQ(JP),' E=',
1605:      1                       POTEL,' steps=',ITERATIONS,' RMS=',RMS,' Markov E=',EPREV(JP),' t=',TIME-TSTART1605:      1                       POTEL,' steps=',ITERATIONS,' RMS=',RMS,' Markov E=',EPREV(JP),' t=',TIME-TSTART
1606:                         ! dj337: write box parameters to output file1606:                         ! dj337: write box parameters to output file
1607:                         if (boxderivt) write(myunit, *) 'Box parameters: 1607:                         if (boxderivt) write(myunit, *) 'Box parameters: 
1608:      1                     ', box_params(1:6)1608:      1                     ', box_params(1:6)
1609: !fh301>{{{1609: !fh301>{{{
1610:                      ENDIF1610:                      ENDIF
1611: !fh301>}}}1611: !fh301>}}}
1612:                   ENDIF1612:                   ENDIF
1613: 1613:                   
1614: !                       1614: !                       
1615: ! khs26> Printing energy decomposition for AMBER energies if we're using AMBER.1615: ! khs26> Printing energy decomposition for AMBER energies if we're using AMBER.
1616:                   IF (ENERGY_DECOMPT) THEN1616:                   IF (ENERGY_DECOMPT) THEN
1617:                      IF (AMBERT) THEN1617:                      IF (AMBERT) THEN
1618:                         WRITE(MYUNIT,'(A10,F20.10,A10,F20.10,A10,F20.10)') 'bond:     ', E_BOND, ' angle:   ',  1618:                         WRITE(MYUNIT,'(A10,F20.10,A10,F20.10,A10,F20.10)') 'bond:     ', E_BOND, ' angle:   ',  
1619:      1                       E_ANGLE, ' dihed:   ', E_DIHEDRAL1619:      1                       E_ANGLE, ' dihed:   ', E_DIHEDRAL
1620:                         WRITE(MYUNIT,'(A10,F20.10,A10,F20.10)') 'vdW:      ', E_VDW,  ' 14 vdW:  ', E_14_VDW1620:                         WRITE(MYUNIT,'(A10,F20.10,A10,F20.10)') 'vdW:      ', E_VDW,  ' 14 vdW:  ', E_14_VDW
1621:                         WRITE(MYUNIT,'(A10,F20.10,A10,F20.10)') 'elec:     ', E_ELEC, ' 14 elec: ', E_14_ELEC1621:                         WRITE(MYUNIT,'(A10,F20.10,A10,F20.10)') 'elec:     ', E_ELEC, ' 14 elec: ', E_14_ELEC
1622: !     khs26> igb = 0 is no implicit solvation1622: !     khs26> igb = 0 is no implicit solvation
1623:                         IF (IGB.EQ.0) THEN1623:                         IF (IGB.EQ.0) THEN
2327:                   VATO(1:GCNATOMSBEST(JP),JP)=GCBESTVAT(1:GCNATOMSBEST(JP),JP)2327:                   VATO(1:GCNATOMSBEST(JP),JP)=GCBESTVAT(1:GCNATOMSBEST(JP),JP)
2328:                   POTEL=GCEBEST(JP)2328:                   POTEL=GCEBEST(JP)
2329:                   EPREV(JP)=GCEBEST(JP)2329:                   EPREV(JP)=GCEBEST(JP)
2330:                   IF (DEBUG) WRITE(MYUNIT,'(A,G20.10)') 'mc> potel and eprev reset to ',GCEBEST(JP)2330:                   IF (DEBUG) WRITE(MYUNIT,'(A,G20.10)') 'mc> potel and eprev reset to ',GCEBEST(JP)
2331:                   IF (DEBUG) WRITE(MYUNIT,'(A,I6)') 'mc> number of atoms reset to ',NATOMS2331:                   IF (DEBUG) WRITE(MYUNIT,'(A,I6)') 'mc> number of atoms reset to ',NATOMS
2332:                ENDIF2332:                ENDIF
2333:             ENDIF2333:             ENDIF
2334: 2334: 
2335:             !the mutational steps are accepted for better bonding properties, but the energies used 2335:             !the mutational steps are accepted for better bonding properties, but the energies used 
2336:             !otherwise refer to the best potential energies for one sequence2336:             !otherwise refer to the best potential energies for one sequence
2337:             IF (MUTATEDT.AND.((NMUTSTEP + MUTTESTSTEPS).EQ.J1)) THEN !kr366> here we check our mutational step            2337:             IF (MUTATEDT.AND.((NMUTSTEP + MUTTESTSTEPS).EQ.J1)) THEN !kr366> here we check our mutational step               
2338:                CALL MUTATION_E(EMUTN,SCREENC,MUTENERGY,MUTTERMID) !get the energy for the new molecule2338:                CALL MUTATION_E(EMUTN,TEMPCOORDS,MUTENERGY,MUTTERMID) !get the energy for the new molecule
2339:                WRITE(MYUNIT, '(2(A,F15.8))') ' mc> Energy before mutation: ',EMUTP,' | energy after mutation: ',EMUTN2339:                WRITE(MYUNIT, '(2(A,F15.8))') ' mc> Energy before mutation: ',EMUTP,' | energy after mutation: ',EMUTN
2340:                WRITE(MUTUNIT, '(2(A,F15.8))') 'Energy before mutation: ',EMUTP,' | energy after mutation: ',EMUTN2340:                WRITE(MUTUNIT, '(2(A,F15.8))') 'Energy before mutation: ',EMUTP,' | energy after mutation: ',EMUTN
2341:                IF (EMUTN.LT.EMUTP) THEN2341:                IF (EMUTN.LT.EMUTP) THEN
2342:                   RANDOM=0.0D02342:                   RANDOM=0.0D0
2343:                   ATEST=.TRUE.2343:                   ATEST=.TRUE.
2344:                ELSE2344:                ELSE
2345:                   RANDOM=DPRAND()2345:                   RANDOM=DPRAND()
2346:                   DUMMY = EMUTN - EMUTP2346:                   DUMMY = EMUTN - EMUTP
2347:                   DUMMY=EXP(-DUMMY/MAX(MCTEMP,1.0D-100))2347:                   DUMMY=EXP(-DUMMY/MAX(MCTEMP,1.0D-100))
2348:                   IF (DUMMY.GT.RANDOM) THEN2348:                   IF (DUMMY.GT.RANDOM) THEN
2349:                      ATEST=.TRUE.2349:                      ATEST=.TRUE.
2350:                   ELSE2350:                   ELSE
2351:                      ATEST=.FALSE.2351:                      ATEST=.FALSE.
2352:                   ENDIF2352:                   ENDIF
2353:                ENDIF2353:                ENDIF
2354:                IF (ATEST) THEN2354:                IF (ATEST) THEN
2355:                   WRITE(MUTUNIT,'(A)') 'Mutation accpeted'2355:                   WRITE(MUTUNIT,'(A)') 'Mutation accpeted'
2356:                   WRITE(MYUNIT, '(A)') ' mc> Mutation accepted'2356:                   WRITE(MYUNIT, '(A)') ' mc> Mutation accepted'
2357:                ELSE2357:                ELSE
2358:                   CALL AMBER12_WRITE_RESTART(SCREENC,"before_reverse.mut",LEN("before_reverse.mut"))2358:                   CALL AMBER12_WRITE_RESTART(TEMPCOORDS,"before_reverse.mut",LEN("before_reverse.mut"))
2359:                   CALL SYSTEM("cp coords.prmtop before_mut.prmtop")2359:                   CALL SYSTEM("cp coords.prmtop before_mut.prmtop")
2360:                   CALL REVERSE_MUTATION(MUTATEDRES)2360:                   CALL REVERSE_MUTATION(MUTATEDRES)
2361:                   IF (SETCHIRAL) THEN2361:                   IF (SETCHIRAL) THEN
2362:                      WRITE(MYUNIT,'(A)') ' mc> Storing chiral information for initial (mutated) structure'2362:                      WRITE(MYUNIT,'(A)') ' mc> Storing chiral information for initial (mutated) structure'
2363:                      CALL INIT_CHIRAL(COORDS(:,1))2363:                      CALL INIT_CHIRAL(COORDS(:,1))
2364:                   END IF2364:                   END IF
2365:                   IF (NOCISTRANS) THEN2365:                   IF (NOCISTRANS) THEN
2366:                      WRITE(MYUNIT,'(A)') ' mc> Storing cis/trans information for initial (mutated) structure'2366:                      WRITE(MYUNIT,'(A)') ' mc> Storing cis/trans information for initial (mutated) structure'
2367:                      CALL INIT_CIS_TRANS(COORDS(:,1))2367:                      CALL INIT_CIS_TRANS(COORDS(:,1))
2368:                   ENDIF2368:                   ENDIF


r33312/moves.f90 2017-09-15 16:30:13.666424064 +0100 r33311/moves.f90 2017-09-15 16:30:14.730438426 +0100
 13: ! Arguments 13: ! Arguments
 14: ! --------- 14: ! ---------
 15: ! 15: !
 16: ! Required:  16: ! Required: 
 17: ! XYZ(in/out): coordinates array from GMIN, in Cartesian coordinates 17: ! XYZ(in/out): coordinates array from GMIN, in Cartesian coordinates
 18: ! MAX_STEP(in): the maximum step size 18: ! MAX_STEP(in): the maximum step size
 19: ! 19: !
 20: ! Optional: 20: ! Optional:
 21: ! ATOM_LIST(in): list of atoms to be moved - if omitted, all are moved 21: ! ATOM_LIST(in): list of atoms to be moved - if omitted, all are moved
 22:   22:  
 23:    USE COMMONS, ONLY: AMBERMUTATIONT !need to reallocate atom_mask size! 
 24:  
 25: ! The VEC3 module (vec3.f90) contains helper functions for handling vectors and matricies 23: ! The VEC3 module (vec3.f90) contains helper functions for handling vectors and matricies
 26:    USE VEC3 24:    USE VEC3
 27: ! The SANITY module contains sanity check functions 25: ! The SANITY module contains sanity check functions
 28:    USE SANITY 26:    USE SANITY
 29:    IMPLICIT NONE 27:    IMPLICIT NONE
 30:    INTEGER                                       :: I  28:    INTEGER                                       :: I 
 31:    INTEGER                                       :: NUM_ATOMS 29:    INTEGER                                       :: NUM_ATOMS
 32:    INTEGER, OPTIONAL, DIMENSION(:), INTENT(IN)   :: ATOM_LIST 30:    INTEGER, OPTIONAL, DIMENSION(:), INTENT(IN)   :: ATOM_LIST
 33:    DOUBLE PRECISION                              :: DPRAND 31:    DOUBLE PRECISION                              :: DPRAND
 34:    DOUBLE PRECISION, INTENT(IN)                  :: MAX_STEP 32:    DOUBLE PRECISION, INTENT(IN)                  :: MAX_STEP
 42:    TEST=CHECK_DIMENSION(SIZE(XYZ),3) 40:    TEST=CHECK_DIMENSION(SIZE(XYZ),3)
 43:    IF (.NOT.TEST) THEN 41:    IF (.NOT.TEST) THEN
 44:       STOP 'Coordinates in a non-Cartesian basis passed to CARTESIAN_SPHERE' 42:       STOP 'Coordinates in a non-Cartesian basis passed to CARTESIAN_SPHERE'
 45:    ENDIF 43:    ENDIF
 46:  44: 
 47: ! Set NUM_ATOMS 45: ! Set NUM_ATOMS
 48:    NUM_ATOMS = SIZE(XYZ) / 3 46:    NUM_ATOMS = SIZE(XYZ) / 3
 49:  47: 
 50: ! Set up ATOM_MASK 48: ! Set up ATOM_MASK
 51:    IF (.NOT. ALLOCATED(ATOM_MASK)) ALLOCATE(ATOM_MASK(NUM_ATOMS)) 49:    IF (.NOT. ALLOCATED(ATOM_MASK)) ALLOCATE(ATOM_MASK(NUM_ATOMS))
 52:    IF ((.NOT.(SIZE(ATOM_MASK).EQ.NUM_ATOMS)).AND.AMBERMUTATIONT) THEN 
 53:       DEALLOCATE(ATOM_MASK) 
 54:       ALLOCATE(ATOM_MASK(NUM_ATOMS)) 
 55:    ENDIF 
 56:    ATOM_MASK = .FALSE. 50:    ATOM_MASK = .FALSE.
 57:  51: 
 58: ! Check to see if an ATOM_LIST was provided 52: ! Check to see if an ATOM_LIST was provided
 59:    IF (PRESENT(ATOM_LIST)) THEN 53:    IF (PRESENT(ATOM_LIST)) THEN
 60: ! If so, determine which atoms the move applies to and set up ATOM_MASK 54: ! If so, determine which atoms the move applies to and set up ATOM_MASK
 61:       DO I = 1, SIZE(ATOM_LIST) 55:       DO I = 1, SIZE(ATOM_LIST)
 62:          ATOM_MASK(ATOM_LIST(I)) = .TRUE. 56:          ATOM_MASK(ATOM_LIST(I)) = .TRUE.
 63:       END DO 57:       END DO
 64:    ELSE 58:    ELSE
 65: ! Otherwise, apply the move to all atoms 59: ! Otherwise, apply the move to all atoms


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0