I was trying to parallel the following code in the following way:
DO 90, J = 1, N C$OMP Parallel Do Schedule(dynamic,1) Default(shared) C$OMP+ Private(L,I,TEMP) Reduction(+:C) DO 80, L = 1, K IF( B( L, J ).NE.ZERO )THEN TEMP = ALPHA*B( L, J ) DO 70, I = 1, M C( I, J ) = C( I, J ) + TEMP*A(I,L) 70 CONTINUE END IF 80 CONTINUE C$OMP End Parallel Do 90 CONTINUE
And I tried to compile this by using:
pgf77 -i8 -mp -O2 -tp p7-64 -time -fast -o xgemm.exe xgemm.F -lacml -lpthread -lm -lc
the version of pgf77 is PGI/7.1.6, I have got the following error message:
PGFTN-S-0155-Reduction variable must be a scalar variable - c (xgemm.f: 346)
Does this mean this version of compiler doesn’t support array reduction? If not, which version of pgf77 I can use to compile this code? Or if any of the pgf77 compiler doesn’t support this array reduction, how can I parallel this part (I have to use pgf77 only)? Thank you very much.