Loop 25 is to be done concurrently by the two available processors. The work inside loop 30 can be done by the vector pipeline associated with each processor. There are three directives being used. The loop summary analysis of the compiled code is given in the lower part. Loops 12 and 10 are just initializing the temperature array to zero.
All calculations are independent.
The outer time loop, loop 20, was not done in either concurrent or vector mode. This loop has a serious data dependency because in order to compute the temperature at the next time step, one must know the temperature at the previous time. Loop 25 was done concurrently as was directed. Also, loop 30 was done using a vector pipeline. In order to see the effect of concurrent and vector calculations, we did four runs which are recorded in the table below.