hdiff output

r29928/key.f90 2016-02-09 15:30:09.886648394 +0000 r29927/key.f90 2016-02-09 15:30:10.758659914 +0000
 44:      &        CHECKCONINT, ATOMMATCHFULL, NIH2LEPST,NIHEAM7T,NIHLEPST, NIHPAIRONLYT, & 44:      &        CHECKCONINT, ATOMMATCHFULL, NIH2LEPST,NIHEAM7T,NIHLEPST, NIHPAIRONLYT, &
 45:      &        QSPCFWT, QTIP4PFT, CFUSIONT, DUMPINTXYZ, DUMPINTEOS, INTLJT, INTTST, EYTRAPT, OHCELLT, MKTRAPT, & 45:      &        QSPCFWT, QTIP4PFT, CFUSIONT, DUMPINTXYZ, DUMPINTEOS, INTLJT, INTTST, EYTRAPT, OHCELLT, MKTRAPT, &
 46:      &        INTFREEZET, LPERMDIST, CHECKNEGATIVET, CHECKOVERLAPT, ACK1, ACK2, CONDATT, USERPOTT, & 46:      &        INTFREEZET, LPERMDIST, CHECKNEGATIVET, CHECKOVERLAPT, ACK1, ACK2, CONDATT, USERPOTT, &
 47:      &        CONCUTFRACT, CONCUTABST, ENDNUMHESS2, CHARMMDFTBT, PAIRCOLOURT, REVERSEUPHILLT, WHOLEDNEB, & 47:      &        CONCUTFRACT, CONCUTABST, ENDNUMHESS2, CHARMMDFTBT, PAIRCOLOURT, REVERSEUPHILLT, WHOLEDNEB, &
 48:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, & 48:      &        NONEBMAX, READMASST, ONEDAPBCT, ONEDPBCT, INVTONEDPBCT, INVTTWODPBCT, TWODAPBCT, TWODPBCT, THREEDAPBCT, &
 49:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, & 49:      &        THREEDPBCT, FOURDAPBCT, FOURDPBCT, MODEDOWNT, CHEMSHIFT, TTM3T, &
 50:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, & 50:      &        NOINVERSION, INVERTPT, KNOWVECS, PMPATHT, AAORIENTT, MULTIJOBT, QUIPARGSTRT, QUIPPARAMST, HESSDUMPT, &
 51:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, & 51:      &        CLASSICALRATEST, TSPLITTINGT, HESSREADT, INSTANTONOPTT,INSTANTONSTARTDUMPT,VARSTEPOPTT, MOLPRO, REAXFFT, &
 52:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, & 52:      &        EIGENONLY,OVERCONV, GLJT,CLSTRINGT,CLSTRINGTST, PHI4MODT, EX1DT, MCPATHT, MCBIAST, RPHT, TWISTT, MCPATH2T, &
 53:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, & 53:      &        PBST, SSHT, GAUSSIAN03, CPPNEBT, CUDAT, CUDATIMET, TRUSTMODET,MODELOST, METRICTENSOR, INTSPRINGACTIVET, &
 54:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS, MLPPROB 54:      &        PERMGUESS, QCIPERMCHECK, DUMPFRQST, MULTIPOTT, MLP3T, MLPB3T, DUMPBESTPATH, ALIGNRBST, AVOID_COLLISIONS
 55:  55: 
 56: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted) 56: ! bf269 > polymer in a pore (non-bonding (LJ) energy from neighbours is not subtracted)
 57:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential? 57:       LOGICAL :: PORE8T = .FALSE. ! add 8th power cylindrical pore to the potential?
 58:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z) 58:       INTEGER :: PORE8_AXIS = 3 ! principal axis of the cylindric pore (1:x, 2:y, 3:z)
 59:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1 59:       DOUBLE PRECISION :: PORE8_ENERGY = 1.0d1 ! energy of the pore when radius = 1
 60:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads 60:       LOGICAL :: HARMPOLYT = .FALSE. ! add harmonic bonds between the beads
 61:       DOUBLE PRECISION :: HARMPOLY_BONLEN = 0.0d0 ! equilibrium length of springs between beads 61:       DOUBLE PRECISION :: HARMPOLY_BONLEN = 0.0d0 ! equilibrium length of springs between beads
 62:       DOUBLE PRECISION :: HARMPOLY_K = 1.0d2 ! force constant of the springs 62:       DOUBLE PRECISION :: HARMPOLY_K = 1.0d2 ! force constant of the springs
 63:  63: 
 64: ! hk286 > generalised THOMSON problem 64: ! hk286 > generalised THOMSON problem


