hdiff output

r32410/geopt.f 2017-04-27 14:30:30.482913300 +0100 r32409/geopt.f 2017-04-27 14:30:31.382924913 +0100
447:                IF (BFGSTST.OR.(INR.EQ.2)) NEXMODES=NEXMODES+1447:                IF (BFGSTST.OR.(INR.EQ.2)) NEXMODES=NEXMODES+1
448:                IF (BFGSMINT) NEXMODES=NEXMODES+2448:                IF (BFGSMINT) NEXMODES=NEXMODES+2
449:             ENDIF449:             ENDIF
450:             IF (STEALTHYT) THEN450:             IF (STEALTHYT) THEN
451:                IF (ENERGY.LT.1.0D-8) THEN451:                IF (ENERGY.LT.1.0D-8) THEN
452:                   NEXMODES=NATOMS*3 - STM*2452:                   NEXMODES=NATOMS*3 - STM*2
453:                ELSE453:                ELSE
454:                   NEXMODES=3454:                   NEXMODES=3
455:                ENDIF455:                ENDIF
456:             ENDIF456:             ENDIF
457:             IF (MIEFT .OR. NOTRANSROTT) NEXMODES=0457:             IF (VARIABLES.OR.MIEFT .OR. NOTRANSROTT) NEXMODES=0
458:             IF (VARIABLES) NEXMODES=NZERO 
459:             IF (BFGSTST) NEXMODES=NEXMODES+1 !sf344> so that the log product for transition state geometries can be calculated and dumped correctly458:             IF (BFGSTST) NEXMODES=NEXMODES+1 !sf344> so that the log product for transition state geometries can be calculated and dumped correctly
460:             WRITE(*,'(A,I6)') ' geopt> Number of zero/imaginary eigenvalues assumed to be ',NEXMODES459:             WRITE(*,'(A,I6)') ' geopt> Number of zero/imaginary eigenvalues assumed to be ',NEXMODES
461: 460: 
462: ! Keyword-specific block461: ! Keyword-specific block
463:             IF (LOWESTFRQT) THEN462:             IF (LOWESTFRQT) THEN
464: C463: C
465: C  Calculate lowest non-zero eigenvalue and dump to min.data.info file464: C  Calculate lowest non-zero eigenvalue and dump to min.data.info file
466: C  No mass-weighting here!465: C  No mass-weighting here!
467: C  'U' specifies that the upper triangle contains the Hessian.466: C  'U' specifies that the upper triangle contains the Hessian.
468: C  Need to save HESS before this call and restore afterwards.467: C  Need to save HESS before this call and restore afterwards.


