hdiff output

r32373/io1.f 2017-04-25 17:30:12.389146953 +0100 r32372/io1.f 2017-04-25 17:30:13.277158366 +0100
753:          WRITE(MYUNIT, '(A,I6,A)') 'Searching for approximate symmetry elements every ',NSYMINTERVAL,' steps'753:          WRITE(MYUNIT, '(A,I6,A)') 'Searching for approximate symmetry elements every ',NSYMINTERVAL,' steps'
754:          WRITE(MYUNIT, '(A,5F15.5)') 'Distance tolerances: ',SYMTOL1,SYMTOL2,SYMTOL3,SYMTOL4,SYMTOL5754:          WRITE(MYUNIT, '(A,5F15.5)') 'Distance tolerances: ',SYMTOL1,SYMTOL2,SYMTOL3,SYMTOL4,SYMTOL5
755:          WRITE(MYUNIT, '(A,F15.5)') 'Threshold for distinguishing transformation matrices: ',MATDIFF755:          WRITE(MYUNIT, '(A,F15.5)') 'Threshold for distinguishing transformation matrices: ',MATDIFF
756:          WRITE(MYUNIT,'(A,F15.5)') 'Exponential factor in core-weighted centre of mass calculation: ',DISTFAC756:          WRITE(MYUNIT,'(A,F15.5)') 'Exponential factor in core-weighted centre of mass calculation: ',DISTFAC
757:          WRITE(MYUNIT, '(A,I5)') 'Maximum number of quenches for floater/hole permutations=',NSYMQMAX757:          WRITE(MYUNIT, '(A,I5)') 'Maximum number of quenches for floater/hole permutations=',NSYMQMAX
758:          IF (MOVESHELLT) WRITE(MYUNIT,'(A,I8,A,F12.5)') 'Shell moves allowed in blocks of ',SHELLMOVEMAX,' with probability ',758:          IF (MOVESHELLT) WRITE(MYUNIT,'(A,I8,A,F12.5)') 'Shell moves allowed in blocks of ',SHELLMOVEMAX,' with probability ',
759:      &                        SHELLPROB759:      &                        SHELLPROB
760:       ENDIF760:       ENDIF
761:       IF (DEBUG.OR.CHECKMARKOVT) WRITE(MYUNIT,'(A,I6,A)') 'io1> checking the energy of the saved coordinates in the chain'761:       IF (DEBUG.OR.CHECKMARKOVT) WRITE(MYUNIT,'(A,I6,A)') 'io1> checking the energy of the saved coordinates in the chain'
762:       IF (FREEZE) THEN762:       IF (FREEZE) THEN
763:          IF (MLQT.OR.MLPVB3T.OR.MLP3T) THEN763:          WRITE(MYUNIT,'(A,I6,A)') 'io1> ', NFREEZE,' atoms will be frozen:'
764:             WRITE(MYUNIT,'(A,I6,A)') 'io1> ', NFREEZE,' variables will be frozen:' 
765:          ELSE 
766:             WRITE(MYUNIT,'(A,I6,A)') 'io1> ', NFREEZE,' atoms will be frozen:' 
767:          ENDIF 
768:          DO J1=1,NATOMS764:          DO J1=1,NATOMS
769:             IF (FROZEN(J1)) WRITE(MYUNIT,'(I6)') J1765:             IF (FROZEN(J1)) WRITE(MYUNIT,'(I6)') J1
770:          ENDDO766:          ENDDO
771:       ENDIF767:       ENDIF
772:       IF (HARMONICF) THEN768:       IF (HARMONICF) THEN
773:          WRITE(MYUNIT,'(A,F12.4)') 'io1> harmonically constrained atoms: strength = ', HARMONICSTR769:          WRITE(MYUNIT,'(A,F12.4)') 'io1> harmonically constrained atoms: strength = ', HARMONICSTR
774:          DO J1=1,NATOMS770:          DO J1=1,NATOMS
775:             IF (HARMONICFLIST(J1)) WRITE(MYUNIT,'(I6)') J1771:             IF (HARMONICFLIST(J1)) WRITE(MYUNIT,'(I6)') J1
776:          ENDDO772:          ENDDO
777:       ENDIF773:       ENDIF


