hdiff output

r29215/chirality.py 2017-01-21 10:36:34.622250000 +0000 r29214/chirality.py 2017-01-21 10:36:35.810250000 +0000
  6:   6: 
  7: class GhostAtom(ra.Atom):  7: class GhostAtom(ra.Atom):
  8:   pass  8:   pass
  9:   9: 
 10: valences = { "H": 1, 10: valences = { "H": 1,
 11:          "C": 4, 11:          "C": 4,
 12:          "N": 3, 12:          "N": 3,
 13:          "O": 2, 13:          "O": 2,
 14:          "S": 2, 14:          "S": 2,
 15:          "Se": 2, 15:          "Se": 2,
 16:          "Mg": 2, 
 17:          "P": 5 } 16:          "P": 5 }
 18:  17: 
 19: def chiral_candidates(atoms): 18: def chiral_candidates(atoms):
 20:   candidates = [atom for atom in atoms.nodes() if len(nx.edges(atoms, atom)) == 4] 19:   candidates = [atom for atom in atoms.nodes() if len(nx.edges(atoms, atom)) == 4]
 21:   return candidates 20:   return candidates
 22:  21: 
 23: def multi_bonds(atoms): 22: def multi_bonds(atoms):
 24:   multibonded = [atom for atom in atoms.nodes()  23:   multibonded = [atom for atom in atoms.nodes() 
 25:                  if len(nx.edges(atoms, atom)) < valences[atom.element]] 24:                  if len(nx.edges(atoms, atom)) < valences[atom.element]]
 26:   for i, atom in enumerate(multibonded): 25:   for i, atom in enumerate(multibonded):


r29215/cistrans.py 2017-01-21 10:36:34.902250000 +0000 r29214/cistrans.py 2017-01-21 10:36:36.094250000 +0000
  6:   6: 
  7: class GhostAtom(ra.Atom):  7: class GhostAtom(ra.Atom):
  8:   pass  8:   pass
  9:   9: 
 10: valences = { "H": 1, 10: valences = { "H": 1,
 11:              "C": 4, 11:              "C": 4,
 12:              "N": 3, 12:              "N": 3,
 13:              "O": 2, 13:              "O": 2,
 14:              "S": 2, 14:              "S": 2,
 15:              "Se": 2, 15:              "Se": 2,
 16:              "Mg": 2, 
 17:              "P": 5 } 16:              "P": 5 }
 18:  17: 
 19: def peptide_bonds(atoms): 18: def peptide_bonds(atoms):
 20:   peptide_bond_list = [] 19:   peptide_bond_list = []
 21:   amide_carbons = [] 20:   amide_carbons = []
 22: # Identify amide carbons. 21: # Identify amide carbons.
 23:   for carbon in [atom for atom in atoms if atom.element is "C"]: 22:   for carbon in [atom for atom in atoms if atom.element is "C"]:
 24:     if isinstance(carbon, GhostAtom): 23:     if isinstance(carbon, GhostAtom):
 25:       continue 24:       continue
 26:     neighbors = atoms.neighbors(carbon) 25:     neighbors = atoms.neighbors(carbon)


