hdiff output

r30687/SBM.f 2016-07-06 15:38:23.925500892 +0100 r30686/SBM.f 2016-07-06 15:38:24.257505391 +0100
202:           if(CONTACTTYPE(I) .eq. 1)then ! 6-12 interaction202:           if(CONTACTTYPE(I) .eq. 1)then ! 6-12 interaction
203:             CONCOEF(I*6-5)=ARG2*ARG1**12203:             CONCOEF(I*6-5)=ARG2*ARG1**12
204:             CONCOEF(I*6-4)=2*ARG2*ARG1**6204:             CONCOEF(I*6-4)=2*ARG2*ARG1**6
205:           elseif(CONTACTTYPE(I) .eq. 2)then ! 10-12205:           elseif(CONTACTTYPE(I) .eq. 2)then ! 10-12
206:             CONCOEF(I*6-5)=5*ARG2*ARG1**12206:             CONCOEF(I*6-5)=5*ARG2*ARG1**12
207:             CONCOEF(I*6-4)=6*ARG2*ARG1**10207:             CONCOEF(I*6-4)=6*ARG2*ARG1**10
208:           elseif(CONTACTTYPE(I) .eq. 5)then ! bare Gaussian208:           elseif(CONTACTTYPE(I) .eq. 5)then ! bare Gaussian
209:             CONCOEF(I*6-5)=ARG1209:             CONCOEF(I*6-5)=ARG1
210:             CONCOEF(I*6-4)=ARG2210:             CONCOEF(I*6-4)=ARG2
211:             read(30, *) ARG1 ! need one additional parameter211:             read(30, *) ARG1 ! need one additional parameter
212:             CONCOEF(I*6-3)=1/(2*ARG1**2)212:             CONCOEF(I*6-3)=1/2*ARG1**2
213:           elseif(CONTACTTYPE(I) .eq. 6)then ! Gaussian with wall213:           elseif(CONTACTTYPE(I) .eq. 6)then ! Gaussian with wall
214:             CONCOEF(I*6-5)=ARG1214:             CONCOEF(I*6-5)=ARG1
215:             CONCOEF(I*6-4)=ARG2215:             CONCOEF(I*6-4)=ARG2
216:             read(30, *) ARG1,ARG2 ! need two additional parameters216:             read(30, *) ARG1,ARG2 ! need two additional parameters
217:             CONCOEF(I*6-3)=1/(2*ARG1**2)217:             CONCOEF(I*6-3)=1/2*ARG1**2
218:             CONCOEF(I*6-2)=ARG2/CONCOEF(I*6-5)218:             CONCOEF(I*6-2)=ARG2/CONCOEF(I*6-5)
219:           elseif(CONTACTTYPE(I) .eq. 7)then ! Dual gaussian219:           elseif(CONTACTTYPE(I) .eq. 7)then ! Dual gaussian
220:             CONCOEF(I*6-5)=ARG1220:             CONCOEF(I*6-5)=ARG1
221:             CONCOEF(I*6-4)=ARG2221:             CONCOEF(I*6-4)=ARG2
222:             read(30, *) ARG1,ARG2,ARG3,ARG4 ! need four additional parameters222:             read(30, *) ARG1,ARG2,ARG3,ARG4 ! need four additional parameters
223:             CONCOEF(I*6-3)=1/(2*ARG1**2)223:             CONCOEF(I*6-3)=1/2*ARG1**2
224:             CONCOEF(I*6-2)=ARG2224:             CONCOEF(I*6-2)=ARG2
225:             CONCOEF(I*6-1)=1/(2*ARG3**2)225:             CONCOEF(I*6-1)=2*ARG3**2
226:             CONCOEF(I*6)=ARG4/CONCOEF(I*6-5)226:             CONCOEF(I*6)=ARG4/CONCOEF(I*6-5)
227:           else227:           else
228:             write(*,*) 'ERROR: Unrecognized contacttype:',CONTACTTYPE(I)228:             write(*,*) 'ERROR: Unrecognized contacttype:',CONTACTTYPE(I)
229:             STOP229:             STOP
230:           endif230:           endif
231:         end do231:         end do
232: ! make a function to check and add232: ! make a function to check and add
233: 233: 
234:           read(30,*)234:           read(30,*)
235:           read(30,*) nBA235:           read(30,*) nBA
494:            grad(I2*3-2) = grad(I2*3-2) - f * dx494:            grad(I2*3-2) = grad(I2*3-2) - f * dx
495:            grad(I2*3-1) = grad(I2*3-1) - f * dy495:            grad(I2*3-1) = grad(I2*3-1) - f * dy
496:            grad(I2*3)   = grad(I2*3)   - f * dz496:            grad(I2*3)   = grad(I2*3)   - f * dz
497:            grad(J2*3-2) = grad(J2*3-2) + f * dx497:            grad(J2*3-2) = grad(J2*3-2) + f * dx
498:            grad(J2*3-1) = grad(J2*3-1) + f * dy498:            grad(J2*3-1) = grad(J2*3-1) + f * dy
499:            grad(J2*3)   = grad(J2*3)   + f * dz499:            grad(J2*3)   = grad(J2*3)   + f * dz
500:        ENDDO 500:        ENDDO 
501: !$OMP END DO501: !$OMP END DO
502: !$OMP END PARALLEL502: !$OMP END PARALLEL
503: 503: 
 504: 
