hdiff output

r33064/commons.f90 2017-07-24 17:30:14.120757949 +0100 r33063/commons.f90 2017-07-24 17:30:15.016769844 +0100
 34:      &        BINARY_EXAB_FRQ, NRESMIN, USERES, EXEQ, NONEDAPBC, STRUC, CHEMSHIFTITER, GRIDSIZE, MFETRUNS, BESTINVERT, GCNATOMS, & 34:      &        BINARY_EXAB_FRQ, NRESMIN, USERES, EXEQ, NONEDAPBC, STRUC, CHEMSHIFTITER, GRIDSIZE, MFETRUNS, BESTINVERT, GCNATOMS, &
 35:      &        GCINT, GCRELAX, MTARGETS, & 35:      &        GCINT, GCRELAX, MTARGETS, &
 36:      &        INTCONSEP, INTREPSEP, NCONSTRAINTON, CPREPSEP, CPCONSEP, NCONGEOM, & 36:      &        INTCONSEP, INTREPSEP, NCONSTRAINTON, CPREPSEP, CPCONSEP, NCONGEOM, &
 37:      &        NCPREPULSIVE, NCPCONSTRAINT, MAXCONUSE, INTCONSTEPS, INTRELSTEPS, INTSTEPS1, INTLJSTEPS, & 37:      &        NCPREPULSIVE, NCPCONSTRAINT, MAXCONUSE, INTCONSTEPS, INTRELSTEPS, INTSTEPS1, INTLJSTEPS, &
 38:      &        NTRAPPOW, MAXINTIMAGE, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, & 38:      &        NTRAPPOW, MAXINTIMAGE, CHECKREPINTERVAL, INTFREEZEMIN, INTNTRIESMAX, INTIMAGEINCR, &
 39:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, INTIMAGE, NREPULSIVE, & 39:      &        NCONSTRAINTFIX, INTIMAGECHECK, NREPULSIVEFIX, INTIMAGE, NREPULSIVE, &
 40:      &        NNREPULSIVE, NCONSTRAINT, INTMUPDATE, DUMPINTEOSFREQ, DUMPINTXYZFREQ, & 40:      &        NNREPULSIVE, NCONSTRAINT, INTMUPDATE, DUMPINTEOSFREQ, DUMPINTXYZFREQ, &
 41:      &        LOCALPERMNEIGH, LOCALPERMMAXSEP, MAXNACTIVE, QCIPERMCHECKINT, & 41:      &        LOCALPERMNEIGH, LOCALPERMMAXSEP, MAXNACTIVE, QCIPERMCHECKINT, &
 42:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, DJWRBID, NHEXAMERS, QCIADDREP, QCIBONDS, QCISECOND, MQUNIT, & 42:      &        MLPIN, MLPSTART, MLPOUT, MLPHIDDEN, MLPDATA, NMLP, DJWRBID, NHEXAMERS, QCIADDREP, QCIBONDS, QCISECOND, MQUNIT, &
 43:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, NADDTARGET, NUMNN, SQNM_HISTMAX, SQNM_DEBUGRUN, SQNM_DEBUGLEVEL, & 43:      &        MLQIN, MLQSTART, MLQOUT, MLQDATA, NMLQ, NADDTARGET, NUMNN, SQNM_HISTMAX, SQNM_DEBUGRUN, SQNM_DEBUGLEVEL, &
 44:      &        SQNM_WRITEMAX, NEWALDREAL(3), NEWALDRECIP(3), EWALDN, MLPNEIGH 44:      &        SQNM_WRITEMAX, NEWALDREAL(3), NEWALDRECIP(3), EWALDN
 45:       DOUBLE PRECISION RHO, GAMMA, SIG, SCEPS, SCC, TOLB, T12FAC, XMOVERENORM, RESIZE, QTSALLIS, & 45:       DOUBLE PRECISION RHO, GAMMA, SIG, SCEPS, SCC, TOLB, T12FAC, XMOVERENORM, RESIZE, QTSALLIS, &
 46:      &                 CQMAX, RADIUS, BQMAX,  MAXBFGS, DECAYPARAM, SYMTOL1, SYMTOL2, SYMTOL3, SYMTOL4, SYMTOL5, PGSYMTOLS(3),& 46:      &                 CQMAX, RADIUS, BQMAX,  MAXBFGS, DECAYPARAM, SYMTOL1, SYMTOL2, SYMTOL3, SYMTOL4, SYMTOL5, PGSYMTOLS(3),&
 47:      &                 ECONV, TOLD, TOLE, SYMREM(120,3,3), GMAX, CUTOFF, PCUT, EXPFAC, EXPD, CENTX, CENTY, CENTZ, & 47:      &                 ECONV, TOLD, TOLE, SYMREM(120,3,3), GMAX, CUTOFF, PCUT, EXPFAC, EXPD, CENTX, CENTY, CENTZ, &
 48:      &                 BOXLX, BOXLY, BOXLZ, BOX3D(3), PCUTOFF, SUPSTEP, SQUEEZER, SQUEEZED, COOPCUT, STOCKMU, STOCKLAMBDA, & 48:      &                 BOXLX, BOXLY, BOXLZ, BOX3D(3), PCUTOFF, SUPSTEP, SQUEEZER, SQUEEZED, COOPCUT, STOCKMU, STOCKLAMBDA, &
 49:      &                 TFAC(3), RMS, TEMPS, SACCRAT, CEIG, PNEWJUMP, EAMP, DISTFAC, ODDCHARGE, COULQ, COULSWAP, & 49:      &                 TFAC(3), RMS, TEMPS, SACCRAT, CEIG, PNEWJUMP, EAMP, DISTFAC, ODDCHARGE, COULQ, COULSWAP, &
 50:      &                 COULTEMP, APP, AMM, APM, XQP, XQM, ALPHAP, ALPHAM, ZSTAR, K_COMP, DGUESS, GUIDECUT, EFAC,& 50:      &                 COULTEMP, APP, AMM, APM, XQP, XQM, ALPHAP, ALPHAM, ZSTAR, K_COMP, DGUESS, GUIDECUT, EFAC,&
 51:      &                 TRENORM, HISTMIN, HISTMAX, HISTFAC, EPSSPHERE, FINALCUTOFF, SHELLPROB, RINGROTSCALE, & 51:      &                 TRENORM, HISTMIN, HISTMAX, HISTFAC, EPSSPHERE, FINALCUTOFF, SHELLPROB, RINGROTSCALE, &
 52:      &                 HISTFACMUL, HPERCENT, AVOIDDIST, MAXERISE, MAXEFALL, TSTART, MATDIFF, STICKYSIG, SDTOL, & 52:      &                 HISTFACMUL, HPERCENT, AVOIDDIST, MAXERISE, MAXEFALL, TSTART, MATDIFF, STICKYSIG, SDTOL, &
 53:      &                 MinimalTemperature, MaximalTemperature, SwapProb, hdistconstraint, COREFRAC, TSTAR, & 53:      &                 MinimalTemperature, MaximalTemperature, SwapProb, hdistconstraint, COREFRAC, TSTAR, &
 54:      &                 RK_R, RK_THETA,ARMA,ARMB, ExtrapolationPercent, lnHarmFreq, PTEMIN, PTEMAX, PTTMIN, PTTMAX, EXCHPROB, & 54:      &                 RK_R, RK_THETA,ARMA,ARMB, ExtrapolationPercent, lnHarmFreq, PTEMIN, PTEMAX, PTTMIN, PTTMAX, EXCHPROB, &
114:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &114:      &        RESERVOIRT, DISTOPT, ONEDAPBCT, ONEDPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, THREEDPBCT, RATIOT, &
115:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &115:      &        PTRANDOM, PTINTERVAL, PTSINGLE, PTSETS, CHEMSHIFT, CHEMSHIFT2, CSH, DEBUGss2029, UNIFORMMOVE, RANSEEDT, &
116:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &116:      &        TTM3T, NOINVERSION, RIGIDCONTOURT, UPDATERIGIDREFT, HYBRIDMINT, COMPRESSRIGIDT, MWFILMT, &
117:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, LJ_VAR_RADT, READMASST, SPECMASST, NEWTSALLIST, &117:      &        SUPPRESST, MFETT, POLIRT, QUIPT, SWPOTT, MWPOTT, REPMATCHT, GLJT, MLJT, LJ_VAR_RADT, READMASST, SPECMASST, NEWTSALLIST, &
118:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, &118:      &        PHI4MODELT, CUDAT, CUDATIMET, AMBER12T, ENERGY_DECOMPT, NEWMOVEST, DUMPMINT, MBPOLT, MOLECULART, GCBHT, SEMIGRAND_MUT, USEROT, &
119:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, RIGIDMBPOLT, &119:      &        SAVEMULTIMINONLY, GRADPROBLEMT, INTLJT, CONDATT, QCIPERMCHECK, RIGIDMBPOLT, &
120:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &120:      &        INTCONSTRAINTT, INTFREEZET, CHECKCONINT, CONCUTABST, CONCUTFRACT, INTERPCOSTFUNCTION, &
121:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &121:      &        RBAAT, FREEZENODEST, DUMPINTEOS, DUMPINTXYZ, QCIPOTT, QCIPOT2T, INTSPRINGACTIVET, LPERMDIST, LOCALPERMDIST, QCIRADSHIFTT, &
122:      &        MLP3T, MKTRAPT, MLPB3T, MLPB3NEWT, MULTIPOTT, QCIAMBERT, MLPNEWREG, DJWRBT, STEALTHYT, LJADDT, QCINOREPINT, RIGIDMDT, &122:      &        MLP3T, MKTRAPT, MLPB3T, MLPB3NEWT, MULTIPOTT, QCIAMBERT, MLPNEWREG, DJWRBT, STEALTHYT, LJADDT, QCINOREPINT, RIGIDMDT, &
123:      &        DUMPMQT, MLQT, MLQPROB, LJADD2T, MLPVB3T, NOREGBIAS, PYADDT, PYADD2T, LJADD3T, REORDERADDT,  LJADD4T, &123:      &        DUMPMQT, MLQT, MLQPROB, LJADD2T, MLPVB3T, NOREGBIAS, PYADDT, PYADD2T, LJADD3T, REORDERADDT,  LJADD4T, &
124:      &        SQNMT, SQNM_DEBUGT, SQNM_BIOT, BENZRIGIDEWALDT, ORTHO, EWALDT, WATERMETHANET, MLPVB3NNT, CLATHRATET124:      &        SQNMT, SQNM_DEBUGT, SQNM_BIOT, BENZRIGIDEWALDT, ORTHO, EWALDT, WATERMETHANET, CLATHRATET
125: !125: !
126:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:)126:       DOUBLE PRECISION, ALLOCATABLE :: SEMIGRAND_MU(:)
127:       DOUBLE PRECISION, ALLOCATABLE :: ATMASS(:)127:       DOUBLE PRECISION, ALLOCATABLE :: ATMASS(:)
128:       DOUBLE PRECISION, ALLOCATABLE :: SPECMASS(:)128:       DOUBLE PRECISION, ALLOCATABLE :: SPECMASS(:)
129: 129: 
130: ! dj337: Ewald summation variables130: ! dj337: Ewald summation variables
131:       DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:) :: RERHOARRAY, IMRHOARRAY131:       DOUBLE PRECISION, ALLOCATABLE, DIMENSION(:,:,:) :: RERHOARRAY, IMRHOARRAY
132: 132: 
133: ! csw34> FREEZEGROUP variables133: ! csw34> FREEZEGROUP variables
134: !134: !


