hdiff output

r33065/fetchz.f 2017-07-24 17:30:18.316813697 +0100 r33064/fetchz.f 2017-07-24 17:30:19.108824205 +0100
1689:       ENDIF1689:       ENDIF
1690:       IF (READV) WRITE(*,'(A)') ' fetchz> Initial eigenvector will be read from vector.dump'1690:       IF (READV) WRITE(*,'(A)') ' fetchz> Initial eigenvector will be read from vector.dump'
1691:       IF (READSP) WRITE(*,'(A)') ' fetchz> stationary point info will be read'1691:       IF (READSP) WRITE(*,'(A)') ' fetchz> stationary point info will be read'
1692:       IF (DUMPSP) WRITE(*,'(A)') ' fetchz> stationary point info will be dumped'1692:       IF (DUMPSP) WRITE(*,'(A)') ' fetchz> stationary point info will be dumped'
1693:       IF (FREEZE) THEN1693:       IF (FREEZE) THEN
1694:          WRITE(*,'(A,I6,A)') ' fetchz> ', NFREEZE,' atoms or variables will be frozen:'1694:          WRITE(*,'(A,I6,A)') ' fetchz> ', NFREEZE,' atoms or variables will be frozen:'
1695:          DO J1=1,NATOMS1695:          DO J1=1,NATOMS
1696:             IF (FROZEN(J1)) WRITE(*,'(I6)') J11696:             IF (FROZEN(J1)) WRITE(*,'(I6)') J1
1697:          ENDDO1697:          ENDDO
1698:       ENDIF1698:       ENDIF
1699:       IF (MLPVB3T) THEN 
1700:          IF (MLPVB3NNT) THEN 
1701:             DO J1=1,NATOMS 
1702:                IF (FROZEN(J1)) Q(J1)=0.0D0 ! for frozen zero nearest-neighbour setup 
1703:             ENDDO 
1704:          ENDIF 
1705:          WRITE(*,'(I4,A)') NATOMS,' link weights for MLPVB3' 
1706:       ENDIF 
1707: 1699: 
1708:       ! jbr36 classical rate calculations1700:       ! jbr36 classical rate calculations
1709:       IF (CLASSICALRATEST) THEN1701:       IF (CLASSICALRATEST) THEN
1710:          WRITE(*,'(A,F12.5,A,E20.10)') ' fetch> Classical rates and corrections will be calculated:'1702:          WRITE(*,'(A,F12.5,A,E20.10)') ' fetch> Classical rates and corrections will be calculated:'
1711:       ENDIF1703:       ENDIF
1712: 1704: 
1713:       IF (NORESET) WRITE(*,'(A)') ' fetchz> Atoms will not be returned to the primary supercell'1705:       IF (NORESET) WRITE(*,'(A)') ' fetchz> Atoms will not be returned to the primary supercell'
1714: 1706: 
1715:       IF (RTEST) THEN1707:       IF (RTEST) THEN
1716:          IF (JZ.NE.0.0D0) THEN 1708:          IF (JZ.NE.0.0D0) THEN 


