?? dawson.for
字號:
FUNCTION dawson(x)
INTEGER NMAX
REAL dawson,x,H,A1,A2,A3
PARAMETER (NMAX=6,H=0.4,A1=2./3.,A2=0.4,A3=2./7.)
INTEGER i,init,n0
REAL d1,d2,e1,e2,sum,x2,xp,xx,c(NMAX)
SAVE init,c
DATA init/0/
if(init.eq.0)then
init=1
do 11 i=1,NMAX
c(i)=exp(-((2.*float(i)-1.)*H)**2)
11 continue
endif
if(abs(x).lt.0.2)then
x2=x**2
dawson=x*(1.-A1*x2*(1.-A2*x2*(1.-A3*x2)))
else
xx=abs(x)
n0=2*nint(0.5*xx/H)
xp=xx-float(n0)*H
e1=exp(2.*xp*H)
e2=e1**2
d1=float(n0+1)
d2=d1-2.
sum=0.
do 12 i=1,NMAX
sum=sum+c(i)*(e1/d1+1./(d2*e1))
d1=d1+2.
d2=d2-2.
e1=e2*e1
12 continue
dawson=0.5641895835*sign(exp(-xp**2),x)*sum
endif
return
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -