28.11.2014 Views

THE EGS5 CODE SYSTEM

THE EGS5 CODE SYSTEM

THE EGS5 CODE SYSTEM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

subroutine<br />

aphi(br)<br />

Version<br />

051219-1435<br />

iaphi = iaphi +1<br />

iarg=21<br />

iausfl(iarg+1)<br />

ne<br />

0<br />

no<br />

yes<br />

call<br />

ausgab(iarg)<br />

pnorm0 = sqrt(u(np)*u(np) + v(np)*v(np) + w(np)*w(np))<br />

u(np) = u(np)/pnorm0<br />

v(np) = v(np)/pnorm0<br />

w(np) = w(np)/pnorm0<br />

valmax = br + 1./br<br />

call<br />

randomset(rnnow)<br />

"Rejection sampling loop"<br />

ph0 = rnnow*twopi<br />

sinph0 = sin(ph0)<br />

cph0 = pi5d2 - ph0<br />

cosph0 = sin(cph0)<br />

valloc = sqrt(sinph0*sinph0 + cosph0*cosph0)<br />

sinph0 = sinph0/valloc<br />

cosph0 = cosph0/valloc<br />

val = (valmax - 2.*sinthe*sinthe*cosph0*cosph0)/valmax<br />

call<br />

randomset(rnnow)<br />

no<br />

rnnow<br />

le<br />

val<br />

yes<br />

anorm2 =costhe*costhe*cosph0*cosph0 + sinph0*sinph0<br />

call<br />

randomset(rnnow)<br />

(valmax - 2.)/(valmax - 2. + 2.*anorm2) .gt. rnnow<br />

.or.<br />

ldpola = 1<br />

anorm2 .lt. 1.E-10 yes<br />

no<br />

ldpola = 0<br />

1<br />

204

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!