hdiff output

r33170/amber12_interface.F90 2017-08-21 09:30:10.150323594 +0100 r33169/amber12_interface.F90 2017-08-21 09:30:13.514368570 +0100
617:   use bintraj_mod617:   use bintraj_mod
618:   use pme_force_mod,  only : dealloc_force_mem618:   use pme_force_mod,  only : dealloc_force_mem
619:   use remd_mod,       only : remd_cleanup619:   use remd_mod,       only : remd_cleanup
620:   use multipmemd_mod, only : free_comms620:   use multipmemd_mod, only : free_comms
621: #endif621: #endif
622:   use inpcrd_dat_mod,      only : dealloc_inpcrd_dat622:   use inpcrd_dat_mod,      only : dealloc_inpcrd_dat
623:   use prmtop_dat_mod,      only : dealloc_prmtop_dat623:   use prmtop_dat_mod,      only : dealloc_prmtop_dat
624:   use extra_pnts_nb14_mod, only : dealloc_extra_pnts_nb14624:   use extra_pnts_nb14_mod, only : dealloc_extra_pnts_nb14
625:   use dynamics_dat_mod,    only : dealloc_dynamics_dat625:   use dynamics_dat_mod,    only : dealloc_dynamics_dat
626:   use gb_ene_mod,          only : dealloc_gb_ene626:   use gb_ene_mod,          only : dealloc_gb_ene
627:   use bonds_mod,           only : dealloc_bonds 
628:   use dihedrals_mod,       only : dealloc_dihedrals 
629:   use angles_mod,          only : dealloc_angles 
630:   use angles_ub_mod,       only : dealloc_angle_ub 
631:   use cmap_mod,            only : dealloc_cmap 
632:   use constraints_mod,     only : dealloc_constraints 
633:   use dihedrals_imp_mod,   only : dealloc_dihedrals_imp 
634:   use pmemd_lib_mod627:   use pmemd_lib_mod
635: #ifdef AMBMPI628: #ifdef AMBMPI
636:   629:   
637:   implicit none630:   implicit none
638: 631: 
639:   call dealloc_force_mem(ips)632:   call dealloc_force_mem(ips)
640: 633: 
641:   ioutfm = 1634:   ioutfm = 1
642: 635: 
643:   if (imin .eq. 0) then636:   if (imin .eq. 0) then
674:   call free_comms               ! free MPI communicators667:   call free_comms               ! free MPI communicators
675: #endif668: #endif
676:   close(unit=6)669:   close(unit=6)
677: 670: 
678: ! Deallocate all arrays in modules and reset saved counters671: ! Deallocate all arrays in modules and reset saved counters
679:   call dealloc_inpcrd_dat() 672:   call dealloc_inpcrd_dat() 
680:   call dealloc_prmtop_dat()673:   call dealloc_prmtop_dat()
681:   call dealloc_extra_pnts_nb14()674:   call dealloc_extra_pnts_nb14()
682:   call dealloc_dynamics_dat()675:   call dealloc_dynamics_dat()
683:   call dealloc_gb_ene()676:   call dealloc_gb_ene()
684:   call dealloc_bonds()677:   
685:   call dealloc_dihedrals() 
686:   call dealloc_angles() 
687:   call dealloc_angle_ub() 
688:   call dealloc_cmap() 
689:   call dealloc_constraints() 
690:   call dealloc_dihedrals_imp() 
691:  
692: ! Deallocate arrays allocated by AMBER12 interface 678: ! Deallocate arrays allocated by AMBER12 interface 
693:   if (allocated(amber12_atoms)) deallocate(amber12_atoms)679:   if (allocated(amber12_atoms)) deallocate(amber12_atoms)
694:   if (allocated(amber12_residues)) deallocate(amber12_residues)680:   if (allocated(amber12_residues)) deallocate(amber12_residues)
695:   if (allocated(amber12_masses)) deallocate(amber12_masses)681:   if (allocated(amber12_masses)) deallocate(amber12_masses)
696:   return682:   return
697: #endif /* DUMMY_AMBER12 */683: #endif /* DUMMY_AMBER12 */
698: end subroutine amber12_mut_finish684: end subroutine amber12_mut_finish
699: 685: 
700: subroutine amber12_write_restart(coords, rst_name, rst_name_length) bind(C, name='amber12_write_restart')686: subroutine amber12_write_restart(coords, rst_name, rst_name_length) bind(C, name='amber12_write_restart')
701: !687: !