r33064/io1.f 2017-07-24 17:30:14.464762546 +0100 r33063/io1.f 2017-07-24 17:30:15.276773297 +0100
723:       ELSEIF (MKTRAPT) THEN723:       ELSEIF (MKTRAPT) THEN
724:          WRITE(MYUNIT,'(I4,A)') NATOMS,' MK trapped ions'724:          WRITE(MYUNIT,'(I4,A)') NATOMS,' MK trapped ions'
725:       ELSEIF (DJWRBT) THEN725:       ELSEIF (DJWRBT) THEN
726:          IF (DJWRBID.EQ.1) THEN726:          IF (DJWRBID.EQ.1) THEN
727:             WRITE(MYUNIT,'(3(I4,A))') NATOMS,' sites for ',NRIGIDBODY,' rigid bodies - DJW potential ',DJWRBID727:             WRITE(MYUNIT,'(3(I4,A))') NATOMS,' sites for ',NRIGIDBODY,' rigid bodies - DJW potential ',DJWRBID
728:             WRITE(MYUNIT,'(2(I4,A))') NRIGIDBODY-NHEXAMERS,' pentamers and ',NHEXAMERS,' hexamers'728:             WRITE(MYUNIT,'(2(I4,A))') NRIGIDBODY-NHEXAMERS,' pentamers and ',NHEXAMERS,' hexamers'
729:             WRITE(MYUNIT,'(A,4G20.10)') 'rho, eps, sigma and pentamer radius=',CAPSIDRHO,CAPSIDEPS,SIGMAPENT,RADPENT729:             WRITE(MYUNIT,'(A,4G20.10)') 'rho, eps, sigma and pentamer radius=',CAPSIDRHO,CAPSIDEPS,SIGMAPENT,RADPENT
730:             WRITE(MYUNIT,'(A,4G20.10)') 'hexamer sigma, radius and hex/pent sigma=',SIGMAHEX,RADHEX,SIGMAPH730:             WRITE(MYUNIT,'(A,4G20.10)') 'hexamer sigma, radius and hex/pent sigma=',SIGMAHEX,RADHEX,SIGMAPH
731:          ENDIF731:          ENDIF
732:       ELSEIF (MLPVB3T) THEN732:       ELSEIF (MLPVB3T) THEN
733:          IF (MLPVB3NNT) THEN 
734:             DO J1=1,NATOMS 
735:                IF (FROZEN(J1)) COORDS(J1,1)=0.0D0 ! for frozen zero nearest-neighbour setup 
736:             ENDDO 
737:          ENDIF 
738:          WRITE(MYUNIT,'(I4,A)') NATOMS,' link weights for MLPVB3'733:          WRITE(MYUNIT,'(I4,A)') NATOMS,' link weights for MLPVB3'
739:       ELSEIF (MLP3T) THEN734:       ELSEIF (MLP3T) THEN
740:          WRITE(MYUNIT,'(I4,A)') NATOMS,' link weights for MLP3'735:          WRITE(MYUNIT,'(I4,A)') NATOMS,' link weights for MLP3'
741:       ELSEIF (MLQT) THEN736:       ELSEIF (MLQT) THEN
742:          WRITE(MYUNIT,'(I4,A)') NATOMS,' variables for ML quadratic'737:          WRITE(MYUNIT,'(I4,A)') NATOMS,' variables for ML quadratic'
743:       ELSEIF (ORBITALS) THEN738:       ELSEIF (ORBITALS) THEN
744:          WRITE(MYUNIT,'(I4,A)') NATOMS,' rotations for orbital landscape'739:          WRITE(MYUNIT,'(I4,A)') NATOMS,' rotations for orbital landscape'
745:       ELSEIF  (LJADDT) THEN740:       ELSEIF  (LJADDT) THEN
746:          IF (SORTT) THEN741:          IF (SORTT) THEN
747:             WRITE(MYUNIT,'(A)') 'Turning off SORT option for LJADD'742:             WRITE(MYUNIT,'(A)') 'Turning off SORT option for LJADD'