r29928/keywords.f 2016-02-09 15:30:10.106651301 +0000 r29927/keywords.f 2016-02-09 15:30:10.978662821 +0000
890: 890: 
891:          CUDAT=.FALSE.891:          CUDAT=.FALSE.
892:          CUDAPOT=' '892:          CUDAPOT=' '
893:          CUDATIMET=.FALSE.893:          CUDATIMET=.FALSE.
894: 894: 
895: !895: !
896: ! Neural network potential896: ! Neural network potential
897: !897: !
898:          MLP3T=.FALSE.898:          MLP3T=.FALSE.
899:          MLPB3T=.FALSE.899:          MLPB3T=.FALSE.
900:          MLPPROB=.FALSE. 
901:          MLPDONE=.FALSE.900:          MLPDONE=.FALSE.
902:          MLPNORM=.FALSE.901:          MLPNORM=.FALSE.
903:          MLPLAMBDA=0.0D0902:          MLPLAMBDA=0.0D0
904: 903: 
905:          CLSTRINGT=.FALSE.904:          CLSTRINGT=.FALSE.
906:          CLSTRINGTST=.FALSE.905:          CLSTRINGTST=.FALSE.
907:          IF (FILTH2.EQ.0) THEN906:          IF (FILTH2.EQ.0) THEN
908:             OPEN (5,FILE='odata',STATUS='OLD')907:             OPEN (5,FILE='odata',STATUS='OLD')
909:          ELSE908:          ELSE
910:             WRITE(OTEMP,*) FILTH2909:             WRITE(OTEMP,*) FILTH2
3747:             READ(LUNIT,*) MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)3746:             READ(LUNIT,*) MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)
3748:             MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range to 1 to 43747:             MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range to 1 to 4
3749: !           WRITE(*,'(9G15.5,I8)') MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)3748: !           WRITE(*,'(9G15.5,I8)') MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)
3750:             DO J2=1,MLPIN3749:             DO J2=1,MLPIN
3751:                MLPMEAN(J2)=MLPMEAN(J2)+ABS(MLPDAT(J1,J2))3750:                MLPMEAN(J2)=MLPMEAN(J2)+ABS(MLPDAT(J1,J2))
3752:             ENDDO3751:             ENDDO
3753:          ENDDO3752:          ENDDO
3754:          CLOSE(LUNIT)3753:          CLOSE(LUNIT)
3755:          IF (MLPNORM) THEN3754:          IF (MLPNORM) THEN
3756:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA3755:             MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA
3757:             WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'3756:             WRITE(MYUNIT,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
3758:             WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)3757:             WRITE(MYUNIT,'(6G20.10)') MLPMEAN(1:MLPIN)
3759:             DO J1=1,MLPIN3758:             DO J1=1,MLPIN
3760:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)3759:                MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
3761:             ENDDO3760:             ENDDO
3762:          ENDIF3761:          ENDIF
3763:          DEALLOCATE(MLPMEAN)3762:          DEALLOCATE(MLPMEAN)
3764:          MLPDONE=.TRUE.3763:          MLPDONE=.TRUE.
3765: ! 3764: ! 
3766: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the3765: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
3767: ! average of the mean magnitude3766: ! average of the mean magnitude
3768: ! 3767: ! 
3769:       ELSE IF (WORD.EQ.'MLPPROB') THEN 
3770:          MLPPROB=.TRUE. 
3771:       ELSE IF (WORD.EQ.'MLPNORM') THEN3768:       ELSE IF (WORD.EQ.'MLPNORM') THEN
3772:          MLPNORM=.TRUE.3769:          MLPNORM=.TRUE.
3773:          IF (MLPDONE) THEN3770:          IF (MLPDONE) THEN
3774:             LUNIT=GETUNIT()3771:             LUNIT=GETUNIT()
3775:             OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')3772:             OPEN(LUNIT,FILE='MLPdata',STATUS='OLD')
3776:             ALLOCATE(MLPMEAN(MLPIN))3773:             ALLOCATE(MLPMEAN(MLPIN))
3777:             MLPMEAN(1:MLPIN)=0.0D03774:             MLPMEAN(1:MLPIN)=0.0D0
3778:             DO J1=1,MLPDATA3775:             DO J1=1,MLPDATA
3779:                READ(LUNIT,*) MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)3776:                READ(LUNIT,*) MLPDAT(J1,1:MLPIN),MLPOUTCOME(J1)
3780:                MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range to start from 1 instead of zero3777:                MLPOUTCOME(J1)=MLPOUTCOME(J1)+1 ! to shift the range to start from 1 instead of zero


