1 subroutine scops(npoints,nlev,ncol,seed,cc,conv,
2 & overlap,frac_out,ncolprint)
60 REAL conv(npoints,nlev)
66 INTEGER i,j,ilev,ibox,ncolprint,ilev2
68 REAL frac_out(npoints,ncol,nlev)
84 REAL tca(npoints,0:nlev)
89 REAL threshold(npoints,ncol)
90 REAL maxocc(npoints,ncol)
91 REAL maxosc(npoints,ncol)
93 REAL boxpos(npoints,ncol)
95 REAL threshold_min(npoints,ncol)
100 INTEGER irand,i2_16,huge32,overflow_32
106 boxpos(j,ibox)=(ibox-.5)/ncol
119 frac_out(j,ibox,ilev)=0.0
132 tca(j,ilev)=cc(j,ilev)
136 if (ncolprint.ne.0)
then
137 write (6,
'(a)')
'frac_out_pp_rev:'
139 write(6,
'(a10)')
'j='
142 & ((frac_out(j,ibox,ilev),ibox=1,ncolprint),ilev=1,nlev)
145 write (6,
'(a)')
'ncol:'
146 write (6,
'(I3)') ncol
148 if (ncolprint.ne.0)
then
149 write (6,
'(a)')
'last_frac_pp:'
151 write(6,
'(a10)')
'j='
153 write (6,
'(8f5.2)') (tca(j,0))
170 IF (overlap.eq.1)
then
175 threshold(j,ibox)=boxpos(j,ibox)
187 & conv(j,ilev)+(1-conv(j,ilev))*ran(j)
191 IF (ncolprint.ne.0)
then
192 write (6,
'(a)')
'threshold_nsf2:'
194 write(6,
'(a10)')
'j='
196 write (6,
'(8f5.2)') (threshold(j,ibox),ibox=1,ncolprint)
201 IF (ncolprint.ne.0)
then
202 write (6,
'(a)')
'ilev:'
203 write (6,
'(I2)') ilev
210 if (boxpos(j,ibox).le.conv(j,ilev))
then
218 if (overlap.eq.1)
then
220 threshold_min(j,ibox)=conv(j,ilev)
226 if (overlap.eq.2)
then
228 threshold_min(j,ibox)=conv(j,ilev)
234 if (overlap.eq.3)
then
236 threshold_min(j,ibox)=max(conv(j,ilev),
237 & min(tca(j,ilev-1),tca(j,ilev)))
238 if (threshold(j,ibox)
239 & .lt.min(tca(j,ilev-1),tca(j,ilev))
240 & .and.(threshold(j,ibox).gt.conv(j,ilev)))
then
259 & (1-maxocc(j,ibox)) * (
261 & (maxosc(j,ibox)) * (
266 & (1-maxosc(j,ibox)) * (
268 & threshold_min(j,ibox)+
269 & (1-threshold_min(j,ibox))*ran(j)
280 if (tca(j,ilev).gt.threshold(j,ibox))
then
281 frac_out(j,ibox,ilev)=1
283 frac_out(j,ibox,ilev)=0
293 if (threshold(j,ibox).le.conv(j,ilev))
then
295 frac_out(j,ibox,ilev) = 2
298 frac_out(j,ibox,ilev) = frac_out(j,ibox,ilev)
306 if (ncolprint.ne.0)
then
309 write(6,
'(a10)')
'j='
311 write (6,
'(a)')
'last_frac:'
312 write (6,
'(8f5.2)') (tca(j,ilev-1))
314 write (6,
'(a)')
'conv:'
315 write (6,
'(8f5.2)') (conv(j,ilev),ibox=1,ncolprint)
317 write (6,
'(a)')
'max_overlap_cc:'
318 write (6,
'(8f5.2)') (maxocc(j,ibox),ibox=1,ncolprint)
320 write (6,
'(a)')
'max_overlap_sc:'
321 write (6,
'(8f5.2)') (maxosc(j,ibox),ibox=1,ncolprint)
323 write (6,
'(a)')
'threshold_min_nsf2:'
324 write (6,
'(8f5.2)') (threshold_min(j,ibox),ibox=1,ncolprint)
326 write (6,
'(a)')
'threshold_nsf2:'
327 write (6,
'(8f5.2)') (threshold(j,ibox),ibox=1,ncolprint)
329 write (6,
'(a)')
'frac_out_pp_rev:'
331 & ((frac_out(j,ibox,ilev2),ibox=1,ncolprint),ilev2=1,nlev)
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
subroutine scops(npoints, nlev, ncol, seed, cc, conv, overlap, frac_out, ncolprint)