r32410/keywords.f 2017-04-27 14:30:30.710916240 +0100 r32409/keywords.f 2017-04-27 14:30:31.610927855 +0100
4140:                WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'4140:                WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
4141:                WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)4141:                WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)
4142:                DO J1=1,MLPIN4142:                DO J1=1,MLPIN
4143:                   MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)4143:                   MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
4144:                ENDDO4144:                ENDDO
4145:             ENDIF4145:             ENDIF
4146:             DEALLOCATE(MLPMEAN)4146:             DEALLOCATE(MLPMEAN)
4147:             MLPDONE=.TRUE.4147:             MLPDONE=.TRUE.
4148:          ELSE IF (WORD.EQ.'NOREGBIAS') THEN4148:          ELSE IF (WORD.EQ.'NOREGBIAS') THEN
4149:             NOREGBIAS=.TRUE.4149:             NOREGBIAS=.TRUE.
4150:          ELSE IF ((WORD.EQ.'MLPVB3').OR.(WORD.EQ.'MLPVB3NN')) THEN4150:          ELSE IF (WORD.EQ.'MLPVB3') THEN
4151:             MLPVB3T=.TRUE.4151:             MLPVB3T=.TRUE.
4152:             CALL READI(MLPIN)      ! number of inputs (data items after outcome)4152:             CALL READI(MLPIN)      ! number of inputs (data items after outcome)
4153:             CALL READI(MLPSTART) ! starting position in data list, not counting outcome4153:             CALL READI(MLPSTART) ! starting position in data list, not counting outcome
4154:             CALL READI(MLPHIDDEN)4154:             CALL READI(MLPHIDDEN)
4155:             CALL READI(MLPOUT)4155:             CALL READI(MLPOUT)
4156:             CALL READI(MLPDATA)4156:             CALL READI(MLPDATA)
4157:             IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)4157:             IF (NITEMS.GT.5) CALL READF(MLPLAMBDA)
4158:             WRITE(*,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',4158:             WRITE(*,'(A,5I8,G20.10)') ' keywords> MLP3 vector bias nodes and Nin, Ninstart, Nhidden, Nout, Ndata, lambda=',
4159:      &                                MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA4159:      &                                MLPIN,MLPSTART,MLPHIDDEN,MLPOUT,MLPDATA,MLPLAMBDA
4160:             NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT4160:             NMLP=MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT
4178:             IF (MLPNORM) THEN4178:             IF (MLPNORM) THEN
4179:                MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA4179:                MLPMEAN(1:MLPIN)=MLPMEAN(1:MLPIN)/MLPDATA
4180:                WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'4180:                WRITE(*,'(A)') 'keyword> Rescaling inputs by mean absolute values:'
4181:                WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)4181:                WRITE(*,'(6G20.10)') MLPMEAN(1:MLPIN)
4182:                DO J1=1,MLPIN4182:                DO J1=1,MLPIN
4183:                   MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)4183:                   MLPDAT(1:MLPDATA,J1)=MLPDAT(1:MLPDATA,J1)/MLPMEAN(J1)
4184:                ENDDO4184:                ENDDO
4185:             ENDIF4185:             ENDIF
4186:             DEALLOCATE(MLPMEAN)4186:             DEALLOCATE(MLPMEAN)
4187:             MLPDONE=.TRUE.4187:             MLPDONE=.TRUE.
4188: ! 
4189: ! Nearest-neighbour model - freeze hidden node to i/o node weights except for "nearest-neighbours". 
4190: ! 
4191: ! 
4192: ! Variables are ordered 
4193: ! w^2_{jk} at (j-1)*MLPIN+k 
4194: !   up to MLPHIDDEN*MLPIN, then 
4195: ! w^1_{ij} at MLPHIDDEN*MLPIN + (i-1)*MLPHIDDEN+j 
4196: !   up to MLPHIDDEN*MLPIN + MLPOUT*MLPHIDDEN 
4197: ! w^bh_j at MLPHIDDEN*(MLPIN+MLPOUT)+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN 
4198: ! w^bo_i at MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+1 to MLPHIDDEN*(MLPIN+MLPOUT)+MLPHIDDEN+MLPOUT 
4199: ! 
4200:             IF (WORD.EQ.'MLPVB3NN') THEN 
4201:                FREEZE=.TRUE. 
4202:                NFREEZE=MLPHIDDEN*(MLPIN+MLPOUT)-2*MLPHIDDEN 
4203:                FROZEN(1:MLPHIDDEN*(MLPIN+MLPOUT))=.TRUE. 
4204:                DO J1=1,MLPHIDDEN 
4205:                   J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPIN-1)-MLPIN)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to input 
4206:                   J3=(J1-1)*MLPIN+J2 
4207:                   FROZEN(J3)=.FALSE. 
4208:                   PRINT '(A,I10,A,I10,A,I10)','keywords> Unfrozen weight ',J3,' input ',J2,' to hidden node ',J1 
4209:                   J2=NINT(1.0D0*(MLPHIDDEN+J1*(MLPOUT-1)-MLPOUT)/(MLPHIDDEN-1)) ! unfrozen weight for hidden node J1 to output 
4210:                   J3=MLPHIDDEN*MLPIN+(J2-1)*MLPHIDDEN+J1 
4211:                   PRINT '(A,I10,A,I10,A,I10)','keywords> Unfrozen weight ',J3,' hidden node ',J1,' to output ',J2 
4212:                   FROZEN(J3)=.FALSE. 
4213:                ENDDO 
4214:             ENDIF 
4215:          ELSE IF (WORD.EQ.'MLPNEWREG') THEN4188:          ELSE IF (WORD.EQ.'MLPNEWREG') THEN
4216:             MLPNEWREG=.TRUE.4189:             MLPNEWREG=.TRUE.
4217:          ELSE IF (WORD.EQ.'MLPPROB') THEN4190:          ELSE IF (WORD.EQ.'MLPPROB') THEN
4218:             MLPPROB=.TRUE.4191:             MLPPROB=.TRUE.
4219: ! 4192: ! 
4220: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the4193: ! MLPNORM directs OPTIM to rescale the input data columns by dividing each one by the
4221: ! average of the mean magnitude4194: ! average of the mean magnitude
4222: ! 4195: ! 
4223:          ELSE IF (WORD.EQ.'MLPNORM') THEN4196:          ELSE IF (WORD.EQ.'MLPNORM') THEN
4224:             MLPNORM=.TRUE.4197:             MLPNORM=.TRUE.


