View Single Post
Old 12-12-2009, 15:44   #5
Lucrezio
Senior Member
 
L'Avatar di Lucrezio
 
Iscritto dal: Dec 2003
Città: Trento, Pisa... ultimamente il mio studio...
Messaggi: 4389
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
Lucrezio è offline   Rispondi citando il messaggio o parte di esso