Technical data

Parallel Programming Exercise
133
TOTAL_DIST_SQ = DIST_SQ1 + DIST_SQ2 + DIST_SQ3
IF (TOTAL_DIST_SQ .LE. THRESHOLD_SQ) THEN
C
C ADD THE FORCE OF THE NEARBY ATOM ACTING ON THIS
C ATOM ...
C
PARTIAL(1,I,THREAD_INDEX) = PARTIAL(1,I, THREAD_INDEX)
+ + WEIGHT(I)
PARTIAL(2,I, THREAD_INDEX) = PARTIAL(2,I, THREAD_INDEX)
+ + WEIGHT(I)
PARTIAL(3,I,THREAD_INDEX) = PARTIAL(3,I, THREAD_INDEX)
+ + WEIGHT(I)
C
C
C
PARTIAL(1,J,THREAD_INDEX) = PARTIAL(1,J, THREAD_INDEX)
+ + WEIGHT(J)
PARTIAL(2,J,THREAD_INDEX) = PARTIAL(2,J, THREAD_INDEX)
+ + WEIGHT(J)
PARTIAL(3,J,THREAD_INDEX) = PARTIAL(3,J, THREAD_INDEX)
+ + WEIGHT(J)
END IF
END DO
END DO
ENDDO
C
C TOTAL UP THE PARTIAL SUMS
C
DO THREAD_INDEX = 1, MP_SET_NUMTHREADS
DO I = 1, NUM_ATOMS
FORCE(I,1) = FORCE(I,1) + PARTIAL(1,I,THREAD_INDEX)
FORCE(I,2) = FORCE(I,2) + PARTIAL(2,I,THREAD_INDEX)
FORCE(I,3) = FORCE(I,3) + PARTIAL(3,I,THREAD_INDEX)
END DO
END DO
RETURN
END