r29215/modcudalbfgs.f90 2017-01-21 10:36:34.346250000 +0000 r29214/modcudalbfgs.f90 2017-01-21 10:36:35.514250000 +0000
 17: IMPLICIT NONE 17: IMPLICIT NONE
 18:  18: 
 19: INTERFACE 19: INTERFACE
 20:     SUBROUTINE CUDA_LBFGS(N, C_XCOORDS, C_GMAX, C_MFLAG, C_ENERGY, ITMAX, C_ITDONE, C_MAXBFGS, C_MAXERISE, C_RMS, C_CUDAPOT, &  20:     SUBROUTINE CUDA_LBFGS(N, C_XCOORDS, C_GMAX, C_MFLAG, C_ENERGY, ITMAX, C_ITDONE, C_MAXBFGS, C_MAXERISE, C_RMS, C_CUDAPOT, & 
 21:                          C_DEBUG, C_CUDATIMET, NCALLS, C_COLDFUSION, C_COLDFUSIONLIMIT, C_DGUESS, MUPDATE, C_ATOMRIGIDCOORDT, &  21:                          C_DEBUG, C_CUDATIMET, NCALLS, C_COLDFUSION, C_COLDFUSIONLIMIT, C_DGUESS, MUPDATE, C_ATOMRIGIDCOORDT, & 
 22:                          C_DEGFREEDOMS, C_NRIGIDBODY, C_NSITEPERBODY, C_RIGIDGROUPS, C_MAXSITE, C_SITESRIGIDBODY, C_RIGIDSINGLES, &  22:                          C_DEGFREEDOMS, C_NRIGIDBODY, C_NSITEPERBODY, C_RIGIDGROUPS, C_MAXSITE, C_SITESRIGIDBODY, C_RIGIDSINGLES, & 
 23:                          C_BQMAX, C_IINVERSE, PROJECT, C_FREEZE, C_FROZEN, C_NFREEZE, POTENTIALTIME) BIND(C,NAME="setup_lbfgs") 23:                          C_BQMAX, C_IINVERSE, PROJECT, C_FREEZE, C_FROZEN, C_NFREEZE, POTENTIALTIME) BIND(C,NAME="setup_lbfgs")
 24:  24: 
 25:         IMPORT :: C_INT, C_DOUBLE, C_BOOL, C_CHAR 25:         IMPORT :: C_INT, C_DOUBLE, C_BOOL, C_CHAR
 26:  26: 
 27:         INTEGER(KIND=C_INT), INTENT(IN) :: N, & ! 3*no. of atoms 27:         INTEGER(KIND=C_INT), INTENT(IN) :: N, & ! No. of atoms
 28:                                            ITMAX, & ! Max. no. of steps allowed in minmization 28:                                            ITMAX, & ! Max. no. of steps allowed in minmization
 29:                                            C_DEGFREEDOMS, & ! Rigid Body Framework (RBF): no. of degrees of freedom 29:                                            C_DEGFREEDOMS, & ! Rigid Body Framework (RBF): no. of degrees of freedom
 30:                                            C_NRIGIDBODY, & ! RBF: no. of rigid bodies 30:                                            C_NRIGIDBODY, & ! RBF: no. of rigid bodies
 31:                                            C_MAXSITE, & ! RBF: max. no. of sites in a rigid body 31:                                            C_MAXSITE, & ! RBF: max. no. of sites in a rigid body
 32:                                            MUPDATE, & ! History size 32:                                            MUPDATE, & ! History size
 33:                                            C_NFREEZE ! No. of frozen atoms 33:                                            C_NFREEZE ! No. of frozen atoms
 34:  34: 
 35:         INTEGER(KIND=C_INT), DIMENSION(C_NRIGIDBODY), INTENT(IN) :: C_NSITEPERBODY ! RBF: no. of rigid body sites 35:         INTEGER(KIND=C_INT), DIMENSION(C_NRIGIDBODY), INTENT(IN) :: C_NSITEPERBODY ! RBF: no. of rigid body sites
 36:  36: 
 37:         INTEGER(KIND=C_INT), DIMENSION(C_MAXSITE*C_NRIGIDBODY), INTENT(IN) :: C_RIGIDGROUPS ! RBF: list of atoms in rigid bodies 37:         INTEGER(KIND=C_INT), DIMENSION(C_MAXSITE*C_NRIGIDBODY), INTENT(IN) :: C_RIGIDGROUPS ! RBF: list of atoms in rigid bodies
 58:         REAL(KIND=C_DOUBLE), INTENT(OUT) :: C_ENERGY, & ! Energy 58:         REAL(KIND=C_DOUBLE), INTENT(OUT) :: C_ENERGY, & ! Energy
 59:                                             C_RMS, & ! RMS force 59:                                             C_RMS, & ! RMS force
 60:                                             POTENTIALTIME ! Time taken in calculating potential 60:                                             POTENTIALTIME ! Time taken in calculating potential
 61:  61: 
 62:         LOGICAL(KIND=C_BOOL), INTENT(IN) :: C_DEBUG, & ! If true, print debug info. 62:         LOGICAL(KIND=C_BOOL), INTENT(IN) :: C_DEBUG, & ! If true, print debug info.
 63:                                             C_CUDATIMET, & ! If true, print timing info. 63:                                             C_CUDATIMET, & ! If true, print timing info.
 64:                                             C_ATOMRIGIDCOORDT, & ! If false, use rigid body coordinates 64:                                             C_ATOMRIGIDCOORDT, & ! If false, use rigid body coordinates
 65:                                             PROJECT, & ! If true, project out the components of the gradient along the eigenvector 65:                                             PROJECT, & ! If true, project out the components of the gradient along the eigenvector
 66:                                             C_FREEZE ! If true, freeze some specified atoms 66:                                             C_FREEZE ! If true, freeze some specified atoms
 67:  67: 
 68:         LOGICAL(KIND=C_BOOL), DIMENSION(N/3), INTENT(IN) :: C_FROZEN ! Logical array specifying frozen atoms 68:         LOGICAL(KIND=C_BOOL), DIMENSION(N), INTENT(IN) :: C_FROZEN ! Logical array specifying frozen atoms
 69:  69: 
 70:         LOGICAL(KIND=C_BOOL), INTENT(OUT) :: C_MFLAG, & ! True if quench converged 70:         LOGICAL(KIND=C_BOOL), INTENT(OUT) :: C_MFLAG, & ! True if quench converged
 71:                                              C_COLDFUSION ! Set to true during minimization if cold fusion diagnosed 71:                                              C_COLDFUSION ! Set to true during minimization if cold fusion diagnosed
 72:  72: 
 73:         CHARACTER(LEN=1, KIND=C_CHAR), INTENT(IN) :: C_CUDAPOT ! Character specifying the CUDA potential to be used 73:         CHARACTER(LEN=1, KIND=C_CHAR), INTENT(IN) :: C_CUDAPOT ! Character specifying the CUDA potential to be used
 74:  74: 
 75:     END SUBROUTINE CUDA_LBFGS 75:     END SUBROUTINE CUDA_LBFGS
 76: END INTERFACE 76: END INTERFACE
 77:  77: 
 78: INTERFACE 78: INTERFACE
 98:         INTEGER(KIND=C_INT), DIMENSION(NRIGIDBODY) :: C_NSITEPERBODY 98:         INTEGER(KIND=C_INT), DIMENSION(NRIGIDBODY) :: C_NSITEPERBODY
 99:         INTEGER(KIND=C_INT), DIMENSION(MAXSITE*NRIGIDBODY) :: C_RIGIDGROUPS 99:         INTEGER(KIND=C_INT), DIMENSION(MAXSITE*NRIGIDBODY) :: C_RIGIDGROUPS
