Given below (lintel Fortran compiler) FORTRAN 'do loop' takes 2 sec to compute if I dont use open mp directives.

But using open-mp as shown below takes 60 sec! any idea why such a regression in performance ? I have a core 2 duo processor.

i,s,m , j_val , b , track(:,:) are integers.

Perm_mat is a double precision , big dense 25 mb matrix

and h,h1,oneby6 are double precision constants

C(s:m,4) is double precision

Its basically getting the 4 coefficents of a spline polynomial- interpolation

!-----------------------------------------

!$OMP PARALLEL DO PRIVATE(I) DEFAULT(SHARED)

do i=s,m

j_val = track(j_imd(i,body),4) + b

C(i,1) = Perm_Mat(j_val,1)

C(i,2) = ( Perm_Mat((j_val+1),1) - Perm_Mat(j_val,1) )*h1 - h*oneby6*( & 2.00d0*Perm_Mat((j_val),2) + Perm_Mat((j_val+1),2) )

C(i,3) = Perm_Mat(j_val,2)*oneby2

C(i,4) = ( Perm_Mat((j_val+1),2) - Perm_Mat((j_val),2) )*h1*oneby6

end do

!$OMP END PARALLEL DO

!-------------------------------------------------------------------------

tHANKS ALL