hdiff output

r30669/SBM.f 2016-07-06 15:38:17.125408975 +0100 r30668/SBM.f 2016-07-06 15:38:17.473413680 +0100
 16:      Q Tk(2*NSBMMAX), PK(3*NSBMMAX), PHISBM(3*NSBMMAX), CONCOEF1(NSBMMAX*5), 16:      Q Tk(2*NSBMMAX), PK(3*NSBMMAX), PHISBM(3*NSBMMAX), CONCOEF1(NSBMMAX*5),
 17:      Q CONCOEF2(NSBMMAX*5),NCswitch,NCcut,SBMCHARGE(NSBMMAX),PREFACTOR,KAPPA,DHswitch,DHcut 17:      Q CONCOEF2(NSBMMAX*5),NCswitch,NCcut,SBMCHARGE(NSBMMAX),PREFACTOR,KAPPA,DHswitch,DHcut
 18:       INTEGER  Ib1(NSBMMAX*2), Ib2(NSBMMAX*2), IT(NSBMMAX*2), JT(NSBMMAX*2), 18:       INTEGER  Ib1(NSBMMAX*2), Ib2(NSBMMAX*2), IT(NSBMMAX*2), JT(NSBMMAX*2),
 19:      Q KT(NSBMMAX*2),IP(NSBMMAX*3), JP(NSBMMAX*3), KP(NSBMMAX*3), 19:      Q KT(NSBMMAX*2),IP(NSBMMAX*3), JP(NSBMMAX*3), KP(NSBMMAX*3),
 20:      Q LP(NSBMMAX*3), IC(NSBMMAX*5), JC(NSBMMAX*5), 20:      Q LP(NSBMMAX*3), IC(NSBMMAX*5), JC(NSBMMAX*5),
 21:      Q PHITYPE(3*NSBMMAX),NBA,NTA,NPA,NC,SBMPRN, SBMPRI(NSBMMAX) 21:      Q PHITYPE(3*NSBMMAX),NBA,NTA,NPA,NC,SBMPRN, SBMPRI(NSBMMAX)
 22:       DOUBLE PRECISION SBMPRK(NSBMMAX,6),SBMPRX(NSBMMAX,3) 22:       DOUBLE PRECISION SBMPRK(NSBMMAX,6),SBMPRX(NSBMMAX,3)
 23:         integer CONTACTTYPE,SBMCHARGEON(NSBMMAX) 23:         integer CONTACTTYPE,SBMCHARGEON(NSBMMAX)
 24:         common /double precision/ Rb, bK, ANTC, Tk,PK, PHISBM, 24:         common /double precision/ Rb, bK, ANTC, Tk,PK, PHISBM,
 25:      Q NCswitch,NCcut,STT,SBMCHARGE,PREFACTOR,KAPPA,DHswitch,DHcut, 25:      Q NCswitch,NCcut,STT,SBMCHARGE,PREFACTOR,KAPPA,DHswitch,DHcut,
 26:      Q SBMPRK,SBMPRX,CONCOEF1, CONCOEF2 26:      Q SBMPRK,SBMPRX
 27:         common /int/ PHITYPE, Ib1, Ib2, IT, JT, KT, IP, 27:         common /int/ PHITYPE, Ib1, Ib2, IT, JT, KT, IP,
 28:      Q JP, KP, LP,IC, JC, NBA, NTA, NPA, NC, 28:      Q JP, KP, LP,IC, JC, NBA, NTA, NPA, NC,
 29:      Q CONTACTTYPE,SBMCHARGEON,SBMPRN,SBMPRI,MAXSEP 29:      Q CONTACTTYPE,SBMCHARGEON,SBMPRN,SBMPRI,MAXSEP
 30:         COMMON /logical/ NNCinc 30:         COMMON /logical/ NNCinc
 31:         MAXSEP=MAXSEP1 31:         MAXSEP=MAXSEP1
 32:         if(NATOMS.gt. NSBMMAX)then 32:         if(NATOMS.gt. NSBMMAX)then
 33:         write(*,*) 'TOO MANY ATOMS FOR SBM, change NSBMMAX' 33:         write(*,*) 'TOO MANY ATOMS FOR SBM, change NSBMMAX'
 34:         STOP 34:         STOP
 35:         endif 35:         endif
 36:  36: 
