Era effettivamente una boiata!
Posto la soluzione, così per curiosità:
Codice:
C$omp parallel do
C$omp& shared(VVx,VVy,VVz,Vel,NThr,NStep,IFr)
C$omp& private (I,J)
do I = 1, Lenght+1, IFr
NThr = OMP_GET_NUM_THREADS()
do J = 1, NStep - I + 1, IFr
Fac = Dble(NStep-I+1)/Dble(NStep*(NStep+1)/2)
VVx(I) = VVx(I) + Fac*Vel(1,IAt1,J)*Vel(1,IAt2,J+I-1)
VVy(I) = VVy(I) + Fac*Vel(2,IAt1,J)*Vel(2,IAt2,J+I-1)
VVz(I) = VVz(I) + Fac*Vel(3,IAt1,J)*Vel(3,IAt2,J+I-1)
enddo
ACF(I) = (VVx(I)+VVy(I)+VVz(I))/Three
enddo
C$omp end parallel do
Bisogna aggiungere anche
Codice:
include 'omp_lib.h'
Ho compilato con il comando
Codice:
ifort -o acf -O3 -openmp acf.f
Grazie a tutti!
__________________
"Expedit esse deos, et, ut expedit, esse putemus" (Ovidio)
Il mio "TESSORO": SuperMicro 733TQ, SuperMicro X8DAI I5520, 2x Xeon Quad E5620 Westmere, 12x Kingston 4GB DDR3 1333MHz, 4x WD 1Tb 32MB 7.2krpm