# Fortran conversion to VBA (Excel)

I would like the gslib [url removed, login to view] source code translated to Excel macro modules.

It's all there in Fortran, most of the syntax is the same as VBA, just a few small changes.

Will be useful if you know something about statistics and mathematics to be able to check your work.

The routines will have to work together, as they call each other.

No changes or "improvements" must be made, just porting of the same code to Excel.

For example:

subroutine gauinv(p,xp,ierr)

c-----------------------------------------------------------------------

c

c Computes the inverse of the standard normal cumulative distribution

c function with a numerical approximation from : Statistical Computing,

c by W.J. Kennedy, Jr. and James E. Gentle, 1980, p. 95.

c

c

c

c INPUT/OUTPUT:

c

c p = double precision cumulative probability value: dble(psingle)

c xp = G^-1 (p) in single precision

c ierr = 1 - then error situation (p out of range), 0 - OK

c

c

c-----------------------------------------------------------------------

real*8 p0,p1,p2,p3,p4,q0,q1,q2,q3,q4,y,pp,lim,p

save p0,p1,p2,p3,p4,q0,q1,q2,q3,q4,lim

c

c Coefficients of approximation:

c

data lim/1.0e-10/

data p0/-0.322232431088/,p1/-1.0/,p2/-0.342242088547/,

+ p3/-0.0204231210245/,p4/-0.0000453642210148/

data q0/0.0993484626060/,q1/0.588581570495/,q2/0.531103462366/,

+ q3/0.103537752850/,q4/0.0038560700634/

c

c Check for an error situation:

c

ierr = 1

if([url removed, login to view]) then

xp = -1.0e10

return

end if

if(p.gt.(1.0-lim)) then

xp = 1.0e10

return

end if

ierr = 0

c

c Get k for an error situation:

c

pp = p

if(p.gt.0.5) pp = 1 - pp

xp = 0.0

if(p.eq.0.5) return

c

c Approximate the function:

c

y = dsqrt(dlog(1.0/(pp*pp)))

xp = real( y + ((((y*p4+p3)*y+p2)*y+p1)*y+p0) /

+ ((((y*q4+q3)*y+q2)*y+q1)*y+q0) )

if(real(p).[url removed, login to view](pp)) xp = -xp

c

c Return with G^-1(p):

c

return

end

Skills: Fortran, Mathematics, Statistics, Visual Basic

( 0 reviews ) San Isidro, Peru

Project ID: #1100655

## 3 freelancers are bidding on average \$200 for this job

PerfectSquare

\$200 USD in 5 days
(73 Reviews)
5.6
bharanisrihari

Hello, Excel VBA expert here. Please check PM for details. Thanks!

\$200 USD in 5 days
(32 Reviews)
5.6
am3ndoim

When do we start? I think you don't go use some routines, for example the function strlen in vba has feature for exchange it. You need just function in macro format or you need that use system information about the e More

\$200 USD in 15 days
(0 Reviews)
0.0