r33064/keywords.f 2017-07-24 17:30:14.764766508 +0100 r33063/keywords.f 2017-07-24 17:30:15.544776860 +0100
 59:       USE ROTAMER, ONLY: ROTAMER_MOVET, ROTAMER_SCRIPT, ROTAMER_INIT 59:       USE ROTAMER, ONLY: ROTAMER_MOVET, ROTAMER_SCRIPT, ROTAMER_INIT
 60:       USE HINGE_MOVES, ONLY: HINGE_INITIALISE 60:       USE HINGE_MOVES, ONLY: HINGE_INITIALISE
 61:       USE MOLECULAR_DYNAMICS, ONLY : MDT, MD_TSTEP, MD_GAMMA, MD_NWAIT, MD_NFREQ, MD_NSTEPS 61:       USE MOLECULAR_DYNAMICS, ONLY : MDT, MD_TSTEP, MD_GAMMA, MD_NWAIT, MD_NFREQ, MD_NSTEPS
 62:       USE OPEP_INTERFACE_MOD, ONLY : OPEP_INIT 62:       USE OPEP_INTERFACE_MOD, ONLY : OPEP_INIT
 63:       USE ORBITALS_MOD, ONLY: ORBITALS_INIT 63:       USE ORBITALS_MOD, ONLY: ORBITALS_INIT
 64:       USE EWALD 64:       USE EWALD
 65:        65:       
 66:       IMPLICIT NONE 66:       IMPLICIT NONE
 67:  67: 
 68:       DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:), MLQMEAN(:) 68:       DOUBLE PRECISION, ALLOCATABLE :: MLPMEAN(:), MLQMEAN(:)
 69:       DOUBLE PRECISION, ALLOCATABLE :: MLPDISTHI(:), MLPDISTHO(:)    
 70:       INTEGER, ALLOCATABLE :: MLPINDEXI(:), MLPINDEXO(:) 
 71:       INTEGER K1, I1 
 72:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, LAST, IX, J1, JP, NPCOUNT, NDUMMY, J2, J3 69:       INTEGER ITEM, NITEMS, LOC, LINE, NCR, NERROR, LAST, IX, J1, JP, NPCOUNT, NDUMMY, J2, J3
 73:       INTEGER DATA_UNIT, FUNIT 70:       INTEGER DATA_UNIT, FUNIT
 74:       INTEGER MOVABLEATOMINDEX 71:       INTEGER MOVABLEATOMINDEX
 75:       LOGICAL CAT, YESNO, PERMFILE, CONFILE 72:       LOGICAL CAT, YESNO, PERMFILE, CONFILE
 76:       COMMON /BUFINF/ ITEM, NITEMS, LOC(80), LINE, SKIPBL, CLEAR, NCR, 73:       COMMON /BUFINF/ ITEM, NITEMS, LOC(80), LINE, SKIPBL, CLEAR, NCR,
 77:      &                NERROR, ECHO, LAST, CAT 74:      &                NERROR, ECHO, LAST, CAT
 78:        DOUBLE PRECISION XX, ROH, ROM, WTHETA 75:        DOUBLE PRECISION XX, ROH, ROM, WTHETA
 79:       LOGICAL END, SKIPBL, CLEAR, ECHO 76:       LOGICAL END, SKIPBL, CLEAR, ECHO
 80:       CHARACTER WORD*16,PBC*3,WORD2*10 77:       CHARACTER WORD*16,PBC*3,WORD2*10
 81:       DOUBLE PRECISION EAMLJA0, EAMLJBETA, EAMLJZ0, DUMMY 78:       DOUBLE PRECISION EAMLJA0, EAMLJBETA, EAMLJZ0, DUMMY