r32410/nnutils.f90 2017-04-27 14:30:30.030907459 +0100 r32409/nnutils.f90 2017-04-27 14:30:30.934919132 +0100
1186:                IF (.NOT.FILTH==0) THEN1186:                IF (.NOT.FILTH==0) THEN
1187:                     FILENAME=TRIM(FILENAME)//'.'//TRIM(ADJUSTL(FILTHSTR))1187:                     FILENAME=TRIM(FILENAME)//'.'//TRIM(ADJUSTL(FILTHSTR))
1188:                ENDIF1188:                ENDIF
1189:                OPEN(UNIT=UNIT,FILE=FILENAME,STATUS='replace')1189:                OPEN(UNIT=UNIT,FILE=FILENAME,STATUS='replace')
1190: !         ENDIF1190: !         ENDIF
1191: 1191: 
1192:           DUMMY=0.0D01192:           DUMMY=0.0D0
1193:           WRITE(UNIT=UNIT,FMT='(2g24.13)') dummy,eee(1)1193:           WRITE(UNIT=UNIT,FMT='(2g24.13)') dummy,eee(1)
1194:           DO I=2,NIMAGE+11194:           DO I=2,NIMAGE+1
1195:                DUMMY = DUMMY + DVEC(I-1)1195:                DUMMY = DUMMY + DVEC(I-1)
 1196:                PRINT *,'I,DUMMY,EEE,DVEC=',I,DUMMY,EEE(I),DVEC(I-1)
1196:                WRITE(UNIT=UNIT,FMT='(2g24.13)') dummy,eee(i)1197:                WRITE(UNIT=UNIT,FMT='(2g24.13)') dummy,eee(i)
1197:           ENDDO1198:           ENDDO
1198:           DUMMY = DUMMY + DVEC(NIMAGE+1)1199:           DUMMY = DUMMY + DVEC(NIMAGE+1)
1199:           WRITE(UNIT=UNIT,FMT='(2g24.13)') dummy,eee(Nimage+2)1200:           WRITE(UNIT=UNIT,FMT='(2g24.13)') dummy,eee(Nimage+2)
1200: 1201: 
1201: !         IF (.NOT.PRESENT(UNITIN)) THEN1202: !         IF (.NOT.PRESENT(UNITIN)) THEN
1202:                CLOSE(UNIT)1203:                CLOSE(UNIT)
1203: !         ENDIF1204: !         ENDIF
1204:           PRINT *, 'writeprofile> NEB profile was saved to file "'//trim(filename)//'"'1205:           PRINT *, 'writeprofile> NEB profile was saved to file "'//trim(filename)//'"'
1205:      END SUBROUTINE WRITEPROFILE1206:      END SUBROUTINE WRITEPROFILE