r32373/keywords.f 2017-04-25 17:30:12.613149830 +0100 r32372/keywords.f 2017-04-25 17:30:13.497161193 +0100
2219:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA2219:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA
2220:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'2220:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
2221:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)2221:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)
2222:             DO J1=1,MLPIN2222:             DO J1=1,MLPIN
2223:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)2223:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
2224:             ENDDO2224:             ENDDO
2225:          ENDIF2225:          ENDIF
2226:          DEALLOCATE(MLPMEAN)2226:          DEALLOCATE(MLPMEAN)
2227:          MLPDONE=.TRUE.2227:          MLPDONE=.TRUE.
2228:       ELSE IF (WORD.EQ.'NOREGBIAS') THEN2228:       ELSE IF (WORD.EQ.'NOREGBIAS') THEN
2229:          NOREGBIAS=.TRUE.2229:         NOREGBIAS=.TRUE.
2230:       ELSE IF ((WORD.EQ.'MLPVB3').OR.(WORD.EQ.'MLPVB3NN')) THEN2230:       ELSE IF (WORD.EQ.'MLPVB3') THEN
2231:          MLPVB3T=.TRUE.2231:          MLPVB3T=.TRUE.
2232:          CALL READI(MLPIN)      ! number of inputs (data items after outcome)2232:          CALL READI(MLPIN)      ! number of inputs (data items after outcome)
2233:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome2233:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome
2234:          CALL READI(MLPHIDDEN)2234:          CALL READI(MLPHIDDEN)
2235:          CALL READI(MLPOUT)2235:          CALL READI(MLPOUT)
2236:          CALL READI(MLPDATA)2236:          CALL READI(MLPDATA)
2237:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)2237:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)
2238:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',2238:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',
2239:      &                    MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA2239:      &                    MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA
2240:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT2240:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT
2254:             ENDDO2254:             ENDDO
2255:          ENDDO2255:          ENDDO
2256:          CLOSE(LUNIT)2256:          CLOSE(LUNIT)
2257:          IF (MLPNORM) THEN2257:          IF (MLPNORM) THEN
2258:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA2258:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA
2259:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'2259:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
2260:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)2260:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)
2261:             DO J1=1,MLPIN2261:             DO J1=1,MLPIN
2262:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)2262:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
2263:             ENDDO2263:             ENDDO
2264:          ENDIF2264:         ENDIF
2265:          DEALLOCATE(MLPMEAN)2265:         DEALLOCATE(MLPMEAN)
2266:          MLPDONE=.TRUE.2266:         MLPDONE=.TRUE.
2267: ! 
2268: ! Nearest-neighbour model - freeze hidden node to i/o node weights except for "nearest-neighbours". 
2269: ! 
2270: ! Variables are ordered 
2271: ! w^2_{jk} at (j-1)*MLPIN+k 
2272: !   up to MLPHIDDEN*MLPIN, then 
2273: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j 
2274: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN 
2275: ! w^bh_j at MLPHIDDEN*(MLPIN+MLPOUT)+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN 
2276: ! w^bo_i at MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT 
2277: ! 
2278:          IF (WORD.EQ.'MLPVB3NN') THEN 
2279:             FREEZE=.TRUE. 
2280:             NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT)-2*MLPHIDDEN 
2281:             FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE. 
2282:             DO J1=1,MLPHIDDEN 
2283:                J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPIN-1)-MLPIN)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to input 
2284:                J3=(J1-1)*MLPIN+J2 
2285:                FROZEN(J3)=.FALSE. 
2286:                WRITE(MYUNIT, '(A,I10,A,I10,A,I10)') 'keywords> Unfrozen weight ',J3,' input ',J2,' to hidden node ',J1 
2287:                J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPOUT-1)-MLPOUT)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to output 
2288:                J3=MLPHIDDEN*MLPIN+(J2-1)*MLPHIDDEN+J1 
2289:                WRITE(MYUNIT, '(A,I10,A,I10,A,I10)') 'keywords> Unfrozen weight ',J3,' hidden node ',J1,' to output ',J2 
2290:                FROZEN(J3)=.FALSE. 
2291:             ENDDO 
2292:          ENDIF 
2293:  
2294:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN2267:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN
2295:          MLPNEWREG=.TRUE.2268:          MLPNEWREG=.TRUE.
2296:          WRITE(MYUNIT,'(A)') 'keyword> Including reciprocals in regularisation'2269:          WRITE(MYUNIT,'(A)') 'keyword> Including reciprocals in regularisation'
2297: !2270: !
2298: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the2271: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
2299: ! average of the mean magnitude2272: ! average of the mean magnitude
2300: ! Arranged so that MLPNORM can come before of after MLPB3/MLP32273: ! Arranged so that MLPNORM can come before of after MLPB3/MLP3
2301: !2274: !
2302:       ELSE IF (WORD.EQ.'MLPNORM') THEN2275:       ELSE IF (WORD.EQ.'MLPNORM') THEN
2303:          MLPNORM=.TRUE.2276:          MLPNORM=.TRUE.


