hdiff output

r31316/mc_gbh.F90 2016-10-14 15:30:06.265472490 +0100 r31315/mc_gbh.F90 2016-10-14 15:30:06.525475959 +0100
187:   !187:   !
188:   IMPLICIT NONE188:   IMPLICIT NONE
189:   !189:   !
190:   INTEGER, INTENT(IN) :: N190:   INTEGER, INTENT(IN) :: N
191:   DOUBLE PRECISION, INTENT(IN) :: VALUES(N)191:   DOUBLE PRECISION, INTENT(IN) :: VALUES(N)
192:   INTEGER, INTENT(OUT) :: I192:   INTEGER, INTENT(OUT) :: I
193:   !193:   !
194:   LOGICAL :: SELECTIVE194:   LOGICAL :: SELECTIVE
195:   DOUBLE PRECISION :: PSUM(N), X, Y, DPRAND, ELOWEST195:   DOUBLE PRECISION :: PSUM(N), X, Y, DPRAND, ELOWEST
196:   !196:   !
197:   ELOWEST=MINVAL(VALUES)197:   ELOWEST=MINVAL(VALUES(0:N))
198:   IF (MINLOC(VALUES,1)==N) THEN198:   IF (MINLOC(VALUES,1)==N) THEN
199:      SELECTIVE=.FALSE.199:      SELECTIVE=.FALSE.
200:   ELSE200:   ELSE
201:      SELECTIVE=.TRUE.201:      SELECTIVE=.TRUE.
202:   ENDIF202:   ENDIF
203:   !203:   !
204:   X=0.0D0 ! initialise total sum204:   X=0.0D0 ! initialise total sum
205:   DO I=1,N-1205:   DO I=1,N
206:      IF(SELECTIVE) THEN206:      IF(SELECTIVE) THEN
207:         IF(VALUES(I) < VALUES(N)) THEN207:         IF(VALUES(I) < VALUES(N)) THEN
208:            Y = DEXP(-(VALUES(I)-ELOWEST)/TEMP(1))208:            Y = DEXP(-(VALUES(I)-ELOWEST)/TEMP(1))
209:         ELSE209:         ELSE
210:            Y = 0.0D0 ! avoid selection 210:            Y = 0.0D0 ! avoid selection 
211:         ENDIF211:         ENDIF
212:      ELSE212:      ELSE
213:         Y = DEXP(-(VALUES(I)-ELOWEST)/TEMP(1))213:         Y = DEXP(-(VALUES(I)-ELOWEST)/TEMP(1))
214:      ENDIF214:      ENDIF
215:      X = X + Y215:      X = X + Y
216:      PSUM(I) = X ! store partial sum216:      PSUM(I) = X ! store partial sum
217:   ENDDO217:   ENDDO
218:   !218:   !
219:   IF(SELECTIVE) THEN219:   X=X*DPRAND()
220:      PSUM(N) = PSUM(N-1) 
221:   ELSE 
222:      PSUM(N) = DBLE(N-1) 
223:   ENDIF 
224:   ! 
225:   X=PSUM(N)*DPRAND() 
226:   !220:   !
227:   I=1221:   I=1
228:   DO WHILE (X > PSUM(I))222:   DO WHILE (X > PSUM(I))
229:      I=I+1223:      I=I+1
230:   ENDDO224:   ENDDO
231:   !225:   !
232:   !IF(QALCSV) THEN226:   !IF(QALCSV) THEN
233:   !   WRITE(MYUNIT, *) 'choose_from_list> vals=', VALUES227:   !   WRITE(MYUNIT, *) 'choose_from_list> vals=', VALUES
234:   !   WRITE(MYUNIT, *) 'choose_from_list> psum=', PSUM228:   !   WRITE(MYUNIT, *) 'choose_from_list> psum=', PSUM
235:   !   WRITE(MYUNIT, *) 'choose_from_list> choice=', I229:   !   WRITE(MYUNIT, *) 'choose_from_list> choice=', I


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0