Skip to content

Commit

Permalink
Low-level optimizations from lessons learned in openmp branch.
Browse files Browse the repository at this point in the history
--HG--
branch : week-of-code
  • Loading branch information
John Wise committed May 13, 2010
1 parent 31e1a95 commit 6bc4fe4
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 20 deletions.
39 changes: 22 additions & 17 deletions src/enzo/inteuler.src
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ c local declarations
c
integer i, j, ic
real steepen(ijkn),tmp1(ijkn),tmp2(ijkn),tmp3(ijkn),tmp4(ijkn)
real qa,qb,qc,qd,qe,s1,s2
real qa,qb,qc,qd,qe,s1,s2,f1
real c1(ijkn), c2(ijkn), c3(ijkn), c4(ijkn), c5(ijkn), c6(ijkn)
& ,dp(ijkn),pl(ijkn),pr(ijkn),p6(ijkn)
& ,du(ijkn),ul(ijkn),ur(ijkn),u6(ijkn)
Expand All @@ -102,7 +102,7 @@ c
& ,dl0(ijkn),dr0(ijkn),pl0(ijkn),pr0(ijkn)
& ,plp(ijkn),prp(ijkn),ulp(ijkn),urp(ijkn),ul0(ijkn),ur0(ijkn)
& ,vl0(ijkn),vr0(ijkn),wl0(ijkn),wr0(ijkn)
& , cs(ijkn),d2d(ijkn),dxb(ijkn)
& , cs(ijkn),d2d(ijkn),dxb(ijkn), dx2i(ijkn)
& , cm(ijkn), c0(ijkn), cp(ijkn),char1(ijkn),char2(ijkn)
& ,betalp(ijkn),betalm(ijkn),betal0(ijkn),cla(ijkn)
& ,betarp(ijkn),betarm(ijkn),betar0(ijkn),cra(ijkn)
Expand Down Expand Up @@ -142,6 +142,7 @@ c
c4(i) = qb
c5(i) = dxi(i )/qa*qd
c6(i) = -dxi(i-1)/qa*qc
dx2i(i) = 0.5/dxi(i)
enddo
c
c Loop over sweep lines (in this slice)
Expand Down Expand Up @@ -184,14 +185,14 @@ c
do i=i1-1,i2+1
cs(i) = sqrt(gamma*pslice(i,j)/dslice(i,j))
if (ipresfree .eq. 1) cs(i) = tiny
char1(i) = max(0.0, dt*(uslice(i,j)+cs(i)))/(2.0*dxi(i))
char2(i) = max(0.0,-dt*(uslice(i,j)-cs(i)))/(2.0*dxi(i))
char1(i) = max(0.0, dt*(uslice(i,j)+cs(i)))*dx2i(i)
char2(i) = max(0.0,-dt*(uslice(i,j)-cs(i)))*dx2i(i)
enddo
c
do i=i1-1,i2+1
cm(i) = dt*(uslice(i,j)-cs(i))/(2.0*dxi(i))
c0(i) = dt*(uslice(i,j) )/(2.0*dxi(i))
cp(i) = dt*(uslice(i,j)+cs(i))/(2.0*dxi(i))
cm(i) = dt*(uslice(i,j)-cs(i))*dx2i(i)
c0(i) = dt*(uslice(i,j) )*dx2i(i)
cp(i) = dt*(uslice(i,j)+cs(i))*dx2i(i)
enddo
c
c Compute left and right states for each variable
Expand Down Expand Up @@ -273,9 +274,10 @@ c
c a) left side
c
do i = i1, i2+1
betalp(i) = (ula(i)-ulp(i)) + (pla(i)-plp(i))/cla(i)
betalm(i) = (ula(i)-ulm(i)) - (pla(i)-plm(i))/cla(i)
betal0(i) = (pla(i)-pl0(i))/cla(i)**2 + 1.0/dla(i) - 1.0/dl0(i)
f1 = 1.0/cla(i)
betalp(i) = (ula(i)-ulp(i)) + (pla(i)-plp(i))*f1
betalm(i) = (ula(i)-ulm(i)) - (pla(i)-plm(i))*f1
betal0(i) = (pla(i)-pl0(i))*f1**2 + 1.0/dla(i) - 1.0/dl0(i)
enddo
c
c Add gravity component
Expand All @@ -291,8 +293,9 @@ c endif
endif
c
do i = i1, i2+1
betalp(i) = -betalp(i)/(2.0*cla(i))
betalm(i) = +betalm(i)/(2.0*cla(i))
f1 = 0.5/cla(i)
betalp(i) = -betalp(i)*f1
betalm(i) = +betalm(i)*f1
enddo
c
do i = i1, i2+1
Expand All @@ -304,9 +307,10 @@ c
c b) right side
c
do i = i1, i2+1
betarp(i) = (ura(i)-urp(i)) + (pra(i)-prp(i))/cra(i)
betarm(i) = (ura(i)-urm(i)) - (pra(i)-prm(i))/cra(i)
betar0(i) = (pra(i)-pr0(i))/cra(i)**2 + 1.0/dra(i) - 1.0/dr0(i)
f1 = 1.0/cra(i)
betarp(i) = (ura(i)-urp(i)) + (pra(i)-prp(i))*f1
betarm(i) = (ura(i)-urm(i)) - (pra(i)-prm(i))*f1
betar0(i) = (pra(i)-pr0(i))*f1**2 + 1.0/dra(i) - 1.0/dr0(i)
enddo
c
c Add gravity component
Expand All @@ -322,8 +326,9 @@ c endif
endif
c
do i = i1, i2+1
betarp(i) = -betarp(i)/(2.0*cra(i))
betarm(i) = +betarm(i)/(2.0*cra(i))
f1 = 0.5/cra(i)
betarp(i) = -betarp(i)*f1
betarm(i) = +betarm(i)*f1
enddo
c
do i = i1, i2+1
Expand Down
8 changes: 5 additions & 3 deletions src/enzo/intvar.src
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ c
c local declarations (arrays passed as temps)
c
integer i
real qplus, qmnus, temp1, temp2, temp3
real qplus, qmnus, temp1, temp2, temp3, temp22, temp23
real dq(idim), ql(idim), qr(idim), q6(idim)
c
c\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////
Expand Down Expand Up @@ -113,9 +113,11 @@ c
ql(i) = qslice(i)
qr(i) = qslice(i)
endif
if (temp2**2-temp2*temp3 .lt. 0.0)
temp22 = temp2**2
temp23 = temp2*temp3
if (temp22 .lt. temp23)
& ql(i) = 3.0*qslice(i) - 2.0*qr(i)
if (temp2**2+temp2*temp3 .lt. 0.0)
if (temp22 .lt. -temp23)
& qr(i) = 3.0*qslice(i) - 2.0*ql(i)
enddo
c
Expand Down

0 comments on commit 6bc4fe4

Please sign in to comment.