416:       call SBMbonds(x,y,z,grad, energy, natoms,Ib1, Ib2,Rb, bK,NBA)416:       call SBMbonds(x,y,z,grad, energy, natoms,Ib1, Ib2,Rb, bK,NBA)
417:       call SBMangl(x,y,z,grad, energy, natoms,IT,JT,KT,ANTC,Tk,NTA)417:       call SBMangl(x,y,z,grad, energy, natoms,IT,JT,KT,ANTC,Tk,NTA)
418:       call SBMDihedral(x,y,z,grad, energy, natoms,IP,JP,KP,LP,PK,418:       call SBMDihedral(x,y,z,grad, energy, natoms,IP,JP,KP,LP,PK,
419:      Q PHITYPE,PHISBM,NPA)419:      Q PHITYPE,PHISBM,NPA)
420:       call SBMContacts(x,y,z,grad, energy,natoms,IC,JC, 420:       call SBMContacts(x,y,z,grad, energy,natoms,IC,JC, 
421:      Q CONCOEF1,CONCOEF2,NC,CONTACTTYPE)421:      Q CONCOEF1,CONCOEF2,NC,CONTACTTYPE)
422:       call SBMNonContacts(x,y,z,grad, energy, natoms, 422:       call SBMNonContacts(x,y,z,grad, energy, natoms, 
423:      Q NNCinc,MAXSEP,NCswitch,NCcut,STT)423:      Q NNCinc,MAXSEP,NCswitch,NCcut,STT)
424:       call SBMDHELEC(x,y,z,grad, energy, natoms, 424:       call SBMDHELEC(x,y,z,grad, energy, natoms, 
425:      Q NNCinc,MAXSEP,PREFACTOR,KAPPA,DHswitch,DHcut,SBMCHARGE,SBMCHARGEON)425:      Q NNCinc,MAXSEP,PREFACTOR,KAPPA,DHswitch,DHcut,SBMCHARGE,SBMCHARGEON)
426:       call SBMPR(x,y,z,grad, energy, natoms,SBMPRN,SBMPRI,SBMPRK,SBMPRX)426:       call SBMPR(x,y,z,grad, energy, natoms, 
 427:      Q SBMPRN,SBMPRI,SBMPRK,SBMPRX)
