90 ( npart, xpart, dimxp, uabs, ud, ipnt, iout, timev )
184 INTEGER,
SAVE :: IENT = 0
186 REAL :: DHSMAX, DTPMAX, &
187 DDMMAX, DDWMAX, AGEMIN
188 parameter( dhsmax = 1.50 )
189 parameter( dtpmax = 1.50 )
190 parameter( ddmmax = 15. )
191 parameter( ddwmax = 30. )
192 parameter( agemin = 0.8 )
193 INTEGER,
INTENT(IN) :: NPART, DIMXP, IOUT
194 INTEGER,
INTENT(INOUT) :: TIMEV(2)
195 REAL,
INTENT(IN) :: UABS, &
196 UD, XPART(DIMP,0:DIMXP)
197 INTEGER :: IPG1,IPI(NPMAX), ILEN(NPMAX), IP, &
198 IPNOW, IFLD, INOTAB, IPNT, ITAB, &
200 REAL :: AFR, AGE, DDMMAXR, DELDM, DELDMR, &
201 DELDW, DELHS, DELTP, DHSMAXR, &
202 DTPMAXR, HMAX, HSTOT, TP, UDIR, FACT
203 REAL :: HSP(NPMAX), TPP(NPMAX), &
204 DMP(NPMAX), WNP(NPMAX), HSD(NPMAX), &
205 TPD(NPMAX), WDD(NPMAX)
206 LOGICAL :: FLAG(NPMAX)
207 CHARACTER(LEN=129) :: BLANK, TAIL
209 CHARACTER(LEN=67) :: CBLANK, CTAIL
211 CHARACTER(LEN=15) :: PART
213 CHARACTER(LEN=9) :: CPART
215 CHARACTER(LEN=664) :: BLANK2
216 CHARACTER :: STIME*8,FORM*20,FORM1*2
217 CHARACTER(LEN=16) :: PART2
222 CALL strace (ient,
'XXXXXX')
235 udir = mod( ud+180., 360. )
237 tail( 1: 40) =
'+-------+-----------+-----------------+-'
238 tail( 41: 80) =
'----------------+-----------------+-----'
239 tail( 81:120) =
'------------+-----------------+---------'
240 tail(120:129) =
'---------+'
241 blank( 1: 40) =
'| nn nn | nn | | '
242 blank( 41: 80) =
' | | '
243 blank( 81:120) =
' | | '
244 blank(120:129) =
' |'
247 ctail( 1:40) =
'----------------------------------------'
248 ctail(41:67) =
'---------------------------'
254 blank2( 1: 40)=
' , , , , , , , , '
255 blank2( 41: 88)=
', , , , , , , , , '
256 blank2( 89:136)=
', , , , , , , , , '
257 blank2(137:184)=
', , , , , , , , , '
258 blank2(185:232)=
', , , , , , , , , '
259 blank2(233:280)=
', , , , , , , , , '
260 blank2(281:328)=
', , , , , , , , , '
261 blank2(329:376)=
', , , , , , , , , '
262 blank2(377:424)=
', , , , , , , , , '
263 blank2(425:472)=
', , , , , , , , , '
264 blank2(473:520)=
', , , , , , , , , '
265 blank2(521:568)=
', , , , , , , , , '
266 blank2(569:616)=
', , , , , , , , , '
267 blank2(617:664)=
', , , , , , , , , '
272 IF (iout .EQ. 1)
THEN
290 hsp(ip) = xpart(1,ip)
291 tpp(ip) = xpart(2,ip)
292 wnp(ip) =
tpi / xpart(3,ip)
293 dmp(ip) = mod( xpart(4,ip) + 180., 360.)
297 nzero = count( hsp <=
bhsmin .AND. hsp /= 0. )
326 IF ( timev(1) .LE. 0 ) timev =
time
337 int(
time(1)/100)-100*int(
time(1)/10000)
340 WRITE (
csvbline(20:24),
'(F5.2)') uabs
341 WRITE (
csvbline(26:28),
'(I3)') int(udir)
342 IF ( hstot .GT. 0. )
WRITE (
csvbline(30:34),
'(F5.2)') hstot
343 IF ( hstot .GT. 0. )
WRITE (
csvbline(36:40),
'(F5.2)') tp
348 IF ( hstot .GT. 0. )
WRITE (
ascbline(10:14),
'(F5.2)') hstot
349 WRITE (
ascbline(16:17),
'(I2)') npart - nzero
354 IF ( hstot .GT. 0. )
WRITE (
cascbline(6:7),
'(I2)') nint(hstot/0.3048)
357 IF ( npart.EQ.0 .OR. hstot.LT.0.1 )
GOTO 699
362 flag(ip) = hsp(ip) .GT.
bhsmin
374 IF ( hsp(ip).GT.hmax .AND. flag(ip) )
THEN
382 IF ( ipnow .EQ. 0 )
GOTO 699
389 IF (
tpt(ip,2) .GT. 0. )
THEN
391 delhs = abs(
hst(ip,2) - hsp(ipnow) )
392 deltp = abs(
tpt(ip,2) - tpp(ipnow) )
393 deldm = abs(
dmt(ip,2) - dmp(ipnow) )
394 IF ( deldm .GT. 180. ) deldm = 360. - deldm
395 IF ( delhs.LT.dhsmax .AND. &
396 deltp.LT.dtpmax .AND. &
397 deldm.LT.ddmmax ) itab = ip
404 IF ( itab .EQ. 0 )
THEN
406 IF (
tpt(ip,1).LT.0. .AND.
tpt(ip,2).LT.0. ) &
415 IF ( itab .NE. 0 )
THEN
417 WRITE (part,
'(1X,F5.2,F5.1,I4)') &
418 hsp(ipnow), tpp(ipnow), nint(dmp(ipnow))
420 WRITE (cpart,
'(I2,1X,I2.2,1X,I3.3)') &
421 nint(hsp(ipnow)/0.3048), &
423 nint(mod(dmp(ipnow)+180.,360.))
425 deldw = mod( abs( udir - dmp(ipnow) ) , 360. )
426 IF ( deldw .GT. 180. ) deldw = 360. - deldw
427 afr = 2.*
pi/tpp(ipnow)
428 age = uabs * wnp(ipnow) / afr
429 IF ( deldw.LT.ddwmax .AND. age.GT.agemin ) part(1:1) =
'*'
431 ascbline(5+itab*18:19+itab*18) = part
441 wdd(ifld)=nint(dmp(ipnow))
445 hst(itab,1) = hsp(ipnow)
446 tpt(itab,1) = tpp(ipnow)
447 dmt(itab,1) = dmp(ipnow)
455 WRITE (
ascbline(19:19),
'(I1)') inotab
459 flag(ipnow) = .false.
468 ilen(ifld)=ilen(ifld)+1
469 IF (ilen(ifld).EQ.1)
THEN
473 WRITE (part2,
'(",",F5.2,",",F5.2,",",I3)') &
474 hsd(ifld), tpd(ifld), nint(wdd(ifld))
475 csvbline(25+ipi(ifld)*16:40+ipi(ifld)*16) = part2