r32410/OPTIM.F 2017-04-27 14:30:30.258910410 +0100 r32409/OPTIM.F 2017-04-27 14:30:31.158922025 +0100
 43: !     USE BENCHMARKS, ONLY : MINBMT, MINBM 43: !     USE BENCHMARKS, ONLY : MINBMT, MINBM
 44: ! hk286 44: ! hk286
 45:       USE GENRIGID 45:       USE GENRIGID
 46:  46: 
 47:       IMPLICIT NONE 47:       IMPLICIT NONE
 48: ! subroutine parameters   48: ! subroutine parameters  
 49:       INTEGER F1,F2 49:       INTEGER F1,F2
 50:       CHARACTER(LEN=80) FLSTRING 50:       CHARACTER(LEN=80) FLSTRING
 51:       CHARACTER(LEN=2) DUMMYS 51:       CHARACTER(LEN=2) DUMMYS
 52:  52: 
 53:       INTEGER J1, J2, NPCALL, ECALL, FCALL, SCALL, HORDER, NATOMSSAVE, SUNIT, FUNIT, MULTIINR, INRSAVE 53:       INTEGER J1, J2, NPCALL, ECALL, FCALL, SCALL, HORDER, NATOMSSAVE, SUNIT, FUNIT, MULTIINR
 54:       DOUBLE PRECISION VNEW(NOPT), ENERGY, EVALMIN, RMS, VECS(NOPT), QSAVE(NOPT), 54:       DOUBLE PRECISION VNEW(NOPT), ENERGY, EVALMIN, RMS, VECS(NOPT), QSAVE(NOPT),
 55:      1  QPLUS(NOPT), LGDUMMY(NOPT),RMSINITIAL,RMSFINAL,E1,E2, RMAT(3,3), 55:      1  QPLUS(NOPT), LGDUMMY(NOPT),RMSINITIAL,RMSFINAL,E1,E2, RMAT(3,3),
 56:      2  DIST, OVEC(3), H1VEC(3), H2VEC(3), Q(NOPT), EINITIAL, EFINAL,  56:      2  DIST, OVEC(3), H1VEC(3), H2VEC(3), Q(NOPT), EINITIAL, EFINAL, 
 57:      3  ETIME, FTIME, STIME, DPRAND, DCOORDS(NOPT), INTFREEZETOLSAVE, 57:      3  ETIME, FTIME, STIME, DPRAND, DCOORDS(NOPT), INTFREEZETOLSAVE,
 58:      4  ETS, EPLUS, EMINUS, SLENGTH, DISP, GAMMA, NTILDE,  58:      4  ETS, EPLUS, EMINUS, SLENGTH, DISP, GAMMA, NTILDE, 
 59:      5  FRQSTS(NOPT), FRQSPLUS(NOPT), FRQSMINUS(NOPT), QMINUS(NOPT), DISTSF 59:      5  FRQSTS(NOPT), FRQSPLUS(NOPT), FRQSMINUS(NOPT), QMINUS(NOPT), DISTSF
 60:       DOUBLE PRECISION THTEMP(NOPT) 60:       DOUBLE PRECISION THTEMP(NOPT)
 61:       CHARACTER ESTRING*87, GPSTRING*80, NSTRING*80, FSTRING*80, FNAME*13, FNAMEV*18,  61:       CHARACTER ESTRING*87, GPSTRING*80, NSTRING*80, FSTRING*80, FNAME*13, FNAMEV*18, 
 62:      1          ITSTRING*22, EOFSSTRING*15 62:      1          ITSTRING*22, EOFSSTRING*15
 63:       CHARACTER(LEN=80) FNAMEF 63:       CHARACTER(LEN=80) FNAMEF