504:       END505:       END
505: 506: 
506: !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^END OF SBMBONDS^^^^^^^^^^^^^^^^^^^^^^^^^^^^^507: !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^END OF SBMBONDS^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
507: 508: 
508: 509: 
509: !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<510: !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
510: !* SBMANGL  computes the Force due to the bond angles                   *511: !* SBMANGL  computes the Force due to the bond angles                   *
511: !* This code is modeled after how AMBER performs angle forces           *512: !* This code is modeled after how AMBER performs angle forces           *
512: !***********************************************************************513: !***********************************************************************
513: 514: 
762: !***********************************************************************763: !***********************************************************************
763: 764: 
764:       subroutine SBMcontacts(x,y,z,grad,energy,765:       subroutine SBMcontacts(x,y,z,grad,energy,
765:      Q NATOMS,IC,JC,CONCOEF,NC,CONTACTTYPE)766:      Q NATOMS,IC,JC,CONCOEF,NC,CONTACTTYPE)
766:       USE KEY767:       USE KEY
767:       implicit NONE768:       implicit NONE
768:       integer I, NATOMS,NC769:       integer I, NATOMS,NC
769: 770: 
770:       DOUBLE PRECISION x(NATOMS), y(NATOMS), z(NATOMS), 771:       DOUBLE PRECISION x(NATOMS), y(NATOMS), z(NATOMS), 
771:      Q grad(3*NATOMS), energy772:      Q grad(3*NATOMS), energy
772:       DOUBLE PRECISION dx,dy,dz,CO1,CO2,CO3,CO4,CO5,CO6,E1,G1,G2,E1D,G1D,G2D,ET773:       DOUBLE PRECISION dx,dy,dz,CO1,CO2,CO3,CO4,CO5,CO6,E1,G1,G2,E1D,G1D,G2D
773: 774: 
774:       integer C1, C2 775:       integer C1, C2 
775:       DOUBLE PRECISION  r2,rm2,rm10,rm12,rm6,f_over_r,r1 776:       DOUBLE PRECISION  r2,rm2,rm10,rm12,rm6,f_over_r,r1 
776: 777: 
777:         DOUBLE PRECISION CONCOEF(NC*6)778:         DOUBLE PRECISION CONCOEF(NC*6)
778:         INTEGER IC(NC), JC(NC),CONTACTTYPE(NC)779:         INTEGER IC(NC), JC(NC),CONTACTTYPE(NC)
779: 780: 
780: ! type 1 is 6-12781: ! type 1 is 6-12
781: ! type 2 is 12-12782: ! type 2 is 12-12
782: ! implement type 3 as gaussian783: ! implement type 3 as gaussian
783: ! implement type 4 as dual-basin gaussian784: ! implement type 4 as dual-basin gaussian
784: ! question: Should type be part of the interaction, or should they be organized785: ! question: Should type be part of the interaction, or should they be organized
785: ! into separate lists?786: ! into separate lists?
786: ! type 1 is 6-12 interaction787: ! type 1 is 6-12 interaction
787: !$OMP PARALLEL PRIVATE(I,CO1,CO2,CO3,CO4,CO5,CO6,C1,C2,DX,DY,DZ,788: !$OMP PARALLEL PRIVATE(I,CO1,CO2,CO3,CO4,CO5,CO6,C1,C2,DX,DY,DZ,
788: !$OMP& R2,RM2,RM6,RM10,RM12,R1,E1,G1,G2,E1D,G1D,G2D,F_OVER_R,ET) REDUCTION(+:ENERGY,grad)789: !$OMP& R2,RM2,RM6,RM10,RM12,R1,E1,G1,G2,E1D,G1D,G2D,F_OVER_R) REDUCTION(+:ENERGY,grad)
789: !$OMP DO790: !$OMP DO
790:           do i=1, NC791:           do i=1, NC
791:             C1 = IC(i)792:             C1 = IC(i)
792:             C2 = JC(i)793:             C2 = JC(i)
793:             dx = X(C1) - X(C2)794:             dx = X(C1) - X(C2)
794:             dy = Y(C1) - Y(C2)795:             dy = Y(C1) - Y(C2)
795:             dz = Z(C1) - Z(C2)796:             dz = Z(C1) - Z(C2)
796:             r2 = dx**2 + dy**2 + dz**2797:             r2 = dx**2 + dy**2 + dz**2
797:             if(CONTACTTYPE(I) .eq. 1)then798:             if(CONTACTTYPE(I) .eq. 1)then
798:               ! type 1 is 6-12 interaction799:               ! type 1 is 6-12 interaction
847:               CO3=CONCOEF(I*6-3) !1/(2*sigma1**2)848:               CO3=CONCOEF(I*6-3) !1/(2*sigma1**2)
848:               CO4=CONCOEF(I*6-2) !mu2849:               CO4=CONCOEF(I*6-2) !mu2
849:               CO5=CONCOEF(I*6-1) !1/(2*sigma2**2)850:               CO5=CONCOEF(I*6-1) !1/(2*sigma2**2)
850:               CO6=CONCOEF(I*6)   ! a/A (excluded volume amplitude/gaussian amplitude)851:               CO6=CONCOEF(I*6)   ! a/A (excluded volume amplitude/gaussian amplitude)
851:               E1=1+CO6*rm12852:               E1=1+CO6*rm12
852:               G1=1-exp(-CO3*(r1-CO2)**2)853:               G1=1-exp(-CO3*(r1-CO2)**2)
853:               G2=1-exp(-CO5*(r1-CO4)**2)854:               G2=1-exp(-CO5*(r1-CO4)**2)
854:               E1D= -12*CO6*rm12*rm2855:               E1D= -12*CO6*rm12*rm2
855:               G1D=CO3*2*(1-CO2/r1)*exp(-CO3*(r1-CO2)**2)856:               G1D=CO3*2*(1-CO2/r1)*exp(-CO3*(r1-CO2)**2)
856:               G2D=CO5*2*(1-CO4/r1)*exp(-CO5*(r1-CO4)**2)857:               G2D=CO5*2*(1-CO4/r1)*exp(-CO5*(r1-CO4)**2)
857:               ENERGY = ENERGY + CO1*( E1 * G1 * G2-1) 858:               ENERGY = ENERGY + CO1*( E1 * G1 * G2) 
858:               f_over_r = CO1*(E1D*G1*G2 859:               f_over_r = CO1*(E1D*G1*G2 
859:      Q        +  E1 * G1D * G2860:      Q        +  E1 * G1D * G2
860:      Q        +  E1 * G1 * G2D)861:      Q        +  E1 * G1 * G2D)
861:             else862:             else
862:               WRITE(*,*) 'ERROR: Contact type not recognized:', CONTACTTYPE(I)863:               WRITE(*,*) 'ERROR: Contact type not recognized:', CONTACTTYPE(I)
863:               STOP864:               STOP
864:             endif865:             endif
865: 866: 
866:             grad(3*C1-2) = grad(3*C1-2) + f_over_r * dx867:             grad(3*C1-2) = grad(3*C1-2) + f_over_r * dx
867:             grad(3*C1-1) = grad(3*C1-1) + f_over_r * dy868:             grad(3*C1-1) = grad(3*C1-1) + f_over_r * dy


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0