r29928/MLPB3.f90 2016-02-09 15:30:09.670645540 +0000 r29927/MLPB3.f90 2016-02-09 15:30:10.542657062 +0000
  1: SUBROUTINE MLPB3(X,V,ENERGY,GTEST,SECT)  1: SUBROUTINE MLPB3(X,V,ENERGY,GTEST,SECT)
  2: USE KEY  2: USE KEY
  3: USE MODHESS  3: USE MODHESS
  4: USE COMMONS, ONLY : DEBUG  4: USE COMMONS, ONLY : DEBUG
  5: IMPLICIT NONE  5: IMPLICIT NONE
  6: LOGICAL GTEST,SECT  6: LOGICAL GTEST,SECT
  7: DOUBLE PRECISION X(NMLP), V(NMLP), ENERGY, DUMMY1, DUMMY2, DUMMY3, DUMMY4, SUMINPUTS, AREA  7: DOUBLE PRECISION X(NMLP), V(NMLP), ENERGY, DUMMY1, DUMMY2, DUMMY3, DUMMY4, SUMINPUTS
  8: DOUBLE PRECISION Y(MLPOUT), PROB(MLPOUT), PMLPOUTJ1, DMAX  8: DOUBLE PRECISION Y(MLPOUT), PROB(MLPOUT), PMLPOUTJ1, DMAX
  9: DOUBLE PRECISION DYW1G(MLPHIDDEN), DPCW1BG(MLPOUT,MLPHIDDEN)  9: DOUBLE PRECISION DYW1G(MLPHIDDEN), DPCW1BG(MLPOUT,MLPHIDDEN)
 10: DOUBLE PRECISION DYW2G(MLPOUT,MLPHIDDEN,MLPIN), DPCW2BG(MLPHIDDEN,MLPIN), TANHSUM(MLPHIDDEN), SECH2(MLPHIDDEN) 10: DOUBLE PRECISION DYW2G(MLPOUT,MLPHIDDEN,MLPIN), DPCW2BG(MLPHIDDEN,MLPIN), TANHSUM(MLPHIDDEN), SECH2(MLPHIDDEN)
 11: DOUBLE PRECISION DYCDBHID(MLPOUT), DPCDBHID(MLPOUT), DPCDBHIDOUTJ1, D2PCDBHID2, D2YCDBHID2(MLPOUT) 11: DOUBLE PRECISION DYCDBHID(MLPOUT), DPCDBHID(MLPOUT), DPCDBHIDOUTJ1, D2PCDBHID2, D2YCDBHID2(MLPOUT)
 12: DOUBLE PRECISION DPCDW2BG(MLPOUT,MLPHIDDEN,MLPIN), D2YCDBHIDDW2BG, D2PCDBHIDDW2BG 12: DOUBLE PRECISION DPCDW2BG(MLPOUT,MLPHIDDEN,MLPIN), D2YCDBHIDDW2BG, D2PCDBHIDDW2BG
 13: DOUBLE PRECISION DPCDBHIDDW1BG(MLPOUT,MLPHIDDEN) 13: DOUBLE PRECISION DPCDBHIDDW1BG(MLPOUT,MLPHIDDEN)
 14: DOUBLE PRECISION, PARAMETER :: BOUT=0.0D0 14: DOUBLE PRECISION, PARAMETER :: BOUT=0.0D0
 15: DOUBLE PRECISION, ALLOCATABLE :: PSAVE(:,:) 
 16: INTEGER MLPOUTJ1, MLPOFFSET, BOFFSET 15: INTEGER MLPOUTJ1, MLPOFFSET, BOFFSET
 17: INTEGER GETUNIT, LUNIT, J1, J2, J3, J4, K4, K2, K3, J5 16: INTEGER GETUNIT, LUNIT, J1, J2, J3, J4, K4, K2, K3, J5
 18: CHARACTER(LEN=132) FNAME 
 19:  17: 
 20: ! 18: !
 21: ! Variables are ordered  19: ! Variables are ordered 
 22: ! w^2_{jk} at (j-1)*MLPIN+k 20: ! w^2_{jk} at (j-1)*MLPIN+k
 23: !   up to MLPHIDDEN*MLPIN, then 21: !   up to MLPHIDDEN*MLPIN, then
 24: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j 22: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j
 25: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN 23: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN
 26: ! bhidden at MLPHIDDEN*(MLPIN+MLPOUT)+1 24: ! bhidden at MLPHIDDEN*(MLPIN+MLPOUT)+1
 27: ! bout    at MLPHIDDEN*(MLPIN+MLPOUT)+2 25: ! bout    at MLPHIDDEN*(MLPIN+MLPOUT)+2
 28: ! 26: !
 29: ! bout literally does nothing - all first and second derivatives are zero. 27: ! bout literally does nothing - all first and second derivatives are zero.
 30: !      may as well remove it. 28: !      may as well remove it.
 31: ! 29: !
 32:  30: 
 33: IF (MLPPROB) THEN 
 34: !    LUNIT=GETUNIT() 
 35: !    IF (FILTH.EQ.0) THEN 
 36: !       FNAME='probabilities' 
 37: !    ELSE 
 38: !       WRITE(FNAME,'(A)') 'probabilities.'//TRIM(ADJUSTL(FILTHSTR)) 
 39: !    ENDIF 
 40: !    OPEN(LUNIT,FILE=TRIM(ADJUSTL(FNAME)),STATUS='UNKNOWN') 
 41: !    PRINT '(A)',' MLPB3> writing probabilities' 
 42:    ALLOCATE(PSAVE(MLPDATA,MLPOUT)) 
 43: ENDIF 
 44: MLPOFFSET=MLPHIDDEN*MLPIN 31: MLPOFFSET=MLPHIDDEN*MLPIN
 45: BOFFSET=MLPHIDDEN*(MLPIN+MLPOUT) 32: BOFFSET=MLPHIDDEN*(MLPIN+MLPOUT)
 46: ENERGY=0.0D0 33: ENERGY=0.0D0
 47: V(1:NMLP)=0.0D0 34: V(1:NMLP)=0.0D0
 48: IF (SECT) HESS(1:NMLP,1:NMLP)=0.0D0 35: IF (SECT) HESS(1:NMLP,1:NMLP)=0.0D0
 49: DO J1=1,MLPDATA 36: DO J1=1,MLPDATA
 50:    MLPOUTJ1=MLPOUTCOME(J1) 37:    MLPOUTJ1=MLPOUTCOME(J1)
 51:    DO J2=1,MLPHIDDEN 38:    DO J2=1,MLPHIDDEN
 52:       DUMMY1=0.0D0 39:       DUMMY1=0.0D0
 53:       DO J3=1,MLPIN 40:       DO J3=1,MLPIN
 84: ! 71: !
 85:    DUMMY3=0.0D0 72:    DUMMY3=0.0D0
 86:    DO J4=1,MLPOUT 73:    DO J4=1,MLPOUT
 87:       Y(J4)=Y(J4)-DMAX 74:       Y(J4)=Y(J4)-DMAX
 88:       DUMMY3=DUMMY3+EXP(Y(J4)) 75:       DUMMY3=DUMMY3+EXP(Y(J4))
 89:    ENDDO 76:    ENDDO
 90:    DO J4=1,MLPOUT 77:    DO J4=1,MLPOUT
 91:       PROB(J4)=EXP(Y(J4))/DUMMY3 78:       PROB(J4)=EXP(Y(J4))/DUMMY3
 92:    ENDDO 79:    ENDDO
 93:    PMLPOUTJ1=PROB(MLPOUTJ1) 80:    PMLPOUTJ1=PROB(MLPOUTJ1)
 94:    IF (MLPPROB) THEN 81: !  IF (DEBUG) THEN
 95: !     WRITE(*,'(A,I8,A)') 'MLP3> data point ',J1,' outputs and probabilities:' 82: !     WRITE(*,'(A,I8,A)') 'MLP3> data point ',J1,' outputs and probabilities:'
 96: !     WRITE(LUNIT,'(8G15.5)') Y(1:MLPOUT),PROB(1:MLPOUT), MLPOUTJ1 83: !     WRITE(*,'(8G15.5)') Y(1:MLPOUT),PROB(1:MLPOUT)
 97: !     WRITE(*,'(100G20.10)') PROB(1:MLPOUT), MLPOUTJ1*1.0D0 84: !  ENDIF
 98:       PSAVE(J1,1:MLPOUT)=PROB(1:MLPOUT) 
 99:    ENDIF 