588:                CALL POTENTIAL(XRIGIDCOORDS,EFINAL,LGDUMMY,.TRUE.,.FALSE.,RMSFINAL,.FALSE.,.FALSE.)588:                CALL POTENTIAL(XRIGIDCOORDS,EFINAL,LGDUMMY,.TRUE.,.FALSE.,RMSFINAL,.FALSE.,.FALSE.)
589:                ATOMRIGIDCOORDT = .TRUE.589:                ATOMRIGIDCOORDT = .TRUE.
590:             ELSE590:             ELSE
591:                CALL POTENTIAL(FIN,EFINAL,LGDUMMY,.TRUE.,.FALSE.,RMSFINAL,.FALSE.,.FALSE.)591:                CALL POTENTIAL(FIN,EFINAL,LGDUMMY,.TRUE.,.FALSE.,RMSFINAL,.FALSE.,.FALSE.)
592:             ENDIF592:             ENDIF
593:             WRITE(*,'(a,2(g20.10,a))') ' OPTIM> Final energy  =',  EFINAL,' RMS force=',RMSfinal593:             WRITE(*,'(a,2(g20.10,a))') ' OPTIM> Final energy  =',  EFINAL,' RMS force=',RMSfinal
594:             IF (MAX(RMSINITIAL,RMSFINAL)>GMAX.AND.(BFGSMINT.OR.BSMIN.OR.RKMIN)) THEN ! SAT594:             IF (MAX(RMSINITIAL,RMSFINAL)>GMAX.AND.(BFGSMINT.OR.BSMIN.OR.RKMIN)) THEN ! SAT
595:                PRINT '(A)','OPTIM> Bad endpoints supplied - RMS force too big!'595:                PRINT '(A)','OPTIM> Bad endpoints supplied - RMS force too big!'
596:                PRINT '(A,G20.10)','OPTIM> Acceptable RMS force would be less or equal to ',GMAX596:                PRINT '(A,G20.10)','OPTIM> Acceptable RMS force would be less or equal to ',GMAX
597:                IF (REOPTIMISEENDPOINTS) THEN597:                IF (REOPTIMISEENDPOINTS) THEN
598:                   INRSAVE=INR 
599:                   INR=0 
600:                   IF (RMSINITIAL>GMAX.AND.(BFGSMINT.OR.BSMIN.OR.RKMIN)) THEN598:                   IF (RMSINITIAL>GMAX.AND.(BFGSMINT.OR.BSMIN.OR.RKMIN)) THEN
601:                      KNOWE=.FALSE.599:                      KNOWE=.FALSE.
602:                      KNOWG=.FALSE.600:                      KNOWG=.FALSE.
603:                      BFGSTSSAVE=BFGSTST601:                      BFGSTSSAVE=BFGSTST
604:                      BFGSTST=.FALSE.602:                      BFGSTST=.FALSE.
605: ! hk286603: ! hk286
606:                      IF (RIGIDINIT) THEN604:                      IF (RIGIDINIT) THEN
607:                         ATOMRIGIDCOORDT = .FALSE.605:                         ATOMRIGIDCOORDT = .FALSE.
608:                         CALL TRANSFORMCTORIGID (Q, XRIGIDCOORDS)606:                         CALL TRANSFORMCTORIGID (Q, XRIGIDCOORDS)
609:                         CALL GEOPT(FNAMEF,EFNAME,XRIGIDCOORDS,VECS,MFLAG,ENERGY,EVALMIN,VNEW)607:                         CALL GEOPT(FNAMEF,EFNAME,XRIGIDCOORDS,VECS,MFLAG,ENERGY,EVALMIN,VNEW)
628:                         ATOMRIGIDCOORDT = .TRUE.626:                         ATOMRIGIDCOORDT = .TRUE.
629:                         CALL TRANSFORMRIGIDTOC (1, NRIGIDBODY, FIN, XRIGIDCOORDS)627:                         CALL TRANSFORMRIGIDTOC (1, NRIGIDBODY, FIN, XRIGIDCOORDS)
630:                      ELSE628:                      ELSE
631:                         CALL GEOPT(FNAMEF,EFNAME,FIN,VECS,MFLAG,ENERGY,EVALMIN,VNEW)629:                         CALL GEOPT(FNAMEF,EFNAME,FIN,VECS,MFLAG,ENERGY,EVALMIN,VNEW)
632:                      ENDIF630:                      ENDIF
633:                      BFGSTST=BFGSTSSAVE631:                      BFGSTST=BFGSTSSAVE
634:                   ENDIF632:                   ENDIF
635:                   KNOWE=.FALSE.633:                   KNOWE=.FALSE.
636:                   KNOWG=.FALSE.634:                   KNOWG=.FALSE.
637:                   KNOWH=.FALSE.635:                   KNOWH=.FALSE.
638:                   INR=INRSAVE 
639:                   REOPTIMISEENDPOINTS=.FALSE.636:                   REOPTIMISEENDPOINTS=.FALSE.
640:                   GOTO 555637:                   GOTO 555
641:                ELSE638:                ELSE
642:                   CALL TSUMMARY639:                   CALL TSUMMARY
643:                   CALL FLUSH(6)640:                   CALL FLUSH(6)
644:                   GOTO 765641:                   GOTO 765
645:                ENDIF642:                ENDIF
646:             ELSE IF (MAX(RMSINITIAL,RMSFINAL)>CONVR) THEN ! SAT643:             ELSE IF (MAX(RMSINITIAL,RMSFINAL)>CONVR) THEN ! SAT
647:                PRINT '(A)', 'OPTIM> Bad endpoints supplied - RMS force too big!'644:                PRINT '(A)', 'OPTIM> Bad endpoints supplied - RMS force too big!'
648:                PRINT '(A,G20.10)', ' OPTIM> Acceptable RMS force would be less or equal to ',CONVR645:                PRINT '(A,G20.10)', ' OPTIM> Acceptable RMS force would be less or equal to ',CONVR


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0