r33170/amber_mutations.F90 2017-08-21 09:30:13.038362206 +0100 r33169/amber_mutations.F90 2017-08-21 09:30:15.310392582 +0100
483:      !correct wrong information (we havent reinitialised yet, so NATOMS is still wrong)483:      !correct wrong information (we havent reinitialised yet, so NATOMS is still wrong)
484:      AMBER12_RESEND(NRESIDUES) = AMBER12_RESEND(NRESIDUES) + SHIFT484:      AMBER12_RESEND(NRESIDUES) = AMBER12_RESEND(NRESIDUES) + SHIFT
485:      AMBER12_RESNATOM(NRESIDUES) = AMBER12_RESNATOM(NRESIDUES) + SHIFT485:      AMBER12_RESNATOM(NRESIDUES) = AMBER12_RESNATOM(NRESIDUES) + SHIFT
486:      !create final input files needed486:      !create final input files needed
487:      CALL SYSTEM('cp coords.'//TRIM(ADJUSTL(NMUT_STRING))//'.1.rst coords.inpcrd')487:      CALL SYSTEM('cp coords.'//TRIM(ADJUSTL(NMUT_STRING))//'.1.rst coords.inpcrd')
488:      CALL SYSTEM('cp start.'//TRIM(ADJUSTL(NMUT_STRING))//' start')  !this one is the wrong file?488:      CALL SYSTEM('cp start.'//TRIM(ADJUSTL(NMUT_STRING))//' start')  !this one is the wrong file?
489:      CALL SYSTEM('cp atomgroups.'//TRIM(ADJUSTL(NMUT_STRING))//' atomgroups')489:      CALL SYSTEM('cp atomgroups.'//TRIM(ADJUSTL(NMUT_STRING))//' atomgroups')
490:      CALL SYSTEM('cp perm.allow.'//TRIM(ADJUSTL(NMUT_STRING))//' perm.allow')490:      CALL SYSTEM('cp perm.allow.'//TRIM(ADJUSTL(NMUT_STRING))//' perm.allow')
491:      !now reinitialise once more491:      !now reinitialise once more
492:      CALL REINITIALISE_AMBER()492:      CALL REINITIALISE_AMBER()
493:      !reset chirality 
494:      CALL DEALLOC_STATES_MUTATION() 
495:   END SUBROUTINE REVERSE_MUTATION493:   END SUBROUTINE REVERSE_MUTATION
496: 494: 
497:   !scoring function to judge how good mutation is495:   !scoring function to judge how good mutation is
498:   SUBROUTINE MUTATION_E(SCORE,COORDS,MODE,TERMID)496:   SUBROUTINE MUTATION_E(SCORE,COORDS,MODE,TERMID)
499:      DOUBLE PRECISION, INTENT(OUT) :: SCORE497:      DOUBLE PRECISION, INTENT(OUT) :: SCORE
500:      DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOMS)498:      DOUBLE PRECISION, INTENT(IN) :: COORDS(3*NATOMS)
501:      INTEGER, INTENT(IN) :: MODE, TERMID499:      INTEGER, INTENT(IN) :: MODE, TERMID
502:      DOUBLE PRECISION :: DPRAND, EREAL, GRADATOMS(3*NATOMS)500:      DOUBLE PRECISION :: DPRAND, EREAL, GRADATOMS(3*NATOMS)
503:      INTEGER :: ATOMID, PARMEDUNIT, GETUNIT, J1501:      INTEGER :: ATOMID, PARMEDUNIT, GETUNIT, J1
504:      TYPE(POT_ENE_REC_C) :: DECOMPOSED_E502:      TYPE(POT_ENE_REC_C) :: DECOMPOSED_E


r33170/angles.F90 2017-08-21 09:30:10.374326589 +0100 r33169/angles.F90 2017-08-21 09:30:13.746371676 +0100
309: 309: 
310:     angle_energy = angle_energy + eaw310:     angle_energy = angle_energy + eaw
311: #endif311: #endif
312:         312:         
313:   end do313:   end do
314: 314: 
315:   return315:   return
316: 316: 
317: end subroutine get_angle_energy317: end subroutine get_angle_energy
318: 318: 
319: subroutine dealloc_angles() 
320:   cit_ntheth = 0 
321:   cit_ntheta = 0 
322:   if (allocated(cit_angle)) deallocate(cit_angle) 
323: end subroutine dealloc_angles 
324:  
325: end module angles_mod319: end module angles_mod


r33170/angles_ub.F90 2017-08-21 09:30:10.598329582 +0100 r33169/angles_ub.F90 2017-08-21 09:30:13.970374665 +0100
256: 256: 
257:   end do257:   end do
258: 258: 
259:   angle_ub_energy = lcl_angle_ub_energy259:   angle_ub_energy = lcl_angle_ub_energy
260: 260: 
261: 261: 
262:   return262:   return
263: 263: 
264: end subroutine get_angle_ub_energy264: end subroutine get_angle_ub_energy
265: 265: 
266: subroutine dealloc_angle_ub() 
267:   cit_nthet_ub = 0 
268:   if (allocated(cit_angle_ub)) deallocate(cit_angle_ub) 
269: end subroutine dealloc_angle_ub 
270:  
271: end module angles_ub_mod266: end module angles_ub_mod


r33170/bonds.F90 2017-08-21 09:30:10.818332525 +0100 r33169/bonds.F90 2017-08-21 09:30:14.194377663 +0100
264: #endif264: #endif
265: 265: 
266:   end do266:   end do
267: 267: 
268:   bond_energy = lcl_bond_energy268:   bond_energy = lcl_bond_energy
269: 269: 
270:   return270:   return
271: 271: 
272: end subroutine get_bond_energy272: end subroutine get_bond_energy
273: 273: 
274: subroutine dealloc_bonds() 
275:   cit_nbonh = 0 
276:   cit_nbona = 0 
277:   if (allocated(cit_h_bond)) deallocate(cit_h_bond) 
278:   if (allocated(cit_a_bond)) deallocate(cit_a_bond) 
279: end subroutine dealloc_bonds 
280:  
281: end module bonds_mod274: end module bonds_mod


r33170/cmap.F90 2017-08-21 09:30:11.034335413 +0100 r33169/cmap.F90 2017-08-21 09:30:14.418380658 +0100
898:                       E_stencil_1D,              &898:                       E_stencil_1D,              &
899:                       dPhi_stencil_1D,           &899:                       dPhi_stencil_1D,           &
900:                       dPsi_stencil_1D,           &900:                       dPsi_stencil_1D,           &
901:                       dPhi_dPsi_stencil_1D,      &901:                       dPhi_dPsi_stencil_1D,      &
902:                       c )902:                       c )
903: 903: 
904:   call bicubic_interpolation(phiFrac, psiFrac, c, E, dphi, dpsi)904:   call bicubic_interpolation(phiFrac, psiFrac, c, E, dphi, dpsi)
905: 905: 
906: end subroutine charmm_calc_cmap_from_phi_psi906: end subroutine charmm_calc_cmap_from_phi_psi
907: 907: 
908: subroutine dealloc_cmap()908: 
909:   cit_cmap_term_count = 0909: 
910:   if (allocated(cit_cmap)) deallocate(cit_cmap) 
911: end subroutine dealloc_cmap 
912: 910: 
913: end module cmap_mod911: end module cmap_mod


r33170/constraints.F90 2017-08-21 09:30:11.254338353 +0100 r33169/constraints.F90 2017-08-21 09:30:14.638383598 +0100
700:   belly_atm_cnt = 0700:   belly_atm_cnt = 0
701: 701: 
702:   do i = 1, atm_cnt702:   do i = 1, atm_cnt
703:     if (igrp(i) .gt. 0) belly_atm_cnt = belly_atm_cnt + 1703:     if (igrp(i) .gt. 0) belly_atm_cnt = belly_atm_cnt + 1
704:   end do704:   end do
705: 705: 
706:   return706:   return
707: 707: 
708: end subroutine count_belly_atoms708: end subroutine count_belly_atoms
709: 709: 
710: subroutine dealloc_constraints() 
711:   if (allocated(atm_igroup)) deallocate(atm_igroup) 
712:   if (allocated(atm_jrc)) deallocate(atm_jrc) 
713:   if (allocated(atm_weight)) deallocate(atm_weight) 
714:   if (allocated(atm_xc)) deallocate(atm_xc) 
715: end subroutine dealloc_constraints 
716:  
717: end module constraints_mod710: end module constraints_mod


r33170/dihedrals.F90 2017-08-21 09:30:12.586356095 +0100 r33169/dihedrals.F90 2017-08-21 09:30:14.862386592 +0100
832:     frc(2, l) = frc(2, l) + fyl832:     frc(2, l) = frc(2, l) + fyl
833:     frc(3, l) = frc(3, l) + fzl833:     frc(3, l) = frc(3, l) + fzl
834: #endif834: #endif
835:     835:     
836:   end do836:   end do
837: 837: 
838:   return838:   return
839: 839: 
840: end subroutine get_dihed_forces_amd840: end subroutine get_dihed_forces_amd
841: 841: 
842: subroutine dealloc_dihedrals() 
843:   cit_nphih = 0 
844:   cit_nphia = 0 
845:   if (allocated(cit_dihed)) deallocate(cit_dihed) 
846: end subroutine dealloc_dihedrals 
847:  
848: end module dihedrals_mod842: end module dihedrals_mod


r33170/dihedrals_imp.F90 2017-08-21 09:30:12.818359265 +0100 r33169/dihedrals_imp.F90 2017-08-21 09:30:15.086389586 +0100
303: !        write(6,'( 10x,a6,3(f10.6,x) )'),"grad_l",gradphi_ijkl(10:12)303: !        write(6,'( 10x,a6,3(f10.6,x) )'),"grad_l",gradphi_ijkl(10:12)
304: !        write(6,'(a)'),""304: !        write(6,'(a)'),""
305: !        write(6,'(a)'),""305: !        write(6,'(a)'),""
306:   end do306:   end do
307: 307: 
308:   ep = epl308:   ep = epl
309: 309: 
310:   return310:   return
311: end subroutine get_dihed_imp_energy311: end subroutine get_dihed_imp_energy
312: 312: 
313: subroutine dealloc_dihedrals_imp() 
314:   cit_nimphi = 0 
315:   if (allocated(cit_dihed_imp)) deallocate(cit_dihed_imp) 
316: end subroutine dealloc_dihedrals_imp 
317:  
318: end module dihedrals_imp_mod313: end module dihedrals_imp_mod


r33170/mc.F 2017-08-21 09:30:13.282365468 +0100 r33169/mc.F 2017-08-21 09:30:15.542395684 +0100
 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.0D0105:       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
109: 109: 
110: !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
111:       IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS) 
112:       ALLOCATE(BESTCOORDS(3*NATOMSALLOC,NPAR))111:       ALLOCATE(BESTCOORDS(3*NATOMSALLOC,NPAR))
113:       IF (ALLOCATED(SAVECOORDS)) DEALLOCATE(SAVECOORDS) 
114:       ALLOCATE(SAVECOORDS(3*NATOMSALLOC))112:       ALLOCATE(SAVECOORDS(3*NATOMSALLOC))
115:       IF (ALLOCATED(TEMPCOORDS)) DEALLOCATE(TEMPCOORDS) 
116:       ALLOCATE(TEMPCOORDS(3*NATOMSALLOC))113:       ALLOCATE(TEMPCOORDS(3*NATOMSALLOC))
117:       IF (.NOT.(ALLOCATED(SCREENC))) ALLOCATE(SCREENC(3*NATOMSALLOC))114:       ALLOCATE(SCREENC(3*NATOMSALLOC))
118: 115: 
119:       QNEWRES=0116:       QNEWRES=0
120:       QGCBH=0117:       QGCBH=0
121: 118: 
122: ! sf344> selectively unfreeze the last added building blocks (MODULARNINCR)119: ! sf344> selectively unfreeze the last added building blocks (MODULARNINCR)
123: !        for sequential MC loops in modular global optimization120: !        for sequential MC loops in modular global optimization
124:       IF(MODULART) THEN121:       IF(MODULART) THEN
125:         FROZEN(:)=.TRUE.122:         FROZEN(:)=.TRUE.
126:            IF(MODULARCURRENTN==MODULARNMIN) THEN   ! unfreeze every atom in the first step of MODULARNMIN molecules123:            IF(MODULARCURRENTN==MODULARNMIN) THEN   ! unfreeze every atom in the first step of MODULARNMIN molecules
127:                 J6=0124:                 J6=0
846:                ENDIF843:                ENDIF
847: 844: 
848:                IF(ROTATEHINGET .AND. MOD(J1,ROTATEHINGEFREQ).EQ.0) THEN845:                IF(ROTATEHINGET .AND. MOD(J1,ROTATEHINGEFREQ).EQ.0) THEN
849:                        DOROTATEHINGE=.TRUE.846:                        DOROTATEHINGE=.TRUE.
850:                ENDIF847:                ENDIF
851: ! kr366> mutation moves for AMBER12               848: ! kr366> mutation moves for AMBER12               
852:                IF(AMBERMUTATIONT.AND.(MOD(J1,MUTATIONFREQ).EQ.0).AND.(J1.GT.0)) THEN849:                IF(AMBERMUTATIONT.AND.(MOD(J1,MUTATIONFREQ).EQ.0).AND.(J1.GT.0)) THEN
853:                        WRITE(MUTUNIT,'(A,I10,A)') 'Mutational step after ',J1,' steps'850:                        WRITE(MUTUNIT,'(A,I10,A)') 'Mutational step after ',J1,' steps'
854:                        DOMUTATIONSTEPT=.TRUE.851:                        DOMUTATIONSTEPT=.TRUE.
855:                        MUTATEDT=.TRUE.        !as we need to consider different tests if we mutate!852:                        MUTATEDT=.TRUE.        !as we need to consider different tests if we mutate!
856:                        NMUTSTEP=J1 
857:                ELSE IF (AMBERMUTATIONT.AND..NOT.MOD(J1,MUTATIONFREQ).EQ.0) THEN853:                ELSE IF (AMBERMUTATIONT.AND..NOT.MOD(J1,MUTATIONFREQ).EQ.0) THEN
858:                        DOGROUPROT=.FALSE.854:                       DOGROUPROT=.TRUE.
859:                ENDIF855:                ENDIF
860: 856: 
861: !857: !
862: ! csw34> Coordinates are saved so that moves can be undone858: ! csw34> Coordinates are saved so that moves can be undone
863: !859: !
864:                SAVECOORDS(1:3*NATOMS)=COORDS(1:3*NATOMS,JP)860:                SAVECOORDS(1:3*NATOMS)=COORDS(1:3*NATOMS,JP)
865:                if (boxderivt) savebox_params(1:6) = box_params(1:6) ! dj337: save box params861:                if (boxderivt) savebox_params(1:6) = box_params(1:6) ! dj337: save box params
866: ! csw34> If you want to look at the effect of moves, you can dump out862: ! csw34> If you want to look at the effect of moves, you can dump out
867: ! the structure BEFORE the move here.863: ! the structure BEFORE the move here.
868: !                 CALL A9DUMPPDB(COORDS(:,JP),"beforemove")864: !                 CALL A9DUMPPDB(COORDS(:,JP),"beforemove")
2327:                   VATO(1:GCNATOMSBEST(JP),JP)=GCBESTVAT(1:GCNATOMSBEST(JP),JP)2323:                   VATO(1:GCNATOMSBEST(JP),JP)=GCBESTVAT(1:GCNATOMSBEST(JP),JP)
2328:                   POTEL=GCEBEST(JP)2324:                   POTEL=GCEBEST(JP)
2329:                   EPREV(JP)=GCEBEST(JP)2325:                   EPREV(JP)=GCEBEST(JP)
2330:                   IF (DEBUG) WRITE(MYUNIT,'(A,G20.10)') 'mc> potel and eprev reset to ',GCEBEST(JP)2326:                   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 ',NATOMS2327:                   IF (DEBUG) WRITE(MYUNIT,'(A,I6)') 'mc> number of atoms reset to ',NATOMS
2332:                ENDIF2328:                ENDIF
2333:             ENDIF2329:             ENDIF
2334: 2330: 
2335:             !the mutational steps are accepted for better bonding properties, but the energies used 2331:             !the mutational steps are accepted for better bonding properties, but the energies used 
2336:             !otherwise refer to the best potential energies for one sequence2332:             !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               2333:             IF (MUTATEDT.AND.(MOD((J1-MUTTESTSTEPS),MUTATIONFREQ).EQ.0)) THEN !kr366> here we check our mutational step               
2338:                CALL MUTATION_E(EMUTN,TEMPCOORDS,MUTENERGY,MUTTERMID) !get the energy for the new molecule2334:                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: ',EMUTN2335:                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: ',EMUTN2336:                WRITE(MUTUNIT, '(2(A,F15.8))') 'Energy before mutation: ',EMUTP,' | energy after mutation: ',EMUTN
2341:                IF (EMUTN.LT.EMUTP) THEN2337:                IF (EMUTN.LT.EMUTP) THEN
2342:                   RANDOM=0.0D02338:                   RANDOM=0.0D0
2343:                   ATEST=.TRUE.2339:                   ATEST=.TRUE.
2344:                ELSE2340:                ELSE
2345:                   RANDOM=DPRAND()2341:                   RANDOM=DPRAND()
2346:                   DUMMY = EMUTN - EMUTP2342:                   DUMMY = EMUTN - EMUTP
2347:                   DUMMY=EXP(-DUMMY/MAX(MCTEMP,1.0D-100))2343:                   DUMMY=EXP(-DUMMY/MAX(MCTEMP,1.0D-100))
2348:                   IF (DUMMY.GT.RANDOM) THEN2344:                   IF (DUMMY.GT.RANDOM) THEN
2349:                      ATEST=.TRUE.2345:                      ATEST=.TRUE.
2350:                   ELSE2346:                   ELSE
2351:                      ATEST=.FALSE.2347:                      ATEST=.FALSE.
2352:                   ENDIF2348:                   ENDIF
2353:                ENDIF2349:                ENDIF
2354:                IF (ATEST) THEN2350:                IF (ATEST) THEN
2355:                   WRITE(MUTUNIT,'(A)') 'Mutation accpeted'2351:                   WRITE(MUTUNIT,'(A)') 'Mutation accpeted'
2356:                   WRITE(MYUNIT, '(A)') ' mc> Mutation accepted'2352:                   WRITE(MYUNIT, '(A)') ' mc> Mutation accepted'
2357:                ELSE2353:                ELSE
2358:                   CALL AMBER12_WRITE_RESTART(TEMPCOORDS,"before_reverse.mut",LEN("before_reverse.mut")) 
2359:                   CALL SYSTEM("cp coords.prmtop before_mut.prmtop") 
2360:                   CALL REVERSE_MUTATION(MUTATEDRES)2354:                   CALL REVERSE_MUTATION(MUTATEDRES)
2361:                   IF (SETCHIRAL) THEN2355:                   IF (SETCHIRAL) THEN
2362:                      WRITE(MYUNIT,'(A)') ' mc> Storing chiral information for initial (mutated) structure'2356:                      WRITE(MYUNIT,'(A)') ' mc> Storing chiral information for initial (mutated) structure'
2363:                      CALL INIT_CHIRAL(COORDS(:,1))2357:                      CALL INIT_CHIRAL(COORDS(:,1))
2364:                   END IF2358:                   END IF
2365:                   IF (NOCISTRANS) THEN2359:                   IF (NOCISTRANS) THEN
2366:                      WRITE(MYUNIT,'(A)') ' mc> Storing cis/trans information for initial (mutated) structure'2360:                      WRITE(MYUNIT,'(A)') ' mc> Storing cis/trans information for initial (mutated) structure'
2367:                      CALL INIT_CIS_TRANS(COORDS(:,1))2361:                      CALL INIT_CIS_TRANS(COORDS(:,1))
2368:                   ENDIF2362:                   ENDIF
2369:                   WRITE(MYUNIT, '(A)')  ' mc> Calculating initial energy after reversing mutation'2363:                   WRITE(MYUNIT, '(A)')  ' mc> Calculating initial energy after reversing mutation'
2370:                   EPSSAVE=EPSSPHERE2364:                   EPSSAVE=EPSSPHERE
2371:                   EPSSPHERE=0.0D02365:                   EPSSPHERE=0.0D0
2372:                   IF (ALLOCATED(SCREENC)) DEALLOCATE(SCREENC) 
2373:                   ALLOCATE(SCREENC(3*NATOMS)) 
2374:                   SCREENC(1:3*NATOMS)=COORDS(1:3*NATOMS,1) 
2375:                   CALL QUENCH(.FALSE.,JP,ITERATIONS,TIME,BRUN,QDONE,SCREENC)2366:                   CALL QUENCH(.FALSE.,JP,ITERATIONS,TIME,BRUN,QDONE,SCREENC)
2376:                   NQTOT=NQTOT+12367:                   NQTOT=NQTOT+1
2377:                   WRITE(MYUNIT,'(A,I10,A,G20.10,A,I5,A,G12.5,A,G20.10,A,F11.1)') 'Qu ',NQ(JP),' E=',2368:                   WRITE(MYUNIT,'(A,I10,A,G20.10,A,I5,A,G12.5,A,G20.10,A,F11.1)') 'Qu ',NQ(JP),' E=',
2378:      1                     POTEL,' steps=',ITERATIONS,' RMS=',RMS,' Markov E=',POTEL,' t=',TIME-TSTART2369:      1                     POTEL,' steps=',ITERATIONS,' RMS=',RMS,' Markov E=',POTEL,' t=',TIME-TSTART
2379:                   CALL FLUSH(MYUNIT)2370:                   CALL FLUSH(MYUNIT)
2380:                   EPREV(JP)=POTEL2371:                   EPREV(JP)=POTEL
2381:                   COORDSO(1:3*NATOMS,JP)=COORDS(1:3*NATOMS,JP)2372:                   COORDSO(1:3*NATOMS,JP)=COORDS(1:3*NATOMS,JP)
2382:                   IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS)2373:                   IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS)
2383:                   ALLOCATE(BESTCOORDS(3*NATOMS,NPAR))2374:                   ALLOCATE(BESTCOORDS(3*NATOMS,NPAR))
2384:                   IF (ALLOCATED(SAVECOORDS)) DEALLOCATE(SAVECOORDS)2375:                   IF (ALLOCATED(SAVECOORDS)) DEALLOCATE(SAVECOORDS)
2504: 2495: 
2505:          IF (HIT) THEN2496:          IF (HIT) THEN
2506:             WRITE(MYUNIT,'(I0,1X,I0,1X,I0,1X,F20.10)')1,NQTOT,NPCALL,TIME-TSTART2497:             WRITE(MYUNIT,'(I0,1X,I0,1X,I0,1X,F20.10)')1,NQTOT,NPCALL,TIME-TSTART
2507:          ELSE2498:          ELSE
2508:             WRITE(MYUNIT,'(I0,1X,I0,1X,I0,1X,F20.10)')0,NQTOT,NPCALL,TIME-TSTART2499:             WRITE(MYUNIT,'(I0,1X,I0,1X,I0,1X,F20.10)')0,NQTOT,NPCALL,TIME-TSTART
2509:          ENDIF2500:          ENDIF
2510: 2501: 
2511:       ENDIF2502:       ENDIF
2512:       !kr366> deallocate arrays at the end2503:       !kr366> deallocate arrays at the end
2513:       IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS)2504:       IF (ALLOCATED(BESTCOORDS)) DEALLOCATE(BESTCOORDS)
2514:       IF (ALLOCATED(SAVECOORDS)) DEALLOCATE(SAVECOORDS)2505: 
2515:       IF (ALLOCATED(TEMPCOORDS)) DEALLOCATE(TEMPCOORDS) 
2516:       IF (ALLOCATED(SCREENC)) DEALLOCATE(SCREENC) 
2517:        
2518:       RETURN2506:       RETURN
2519:       END2507:       END
2520: C     2508: C     
2521: C2509: C
2522: ! csw34> Subroutine to dump the current lowest interaction energy structure 2510: ! csw34> Subroutine to dump the current lowest interaction energy structure 
2523: !> \brief Subroutine to dump the current lowest interaction energy structure 2511: !> \brief Subroutine to dump the current lowest interaction energy structure 
2524: !> \author Chris Whittleston, csw34@cam.ac.uk2512: !> \author Chris Whittleston, csw34@cam.ac.uk
2525: !2513: !
2526:       SUBROUTINE A9INTEDUMPLOWEST()2514:       SUBROUTINE A9INTEDUMPLOWEST()
2527:       USE COMMONS2515:       USE COMMONS


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0