50 subroutine momdls( fparmi,iparmi,icalc,al,be,bss,iprune,
51 # spectr,work,nft,ntotal,ierr )
65 integer bss(5,
mxdim),iparmi(
niprm),ntotal,icalc,ierr,iprune,
69 double precision fparmi(
nfprm),spectr(*),
71 double complex al(ntotal),be(ntotal)
73 integer i,id,ixt,j,nptr,nstp,nevl
74 double precision acc,cospsi,cosxi,dcos,dnorm,dwt,onorm,sinxi
77 double precision ZERO,ONE,SMALL,D180
78 parameter(zero=0.0d0,one=1.0d0,small=1.0d-16,d180=180.0d0)
80 double precision fu20,fu20phi
85 init = mod(icalc,1000)/100 .ne. 0
105 if (ierr.ge.
fatal)
return
131 if (
nort.le.1 .or.
ipt.le.0)
then
137 call eprls( icalc,al,be,bss,iprune,spectr,nft,ntotal,ierr)
146 onorm=one/dfloat(
nort-1)
160 xi=abs(mod(
psi,d180))
166 call ccrint(zero,one,acc,small,dnorm,nevl,fu20,id)
180 cospsi=min(cospsi,one)
197 if (nptr.gt.ntotal)
then
201 if ( abs(be(nptr)).gt.
rndoff )
go to 3
204 call eprls( icalc,al(ixt),be(ixt),bss,iprune,work,
206 if (ierr.ge.
fatal)
return
217 ss=sinxi*sqrt(one-cospsi*cospsi)
219 call ccrint(zero,
pi,acc,small,dwt,nevl,fu20phi,id)
222 dwt=fu20(cospsi)/dnorm
234 if (i.eq.1 .or. i.eq.
nort)
then
236 work(j)=work(j)*0.5d0
245 spectr(j)=spectr(j)+work(j)
256 spectr(j)=spectr(j)*onorm
263 if (icalc.ne.0) ntotal=ixt-1
double precision, save w0
integer, pointer, save nfld
double precision, pointer, save dc20
double precision, pointer, save c22
integer, pointer, save ndim
integer, dimension(niprm), target, save iepr
subroutine tocart(t, iflg)
integer, parameter tdgerr
subroutine momdls(fparmi, iparmi, icalc, al, be, bss, iprune, spectr, work, nft, ntotal, ierr)
Subroutine version of EPRLL family of programs. This routine is intended for use with nonlinear least...
integer, pointer, save nort
double precision, save cc
double precision, save ss
subroutine eprls(icalc, al, be, bss, iprune, spectr, nft, ndone, ierr)
Subroutine version of EPRLL family of programs by D. Schneider. This routine is intended for use with...
double precision, dimension(nfprm), target, save fepr
double precision, pointer, save c44
double precision, pointer, save c40
double precision, pointer, save psi
double precision, pointer, save c20
integer, pointer, save nstep
double precision, save xi
subroutine ccrint(bndlow, bndhi, epsiln, small, sum, neval, f, id)
integer, pointer, save iwflg
double precision, pointer, save c42
double precision, parameter radian
double precision, parameter pi
double precision, save dlam
double precision, pointer, save wyy
double precision, pointer, save wzz
double precision, pointer, save wxx
double precision, parameter rndoff