100:    ENERGY=ENERGY-LOG(PMLPOUTJ1) 85:    ENERGY=ENERGY-LOG(PMLPOUTJ1)
101:    IF (GTEST) THEN 86:    IF (GTEST) THEN
102: ! 87: !
103: ! We only need the probability derivative for the probability corresponding to the correct outcome for this data point 88: ! We only need the probability derivative for the probability corresponding to the correct outcome for this data point
104: ! 89: !
105:       DPCW1BG(1:MLPOUT,1:MLPHIDDEN)=0.0D0 90:       DPCW1BG(1:MLPOUT,1:MLPHIDDEN)=0.0D0
106:       DO J2=1,MLPHIDDEN 91:       DO J2=1,MLPHIDDEN
107:          DO J4=1,MLPOUT 92:          DO J4=1,MLPOUT
108:             DPCW1BG(J4,J2)=DPCW1BG(J4,J2)-PMLPOUTJ1*PROB(J4)*DYW1G(J2) 93:             DPCW1BG(J4,J2)=DPCW1BG(J4,J2)-PMLPOUTJ1*PROB(J4)*DYW1G(J2)
109:          ENDDO 94:          ENDDO
325:                   HESS((J2-1)*MLPIN+J3,(K2-1)*MLPIN+K4)= &310:                   HESS((J2-1)*MLPIN+J3,(K2-1)*MLPIN+K4)= &
326:   &               HESS((J2-1)*MLPIN+J3,(K2-1)*MLPIN+K4) & ! sum over data points311:   &               HESS((J2-1)*MLPIN+J3,(K2-1)*MLPIN+K4) & ! sum over data points
327:   &               +DPCW2BG(J2,J3)*DPCW2BG(K2,K4)/PMLPOUTJ1**2 - DUMMY1/PMLPOUTJ1312:   &               +DPCW2BG(J2,J3)*DPCW2BG(K2,K4)/PMLPOUTJ1**2 - DUMMY1/PMLPOUTJ1
328:                ENDDO313:                ENDDO
329:             ENDDO314:             ENDDO
330:          ENDDO315:          ENDDO
331:       ENDDO316:       ENDDO
332:    ENDIF317:    ENDIF
333: ENDDO318: ENDDO
334: 319: 
335:  
336: DUMMY1=0.0D0320: DUMMY1=0.0D0
337: DO J1=1,NMLP-1321: DO J1=1,NMLP-1
338:    DUMMY1=DUMMY1+X(J1)**2322:    DUMMY1=DUMMY1+X(J1)**2
339: ENDDO323: ENDDO
340: 324: 
341: ENERGY=ENERGY/MLPDATA + MLPLAMBDA*DUMMY1325: ENERGY=ENERGY/MLPDATA + MLPLAMBDA*DUMMY1
342: ! IF (DEBUG) WRITE(*,'(A,G20.10)') 'MLP3> objective function=',ENERGY326: ! IF (DEBUG) WRITE(*,'(A,G20.10)') 'MLP3> objective function=',ENERGY
343: 327: 
344: IF (MLPPROB) THEN 
345: !    CLOSE(LUNIT) 
346: !    WRITE(*,'(A)') ' MLPB3> predicted probabilities written to file probabilities' 
347: !    PRINT '(A)',' MLPB3> finished writing probabilities' 
348:    CALL ROC(PSAVE,AREA) 
349:    PRINT '(A,2G20.10)','energy, AUC=',ENERGY,AREA 
350: ENDIF 
351: DEALLOCATE(PSAVE) 
352:  
353: IF (GTEST) V(1:NMLP)=V(1:NMLP)/MLPDATA 328: IF (GTEST) V(1:NMLP)=V(1:NMLP)/MLPDATA 
354: IF (GTEST) V(1:NMLP-1)=V(1:NMLP-1) + 2.0D0*MLPLAMBDA*X(1:NMLP-1)329: IF (GTEST) V(1:NMLP-1)=V(1:NMLP-1) + 2.0D0*MLPLAMBDA*X(1:NMLP-1)
355: !330: !
356: ! Symmetrise Hessian here331: ! Symmetrise Hessian here
357: !332: !
358: IF (SECT) HESS(1:NMLP,1:NMLP)=HESS(1:NMLP,1:NMLP)/MLPDATA333: IF (SECT) HESS(1:NMLP,1:NMLP)=HESS(1:NMLP,1:NMLP)/MLPDATA
359: IF (SECT) THEN334: IF (SECT) THEN
360:    DO J1=1,NMLP-1335:    DO J1=1,NMLP-1
361:       HESS(J1,J1)=HESS(J1,J1)+2*MLPLAMBDA336:       HESS(J1,J1)=HESS(J1,J1)+2*MLPLAMBDA
362:    ENDDO337:    ENDDO
363:    DO J1=1,NMLP338:    DO J1=1,NMLP
364:       DO J2=1,J1-1339:       DO J2=1,J1-1
365:          HESS(J2,J1)=HESS(J1,J2)340:          HESS(J2,J1)=HESS(J1,J2)
366:       ENDDO341:       ENDDO
367:    ENDDO342:    ENDDO
368: ENDIF343: ENDIF
369: 344: 
370: END SUBROUTINE MLPB3345: END SUBROUTINE MLPB3
371:  
372: SUBROUTINE ROC(PSAVE,AREA) 
373: USE KEY, ONLY : MLPDATA, MLPOUTCOME, MLPOUT 
374: IMPLICIT NONE 
375: INTEGER J1, NVALS, J2 
376: DOUBLE PRECISION TPR, FPR, AREA, TPRPREV, FPRPREV, NPOS, NNEG, PTHRESH 
377: DOUBLE PRECISION PSAVE(MLPDATA,MLPOUT) 
378:  
379: NVALS=100 
380: AREA=0.0D0 
381: DO J1=0,NVALS 
382:    PTHRESH=J1/(1.0D0*NVALS) 
383:    TPRPREV=TPR 
384:    FPRPREV=FPR 
385:    TPR=0.0D0 
386:    FPR=0.0D0 
387:    NPOS=0.0D0 
388:    NNEG=0.0D0 
389:    DO J2=1,MLPDATA 
390:       IF (MLPOUTCOME(J2).LT.1.5D0) THEN    ! positive outcome: triangle 
391:          NPOS=NPOS+1.0D0 
392:          IF (PSAVE(J2,1).GT.PTHRESH) THEN   ! positive classifier, correct 
393:             TPR=TPR+1.0D0 
394:          ENDIF 
395:       ELSE 
396:          NNEG=NNEG+1.0D0 
397:          IF (PSAVE(J2,1).GT.PTHRESH) THEN ! positive classifier, but wrong 
398:             FPR=FPR+1.0D0 
399:          ENDIF 
400:       ENDIF 
401:    ENDDO 
402:    TPR=TPR/MAX(NPOS,1.0D0) 
403:    FPR=FPR/MAX(NNEG,1.0D0) 
404:    PRINT '(4G20.10)',FPR,TPR,PTHRESH,AREA 
405:    IF (J1.GT.0) AREA=AREA+(TPR+TPRPREV)*ABS(FPR-FPRPREV)/2.0D0 
406: ENDDO 
407: ! PRINT '(A,I6,A,G20.10)','# finished ROC analysis for ',MLPDATA,' data values, AUC=',AREA 
408:  
409: END SUBROUTINE ROC 
410:  


