hdiff output

r29821/MLP3.f90 2016-01-25 10:30:11.829612546 +0000 r29820/MLP3.f90 2016-01-25 10:30:12.021615113 +0000
  1: SUBROUTINE MLP3(X,V,ENERGY,GTEST,SECT)  1: SUBROUTINE MLP3(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  7: DOUBLE PRECISION X(NMLP), V(NMLP), ENERGY, DUMMY1, DUMMY2, DUMMY3, DUMMY4
  8: DOUBLE PRECISION Y(MLPOUT), PROB(MLPOUT), PMLPOUTJ1, DMAX  8: DOUBLE PRECISION Y(MLPOUT), PROB(MLPOUT), PMLPOUTJ1
  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: INTEGER MLPOUTJ1, MLPOFFSET 11: INTEGER MLPOUTJ1, MLPOFFSET
 12: INTEGER GETUNIT, LUNIT, J1, J2, J3, J4, K4, K2, K3, J5 12: INTEGER GETUNIT, LUNIT, J1, J2, J3, J4, K4, K2, K3, J5
 13:  13: 
 14: ! 14: !
 15: ! Variables are ordered  15: ! Variables are ordered 
 16: ! w^2_{jk} at (j-1)*MLPIN+k 16: ! w^2_{jk} at (j-1)*MLPIN+k
 17: !   up to MLPHIDDEN*MLPIN, then 17: !   up to MLPHIDDEN*MLPIN, then
 18: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j 18: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j
 26: DO J1=1,MLPDATA 26: DO J1=1,MLPDATA
 27:    MLPOUTJ1=MLPOUTCOME(J1) 27:    MLPOUTJ1=MLPOUTCOME(J1)
 28:    DO J2=1,MLPHIDDEN 28:    DO J2=1,MLPHIDDEN
 29:       DUMMY1=0.0D0 29:       DUMMY1=0.0D0
 30:       DO J3=1,MLPIN 30:       DO J3=1,MLPIN
 31:          DUMMY1=DUMMY1+X((J2-1)*MLPIN+J3)*MLPDAT(J1,J3) 31:          DUMMY1=DUMMY1+X((J2-1)*MLPIN+J3)*MLPDAT(J1,J3)
 32:       ENDDO 32:       ENDDO
 33:       TANHSUM(J2)=TANH(DUMMY1)  33:       TANHSUM(J2)=TANH(DUMMY1) 
 34:       DYW1G(J2)=TANHSUM(J2) 34:       DYW1G(J2)=TANHSUM(J2)
 35: !     PRINT *,'DUMMY1=',DUMMY1 35: !     PRINT *,'DUMMY1=',DUMMY1
 36: !     IF (ABS(DUMMY1).GT.20.0D0) THEN 36:       IF (ABS(DUMMY1).GT.20.0D0) THEN
 37: !        SECH2(J2)=0.0D0 37:          SECH2(J2)=0.0D0
 38: !     ELSE 38:       ELSE
 39:          SECH2(J2)=1.0D0/COSH(DUMMY1)**2  39:          SECH2(J2)=1.0D0/COSH(DUMMY1)**2 
 40: !     ENDIF 40:       ENDIF
 41:    ENDDO 41:    ENDDO
 42: !  DUMMY3=0.0D0 42:    DUMMY3=0.0D0
 43:    DMAX=-1.0D100 
 44:    DO J4=1,MLPOUT 43:    DO J4=1,MLPOUT
 45:       DUMMY2=0.0D0 44:       DUMMY2=0.0D0
 46:       DO J2=1,MLPHIDDEN 45:       DO J2=1,MLPHIDDEN
 47:          DO J3=1,MLPIN 46:          DO J3=1,MLPIN
 48:             DYW2G(J4,J2,J3)=X( MLPOFFSET + (J4-1)*MLPHIDDEN + J2 ) * MLPDAT(J1,J3)*SECH2(J2) 47:             DYW2G(J4,J2,J3)=X( MLPOFFSET + (J4-1)*MLPHIDDEN + J2 ) * MLPDAT(J1,J3)*SECH2(J2)
 49:          ENDDO 48:          ENDDO
 50:          DUMMY2=DUMMY2+X(MLPOFFSET+(J4-1)*MLPHIDDEN+J2)*TANHSUM(J2) 49:          DUMMY2=DUMMY2+X(MLPOFFSET+(J4-1)*MLPHIDDEN+J2)*TANHSUM(J2)
 51:       ENDDO 50:       ENDDO
 52: !     IF (DUMMY2.GT.50.0D0) DUMMY2=50.0D0 ! to prevent FPE 51:       IF (DUMMY2.GT.50.0D0) DUMMY2=50.0D0 ! to prevent FPE
 53:       IF (DUMMY2.GT.DMAX) DMAX=DUMMY2 
 54:       Y(J4)=DUMMY2 52:       Y(J4)=DUMMY2
 55: !     DUMMY3=DUMMY3+EXP(DUMMY2) 53:       DUMMY3=DUMMY3+EXP(DUMMY2)
 56:    ENDDO   54:    ENDDO  
 57: ! 
 58: ! Factor DMAX out of the exponentials to prevent overflow. 
 59: ! 
 60:    DUMMY3=0.0D0 
 61:    DO J4=1,MLPOUT 
 62:       Y(J4)=Y(J4)-DMAX 
 63:       DUMMY3=DUMMY3+EXP(Y(J4)) 
 64:    ENDDO 
 65:    DO J4=1,MLPOUT 55:    DO J4=1,MLPOUT
 66:       PROB(J4)=EXP(Y(J4))/DUMMY3 56:       PROB(J4)=EXP(Y(J4))/DUMMY3
 67:    ENDDO 57:    ENDDO
 68:    PMLPOUTJ1=PROB(MLPOUTJ1) 58:    PMLPOUTJ1=PROB(MLPOUTJ1)
 69: !  IF (DEBUG) THEN 59: !  IF (DEBUG) THEN
 70: !     WRITE(*,'(A,I8,A)') 'MLP3> data point ',J1,' outputs and probabilities:' 60: !     WRITE(*,'(A,I8,A)') 'MLP3> data point ',J1,' outputs and probabilities:'
 71: !     WRITE(*,'(8G15.5)') Y(1:MLPOUT),PROB(1:MLPOUT) 61: !     WRITE(*,'(8G15.5)') Y(1:MLPOUT),PROB(1:MLPOUT)
 72: !  ENDIF 62: !  ENDIF
 73:    ENERGY=ENERGY-LOG(PMLPOUTJ1) 63:    ENERGY=ENERGY-LOG(PMLPOUTJ1)
 74:    IF (GTEST) THEN 64:    IF (GTEST) THEN


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0