r32373/potential.f90 2017-04-25 17:30:12.837152711 +0100 r32372/potential.f90 2017-04-25 17:30:13.717164021 +0100
1390:             CALL HARMONICFIELD( X(3*J1-2), HARMONICR0(3*J1-2), GRAD(3*J1-2), EREAL)1390:             CALL HARMONICFIELD( X(3*J1-2), HARMONICR0(3*J1-2), GRAD(3*J1-2), EREAL)
1391: !            WRITE(*,*) "#V(1) after ", GRAD((J1-1)*3+1)1391: !            WRITE(*,*) "#V(1) after ", GRAD((J1-1)*3+1)
1392:          END IF1392:          END IF
1393:       END DO1393:       END DO
1394:    END IF1394:    END IF
1395: 1395: 
1396:    IF (GRADT .OR. CSMT) THEN1396:    IF (GRADT .OR. CSMT) THEN
1397:       IF (FREEZE) THEN1397:       IF (FREEZE) THEN
1398:          DO J1=1, NATOMS1398:          DO J1=1, NATOMS
1399:             IF (FROZEN(J1)) THEN1399:             IF (FROZEN(J1)) THEN
1400:                IF (MLPB3T.OR.MLQT.OR.MLPVB3T) THEN1400:                GRAD(3*J1-2 : 3*J1)=0.0D0
1401:                   GRAD(J1)=0.0D0 
1402:                ELSE 
1403:                   GRAD(3*J1-2 : 3*J1)=0.0D0 
1404:                ENDIF 
1405:             END IF1401:             END IF
1406:          END DO1402:          END DO
1407:       END IF1403:       END IF
1408: 1404: 
1409:       IF (SEEDT .AND. FREEZECORE) THEN1405:       IF (SEEDT .AND. FREEZECORE) THEN
1410:          GRAD(3*(NATOMS-NSEED)+1 : 3*NATOMS)=0.0D01406:          GRAD(3*(NATOMS-NSEED)+1 : 3*NATOMS)=0.0D0
1411:       END IF1407:       END IF
1412: 1408: 
1413: !  Preserve centre of mass if required.1409: !  Preserve centre of mass if required.
1414: !      IF (CENT.AND.(.NOT.SEEDT)) THEN1410: !      IF (CENT.AND.(.NOT.SEEDT)) THEN


r32373/takestep.f 2017-04-25 17:30:13.053155487 +0100 r32372/takestep.f 2017-04-25 17:30:13.937166850 +0100
 53: !        CLOSE(177) 53: !        CLOSE(177)
 54:  54: 
 55:       IF ((PERMOPT.OR.PERMINVOPT.OR.DISTOPT).AND.PERIODIC) RETURN  55:       IF ((PERMOPT.OR.PERMINVOPT.OR.DISTOPT).AND.PERIODIC) RETURN 
 56:       IF ((PERMOPT.OR.PERMINVOPT).AND.MKTRAPT) RETURN  56:       IF ((PERMOPT.OR.PERMINVOPT).AND.MKTRAPT) RETURN 
 57:        57:       
 58:       IF (MODEL1T) THEN 58:       IF (MODEL1T) THEN
 59:          RANDOM=(DPRAND()-0.5D0)*2.0D0 59:          RANDOM=(DPRAND()-0.5D0)*2.0D0
 60:          COORDS(1,NP)=COORDSO(1,NP)+STEP(NP)*RANDOM 60:          COORDS(1,NP)=COORDSO(1,NP)+STEP(NP)*RANDOM
 61:          RETURN 61:          RETURN
 62:       ENDIF 62:       ENDIF
 63:       IF (MLQT.OR.MLPVB3T.OR.MLP3T) THEN 
 64:          DO J1=1,NATOMS 
 65:             IF (FROZEN(J1)) CYCLE 
 66:             RANDOM=(DPRAND()-0.5D0)*2.0D0 
 67:             COORDS(J1,NP)=COORDS(J1,NP)+STEP(NP)*RANDOM 
 68:          ENDDO 
 69: !        WRITE(MYUNIT,'(A,F20.10)') 'coords(5)=',COORDS(5,1) 
 70:          RETURN 
 71:       ENDIF 
 72: ! 63: !
 73: !  Calling CENTRE if NORESET is .TRUE. can lead to problems with COORDSO containing an atom 64: !  Calling CENTRE if NORESET is .TRUE. can lead to problems with COORDSO containing an atom
 74: !  outside the permitted radius. Then it may be impossible to take a step that keeps all the 65: !  outside the permitted radius. Then it may be impossible to take a step that keeps all the
 75: !  atoms inside. 66: !  atoms inside.
 76: ! 67: !
 77:       PISQ = PI*PI 68:       PISQ = PI*PI
 78:       NTRIESMAX=100 69:       NTRIESMAX=100
 79:  70: 
 80: !     IF (CENT.AND.(.NOT.SEEDT)) CALL CENTRE2(COORDS(1:3*NATOMS,NP)) ! COORDS might have been shifted by symmetry 71: !     IF (CENT.AND.(.NOT.SEEDT)) CALL CENTRE2(COORDS(1:3*NATOMS,NP)) ! COORDS might have been shifted by symmetry
 81:       IF ((.NOT.NORESET).AND.(.NOT.PERMOPT).AND.(.NOT.DIFFRACTT).AND.(.NOT.BLNT).AND.(.NOT.PERIODIC)  72:       IF ((.NOT.NORESET).AND.(.NOT.PERMOPT).AND.(.NOT.DIFFRACTT).AND.(.NOT.BLNT).AND.(.NOT.PERIODIC) 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0