串行改并行的问题

现在有下面的fortran代码,请问如何改写成并行?或者是否可以让部分代码并行运行?初学CUDA和并行,请大家帮忙提一下思路,谢谢了~

yy = 0
do f = f1, f2
do e = e1, e2
do d = d1, d2

y1 = 0
do a = a1, a2
do j = j1, j2
y1 = y1 + 1
scr1(y1) = x1(a,f,j,d)
enddo
enddo

do c = c1, c2
do b = b1, b2
y1 = 0
y2 = 0
do j = j1, j2
y2 = y2 + 1
scr2(y2) = x2(c,j,e,b)
enddo

do a = a1, a2
etemp = 0.0

y2 = 0
do j = j1, j2
y1 = y1 + 1
y2 = y2 + 1
etemp = etemp + scr1(y1)*scr2(y2)
enddo

yy = yy + 1
y(yy) = etemp

enddo
enddo
enddo
enddo
enddo
enddo

[ 本帖最后由 mythal 于 2010-4-1 11:29 编辑 ]

那么多层循环!:sweat2:
由于scr1有数据依赖,你可以考虑在
do a = a1, a2
etemp = 0.0

前分离为两个内核,当然我不知道你这些循环的次数或数据含义,所以意见可能不准确,请谅解 !呵呵