hdiff output

r31902/keywords.f 2017-02-10 17:30:14.683394750 +0000 r31901/keywords.f 2017-02-10 17:30:14.967398536 +0000
 44:       USE SWMOD, ONLY: SWINIT, MWINIT 44:       USE SWMOD, ONLY: SWINIT, MWINIT
 45:       USE AMBER12_INTERFACE_MOD, ONLY : AMBER12_SETUP, AMBER12_GET_COORDS, AMBER12_ATOMS, 45:       USE AMBER12_INTERFACE_MOD, ONLY : AMBER12_SETUP, AMBER12_GET_COORDS, AMBER12_ATOMS,
 46:      &                                  AMBER12_RESIDUES, POPULATE_ATOM_DATA 46:      &                                  AMBER12_RESIDUES, POPULATE_ATOM_DATA
 47:       USE CHIRALITY, ONLY : CIS_TRANS_TOL 47:       USE CHIRALITY, ONLY : CIS_TRANS_TOL
 48:       USE ISO_C_BINDING, ONLY: C_NULL_CHAR 48:       USE ISO_C_BINDING, ONLY: C_NULL_CHAR
 49:       USE PARSE_POT_PARAMS, ONLY : PARSE_MGUPTA_PARAMS, PARSE_MSC_PARAMS,  49:       USE PARSE_POT_PARAMS, ONLY : PARSE_MGUPTA_PARAMS, PARSE_MSC_PARAMS, 
 50:      &     PARSE_MLJ_PARAMS 50:      &     PARSE_MLJ_PARAMS
 51:       USE ROTAMER, ONLY: ROTAMER_MOVET, ROTAMER_SCRIPT, ROTAMER_INIT 51:       USE ROTAMER, ONLY: ROTAMER_MOVET, ROTAMER_SCRIPT, ROTAMER_INIT
 52:       USE HINGE_MOVES, ONLY: HINGE_INITIALISE 52:       USE HINGE_MOVES, ONLY: HINGE_INITIALISE
 53:       USE MOLECULAR_DYNAMICS, ONLY : MDT, MD_TSTEP, MD_GAMMA, MD_NWAIT, MD_NFREQ, MD_NSTEPS 53:       USE MOLECULAR_DYNAMICS, ONLY : MDT, MD_TSTEP, MD_GAMMA, MD_NWAIT, MD_NFREQ, MD_NSTEPS
 54:       USE OPEP_INTERFACE_MOD, ONLY : OPEP_INIT 
 55:        54:       
 56:       IMPLICIT NONE 55:       IMPLICIT NONE
 57:  56: 
 58:       DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:), MLQMEAN(:) 57:       DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:), MLQMEAN(:)
 59:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, LAST, IX, J1, JP, NPCOUNT, NDUMMY, INDEX, J2, J3, J4 58:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, LAST, IX, J1, JP, NPCOUNT, NDUMMY, INDEX, J2, J3, J4
 60:       INTEGER DATA_UNIT 59:       INTEGER DATA_UNIT
 61:       INTEGER MOVABLEATOMINDEX 60:       INTEGER MOVABLEATOMINDEX
 62:       LOGICAL CAT, YESNO, PERMFILE, CONFILE 61:       LOGICAL CAT, YESNO, PERMFILE, CONFILE
 63:       COMMON /BUFINF/ ITEM, NITEMS, LOC(80), LINE, SKIPBL, CLEAR, NCR, 62:       COMMON /BUFINF/ ITEM, NITEMS, LOC(80), LINE, SKIPBL, CLEAR, NCR,
 64:      &                NERROR, ECHO, LAST, CAT 63:      &                NERROR, ECHO, LAST, CAT
