21 lines
523 B
Fortran
21 lines
523 B
Fortran
FUNCTION ERFCIN(X)
|
|
C ==================
|
|
C
|
|
C Approximate inverse complementary error function inverfc(x)
|
|
C
|
|
INCLUDE 'IMPLIC.FOR'
|
|
parameter (pisq=1.77245385090551D0, pisq2=pisq/2.d0)
|
|
XL=-LOG(X)
|
|
REL=0.88623D0+XL*(7.4871471D-3-XL*1.7726701D-4)
|
|
E=SQRT(-LOG(X*(2.D0-X)))*REL
|
|
iterr=0
|
|
10 continue
|
|
iterr=iterr+1
|
|
dele=(erfcx(e)-x)*pisq2*exp(e*e)
|
|
err=abs(dele/e)
|
|
e=e+dele
|
|
if(err.gt.1.e-6.and.iterr.lt.10) go to 10
|
|
erfcin=e
|
|
RETURN
|
|
END
|