100:         INTEGER(KIND=C_INT), DIMENSION(DEGFREEDOMS/3 - 2*NRIGIDBODY) :: C_RIGIDSINGLES100:         INTEGER(KIND=C_INT), DIMENSION(DEGFREEDOMS/3 - 2*NRIGIDBODY) :: C_RIGIDSINGLES
101: 101: 
102:         REAL(KIND=C_DOUBLE) :: C_MAXBFGS, C_MAXERISE, C_ENERGY, C_RMS, C_COLDFUSIONLIMIT, C_DGUESS, C_BQMAX, C_GMAX, POTENTIALTIME102:         REAL(KIND=C_DOUBLE) :: C_MAXBFGS, C_MAXERISE, C_ENERGY, C_RMS, C_COLDFUSIONLIMIT, C_DGUESS, C_BQMAX, C_GMAX, POTENTIALTIME
103:         REAL(KIND=C_DOUBLE), DIMENSION(MAXSITE*3*NRIGIDBODY) :: C_SITESRIGIDBODY103:         REAL(KIND=C_DOUBLE), DIMENSION(MAXSITE*3*NRIGIDBODY) :: C_SITESRIGIDBODY
104:         REAL(KIND=C_DOUBLE), DIMENSION(NRIGIDBODY*3*3) :: C_IINVERSE104:         REAL(KIND=C_DOUBLE), DIMENSION(NRIGIDBODY*3*3) :: C_IINVERSE
105:         REAL(KIND=C_DOUBLE), DIMENSION(N) :: C_XCOORDS105:         REAL(KIND=C_DOUBLE), DIMENSION(N) :: C_XCOORDS
106: 106: 
107:         LOGICAL(KIND=C_BOOL) :: C_MFLAG, C_DEBUG, C_CUDATIMET, C_ATOMRIGIDCOORDT, C_COLDFUSION, PROJECT, C_FREEZE107:         LOGICAL(KIND=C_BOOL) :: C_MFLAG, C_DEBUG, C_CUDATIMET, C_ATOMRIGIDCOORDT, C_COLDFUSION, PROJECT, C_FREEZE
108:         LOGICAL(KIND=C_BOOL), DIMENSION(N/3) :: C_FROZEN108:         LOGICAL(KIND=C_BOOL), DIMENSION(N) :: C_FROZEN
109: 109: 
110:         CHARACTER(LEN=1, KIND=C_CHAR) :: C_CUDAPOT110:         CHARACTER(LEN=1, KIND=C_CHAR) :: C_CUDAPOT
111: 111: 
112:         ! Variables passed as *arguments through this wrapper* (not common) with intent out for CUDA_LBFGS are not passed into it112:         ! Variables passed as *arguments through this wrapper* (not common) with intent out for CUDA_LBFGS are not passed into it
113:         ! Therefore uninitialised C types are passed in and converted types are copied back after the call113:         ! Therefore uninitialised C types are passed in and converted types are copied back after the call
114: 114: 
115:         INTEGER :: I, J, K, ITDONE, FCALL, NPCALL, ECALL, SCALL115:         INTEGER :: I, J, K, ITDONE, FCALL, NPCALL, ECALL, SCALL
116:         DOUBLE PRECISION :: ENERGY, RMS, FTIME, ETIME, STIME116:         DOUBLE PRECISION :: ENERGY, RMS, FTIME, ETIME, STIME
117:         DOUBLE PRECISION, DIMENSION(N) :: XCOORDS117:         DOUBLE PRECISION, DIMENSION(N) :: XCOORDS
118:         LOGICAL :: MFLAG, KNOWE, KNOWG, KNOWH, DRAGT, DOINTERNALSTRANSFORM118:         LOGICAL :: MFLAG, KNOWE, KNOWG, KNOWH, DRAGT, DOINTERNALSTRANSFORM
165:                 DO I = 1,NRIGIDBODY165:                 DO I = 1,NRIGIDBODY
166:                    C_IINVERSE((K - 1)*3*NRIGIDBODY + (J - 1)*NRIGIDBODY + I) = IINVERSE(I,J,K)166:                    C_IINVERSE((K - 1)*3*NRIGIDBODY + (J - 1)*NRIGIDBODY + I) = IINVERSE(I,J,K)
167:                 END DO167:                 END DO
168:             END DO168:             END DO
169:         END DO169:         END DO
170: 170: 
171:         DO I = 1,N171:         DO I = 1,N
172:             C_XCOORDS(I) = XCOORDS(I)172:             C_XCOORDS(I) = XCOORDS(I)
173:         END DO173:         END DO
174: 174: 
175:         DO I = 1,(N/3)175:         DO I = 1,N
176:             C_FROZEN(I) = FROZEN(I)176:             C_FROZEN(I) = FROZEN(I)
177:         END DO177:         END DO
178: 178: 
179:         C_CUDAPOT = CUDAPOT179:         C_CUDAPOT = CUDAPOT
180:         C_DEBUG = DEBUG180:         C_DEBUG = DEBUG
181:         C_CUDATIMET = CUDATIMET181:         C_CUDATIMET = CUDATIMET
182:         C_MAXBFGS = MAXBFGS182:         C_MAXBFGS = MAXBFGS
183:         C_MAXERISE = MAXERISE183:         C_MAXERISE = MAXERISE
184:         C_ATOMRIGIDCOORDT = ATOMRIGIDCOORDT184:         C_ATOMRIGIDCOORDT = ATOMRIGIDCOORDT
185:         C_DEGFREEDOMS = DEGFREEDOMS185:         C_DEGFREEDOMS = DEGFREEDOMS


