|
The following example shows how to draw a 2D vector field from an Ntuple.
H/del *
Appl data nt.dat
0 1 0.1 1.8
1 2 1.1 2.2
2 3 2.1 3.8
3 4 3.1 4.8
4 5 4.1 5.2
5 5 5.1 5.8
6 4 6.1 4.2
7 3 7.1 8.8
8 2 8.1 2.2
9 1 9.1 1.2
nt.dat
Nt/Create 4 'Test' 4 ! ! X Y PX PY
Nt/Read 4 nt.dat
Null -1 10 -1 10
Appl comis Quit
REAL FUNCTION ntarr
REAL
+X ,Y ,PX ,PY
*
LOGICAL CHAIN
CHARACTER*128 CFILE
*
COMMON /PAWCHN/ CHAIN, NCHEVT, ICHEVT
COMMON /PAWCHC/ CFILE
*
COMMON/PAWIDN/IDNEVT,OBS(13),
+X ,Y ,PX ,PY
*
Dimension a(2),b(2),u(3),v(3)
*
a(1) = X
a(2) = PX
b(1) = Y
b(2) = PY
*
Arrow_size = 0.2
Arrow_width =0.3
fsin=0.
fcos=1.
xl=sqrt((a(2)-a(1))**2 + (b(2)-b(1))**2)
if(xl.gt.0.)then
fsin=(b(2)-b(1))/xl
fcos=(a(2)-a(1))/xl
endif
u(1)=a(1)+(xl-Arrow_size)*fcos-Arrow_size*Arrow_width *fsin
u(3)=a(1)+(xl-Arrow_size)*fcos+Arrow_size*Arrow_width *fsin
v(1)=b(1)+(xl-Arrow_size)*fsin+Arrow_size*Arrow_width *fcos
v(3)=b(1)+(xl-Arrow_size)*fsin-Arrow_size*Arrow_width *fcos
u(2)=a(2)
v(2)=b(2)
*
Call Igset('FAIS',1.)
Call Ipl(2,a,b)
Call Ifa(3,u,v)
*
ntarr=1.
*
END
Quit
nt/loop 4 ntarr

H/del *
Appl data nt.dat
0 1 5 0.1 1.8 5.1
1 2 4 1.1 2.2 4.1
2 3 3 2.1 3.8 3.1
3 4 2 3.1 4.8 2.1
4 5 1 4.1 5.2 1.1
5 5 1 5.1 5.8 1.1
6 4 2 6.1 4.2 2.1
7 3 3 7.1 8.8 3.1
8 2 4 8.1 2.2 4.1
9 1 5 9.1 1.2 5.1
nt.dat
Nt/Create 4 'Test' 6 ! ! X Y Z PX PY PZ
Nt/Read 4 nt.dat
call hplfr3(0.,10.,0.,10.,0.,10.,30.,30.,'WBF')
Set MTYP 4
Set MSCF 0.7
Appl comis Quit
REAL FUNCTION ntarr
REAL
+X ,Y ,PX ,PY
*
LOGICAL CHAIN
CHARACTER*128 CFILE
*
COMMON /PAWCHN/ CHAIN, NCHEVT, ICHEVT
COMMON /PAWCHC/ CFILE
*
COMMON/PAWIDN/IDNEVT,OBS(13),
+X ,Y ,Z ,PX ,PY ,PZ
*
Dimension a(2),b(2),c(2),u(3),v(3)
*
a(1) = X
a(2) = PX
b(1) = Y
b(2) = PY
c(1) = Z
c(2) = PZ
*
Call Ipl3(2,a,b,c)
Call Ipm3(1,PX,PY,PZ)
*
ntarr=1.
*
END
Quit
nt/loop 4 ntarr

![]() | Release Notes | Known bugs | FAQs | Contributions | Tutorial | Reference manual | Down load | Miscellaneous |