111:       INTEGER VECLINE, VECNUM, RESCOUNT110:       INTEGER VECLINE, VECNUM, RESCOUNT
112: 111: 
113: ! hk286 - DAMPED GROUP MOVES112: ! hk286 - DAMPED GROUP MOVES
114:       DOUBLE PRECISION GROUPATT113:       DOUBLE PRECISION GROUPATT
115: 114: 
116:       CHARACTER(LEN=120), DIMENSION(:,:), ALLOCATABLE :: KEY_WORDS115:       CHARACTER(LEN=120), DIMENSION(:,:), ALLOCATABLE :: KEY_WORDS
117:       DOUBLE PRECISION DUMMY1(NATOMS)116:       DOUBLE PRECISION DUMMY1(NATOMS)
118: 117: 
119:       INTEGER :: MAXNSETS118:       INTEGER :: MAXNSETS
120: 119: 
121:       CHARACTER(LEN=10) :: OPEP_DUMMY 
122:  
123: !      OPEN(5120, FILE = 'data')120: !      OPEN(5120, FILE = 'data')
124: !      CALL NEW_INPUT(5120, KEY_WORDS)121: !      CALL NEW_INPUT(5120, KEY_WORDS)
125: !      CLOSE(5120)122: !      CLOSE(5120)
126: !      PRINT *, KEY_WORDS123: !      PRINT *, KEY_WORDS
127: 124: 
128:       AAA=0125:       AAA=0
129:       AAB=0126:       AAB=0
130:       ABB=0127:       ABB=0
131:       PAA=0128:       PAA=0
132:       PAB=0129:       PAB=0
1148: !     SIGMAHEX=(1.0D0+RADHEX*SQRT((5.0D0+SQRT(5.0D0))/2.0D0))1145: !     SIGMAHEX=(1.0D0+RADHEX*SQRT((5.0D0+SQRT(5.0D0))/2.0D0))
1149: !     SIGMAPH=0.5D0*(SIGMA + SIGMAHEX)1146: !     SIGMAPH=0.5D0*(SIGMA + SIGMAHEX)
1150: !     CAPSIDEPS=0.4D01147: !     CAPSIDEPS=0.4D0
1151: 1148: 
1152: !1149: !
1153: ! Neural network potential1150: ! Neural network potential
1154: !1151: !
1155:       MLP3T=.FALSE.1152:       MLP3T=.FALSE.
1156:       MLPB3T=.FALSE.1153:       MLPB3T=.FALSE.
1157:       MLPB3NEWT=.FALSE.1154:       MLPB3NEWT=.FALSE.
1158:       MLPVB3T=.FALSE. 
1159:       NOREGBIAS=.FALSE. 
1160:       MLPNEWREG=.FALSE.1155:       MLPNEWREG=.FALSE.
1161:       MLPDONE=.FALSE.1156:       MLPDONE=.FALSE.
1162:       MLPNORM=.FALSE.1157:       MLPNORM=.FALSE.
1163:       MLPLAMBDA=0.0D01158:       MLPLAMBDA=0.0D0
1164: !1159: !
1165: ! ML quadratic function1160: ! ML quadratic function
1166: !1161: !
1167:       MLQT=.FALSE.1162:       MLQT=.FALSE.
1168:       MLQPROB=.FALSE.1163:       MLQPROB=.FALSE.
1169:       MLQDONE=.FALSE.1164:       MLQDONE=.FALSE.
1170:       MLQNORM=.FALSE.1165:       MLQNORM=.FALSE.
1171:       MLQLAMBDA=0.0D01166:       MLQLAMBDA=0.0D0
1172:       MLQSTART=11167:       MLQSTART=1
1173: 1168: 
1174:       LJADDT=.FALSE.1169:       LJADDT=.FALSE.
1175:       LJADD2T=.FALSE.1170:       LJADD2T=.FALSE.
1176:       PYADDT=.FALSE.1171:       PYADDT=.FALSE.
1177: 1172: 
1178:       DUMPMQT=.FALSE.1173:       DUMPMQT=.FALSE.
1179: 1174:       
1180:  
1181: ! OPEP stuff 
1182:       OPEPT = .FALSE. 
1183:       OPEP_RNAT = .FALSE. 
1184:               
1185:       CALL FILE_OPEN('data', DATA_UNIT, .FALSE.)1175:       CALL FILE_OPEN('data', DATA_UNIT, .FALSE.)
1186:       1176:       
1187: !      OPEN (5,FILE='data',STATUS='OLD')1177: !      OPEN (5,FILE='data',STATUS='OLD')
1188: 1178: 
1189: !190   CALL INPUT(END,5)1179: !190   CALL INPUT(END,5)
1190: 190   CALL INPUT(END, DATA_UNIT)1180: 190   CALL INPUT(END, DATA_UNIT)
1191:       IF (.NOT. END) THEN1181:       IF (.NOT. END) THEN
1192:         CALL READU(WORD)1182:         CALL READU(WORD)
1193:       ENDIF1183:       ENDIF
1194:       IF (END .OR. WORD .EQ. 'STOP') THEN1184:       IF (END .OR. WORD .EQ. 'STOP') THEN
2151:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'2141:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
2152:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)2142:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)
2153:             DO J1=1,MLPIN2143:             DO J1=1,MLPIN
2154:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)2144:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
2155:             ENDDO2145:             ENDDO
2156:          ENDIF2146:          ENDIF
2157:          DEALLOCATE(MLPMEAN)2147:          DEALLOCATE(MLPMEAN)
2158:          MLPDONE=.TRUE.2148:          MLPDONE=.TRUE.
2159:       ELSE IF (WORD.EQ.'MLPB3NEW') THEN2149:       ELSE IF (WORD.EQ.'MLPB3NEW') THEN
2160:          MLP3T=.TRUE.2150:          MLP3T=.TRUE.
2161:          MLPB3T=.TRUE. 
2162:          MLPB3NEWT=.TRUE.2151:          MLPB3NEWT=.TRUE.
2163:          CALL READI(MLPIN)      ! number of inputs (data items after outcome)2152:          CALL READI(MLPIN)      ! number of inputs (data items after outcome)
2164:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome2153:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome
2165:          CALL READI(MLPHIDDEN)2154:          CALL READI(MLPHIDDEN)
2166:          CALL READI(MLPOUT)2155:          CALL READI(MLPOUT)
2167:          CALL READI(MLPDATA)2156:          CALL READI(MLPDATA)
2168:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)2157:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)
2169:          WRITE(MYUNIT,'(A,5I8,G20.10)') 'MLP3 new potential bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',2158:          WRITE(MYUNIT,'(A,5I8,G20.10)') 'MLP3 new potential bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',
2170:      &                                MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA  2159:      &                                MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA  
2171:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+12160:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+1
2189:          IF (MLPNORM) THEN2178:          IF (MLPNORM) THEN
2190:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA 2179:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA 
2191:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'2180:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
2192:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)2181:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)
2193:             DO J1=1,MLPIN2182:             DO J1=1,MLPIN
2194:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)2183:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
2195:             ENDDO2184:             ENDDO
2196:          ENDIF2185:          ENDIF
2197:          DEALLOCATE(MLPMEAN)2186:          DEALLOCATE(MLPMEAN)
2198:          MLPDONE=.TRUE.2187:          MLPDONE=.TRUE.
2199:       ELSE IF (WORD.EQ.'NOREGBIAS') THEN 
2200:         NOREGBIAS=.TRUE. 
2201:       ELSE IF (WORD.EQ.'MLPVB3') THEN 
2202:          MLPVB3T=.TRUE. 
2203:          CALL READI(MLPIN)      ! number of inputs (data items after outcome) 
2204:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome 
2205:          CALL READI(MLPHIDDEN) 
2206:          CALL READI(MLPOUT) 
2207:          CALL READI(MLPDATA) 
2208:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA) 
2209:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=', 
2210:      &                    MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA 
2211:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT 
2212:          IF (NMLP.NE.NATOMS) THEN 
2213:             WRITE(MYUNIT,'(A,2I8)') 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP 
2214:             STOP 
2215:          ENDIF 
2216:          LUNIT=GETUNIT() 
2217:          OPEN(LUNIT,FILE='MLPdata',STATUS='OLD') 
2218:          ALLOCATE(MLPDAT(MLPDATA,MLPIN),MLPOUTCOME(MLPDATA),MLPMEAN(MLPIN)) 
2219:          MLPMEAN(1:MLPIN)=0.0D0 
2220:          DO J1=1,MLPDATA 
2221:             READ(LUNIT,*) MLPOUTCOME(J1),(DUMMY,J2=1,MLPSTART-1),MLPDAT(J1,1:MLPIN) 
2222:             MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range from 0 to from 1 
2223:             DO J2=1,MLPIN 
2224:                MLPMEAN(J2)=MLPMEAN(J2)+ABS(MLPDAT(J1,J2)) 
2225:             ENDDO 
2226:          ENDDO 
2227:          CLOSE(LUNIT) 
2228:          IF (MLPNORM) THEN 
2229:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA 
2230:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:' 
2231:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN) 
2232:             DO J1=1,MLPIN 
2233:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1) 
2234:             ENDDO 
2235:         ENDIF 
2236:         DEALLOCATE(MLPMEAN) 
2237:         MLPDONE=.TRUE. 
2238:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN2188:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN
2239:          MLPNEWREG=.TRUE.2189:          MLPNEWREG=.TRUE.
2240:          WRITE(MYUNIT,'(A)') 'keyword> Including reciprocals in regularisation'2190:          WRITE(MYUNIT,'(A)') 'keyword> Including reciprocals in regularisation'
2241: !2191: !
2242: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the2192: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
2243: ! average of the mean magnitude2193: ! average of the mean magnitude
2244: ! Arranged so that MLPNORM can come before of after MLPB3/MLP32194: ! Arranged so that MLPNORM can come before of after MLPB3/MLP3
2245: !2195: !
2246:       ELSE IF (WORD.EQ.'MLPNORM') THEN2196:       ELSE IF (WORD.EQ.'MLPNORM') THEN
2247:          MLPNORM=.TRUE.2197:          MLPNORM=.TRUE.
2271:          CALL READI(MLQIN)      ! number of inputs (data items after outcome)2221:          CALL READI(MLQIN)      ! number of inputs (data items after outcome)
2272:          CALL READI(MLQSTART) ! starting position in data list, not counting outcome2222:          CALL READI(MLQSTART) ! starting position in data list, not counting outcome
2273:          CALL READI(MLQOUT)2223:          CALL READI(MLQOUT)
2274:          CALL READI(MLQDATA)2224:          CALL READI(MLQDATA)
2275:          IF (NITEMS.GT.4) CALL READF(MLQLAMBDA)2225:          IF (NITEMS.GT.4) CALL READF(MLQLAMBDA)
2276:          WRITE(MYUNIT,'(A,4I8,G20.10)') ' keywords> MLQ Nin, Ninstart, Nout, Ndata, lambda=',2226:          WRITE(MYUNIT,'(A,4I8,G20.10)') ' keywords> MLQ Nin, Ninstart, Nout, Ndata, lambda=',
2277:      &                                MLQIN,MLQSTART,MLQOUT,MLQDATA,MLQLAMBDA2227:      &                                MLQIN,MLQSTART,MLQOUT,MLQDATA,MLQLAMBDA
2278:          NMLQ=MLQOUT*(1+(MLQIN*(MLQIN+3))/2)2228:          NMLQ=MLQOUT*(1+(MLQIN*(MLQIN+3))/2)
2279:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLQ variables=',NMLQ2229:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLQ variables=',NMLQ
2280:          IF (NMLQ.NE.NATOMS) THEN2230:          IF (NMLQ.NE.NATOMS) THEN
2281:             WRITE(MYUNIT,'(A,2I8)') 'keywords> ERROR *** NATOMS,NMLQ=',NATOMS,NMLQ2231:             PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLQ=',NATOMS,NMLQ
2282:             STOP2232:             STOP
2283:          ENDIF2233:          ENDIF
2284: 2234: 
2285:          LUNIT=GETUNIT()2235:          LUNIT=GETUNIT()
2286:          OPEN(LUNIT,FILE='MLQdata',STATUS='OLD')2236:          OPEN(LUNIT,FILE='MLQdata',STATUS='OLD')
2287:          ALLOCATE(MLQDAT(MLQDATA,MLQIN),MLQOUTCOME(MLQDATA),MLQMEAN(MLQIN))2237:          ALLOCATE(MLQDAT(MLQDATA,MLQIN),MLQOUTCOME(MLQDATA),MLQMEAN(MLQIN))
2288:          MLQMEAN(1:MLQIN)=0.0D02238:          MLQMEAN(1:MLQIN)=0.0D0
2289:          DO J1=1,MLQDATA2239:          DO J1=1,MLQDATA
2290:             READ(LUNIT,*) MLQOUTCOME(J1),(DUMMY,J2=1,MLQSTART-1),MLQDAT(J1,1:MLQIN)2240:             READ(LUNIT,*) MLQOUTCOME(J1),(DUMMY,J2=1,MLQSTART-1),MLQDAT(J1,1:MLQIN)
2291:             MLQOUTCOME(J1)=MLQOUTCOME(J1)+1 ! to shift the range from 0 to from 12241:             MLQOUTCOME(J1)=MLQOUTCOME(J1)+1 ! to shift the range from 0 to from 1
4925: !  Specify 1D XY PBC potential4875: !  Specify 1D XY PBC potential
4926: !4876: !
4927:       ELSE IF (WORD.EQ.'ONEDPBC') THEN4877:       ELSE IF (WORD.EQ.'ONEDPBC') THEN
4928:          ONEDPBCT=.TRUE.4878:          ONEDPBCT=.TRUE.
4929:          IF (NITEMS.GT.1) CALL READI(NONEDAPBC)4879:          IF (NITEMS.GT.1) CALL READI(NONEDAPBC)
4930:          IF (MOD(NONEDAPBC,3).NE.0) THEN4880:          IF (MOD(NONEDAPBC,3).NE.0) THEN
4931:             WRITE(MYUNIT,'(A)') 'keywords> ERROR *** lattice dimension must be a multiple of three'4881:             WRITE(MYUNIT,'(A)') 'keywords> ERROR *** lattice dimension must be a multiple of three'
4932:             STOP4882:             STOP
4933:          ENDIF4883:          ENDIF
4934: 4884: 
4935:       ELSE IF (WORD.EQ.'OPEP') THEN 
4936:          OPEPT=.TRUE. 
4937:          CALL READA(OPEP_DUMMY) 
4938:          IF (OPEP_DUMMY.EQ.'RNA') THEN 
4939:             OPEP_RNAT = .TRUE. 
4940:             WRITE(MYUNIT,'(A)') 'keyword> RNA simulation using OPEP' 
4941:          ELSE 
4942:             WRITE(MYUNIT,'(A)') 'keyword> Protein simulation using OPEP' 
4943:          ENDIF 
4944:          IF(.NOT.ALLOCATED(COORDS1)) ALLOCATE(COORDS1(3*NATOMS)) 
4945:          IF(ALLOCATED(COORDS)) DEALLOCATE(COORDS) 
4946:          CALL OPEP_INIT(NATOMS, COORDS1(:),OPEP_RNAT) 
4947:          ALLOCATE(COORDS(3*NATOMS,NPAR)) 
4948:          DO J1=1,NPAR 
4949:             COORDS(:,J1) = COORDS1(:) 
4950:          END DO 
4951:  
4952: ! hk2864885: ! hk286
4953:       ELSE IF (WORD.EQ.'OPTIMISEROTATION') THEN4886:       ELSE IF (WORD.EQ.'OPTIMISEROTATION') THEN
4954:          RIGIDOPTIMROTAT = .TRUE.4887:          RIGIDOPTIMROTAT = .TRUE.
4955:          CALL READF(OPTIMROTAVALUES(1))4888:          CALL READF(OPTIMROTAVALUES(1))
4956:          CALL READF(OPTIMROTAVALUES(2))4889:          CALL READF(OPTIMROTAVALUES(2))
4957:          CALL READF(OPTIMROTAVALUES(3))4890:          CALL READF(OPTIMROTAVALUES(3))
4958: 4891: 
4959: !4892: !
4960: ! NOT DOCUMENTED4893: ! NOT DOCUMENTED
4961: !4894: !


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0