r29215/modcudalbfgs.F90 2017-01-21 10:36:34.034250000 +0000 r29214/modcudalbfgs.F90 2017-01-21 10:36:35.222250000 +0000
 20: #ifndef DUMMY_CUDA 20: #ifndef DUMMY_CUDA
 21: INTERFACE 21: INTERFACE
 22:     SUBROUTINE CUDA_LBFGS(N, C_XCOORDS, EPS, C_MFLAG, C_ENERGY, ITMAX, C_ITDONE, C_MAXBFGS, C_MAXERISE, C_RMS, C_CUDAPOT, &  22:     SUBROUTINE CUDA_LBFGS(N, C_XCOORDS, EPS, C_MFLAG, C_ENERGY, ITMAX, C_ITDONE, C_MAXBFGS, C_MAXERISE, C_RMS, C_CUDAPOT, & 
 23:                          C_DEBUG, C_CUDATIMET, ECALLS, C_COLDFUSION, C_COLDFUSIONLIMIT, & 23:                          C_DEBUG, C_CUDATIMET, ECALLS, C_COLDFUSION, C_COLDFUSIONLIMIT, &
 24:                          C_DGUESS, MUPDATE, C_ATOMRIGIDCOORDT, C_DEGFREEDOMS, C_NRIGIDBODY, C_NSITEPERBODY, & 24:                          C_DGUESS, MUPDATE, C_ATOMRIGIDCOORDT, C_DEGFREEDOMS, C_NRIGIDBODY, C_NSITEPERBODY, &
 25:                          C_RIGIDGROUPS, C_MAXSITE, C_SITESRIGIDBODY, C_RIGIDSINGLES, C_BQMAX, C_IINVERSE, & 25:                          C_RIGIDGROUPS, C_MAXSITE, C_SITESRIGIDBODY, C_RIGIDSINGLES, C_BQMAX, C_IINVERSE, &
 26:                          PROJECT, C_FREEZE, C_FROZEN, C_NFREEZE, POTENTIALTIME) BIND(C,NAME="setup_lbfgs") 26:                          PROJECT, C_FREEZE, C_FROZEN, C_NFREEZE, POTENTIALTIME) BIND(C,NAME="setup_lbfgs")
 27:  27: 
 28:         IMPORT :: C_INT, C_DOUBLE, C_BOOL, C_CHAR 28:         IMPORT :: C_INT, C_DOUBLE, C_BOOL, C_CHAR
 29:  29: 
 30:         INTEGER(KIND=C_INT), INTENT(IN) :: N, & ! 3*no. of atoms 30:         INTEGER(KIND=C_INT), INTENT(IN) :: N, & ! No. of atoms
 31:                                            ITMAX, & ! Max. no. of steps allowed in minmization 31:                                            ITMAX, & ! Max. no. of steps allowed in minmization
 32:                                            C_DEGFREEDOMS, & ! Rigid Body Framework (RBF): no. of degrees of freedom 32:                                            C_DEGFREEDOMS, & ! Rigid Body Framework (RBF): no. of degrees of freedom
 33:                                            C_NRIGIDBODY, & ! RBF: no. of rigid bodies 33:                                            C_NRIGIDBODY, & ! RBF: no. of rigid bodies
 34:                                            C_MAXSITE, & ! RBF: max. no. of sites in a rigid body 34:                                            C_MAXSITE, & ! RBF: max. no. of sites in a rigid body
 35:                                            MUPDATE, & ! History size 35:                                            MUPDATE, & ! History size
 36:                                            C_NFREEZE ! No. of frozen atoms 36:                                            C_NFREEZE ! No. of frozen atoms
 37:  37: 
 38:         INTEGER(KIND=C_INT), DIMENSION(C_NRIGIDBODY), INTENT(IN) :: C_NSITEPERBODY ! RBF: no. of rigid body sites 38:         INTEGER(KIND=C_INT), DIMENSION(C_NRIGIDBODY), INTENT(IN) :: C_NSITEPERBODY ! RBF: no. of rigid body sites
 39:  39: 
 40:         INTEGER(KIND=C_INT), DIMENSION(C_MAXSITE*C_NRIGIDBODY), INTENT(IN) :: C_RIGIDGROUPS ! RBF: list of atoms in rigid bodies 40:         INTEGER(KIND=C_INT), DIMENSION(C_MAXSITE*C_NRIGIDBODY), INTENT(IN) :: C_RIGIDGROUPS ! RBF: list of atoms in rigid bodies
 60:         REAL(KIND=C_DOUBLE), INTENT(OUT) :: C_ENERGY, & ! Energy 60:         REAL(KIND=C_DOUBLE), INTENT(OUT) :: C_ENERGY, & ! Energy
 61:                                             C_RMS, & ! RMS force 61:                                             C_RMS, & ! RMS force
 62:                                             POTENTIALTIME ! Time taken in calculating potential - not used in GMIN 62:                                             POTENTIALTIME ! Time taken in calculating potential - not used in GMIN
 63:  63: 
 64:         LOGICAL(KIND=C_BOOL), INTENT(IN) :: C_DEBUG, & ! If true, print debug info. 64:         LOGICAL(KIND=C_BOOL), INTENT(IN) :: C_DEBUG, & ! If true, print debug info.
 65:                                             C_CUDATIMET, & ! If true, print timing info.  65:                                             C_CUDATIMET, & ! If true, print timing info. 
 66:                                             C_ATOMRIGIDCOORDT, & ! If false, use rigid body coordinates 66:                                             C_ATOMRIGIDCOORDT, & ! If false, use rigid body coordinates
 67:                                             C_FREEZE, & ! If true, freeze some specified atoms 67:                                             C_FREEZE, & ! If true, freeze some specified atoms
 68:                                             PROJECT ! PROJECT is OPTIM only, always false 68:                                             PROJECT ! PROJECT is OPTIM only, always false
 69:  69: 
 70:         LOGICAL(KIND=C_BOOL), DIMENSION(N/3), INTENT(IN) :: C_FROZEN ! Logical array specifying frozen atoms 70:         LOGICAL(KIND=C_BOOL), DIMENSION(N), INTENT(IN) :: C_FROZEN ! Logical array specifying frozen atoms
 71:  71: 
 72:         LOGICAL(KIND=C_BOOL), INTENT(OUT) :: C_MFLAG, & ! True if quench converged 72:         LOGICAL(KIND=C_BOOL), INTENT(OUT) :: C_MFLAG, & ! True if quench converged
 73:                                              C_COLDFUSION ! Set to true during minimization if cold fusion diagnosed 73:                                              C_COLDFUSION ! Set to true during minimization if cold fusion diagnosed
 74:  74: 
 75:         CHARACTER(LEN=1, KIND=C_CHAR), INTENT(IN) :: C_CUDAPOT ! Character specifying the CUDA potential to be used 75:         CHARACTER(LEN=1, KIND=C_CHAR), INTENT(IN) :: C_CUDAPOT ! Character specifying the CUDA potential to be used
 76:  76: 
 77:     END SUBROUTINE CUDA_LBFGS 77:     END SUBROUTINE CUDA_LBFGS
 78: END INTERFACE 78: END INTERFACE
 79:  79: 
 80: INTERFACE 80: INTERFACE