r33065/key.f90 2017-07-24 17:30:18.568817033 +0100 r33064/key.f90 2017-07-24 17:30:19.372827731 +0100
 18:      &        NTRAPPOW, MAXINTIMAGE, CHECKDID, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, & 18:      &        NTRAPPOW, MAXINTIMAGE, CHECKDID, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, &
 19:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, NRANROT, NENDDUP, LOCALPERMNEIGH, & 19:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, NRANROT, NENDDUP, LOCALPERMNEIGH, &
 20:      &        LOCALPERMMAXSEP, NONEDAPBC, STRUC, QCHEMESNAO, QCHEMESNMO, QCHEMESNZERO, QCHEMESNELEC, PMPATHINR, & 20:      &        LOCALPERMMAXSEP, NONEDAPBC, STRUC, QCHEMESNAO, QCHEMESNMO, QCHEMESNZERO, QCHEMESNELEC, PMPATHINR, &
 21:      &        MULTISUNIT, MULTIFUNIT,NIMAGEINST,NGLJ,ST_TSSTEP,LANSTEP,NONFREEZE, & 21:      &        MULTISUNIT, MULTIFUNIT,NIMAGEINST,NGLJ,ST_TSSTEP,LANSTEP,NONFREEZE, &
 22:      &        MCPATHBINS,MCPATHEQUIL,MCPATHSTEPS,MCPATHPRTFRQ,MCPATHTS,MCPATHSCHECK,RPHSLICES,RPHQBINS, & 22:      &        MCPATHBINS,MCPATHEQUIL,MCPATHSTEPS,MCPATHPRTFRQ,MCPATHTS,MCPATHSCHECK,RPHSLICES,RPHQBINS, &
 23:      &        ITWIST, JTWIST, KTWIST, LTWIST, MCPATHSTART, MCPATHBLOCK, MCPATHOVER, NCPU, MCPATHDOBLOCK, MCMERGES, MCMERGEQ, & 23:      &        ITWIST, JTWIST, KTWIST, LTWIST, MCPATHSTART, MCPATHBLOCK, MCPATHOVER, NCPU, MCPATHDOBLOCK, MCMERGES, MCMERGEQ, &
 24:      &        MCMERGEI,GAUSSIANCHARGE,GAUSSIANMULTI,ITG03, REDOTS, QCIPERMCHECKINT, & 24:      &        MCMERGEI,GAUSSIANCHARGE,GAUSSIANMULTI,ITG03, REDOTS, QCIPERMCHECKINT, &
 25:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID, STM, NHEXAMERS, & 25:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, N_TO_ALIGN, DJWRBID, STM, NHEXAMERS, &
 26:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, & 26:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, &
 27:      &        QCIADDREP, QCIBONDS, QCISECOND, MAXNACTIVE, QCIIMAGE, NADDTARGET, NUMNN, MULTI_COUNT, MULTI_LAST, MULTI_STEP, & 27:      &        QCIADDREP, QCIBONDS, QCISECOND, MAXNACTIVE, QCIIMAGE, NADDTARGET, NUMNN, MULTI_COUNT, MULTI_LAST, MULTI_STEP, &
 28:      &        NDOF, RECCOUNT, MLPPROBPOS, PUSHOPTMAX, MLPNEIGH 28:      &        NDOF, RECCOUNT, MLPPROBPOS, PUSHOPTMAX
 29:  29: 
 30:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, & 30:       LOGICAL :: DTEST, MASST, RTEST, EFSTEPST, VECTORST, SUMMARYT, DUMPV, DUMPMAG, FREEZE, FREEZERANGE, GRADSQ, &
 31:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, & 31:      &        PGRAD, VALUEST, ADMT, BFGSMINT, BFGSTST, CHECKINDEX, TOSI, CONTAINER, &
 32:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, & 32:      &        GAUSSIAN, CADPAC, PRESSURE, FTEST, DCHECK, CP2K, DFTP, CPMD, CPMDC, FREEZERES, DF1T, &
 33:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, & 33:      &        VARIABLES, FIELDT, OHT, IHT, TDT, D5HT, TWOENDS, PV, FRACTIONAL, BLNT, HYBRIDMINT, &
 34:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, & 34:      &        INDEXT, LANCZOST, NOSHIFT, GAMESSUS, GAMESSUK, PVTS, RIGIDBODY, CASTEP, ONETEP, QCHEM, QCHEMES, VASP, &
 35:      &        BFGSSTEP, EFOLSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, & 35:      &        BFGSSTEP, EFOLSTEP, BULKT, HUPDATE, NOHESS, READV, NOIT, THOMSONT, SIO2T, SIO2C6T, BISECTT, BISECTDEBUG, &
 36:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, & 36:      &        TOSIC6, TOSIPOL, FIXIMAGE, DFTBT, CHECKCONT, CHECKDT, SHIFTED, READSP, DUMPSP, NOFRQS, &
 37:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, & 37:      &        ALLSTEPS, ALLVECTORS, MWVECTORS, WELCH, BINARY, READHESS, MOVIE, NORESET, TWOD, &
 38:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,& 38:      &        DOUBLET, REOPT, PARALLEL, LINEMIN, FIXD, KEEPINDEX, BSMIN, PRINTPTS, RKMIN, REPELTST,&
 51:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, & 51:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, &
 52:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, & 52:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, &
 53:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, & 53:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, &
 54:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, & 54:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, &
 55:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, & 55:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, &
 56:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, & 56:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, &
 57:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB, & 57:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB, &
 58:      &        MALONALDEHYDE, SIO2PT, MLPNEWREG, DJWRBT, STEALTHYT, STEALTV, LJADDT, MLPB3NEWT, MLPVB3T, & 58:      &        MALONALDEHYDE, SIO2PT, MLPNEWREG, DJWRBT, STEALTHYT, STEALTV, LJADDT, MLPB3NEWT, MLPVB3T, &
 59:      &        QCIPOTT, QCIPOT2T, QCIRADSHIFTT, QCINOREPINT, QCIAMBERT, SLERPT, NOTRANSROTT, MAXGAPT, BULKBOXT, GDSQT, FLATTESTT, & 59:      &        QCIPOTT, QCIPOT2T, QCIRADSHIFTT, QCINOREPINT, QCIAMBERT, SLERPT, NOTRANSROTT, MAXGAPT, BULKBOXT, GDSQT, FLATTESTT, &
 60:      &        MLQT, MLQPROB, LJADD2T, MACROIONT, NOREGBIAS, PYADDT, PYADD2T, SANDBOXT, LJADD3T, LJADD4T, & 60:      &        MLQT, MLQPROB, LJADD2T, MACROIONT, NOREGBIAS, PYADDT, PYADD2T, SANDBOXT, LJADD3T, LJADD4T, &
 61:      &        MBPOLT, MULTIJOB_MACHINET, DUMPDATA_MACHINET, PLUSSIDET, MINUSSIDET, PUSHOPTT, MLPVB3NNT 61:      &        MBPOLT, MULTIJOB_MACHINET, DUMPDATA_MACHINET, PLUSSIDET, MINUSSIDET, PUSHOPTT
 62:  62: 
 63: ! sy349 > for testing the flatpath after dneb 63: ! sy349 > for testing the flatpath after dneb
 64:       !LOGICAL, ALLOCATABLE :: FLATPATHT(:) 64:       !LOGICAL, ALLOCATABLE :: FLATPATHT(:)
 65:       LOGICAL FLATPATHT 65:       LOGICAL FLATPATHT
 66:  66: 
 67: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted) 67: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted)
 68:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential? 68:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential?
 69:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z) 69:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z)
 70:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1 70:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1
 71:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads 71:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads


r33065/keywords.f 2017-07-24 17:30:18.832820542 +0100 r33064/keywords.f 2017-07-24 17:30:19.648831369 +0100
 90:          ! COMMON /BIN/ NTYPEA,AAA,AAB,ABB,PAA,PAB,PBB,QAA,QAB,QBB,ZAA,ZAB 90:          ! COMMON /BIN/ NTYPEA,AAA,AAB,ABB,PAA,PAB,PBB,QAA,QAB,QBB,ZAA,ZAB
 91:          ! COMMON /BIN/ ZBB,R0AA,R0AB,R0BB 91:          ! COMMON /BIN/ ZBB,R0AA,R0AB,R0BB
 92:          COMMON /BIN/ EPSAB, EPSBB, SIGAB, SIGBB,NTYPEA 92:          COMMON /BIN/ EPSAB, EPSBB, SIGAB, SIGBB,NTYPEA
 93:  93: 
 94:          INTEGER NATOM, DMODE, NATOMSSAVE 94:          INTEGER NATOM, DMODE, NATOMSSAVE
 95:          DOUBLE PRECISION CHX(MXATMS), CHY(MXATMS), CHZ(MXATMS), CHMASS(MXATMS) 95:          DOUBLE PRECISION CHX(MXATMS), CHY(MXATMS), CHZ(MXATMS), CHMASS(MXATMS)
 96:          DOUBLE PRECISION DPERT 96:          DOUBLE PRECISION DPERT
 97:          DOUBLE PRECISION CHPMIN, CHPMAX, CHNMIN, CHNMAX 97:          DOUBLE PRECISION CHPMIN, CHPMAX, CHNMIN, CHNMAX
 98:          DOUBLE PRECISION, ALLOCATABLE :: LCONGEOM(:,:) 98:          DOUBLE PRECISION, ALLOCATABLE :: LCONGEOM(:,:)
 99:          DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:), MLQMEAN(:) 99:          DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:), MLQMEAN(:)