427: 428: 
428:       end429:       end
429: 430: 
430: 431: 
431: !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<432: !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
432: !* SBMBonds  computes the hookean force and energy between chosen atoms *433: !* SBMBonds  computes the hookean force and energy between chosen atoms *
433: !***********************************************************************434: !***********************************************************************
434: 435: 
435:       subroutine SBMBonds(x,y,z,grad,energy, natoms,Ib1, Ib2,Rb, bK,NBA)436:       subroutine SBMBonds(x,y,z,grad,energy, natoms,Ib1, Ib2,Rb, bK,NBA)
436:       USE KEY437:       USE KEY
833: 834: 
834:         LOGICAL NNCinc(NATOMS,MAXSEP)835:         LOGICAL NNCinc(NATOMS,MAXSEP)
835:         DOUBLE PRECISION dx,dy,dz836:         DOUBLE PRECISION dx,dy,dz
836:         integer tempN, alpha837:         integer tempN, alpha
837:         double precision Rdiff,Vfunc,Ffunc838:         double precision Rdiff,Vfunc,Ffunc
838:         double precision Rcut2,Rswitch2839:         double precision Rcut2,Rswitch2
839:         ! Ngrid is the number of atoms in that grid point840:         ! Ngrid is the number of atoms in that grid point
840:         ! grid is the array of atoms in each grid841:         ! grid is the array of atoms in each grid
841:         integer Ngrid,grid,maxgrid,maxpergrid842:         integer Ngrid,grid,maxgrid,maxpergrid
842:         ! number of atoms per grid, max843:         ! number of atoms per grid, max
843:         parameter (maxpergrid=50)844:         parameter (maxpergrid=25)
844:         ! dimensions of grid845:         ! dimensions of grid
845:         parameter (maxgrid=30)846:         parameter (maxgrid=30)
846:         dimension Ngrid(maxgrid,maxgrid,maxgrid),847:         dimension Ngrid(maxgrid,maxgrid,maxgrid),
847:      Q  grid(maxgrid,maxgrid,maxgrid,maxpergrid)848:      Q  grid(maxgrid,maxgrid,maxgrid,maxpergrid)
848:         integer MaxGridX,MaxGridY,MaxGridZ849:         integer MaxGridX,MaxGridY,MaxGridZ
849:         double precision gridsize,RD1850:         double precision gridsize,RD1
850:         double precision minX,minY,minZ,maxX,maxY,maxZ851:         double precision minX,minY,minZ,maxX,maxY,maxZ
851:         integer Xgrid,Ygrid,Zgrid,TID852:         integer Xgrid,Ygrid,Zgrid,TID
852:         Rdiff=NCcut-NCswitch853:         Rdiff=NCcut-NCswitch
853:         alpha=12854:         alpha=12
1231: 1232: 
1232:       subroutine SBMPR(x,y,z,grad, energy, natoms, 1233:       subroutine SBMPR(x,y,z,grad, energy, natoms, 
1233:      Q SBMPRN,SBMPRI,SBMPRK,SBMPRX)1234:      Q SBMPRN,SBMPRI,SBMPRK,SBMPRX)
1234: 1235: 
1235:       USE KEY1236:       USE KEY
1236:       implicit NONE1237:       implicit NONE
1237:       integer I, J, NATOMS1238:       integer I, J, NATOMS
1238:       INTEGER SBMPRN, SBMPRI(NATOMS)1239:       INTEGER SBMPRN, SBMPRI(NATOMS)
1239:       DOUBLE PRECISION SBMPRK(NATOMS,6),SBMPRX(NATOMS,3)1240:       DOUBLE PRECISION SBMPRK(NATOMS,6),SBMPRX(NATOMS,3)
1240:       DOUBLE PRECISION x(NATOMS), y(NATOMS), z(NATOMS),1241:       DOUBLE PRECISION x(NATOMS), y(NATOMS), z(NATOMS),
1241:      Q grad(3*NATOMS), energy,ET1242:      Q grad(3*NATOMS), energy
1242:       DOUBLE PRECISION DX,DY,DZ,K1,K2,K3,K4,K5,K61243:       DOUBLE PRECISION DX,DY,DZ,K1,K2,K3,K4,K5,K6
1243: 1244: 
1244: 1245: 
1245:       if(SBMPRN .eq. 0) RETURN1246:       if(SBMPRN .eq. 0) RETURN
1246: 1247: 
1247: !$OMP PARALLEL PRIVATE(I,J,DX,DY,DZ,K1,K2,K3,K4,K5,K6)REDUCTION(+:energy,grad)1248: !$OMP PARALLEL PRIVATE(I,J,DX,DY,DZ,K1,K2,K3,K4,K5,K6)REDUCTION(+:energy,grad)
1248: !$OMP DO1249: !$OMP DO
1249:               do I=1,SBMPRN1250:               do I=1,SBMPRN
1250:            J=SBMPRI(I)1251:            J=SBMPRI(I)
1251:            DX=X(J)-SBMPRX(I,1)1252:            DX=X(J)-SBMPRX(I,1)
1252:            DY=Y(J)-SBMPRX(I,2)1253:            DY=Y(J)-SBMPRX(I,2)
1253:            DZ=Z(J)-SBMPRX(I,3)1254:            DZ=Z(J)-SBMPRX(I,3)
1254:            K1=SBMPRK(I,1)1255:            K1=SBMPRK(I,1)
1255:            K2=SBMPRK(I,2)1256:            K2=SBMPRK(I,2)
1256:            K3=SBMPRK(I,3)1257:            K3=SBMPRK(I,3)
1257:            K4=SBMPRK(I,4)1258:            K4=SBMPRK(I,4)
1258:            K5=SBMPRK(I,5)1259:            K5=SBMPRK(I,5)
1259:            K6=SBMPRK(I,6)1260:            K6=SBMPRK(I,6)
1260:            1261: 
1261: 1262: 
1262:            ENERGY = ENERGY +0.5*(K1*DX**2+K2*DY**2+K3*DZ**2) +1263:            ENERGY = ENERGY +0.5*(K1*DX**2+K2*DY**2+K3*DZ**2) +
1263:      Q     K4*DX*DY+K5*DX*DZ+K6*DY*DZ1264:      Q     K4*DX*DY+K5*DX*DZ+K6*DY*DZ
1264: 1265: 
1265:            grad(J*3-2) = grad(J*3-2) + K1*DX + K4*DY + K5*DZ 1266:            grad(J*3-2) = grad(J*3-2) + K1*DX + K4*DY + K5*DZ 
1266:            grad(J*3-1) = grad(J*3-1) + K2*DY + K4*DX + K6*DZ1267:            grad(J*3-1) = grad(J*3-1) + K2*DY + K4*DX + K6*DZ
1267:            grad(J*3)   = grad(J*3)   + K3*DZ + K5*DX + K6*DY1268:            grad(J*3)   = grad(J*3)   + K3*DZ + K5*DX + K6*DY
1268:         enddo1269:         enddo
1269: !$OMP END DO1270: !$OMP END DO
1270: !$OMP END PARALLEL1271: !$OMP END PARALLEL


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0