102:         INTEGER(KIND=C_INT), DIMENSION(NRIGIDBODY) :: C_NSITEPERBODY102:         INTEGER(KIND=C_INT), DIMENSION(NRIGIDBODY) :: C_NSITEPERBODY
103:         INTEGER(KIND=C_INT), DIMENSION(MAXSITE*NRIGIDBODY) :: C_RIGIDGROUPS103:         INTEGER(KIND=C_INT), DIMENSION(MAXSITE*NRIGIDBODY) :: C_RIGIDGROUPS
104:         INTEGER(KIND=C_INT), DIMENSION(DEGFREEDOMS/3 - 2*NRIGIDBODY) :: C_RIGIDSINGLES104:         INTEGER(KIND=C_INT), DIMENSION(DEGFREEDOMS/3 - 2*NRIGIDBODY) :: C_RIGIDSINGLES
105: 105: 
106:         REAL(KIND=C_DOUBLE) :: EPS, C_MAXBFGS, C_MAXERISE, C_ENERGY, C_RMS, C_COLDFUSIONLIMIT, C_DGUESS, C_BQMAX, POTENTIALTIME106:         REAL(KIND=C_DOUBLE) :: EPS, C_MAXBFGS, C_MAXERISE, C_ENERGY, C_RMS, C_COLDFUSIONLIMIT, C_DGUESS, C_BQMAX, POTENTIALTIME
107:         REAL(KIND=C_DOUBLE), DIMENSION(MAXSITE*3*NRIGIDBODY) :: C_SITESRIGIDBODY107:         REAL(KIND=C_DOUBLE), DIMENSION(MAXSITE*3*NRIGIDBODY) :: C_SITESRIGIDBODY
108:         REAL(KIND=C_DOUBLE), DIMENSION(NRIGIDBODY*3*3) :: C_IINVERSE108:         REAL(KIND=C_DOUBLE), DIMENSION(NRIGIDBODY*3*3) :: C_IINVERSE
109:         REAL(KIND=C_DOUBLE), DIMENSION(N) :: C_XCOORDS109:         REAL(KIND=C_DOUBLE), DIMENSION(N) :: C_XCOORDS
110: 110: 
111:         LOGICAL(KIND=C_BOOL) :: C_MFLAG, C_DEBUG, C_CUDATIMET, C_ATOMRIGIDCOORDT, C_COLDFUSION, C_FREEZE, PROJECT111:         LOGICAL(KIND=C_BOOL) :: C_MFLAG, C_DEBUG, C_CUDATIMET, C_ATOMRIGIDCOORDT, C_COLDFUSION, C_FREEZE, PROJECT
112:         LOGICAL(KIND=C_BOOL), DIMENSION(N/3) :: C_FROZEN112:         LOGICAL(KIND=C_BOOL), DIMENSION(N) :: C_FROZEN
113: 113: 
114:         CHARACTER(LEN=1, KIND=C_CHAR) :: C_CUDAPOT114:         CHARACTER(LEN=1, KIND=C_CHAR) :: C_CUDAPOT
115: #endif115: #endif
116:         ! Same as above, but now dimension(1).116:         ! Same as above, but now dimension(1).
117: #ifdef DUMMY_CUDA117: #ifdef DUMMY_CUDA
118:         INTEGER(KIND=C_INT) :: N, MUPDATE, ITMAX, C_ITDONE, ECALLS, C_DEGFREEDOMS, C_NRIGIDBODY, C_MAXSITE, C_NFREEZE118:         INTEGER(KIND=C_INT) :: N, MUPDATE, ITMAX, C_ITDONE, ECALLS, C_DEGFREEDOMS, C_NRIGIDBODY, C_MAXSITE, C_NFREEZE
119:         INTEGER(KIND=C_INT), DIMENSION(1) :: C_NSITEPERBODY119:         INTEGER(KIND=C_INT), DIMENSION(1) :: C_NSITEPERBODY
120:         INTEGER(KIND=C_INT), DIMENSION(1) :: C_RIGIDGROUPS120:         INTEGER(KIND=C_INT), DIMENSION(1) :: C_RIGIDGROUPS
121:         INTEGER(KIND=C_INT), DIMENSION(1) :: C_RIGIDSINGLES121:         INTEGER(KIND=C_INT), DIMENSION(1) :: C_RIGIDSINGLES
122: 122: 
123:         REAL(KIND=C_DOUBLE) :: EPS, C_MAXBFGS, C_MAXERISE, C_ENERGY, C_RMS, C_COLDFUSIONLIMIT, C_DGUESS, C_BQMAX, POTENTIALTIME123:         REAL(KIND=C_DOUBLE) :: EPS, C_MAXBFGS, C_MAXERISE, C_ENERGY, C_RMS, C_COLDFUSIONLIMIT, C_DGUESS, C_BQMAX, POTENTIALTIME
124:         REAL(KIND=C_DOUBLE), DIMENSION(1) :: C_SITESRIGIDBODY124:         REAL(KIND=C_DOUBLE), DIMENSION(1) :: C_SITESRIGIDBODY
125:         REAL(KIND=C_DOUBLE), DIMENSION(1) :: C_IINVERSE125:         REAL(KIND=C_DOUBLE), DIMENSION(1) :: C_IINVERSE
126:         REAL(KIND=C_DOUBLE), DIMENSION(1) :: C_XCOORDS126:         REAL(KIND=C_DOUBLE), DIMENSION(1) :: C_XCOORDS
127: 127: 
128:         LOGICAL(KIND=C_BOOL) :: C_MFLAG, C_DEBUG, C_CUDATIMET, C_ATOMRIGIDCOORDT, C_COLDFUSION, C_FREEZE, PROJECT128:         LOGICAL(KIND=C_BOOL) :: C_MFLAG, C_DEBUG, C_CUDATIMET, C_ATOMRIGIDCOORDT, C_COLDFUSION, C_FREEZE, PROJECT
129:         LOGICAL(KIND=C_BOOL), DIMENSION(N/3) :: C_FROZEN129:         LOGICAL(KIND=C_BOOL), DIMENSION(N) :: C_FROZEN
130: 130: 
131:         CHARACTER(LEN=1, KIND=C_CHAR) :: C_CUDAPOT131:         CHARACTER(LEN=1, KIND=C_CHAR) :: C_CUDAPOT
132: #endif132: #endif
133: 133: 
134:         ! Variables passed as *arguments through this wrapper* (not common) with intent out for CUDA_LBFGS are not passed into it134:         ! Variables passed as *arguments through this wrapper* (not common) with intent out for CUDA_LBFGS are not passed into it
135:         ! Therefore uninitialised C types are passed in and converted types are copied back after the call135:         ! Therefore uninitialised C types are passed in and converted types are copied back after the call
136: 136: 
137:         INTEGER :: I, J, K, ITDONE137:         INTEGER :: I, J, K, ITDONE
138:         DOUBLE PRECISION :: ENERGY, POTEL138:         DOUBLE PRECISION :: ENERGY, POTEL
139:         DOUBLE PRECISION, DIMENSION(N) :: XCOORDS139:         DOUBLE PRECISION, DIMENSION(N) :: XCOORDS
186:                 DO I = 1,NRIGIDBODY186:                 DO I = 1,NRIGIDBODY
187:                    C_IINVERSE((K - 1)*3*NRIGIDBODY + (J - 1)*NRIGIDBODY + I) = IINVERSE(I,J,K)187:                    C_IINVERSE((K - 1)*3*NRIGIDBODY + (J - 1)*NRIGIDBODY + I) = IINVERSE(I,J,K)
188:                 END DO188:                 END DO
189:             END DO189:             END DO
190:         END DO190:         END DO
191: 191: 
192:         DO I = 1,N192:         DO I = 1,N
193:             C_XCOORDS(I) = XCOORDS(I)193:             C_XCOORDS(I) = XCOORDS(I)
194:         END DO194:         END DO
195: 195: 
196:         DO I = 1,(N/3)196:         DO I = 1,N
197:             C_FROZEN(I) = FROZEN(I)197:             C_FROZEN(I) = FROZEN(I)
198:         END DO198:         END DO
199: 199: 
200:         C_CUDAPOT = CUDAPOT200:         C_CUDAPOT = CUDAPOT
201:         C_DEBUG = DEBUG201:         C_DEBUG = DEBUG
202:         C_CUDATIMET = CUDATIMET202:         C_CUDATIMET = CUDATIMET
203:         C_MAXBFGS = MAXBFGS203:         C_MAXBFGS = MAXBFGS
204:         C_MAXERISE = MAXERISE204:         C_MAXERISE = MAXERISE
205:         C_ATOMRIGIDCOORDT = ATOMRIGIDCOORDT205:         C_ATOMRIGIDCOORDT = ATOMRIGIDCOORDT
206:         C_DEGFREEDOMS = DEGFREEDOMS206:         C_DEGFREEDOMS = DEGFREEDOMS


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0