100:          DOUBLE PRECISION, ALLOCATABLE :: MLPDISTHI(:), MLPDISTHO(:) 
101:          INTEGER, ALLOCATABLE :: MLPINDEXI(:), MLPINDEXO(:) 
102:          INTEGER K1, II1 
103:  
104:          INTEGER ISEED100:          INTEGER ISEED
105: 101: 
106:          DOUBLE PRECISION UNRX(NATOMS), UNRY(NATOMS), UNRZ(NATOMS) ! UNRES102:          DOUBLE PRECISION UNRX(NATOMS), UNRY(NATOMS), UNRZ(NATOMS) ! UNRES
107:          DOUBLE PRECISION DUMMY1(NATOMS)103:          DOUBLE PRECISION DUMMY1(NATOMS)
108: 104: 
109:          DOUBLE PRECISION SLENGTH, EPS, DUMMY105:          DOUBLE PRECISION SLENGTH, EPS, DUMMY
110:          INTEGER NOK, NBAD106:          INTEGER NOK, NBAD
111:          COMMON /BSNEW/ SLENGTH, NOK, NBAD, EPS107:          COMMON /BSNEW/ SLENGTH, NOK, NBAD, EPS
112:          DOUBLE PRECISION GSQSCALE, GSTHRESH108:          DOUBLE PRECISION GSQSCALE, GSTHRESH
113:          INTEGER NSPECIAL, NALLOW, NINFO109:          INTEGER NSPECIAL, NALLOW, NINFO
980:          MLPB3T=.FALSE.976:          MLPB3T=.FALSE.
981:          MLPB3NEWT=.FALSE.977:          MLPB3NEWT=.FALSE.
982:          MLPVB3T=.FALSE.978:          MLPVB3T=.FALSE.
983:          NOREGBIAS=.FALSE.979:          NOREGBIAS=.FALSE.
984:          MLPNEWREG=.FALSE.980:          MLPNEWREG=.FALSE.
985:          MLPPROB=.FALSE.981:          MLPPROB=.FALSE.
986:          MLPPROBPOS=1.0D0982:          MLPPROBPOS=1.0D0
987:          MLPDONE=.FALSE.983:          MLPDONE=.FALSE.
988:          MLPNORM=.FALSE.984:          MLPNORM=.FALSE.
989:          MLPLAMBDA=0.0D0985:          MLPLAMBDA=0.0D0
990:          MLPNEIGH=1 
991:          MLPDATSTART=1986:          MLPDATSTART=1
992: !987: !
993: ! ML quadratic function988: ! ML quadratic function
994: !989: !
995:          MLQT=.FALSE.990:          MLQT=.FALSE.
996:          MLQPROB=.FALSE.991:          MLQPROB=.FALSE.
997:          MLQDONE=.FALSE.992:          MLQDONE=.FALSE.
998:          MLQNORM=.FALSE.993:          MLQNORM=.FALSE.
999:          MLQLAMBDA=0.0D0994:          MLQLAMBDA=0.0D0
1000:          MLQDATSTART=1995:          MLQDATSTART=1
4207:          ELSE IF (WORD.EQ.'NOREGBIAS') THEN4202:          ELSE IF (WORD.EQ.'NOREGBIAS') THEN
4208:             NOREGBIAS=.TRUE.4203:             NOREGBIAS=.TRUE.
4209:          ELSE IF ((WORD.EQ.'MLPVB3').OR.(WORD.EQ.'MLPVB3NN')) THEN4204:          ELSE IF ((WORD.EQ.'MLPVB3').OR.(WORD.EQ.'MLPVB3NN')) THEN
4210:             MLPVB3T=.TRUE.4205:             MLPVB3T=.TRUE.
4211:             CALL READI(MLPIN)      ! number of inputs (data items after outcome)4206:             CALL READI(MLPIN)      ! number of inputs (data items after outcome)
4212:             CALL READI(MLPSTART) ! starting position in data list, not counting outcome4207:             CALL READI(MLPSTART) ! starting position in data list, not counting outcome
4213:             CALL READI(MLPHIDDEN)4208:             CALL READI(MLPHIDDEN)
4214:             CALL READI(MLPOUT)4209:             CALL READI(MLPOUT)
4215:             CALL READI(MLPDATA)4210:             CALL READI(MLPDATA)
4216:             IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)4211:             IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)
4217:             IF ((WORD.EQ.'MLPVB3NN').AND.(NITEMS.GT.6)) CALL READI(MLPNEIGH) 
4218:             IF (MLPNEIGH.EQ.0) THEN 
4219:                WRITE(*,'(A)') 'keywords> *** ERROR cannot have zero nearest neighbours, check odata' 
4220:                STOP 
4221:             ENDIF 
4222:             IF (WORD.EQ.'MLPVB3NN') MLPVB3NNT=.TRUE. 
4223:             WRITE(*,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',4212:             WRITE(*,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',
4224:      &                                MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA4213:      &                                MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA
4225:             NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT4214:             NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT
4226:             IF (NMLP.NE.NATOMS) THEN4215:             IF (NMLP.NE.NATOMS) THEN
4227:                PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP4216:                PRINT '(A,2I8)', 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP
4228:                STOP4217:                STOP
4229:             ENDIF4218:             ENDIF
4230:    4219:    
4231:             LUNIT=GETUNIT()4220:             LUNIT=GETUNIT()
4232:             OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')4221:             OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')
4256: !4245: !
4257: ! Variables are ordered4246: ! Variables are ordered
4258: ! w^2_{jk} at (j-1)*MLPIN+k4247: ! w^2_{jk} at (j-1)*MLPIN+k
4259: !   up to MLPHIDDEN*MLPIN, then4248: !   up to MLPHIDDEN*MLPIN, then
4260: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j4249: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j
4261: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN4250: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN
4262: ! w^bh_j at MLPHIDDEN*(MLPIN+MLPOUT)+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN4251: ! w^bh_j at MLPHIDDEN*(MLPIN+MLPOUT)+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN
4263: ! w^bo_i at MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT4252: ! w^bo_i at MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT
4264: !4253: !
4265:             IF (WORD.EQ.'MLPVB3NN') THEN4254:             IF (WORD.EQ.'MLPVB3NN') THEN
4266:                ALLOCATE( MLPDISTHI(MLPIN), MLPDISTHO(MLPOUT), MLPINDEXI(MLPIN), MLPINDEXO(MLPOUT)) 
4267:                WRITE(*,'(A)') 'Original nearest-neighbour fomulation:' 
4268:                FREEZE=.TRUE.4255:                FREEZE=.TRUE.
4269:                NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT)-2*MLPHIDDEN4256:                NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT)-2*MLPHIDDEN
4270:                FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE.4257:                FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE.
4271:                DO J1=1,MLPHIDDEN4258:                DO J1=1,MLPHIDDEN
4272:                   J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPIN-1)-MLPIN)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to input4259:                   J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPIN-1)-MLPIN)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to input
4273:                   J3=(J1-1)*MLPIN+J24260:                   J3=(J1-1)*MLPIN+J2
4274:                   FROZEN(J3)=.FALSE.4261:                   FROZEN(J3)=.FALSE.
4275:                   PRINT '(A,I10,A,I10,A,I10)','keywords> Unfrozen weight ',J3,' input ',J2,' to hidden node ',J14262:                   PRINT '(A,I10,A,I10,A,I10)','keywords> Unfrozen weight ',J3,' input ',J2,' to hidden node ',J1
4276:                   J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPOUT-1)-MLPOUT)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to output4263:                   J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPOUT-1)-MLPOUT)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to output
4277:                   J3=MLPHIDDEN*MLPIN+(J2-1)*MLPHIDDEN+J14264:                   J3=MLPHIDDEN*MLPIN+(J2-1)*MLPHIDDEN+J1
4278:                   PRINT '(A,I10,A,I10,A,I10)','keywords> Unfrozen weight ',J3,' hidden node ',J1,' to output ',J24265:                   PRINT '(A,I10,A,I10,A,I10)','keywords> Unfrozen weight ',J3,' hidden node ',J1,' to output ',J2
4279:                   FROZEN(J3)=.FALSE.4266:                   FROZEN(J3)=.FALSE.
4280:                ENDDO4267:                ENDDO
4281:                WRITE(*,'(A,I6,A)') 'keywords> New nearest-neighbour formulation with ',MLPNEIGH,' neighbours' 
4282:                NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT) 
4283:                FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE. 
4284:                DO J1=1,MLPHIDDEN 
4285:                   ! 
4286: ! Distances from hidden J1 to all input nodes for 
4287: ! w^2_{J1 K1} at (J1-1)*MLPIN+K1 up to MLPHIDDEN*MLPIN 
4288: ! 
4289:                   DO K1=1,MLPIN 
4290:                      MLPINDEXI(K1)=K1 
4291:                      MLPDISTHI(K1)=( (J1-1.0D0)/(MLPHIDDEN-1.0D0) - (K1-1.0D0)/(MLPIN-1.0D0) )**2 - K1*1.0D-6 ! to break degeneracy 
4292:                   ENDDO 
4293:                   CALL SORT4(MLPIN,MLPIN,MLPDISTHI,MLPINDEXI) 
4294:                   DO J2=1,MIN(MLPNEIGH,MLPIN) 
4295:                      WRITE(*,'(A,I8,A,I8,A,I8,A,G20.10)') 'hidden ',J1,' input neighbour ',J2,' is ',MLPINDEXI(J2),' distance ', 
4296:      &                                                      MLPDISTHI(J2) 
4297:                      J3=(J1-1)*MLPIN+MLPINDEXI(J2) 
4298:                      FROZEN(J3)=.FALSE. 
4299:                      NFREEZE=NFREEZE-1 
4300:                   ENDDO 
4301: ! 
4302: ! Distances from hidden J1 to all output nodes for 
4303: ! w^1_{I1 J1} at MLPHIDDEN*MLPIN + (I1-1)*MLPHIDDEN+J1 up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN 
4304: ! 
4305:                   DO II1=1,MLPOUT 
4306:                      MLPINDEXO(II1)=II1 
4307:                      MLPDISTHO(II1)=( (J1-1.0D0)/(MLPHIDDEN-1.0D0) - (II1-1.0D0)/(MLPOUT-1.0D0) )**2 - II1*1.0D-6 ! to break degeneracy 
4308:                   ENDDO 
4309:                   CALL SORT4(MLPOUT,MLPOUT,MLPDISTHO,MLPINDEXO) 
4310:                   DO J2=1,MIN(MLPNEIGH,MLPOUT) 
4311:                      WRITE(*,'(A,I8,A,I8,A,I8,A,G20.10)') 'hidden ',J1,' output neighbour ',J2,' is ',MLPINDEXO(J2), 
4312:      &                  ' distance ',MLPDISTHO(J2) 
4313:                      J3=MLPHIDDEN*MLPIN+(MLPINDEXO(J2)-1)*MLPHIDDEN+J1 
4314:                      FROZEN(J3)=.FALSE. 
4315:                      NFREEZE=NFREEZE-1 
4316:                   ENDDO 
4317:                ENDDO 
4318:                DEALLOCATE( MLPDISTHI, MLPDISTHO, MLPINDEXI, MLPINDEXO) 
4319:             ENDIF4268:             ENDIF
4320:          ELSE IF (WORD.EQ.'MLPNEWREG') THEN4269:          ELSE IF (WORD.EQ.'MLPNEWREG') THEN
4321:             MLPNEWREG=.TRUE.4270:             MLPNEWREG=.TRUE.
4322:          ELSE IF (WORD.EQ.'MLPPROB') THEN4271:          ELSE IF (WORD.EQ.'MLPPROB') THEN
4323:             MLPPROB=.TRUE.4272:             MLPPROB=.TRUE.
4324:             IF (NITEMS.GT.1) CALL READI(MLPPROBPOS)4273:             IF (NITEMS.GT.1) CALL READI(MLPPROBPOS)
4325:             WRITE(*,'(A,I6)') 4274:             WRITE(*,'(A,I6)') 
4326:      &    'keywords> Will calculate ROC and AUC values assuming positive outcome (counting from 1) is indexed ',MLPPROBPOS4275:      &    'keywords> Will calculate ROC and AUC values assuming positive outcome (counting from 1) is indexed ',MLPPROBPOS
4327: ! 4276: ! 
4328: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the4277: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
6943:          ELSE6892:          ELSE
6944:             CALL REPORT(' keywords> Unrecognized command '//WORD,.TRUE.)6893:             CALL REPORT(' keywords> Unrecognized command '//WORD,.TRUE.)
6945:             STOP6894:             STOP
6946:          ENDIF6895:          ENDIF
6947: 6896: 
6948:          CALL FLUSH(6)6897:          CALL FLUSH(6)
6949:          GOTO 1906898:          GOTO 190
6950: 6899: 
6951:          RETURN6900:          RETURN
6952:       END6901:       END
6953:  
6954:  
6955:       SUBROUTINE SORT4(N,NATOMS,A,F) 
6956:       IMPLICIT NONE 
6957:       INTEGER J1, L, N, J2, NATOMS, F(NATOMS), NTEMP 
6958:       DOUBLE PRECISION A(NATOMS), TEMP 
6959: C 
6960:       DO 20 J1=1,N-1 
6961:          L=J1 
6962:          DO 10 J2=J1+1,N 
6963:             IF (A(L).GT.A(J2)) L=J2 
6964: 10       CONTINUE 
6965:          TEMP=A(L) 
6966:          A(L)=A(J1) 
6967:          A(J1)=TEMP 
6968:          NTEMP=F(L) 
6969:          F(L)=F(J1) 
6970:          F(J1)=NTEMP 
6971: 20    CONTINUE 
6972:       RETURN 
6973:       END 
6974:  


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0