1186: !     SIGMAPH=0.5D0*(SIGMA + SIGMAHEX)1183: !     SIGMAPH=0.5D0*(SIGMA + SIGMAHEX)
1187: !     CAPSIDEPS=0.4D01184: !     CAPSIDEPS=0.4D0
1188: 1185: 
1189: !1186: !
1190: ! Neural network potential1187: ! Neural network potential
1191: !1188: !
1192:       MLP3T=.FALSE.1189:       MLP3T=.FALSE.
1193:       MLPB3T=.FALSE.1190:       MLPB3T=.FALSE.
1194:       MLPB3NEWT=.FALSE.1191:       MLPB3NEWT=.FALSE.
1195:       MLPVB3T=.FALSE.1192:       MLPVB3T=.FALSE.
1196:       MLPVB3NNT=.FALSE. 
1197:       NOREGBIAS=.FALSE.1193:       NOREGBIAS=.FALSE.
1198:       MLPNEWREG=.FALSE.1194:       MLPNEWREG=.FALSE.
1199:       MLPDONE=.FALSE.1195:       MLPDONE=.FALSE.
1200:       MLPNORM=.FALSE.1196:       MLPNORM=.FALSE.
1201:       MLPLAMBDA=0.0D01197:       MLPLAMBDA=0.0D0
1202:       MLPNEIGH=1 
1203: !1198: !
1204: ! ML quadratic function1199: ! ML quadratic function
1205: !1200: !
1206:       MLQT=.FALSE.1201:       MLQT=.FALSE.
1207:       MLQPROB=.FALSE.1202:       MLQPROB=.FALSE.
1208:       MLQDONE=.FALSE.1203:       MLQDONE=.FALSE.
1209:       MLQNORM=.FALSE.1204:       MLQNORM=.FALSE.
1210:       MLQLAMBDA=0.0D01205:       MLQLAMBDA=0.0D0
1211:       MLQSTART=11206:       MLQSTART=1
1212: 1207: 
2263:       ELSE IF (WORD.EQ.'NOREGBIAS') THEN2258:       ELSE IF (WORD.EQ.'NOREGBIAS') THEN
2264:          NOREGBIAS=.TRUE.2259:          NOREGBIAS=.TRUE.
2265:       ELSE IF ((WORD.EQ.'MLPVB3').OR.(WORD.EQ.'MLPVB3NN')) THEN2260:       ELSE IF ((WORD.EQ.'MLPVB3').OR.(WORD.EQ.'MLPVB3NN')) THEN
2266:          MLPVB3T=.TRUE.2261:          MLPVB3T=.TRUE.
2267:          CALL READI(MLPIN)      ! number of inputs (data items after outcome)2262:          CALL READI(MLPIN)      ! number of inputs (data items after outcome)
2268:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome2263:          CALL READI(MLPSTART) ! starting position in data list, not counting outcome
2269:          CALL READI(MLPHIDDEN)2264:          CALL READI(MLPHIDDEN)
2270:          CALL READI(MLPOUT)2265:          CALL READI(MLPOUT)
2271:          CALL READI(MLPDATA)2266:          CALL READI(MLPDATA)
2272:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)2267:          IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)
2273:          IF ((WORD.EQ.'MLPVB3NN').AND.(NITEMS.GT.6)) CALL READI(MLPNEIGH) 
2274:          IF (WORD.EQ.'MLPVB3NN') MLPVB3NNT=.TRUE. 
2275:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',2268:          WRITE(MYUNIT,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',
2276:      &                    MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA2269:      &                    MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA
2277:          IF (WORD.EQ.'MLPVB3NN') WRITE(MYUNIT,'(A,I8)') ' keywords> Nearest-neighbours=',MLPNEIGH 
2278:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT2270:          NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT
2279:          IF (NMLP.NE.NATOMS) THEN2271:          IF (NMLP.NE.NATOMS) THEN
2280:             WRITE(MYUNIT,'(A,2I8)') 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP2272:             WRITE(MYUNIT,'(A,2I8)') 'keywords> ERROR *** NATOMS,NMLP=',NATOMS,NMLP
2281:             STOP2273:             STOP
2282:          ENDIF2274:          ENDIF
2283:          LUNIT=GETUNIT()2275:          LUNIT=GETUNIT()
2284:          OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')2276:          OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')
2285:          ALLOCATE(MLPDAT(MLPDATA,MLPIN),MLPOUTCOME(MLPDATA),MLPMEAN(MLPIN))2277:          ALLOCATE(MLPDAT(MLPDATA,MLPIN),MLPOUTCOME(MLPDATA),MLPMEAN(MLPIN))
2286:          MLPMEAN(1:MLPIN)=0.0D02278:          MLPMEAN(1:MLPIN)=0.0D0
2287:          DO J1=1,MLPDATA2279:          DO J1=1,MLPDATA
2307: !2299: !
2308: ! Variables are ordered2300: ! Variables are ordered
2309: ! w^2_{jk} at (j-1)*MLPIN+k2301: ! w^2_{jk} at (j-1)*MLPIN+k
2310: !   up to MLPHIDDEN*MLPIN, then2302: !   up to MLPHIDDEN*MLPIN, then
2311: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j2303: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j
2312: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN2304: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN
2313: ! w^bh_j at MLPHIDDEN*(MLPIN+MLPOUT)+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN2305: ! w^bh_j at MLPHIDDEN*(MLPIN+MLPOUT)+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN
2314: ! w^bo_i at MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT2306: ! w^bo_i at MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT
2315: !2307: !
2316:          IF (WORD.EQ.'MLPVB3NN') THEN2308:          IF (WORD.EQ.'MLPVB3NN') THEN
2317:             ALLOCATE( MLPDISTHI(MLPIN), MLPDISTHO(MLPOUT), MLPINDEXI(MLPIN), MLPINDEXO(MLPOUT)) 
2318:             WRITE(MYUNIT,'(A)') 'Original nearest-neighbour fomulation:' 
2319:             FREEZE=.TRUE.2309:             FREEZE=.TRUE.
2320:             NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT)-2*MLPHIDDEN2310:             NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT)-2*MLPHIDDEN
2321:             FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE.2311:             FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE.
2322:             DO J1=1,MLPHIDDEN2312:             DO J1=1,MLPHIDDEN
2323:                J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPIN-1)-MLPIN)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to input2313:                J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPIN-1)-MLPIN)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to input
2324:                J3=(J1-1)*MLPIN+J22314:                J3=(J1-1)*MLPIN+J2
2325:                FROZEN(J3)=.FALSE.2315:                FROZEN(J3)=.FALSE.
2326:                WRITE(MYUNIT, '(A,I10,A,I10,A,I10)') 'keywords> Unfrozen weight ',J3,' input ',J2,' to hidden node ',J12316:                WRITE(MYUNIT, '(A,I10,A,I10,A,I10)') 'keywords> Unfrozen weight ',J3,' input ',J2,' to hidden node ',J1
2327:                J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPOUT-1)-MLPOUT)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to output2317:                J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPOUT-1)-MLPOUT)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to output
2328:                J3=MLPHIDDEN*MLPIN+(J2-1)*MLPHIDDEN+J12318:                J3=MLPHIDDEN*MLPIN+(J2-1)*MLPHIDDEN+J1
2329:                WRITE(MYUNIT, '(A,I10,A,I10,A,I10)') 'keywords> Unfrozen weight ',J3,' hidden node ',J1,' to output ',J22319:                WRITE(MYUNIT, '(A,I10,A,I10,A,I10)') 'keywords> Unfrozen weight ',J3,' hidden node ',J1,' to output ',J2
2330:                FROZEN(J3)=.FALSE.2320:                FROZEN(J3)=.FALSE.
2331:             ENDDO2321:             ENDDO
2332:             WRITE(MYUNIT,'(A,I6,A)') 'keywords> New nearest-neighbour formulation with ',MLPNEIGH,' neighbours'  
2333:             NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT) 
2334:             FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE. 
2335:             DO J1=1,MLPHIDDEN 
2336: ! 
2337: ! Distances from hidden J1 to all input nodes for 
2338: ! w^2_{J1 K1} at (J1-1)*MLPIN+K1 up to MLPHIDDEN*MLPIN 
2339: ! 
2340:                DO K1=1,MLPIN 
2341:                   MLPINDEXI(K1)=K1 
2342:                   MLPDISTHI(K1)=( (J1-1.0D0)/(MLPHIDDEN-1.0D0) - (K1-1.0D0)/(MLPIN-1.0D0) )**2 - K1*1.0D-6 ! to break degeneracy 
2343:                ENDDO 
2344:                CALL SORT4(MLPIN,MLPIN,MLPDISTHI,MLPINDEXI) 
2345:                DO J2=1,MIN(MLPNEIGH,MLPIN) 
2346:                   WRITE(MYUNIT,'(A,I8,A,I8,A,I8,A,G20.10)') 'hidden ',J1,' input neighbour ',J2,' is ',MLPINDEXI(J2),' distance ', 
2347:      &                                                      MLPDISTHI(J2) 
2348:                   J3=(J1-1)*MLPIN+MLPINDEXI(J2) 
2349:                   FROZEN(J3)=.FALSE. 
2350:                   NFREEZE=NFREEZE-1 
2351:                ENDDO 
2352: ! 
2353: ! Distances from hidden J1 to all output nodes for 
2354: ! w^1_{I1 J1} at MLPHIDDEN*MLPIN + (I1-1)*MLPHIDDEN+J1 up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN 
2355: ! 
2356:                DO I1=1,MLPOUT 
2357:                   MLPINDEXO(I1)=I1 
2358:                   MLPDISTHO(I1)=( (J1-1.0D0)/(MLPHIDDEN-1.0D0) - (I1-1.0D0)/(MLPOUT-1.0D0) )**2 - I1*1.0D-6 ! to break degeneracy 
2359:                ENDDO 
2360:                CALL SORT4(MLPOUT,MLPOUT,MLPDISTHO,MLPINDEXO) 
2361:                DO J2=1,MIN(MLPNEIGH,MLPOUT) 
2362:                   WRITE(MYUNIT,'(A,I8,A,I8,A,I8,A,G20.10)') 'hidden ',J1,' output neighbour ',J2,' is ',MLPINDEXO(J2),' distance ', 
2363:      &                                                      MLPDISTHO(J2) 
2364:                   J3=MLPHIDDEN*MLPIN+(MLPINDEXO(J2)-1)*MLPHIDDEN+J1 
2365:                   FROZEN(J3)=.FALSE. 
2366:                   NFREEZE=NFREEZE-1 
2367:                ENDDO 
2368:             ENDDO 
2369:             DEALLOCATE( MLPDISTHI, MLPDISTHO, MLPINDEXI, MLPINDEXO) 
2370:          ENDIF2322:          ENDIF
2371: 2323: 
2372:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN2324:       ELSE IF (WORD.EQ.'MLPNEWREG') THEN
2373:          MLPNEWREG=.TRUE.2325:          MLPNEWREG=.TRUE.
2374:          WRITE(MYUNIT,'(A)') 'keyword> Including reciprocals in regularisation'2326:          WRITE(MYUNIT,'(A)') 'keyword> Including reciprocals in regularisation'
2375: !2327: !
2376: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the2328: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
2377: ! average of the mean magnitude2329: ! average of the mean magnitude
2378: ! Arranged so that MLPNORM can come before of after MLPB3/MLP32330: ! Arranged so that MLPNORM can come before of after MLPB3/MLP3
2379: !2331: !


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0