r29928/potential.f 2016-02-09 15:30:10.330654260 +0000 r29927/potential.f 2016-02-09 15:30:11.354667783 +0000
515: !                         WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF)515: !                         WRITE(*,'(2I5,2G20.10,A)') J1,J2,HESS(J1,J2),(VPLUS(J2)-VMINUS(J2))/(2.0D0*DIFF)
516: !                      ENDIF516: !                      ENDIF
517: !                   ENDDO517: !                   ENDDO
518: !                ENDDO518: !                ENDDO
519: !                STOP519: !                STOP
520:             ELSEIF (MLP3T) THEN520:             ELSEIF (MLP3T) THEN
521:                CALL MLP3(COORDS, VNEW, ENERGY, GTEST, STEST)521:                CALL MLP3(COORDS, VNEW, ENERGY, GTEST, STEST)
522:             ELSE522:             ELSE
523:                CALL FUNCTIONAL( COORDS, VNEW, ENERGY, GTEST, STEST)523:                CALL FUNCTIONAL( COORDS, VNEW, ENERGY, GTEST, STEST)
524:             ENDIF524:             ENDIF
525:             IF (PTEST.OR.MLPPROB) THEN525:             IF (PTEST) THEN
526:                 WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '526:                 WRITE(*,10) ' potential> Energy for last cycle=',ENERGY,'         '
527:                 WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         '527:                 WRITE(ESTRING,10) 'Energy for last cycle=',ENERGY,'         '
528:             ENDIF528:             ENDIF
529: !           IF (MLPPROB) STOP 
530:             ! CALL CTEST(NATOMS, COORDS, VNEW, ENERGY, GTEST, STEST)529:             ! CALL CTEST(NATOMS, COORDS, VNEW, ENERGY, GTEST, STEST)
531:             ! CALL TWODFUNC(COORDS,VNEW,ENERGY,GTEST,STEST)530:             ! CALL TWODFUNC(COORDS,VNEW,ENERGY,GTEST,STEST)
532:             ! CALL MB(COORDS,VNEW,ENERGY,GTEST,STEST)531:             ! CALL MB(COORDS,VNEW,ENERGY,GTEST,STEST)
533:             ! CALL P4DIFF(NATOMS,COORDS,VNEW,ENERGY,PARAM1,GTEST,STEST)532:             ! CALL P4DIFF(NATOMS,COORDS,VNEW,ENERGY,PARAM1,GTEST,STEST)
534:             ! CALL P4DIFF(NATOMS,COORDS,VNEW,ENERGY,PARAM1,PARAM2,GTEST,STEST)533:             ! CALL P4DIFF(NATOMS,COORDS,VNEW,ENERGY,PARAM1,PARAM2,GTEST,STEST)
535: !           CALL WATERMETHANE(COORDS,ENERGY)534: !           CALL WATERMETHANE(COORDS,ENERGY)
536: !           DIFF=1.0D-4535: !           DIFF=1.0D-4
537: !           DO J1=1,6536: !           DO J1=1,6
538: !              COORDS(J1)=COORDS(J1)+DIFF537: !              COORDS(J1)=COORDS(J1)+DIFF
539: !              CALL WATERMETHANE(COORDS,EPLUS)538: !              CALL WATERMETHANE(COORDS,EPLUS)


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0