DISLIN Examples / Fortran 90
Demonstration of CURVE / Fortran 90
PROGRAM EXA_1 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=100 REAL, DIMENSION (N) :: XRAY,Y1RAY,Y2RAY REAL, PARAMETER :: PI=3.1415926 REAL :: FPI,STEP,X INTEGER :: I,IC FPI=PI/180. STEP=360./(N-1) DO I=1,N XRAY(I)=(I-1)*STEP X=XRAY(I)*FPI Y1RAY(I)=SIN(X) Y2RAY(I)=COS(X) END DO CALL METAFL('CONS') CALL SCRMOD('REVERS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL AXSPOS(450,1800) CALL AXSLEN(2200,1200) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL LABDIG(-1,'X') CALL TICKS(10,'XY') CALL TITLIN('Demonstration of CURVE',1) CALL TITLIN('SIN(X), COS(X)',3) IC=INTRGB(0.95,0.95,0.95) CALL AXSBGD(IC) CALL GRAF(0.,360.,0.,90.,-1.,1.,-1.,0.5) CALL SETRGB(0.7,0.7,0.7) CALL GRID(1,1) CALL COLOR('FORE') CALL TITLE() CALL COLOR('RED') CALL CURVE(XRAY,Y1RAY,N) CALL COLOR('GREEN') CALL CURVE(XRAY,Y2RAY,N) CALL DISFIN() END PROGRAM EXA_1
Polar Plots / Fortran 90
PROGRAM EXA_2 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=300,M=10 REAL, DIMENSION (N) :: XRAY,YRAY REAL, DIMENSION (M) :: X2,Y2 REAL :: XPI,STEP,A INTEGER :: I XPI=3.1415927 STEP=360./(N-1) DO I=1,N A=(I-1)*STEP A=A*XPI/180 YRAY(I)=A XRAY(I)=SIN(5*A) END DO DO I=1,M X2(I)=I Y2(I)=I END DO CALL SETPAG('DA4P') CALL METAFL('CONS') CALL SCRMOD('REVERS') CALL DISINI() CALL PAGERA() CALL HWFONT() CALL TITLIN ('Polar Plots', 2) CALL TICKS(3,'Y') CALL AXENDS('NOENDS','X') CALL LABDIG(-1,'Y') CALL AXSLEN(1000,1000) CALL AXSORG(1050,900) CALL GRAFP(1.,0., 0.2, 0., 30.) CALL CURVE(XRAY,YRAY,N) CALL HTITLE(50) CALL TITLE() CALL ENDGRF() CALL LABDIG(-1,'X') CALL AXSORG(1050,2250) CALL LABTYP('VERT','Y') CALL BARWTH (5.) CALL GRAFP(10.,0.,2.,0.,30.) CALL BARWTH(-5.) CALL POLCRV('FBARS') CALL CURVE(X2,Y2,M) CALL DISFIN() END PROGRAM EXA_2
Symbols / Fortran 90
PROGRAM EXA_2 USE DISLIN IMPLICIT NONE CHARACTER (LEN=20) :: CTIT = 'Symbols' CHARACTER (LEN=2) :: CSTR INTEGER :: I,NY,NXP,NL CALL SETPAG('DA4P') CALL METAFL('CONS') CALL SCRMOD('REVERS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL HEIGHT(60) NL=NLMESS(CTIT) CALL MESSAG(CTIT,(2100-NL)/2,200) CALL HEIGHT(50) CALL HSYMBL(120) NY=150 DO I=0,21 IF(MOD(I,4).EQ.0) THEN NY=NY+400 NXP=550 ELSE NXP=NXP+350 END IF IF(I.LT.10) THEN WRITE(CSTR,'(I1)') I ELSE WRITE(CSTR,'(I2)') I END IF NL=NLMESS(CSTR)/2 CALL MESSAG(CSTR,NXP-NL,NY+150) CALL SYMBOL(I,NXP,NY) END DO CALL DISFIN() STOP END PROGRAM EXA_2
Interpolation Methods / Fortran 90
PROGRAM EXA_4 USE DISLIN IMPLICIT NONE REAL, DIMENSION (16) :: & X = (/0.,1.,3.,4.5,6.,8.,9.,11.,12.,12.5,13.,15.,16.,17.,19.,20./),& Y = (/2.,4.,4.5,3.,1.,7.,2.,3.,5.,2.,2.5,2.,4.,6.,5.5,4./) CHARACTER (LEN = 60) :: CTIT = 'Interpolation Methods' CHARACTER (LEN = 6), DIMENSION (6) :: & CPOL = (/'SPLINE','STEM ','BARS ','STEP ','STAIRS', & 'LINEAR'/) INTEGER :: I,NX,NY,NYA=2700,IC CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL COMPLX() CALL PAGERA() CALL INCMRK(1) CALL HSYMBL(25) CALL TITLIN(CTIT,2) CALL AXSLEN(1500,350) CALL SETGRF('LINE','LINE','LINE','LINE') IC=INTRGB(1.0,1.0,0.0) CALL AXSBGD(IC) DO I=1,6 CALL AXSPOS(350,NYA-(I-1)*350) CALL POLCRV(CPOL(I)) CALL MARKER(16) CALL GRAF(0.,20.,0.,5.,0.,10.,0.,5.) NX=NXPOSN(1.) NY=NYPOSN(8.) CALL MESSAG(CPOL(I),NX,NY) CALL COLOR('RED') CALL CURVE(X,Y,16) CALL COLOR('FORE') IF(I.EQ.6) THEN CALL HEIGHT(50) CALL TITLE() END IF CALL ENDGRF() END DO CALL DISFIN() STOP END PROGRAM EXA_4
Bar Graphs / Fortran 90
PROGRAM EX10_1 USE DISLIN IMPLICIT NONE CHARACTER (LEN=60) :: CTIT = 'Bar Graphs (BARS)' CHARACTER (LEN=24) :: CBUF REAL, DIMENSION (9) :: & X = (/1.,2.,3.,4.,5.,6.,7.,8.,9./), Y = 0., & Y1 = (/1.,1.5,2.5,1.3,2.0,1.2,0.7,1.4,1.1/), & Y2 = (/2.,2.7,3.5,2.1,3.2,1.9,2.0,2.3,1.8/), & Y3 = (/4.,3.5,4.5,3.7,4.,2.9,3.0,3.2,2.6/) INTEGER :: I,NYA=2700 CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL TICKS(1,'X') CALL INTAX() CALL AXSLEN(1600,700) CALL TITLIN(CTIT,3) CALL LEGINI(CBUF,3,8) CALL LEGLIN(CBUF,'FIRST',1) CALL LEGLIN(CBUF,'SECOND',2) CALL LEGLIN(CBUF,'THIRD',3) CALL LEGTIT(' ') CALL SHDPAT(5) DO I=1,3 IF(I.GT.1) CALL LABELS('NONE','X') CALL AXSPOS(300,NYA-(I-1)*800) CALL GRAF(0.,10.,0.,1.,0.,5.,0.,1.) IF(I.EQ.1) THEN CALL BARGRP(3,0.15) CALL COLOR('RED') CALL BARS(X,Y,Y1,9) CALL COLOR('GREEN') CALL BARS(X,Y,Y2,9) CALL COLOR('BLUE') CALL BARS(X,Y,Y3,9) CALL COLOR('FORE') CALL RESET('BARGRP') ELSE IF(I.EQ.2) THEN CALL HEIGHT(30) CALL LABELS('DELTA','BARS') CALL LABPOS('CENTER','BARS') CALL COLOR('RED') CALL BARS(X,Y,Y1,9) CALL COLOR('GREEN') CALL BARS(X,Y1,Y2,9) CALL COLOR('BLUE') CALL BARS(X,Y2,Y3,9) CALL COLOR('FORE') CALL RESET('HEIGHT') ELSE IF(I.EQ.3) THEN CALL LABELS('SECOND','BARS') CALL LABPOS('OUTSIDE','BARS') CALL COLOR('RED') CALL BARS(X,Y,Y1,9) CALL COLOR('FORE') END IF IF(I.NE.3) CALL LEGEND(CBUF,7) IF(I.EQ.3) THEN CALL HEIGHT(50) CALL TITLE() END IF CALL ENDGRF() END DO CALL DISFIN() STOP END PROGRAM EX10_1
Pie Charts / Fortran 90
PROGRAM EX10_2 USE DISLIN IMPLICIT NONE REAL, DIMENSION (5) :: XRAY = (/1.,2.5,2.,2.7,1.8/) CHARACTER (LEN=60) :: CTIT = 'Pie Charts (PIEGRF)' CHARACTER (LEN=40) :: CBUF INTEGER :: I,NYA=2800 CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL AXSLEN(1600,1000) CALL TITLIN(CTIT,2) CALL CHNPIE('BOTH') CALL LEGINI(CBUF,5,8) CALL LEGLIN(CBUF,'FIRST',1) CALL LEGLIN(CBUF,'SECOND',2) CALL LEGLIN(CBUF,'THIRD',3) CALL LEGLIN(CBUF,'FOURTH',4) CALL LEGLIN(CBUF,'FIFTH',5) CALL PATCYC(1,7) CALL PATCYC(2,4) CALL PATCYC(3,13) CALL PATCYC(4,3) CALL PATCYC(5,5) DO I=1,2 CALL AXSPOS(250,NYA-(I-1)*1200) IF(I.EQ.2) THEN CALL LABELS('DATA','PIE') CALL LABPOS('EXTERNAL','PIE') END IF CALL PIEGRF(CBUF,1,XRAY,5) IF(I.EQ.2) THEN CALL HEIGHT(50) CALL TITLE() END IF CALL ENDGRF() END DO CALL DISFIN() STOP END PROGRAM EX10_2
3-D Bar Graph / 3-D Pie Chart
PROGRAM EXA_12 USE DISLIN IMPLICIT NONE CHARACTER (LEN=80) :: CBUF REAL, DIMENSION (5) :: XRAY = (/2.,4.,6.,8.,10./), & Y1RAY = (/0.,0.,0.,0.,0./), & Y2RAY = (/3.2,1.5,2.0,1.0,3.0/) INTEGER, DIMENSION (5) :: IC1RAY = (/50,150,100,200,175/), & IC2RAY = (/50,150,100,200,175/) CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL HWFONT() CALL TITLIN('3-D Bar Graph / 3-D Pie Chart', 2) CALL HTITLE(40) CALL SHDPAT(16) CALL AXSLEN(1500,1000) CALL AXSPOS(300,1400) CALL BARWTH(0.5) CALL BARTYP('3DVERT') CALL LABELS('SECOND','BARS') CALL LABPOS('OUTSIDE','BARS') CALL LABCLR(255,'BARS') CALL GRAF(0.,12.,0.,2.,0.,5.,0.,1.) CALL TITLE() CALL COLOR('RED') CALL BARS(XRAY,Y1RAY,Y2RAY,5) CALL ENDGRF() CALL SHDPAT(16) CALL LABELS('DATA','PIE') CALL LABCLR(255,'PIE') CALL CHNPIE('NONE') CALL PIECLR(IC1RAY,IC2RAY,5) CALL PIETYP('3D') CALL AXSPOS(300,2700) CALL PIEGRF(CBUF,0,Y2RAY,5) CALL DISFIN() STOP END PROGRAM EXA_12
3-D Shading Patterns / Fortran 90
PROGRAM EXA_7 USE DISLIN IMPLICIT NONE CHARACTER (LEN=60) :: CTIT = 'Shading Patterns (AREAF)' CHARACTER (LEN=2) :: CSTR INTEGER, DIMENSION (4) :: IXP,IYP,IX = (/0,300,300,0/), & IY = (/0,0,400,400/) INTEGER :: NL,NX,NY,NX0=335,NY0=350,I,J,II,ICLR,K CALL SCRMOD('REVERS') CALL METAFL('CONS') CALL DISINI() CALL SETVLT('SMALL') CALL PAGERA() CALL COMPLX() CALL HEIGHT(50) NL=NLMESS(CTIT) NX=(2970-NL)/2 CALL MESSAG(CTIT,NX,200) DO I=1,3 NY=NY0+(I-1)*600 DO J=1,6 ICLR=(I-1)*6+J-1 ICLR=MOD(ICLR,8) IF(ICLR.EQ.0) ICLR=8 CALL SETCLR(ICLR) NX=NX0+(J-1)*400 II=(I-1)*6+J-1 CALL SHDPAT(II) WRITE(CSTR,'(I2)') II DO K=1,4 IXP(K)=IX(K)+NX IYP(K)=IY(K)+NY END DO CALL AREAF(IXP,IYP,4) NL=NLMESS(CSTR) NX=NX+(300-NL)/2 CALL MESSAG(CSTR,NX,NY+460) END DO END DO CALL DISFIN() STOP END PROGRAM EXA_7
3-D Bars /BARS3D / Fortran 90
PROGRAM EX12_3 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=18 CHARACTER (LEN=80) :: CBUF REAL, DIMENSION (N) :: XWRAY, YWRAY, & XRAY = (/1.0, 3.0, 8.0, 1.5, 9.0, 6.3, 5.8, 2.3, 8.1, & 3.5, 2.2, 8.7, 9.2, 4.8, 3.4, 6.9, 7.5, 3.8/), & YRAY = (/5.0, 8.0, 3.5, 2.0, 7.0, 1.0, 4.3, 7.2, 6.0, & 8.5, 4.1, 5.0, 7.3, 2.8, 1.6, 8.9, 9.5, 3.2/), & Z1RAY = (/0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/), & Z2RAY = (/4.0, 5.0, 3.0, 2.0, 3.5, 4.5, 2.0, 1.6, 3.8, & 4.7, 2.1, 3.5, 1.9, 4.2, 4.9, 2.8, 3.6, 4.3/) INTEGER, DIMENSION (N) :: & ICRAY = (/30, 30, 30, 30, 30, 30, 100, 100, 100, 100, & 100, 100, 170, 170, 170, 170, 170, 170/) INTEGER :: I DO I=1,N XWRAY(I)=0.5 YWRAY(I)=0.5 END DO CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI CALL PAGERA CALL HWFONT CALL AXSPOS(200,2600) CALL AXSLEN(1800,1800) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL NAME('Z-axis','Z') CALL TITLIN('3-D Bars / BARS3D',3) CALL LABL3D('HORI') CALL GRAF3D(0.,10.,0.,2.,0.,10.,0.,2.,0.,5.,0.,1.) CALL GRID3D(1,1,'BOTTOM') CALL BARS3D(XRAY,YRAY,Z1RAY,Z2RAY,XWRAY,YWRAY,ICRAY,N) CALL LEGINI(CBUF,3,20) CALL LEGTIT(' ') CALL LEGPOS(1300,1100) CALL LEGLIN(CBUF,'First',1) CALL LEGLIN(CBUF,'Second',2) CALL LEGLIN(CBUF,'Third',3) CALL LEGEND(CBUF,3) CALL HEIGHT(50) CALL TITLE CALL DISFIN STOP END PROGRAM EX12_3
3-D Colour Plot / Fortran 90
PROGRAM EX11_1 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=100 REAL, DIMENSION (N,N) :: ZMAT REAL :: FPI,STEP,X,Y INTEGER :: I,J FPI=3.1415927/180. STEP=360./(N-1) DO I=1,N X=(I-1.)*STEP DO J=1,N Y=(J-1.)*STEP ZMAT(I,J)=2*SIN(X*FPI)*SIN(Y*FPI) END DO END DO CALL SCRMOD('REVERS') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL HWFONT() CALL TITLIN('3-D Colour Plot of the Function',2) CALL TITLIN('F(X,Y) = 2 * SIN(X) * SIN(Y)',4) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL NAME('Z-axis','Z') CALL INTAX() CALL AUTRES(N,N) CALL AXSPOS(300,1850) CALL AX3LEN(2200,1400,1400) CALL GRAF3(0.,360.,0.,90.,0.,360.,0.,90.,-2.,2.,-2.,1.) CALL CRVMAT(ZMAT,N,N,1,1) CALL HEIGHT(50) CALL TITLE() CALL MPAEPL(3) CALL DISFIN() STOP END PROGRAM EX11_1
Surface Plot / Fortran 90
PROGRAM EXA_10 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=50 REAL, DIMENSION (N,N) :: ZMAT CHARACTER (LEN=60) :: CTIT1 = 'Surface Plot (SURMAT)', & CTIT2 = 'F(X,Y) = 2*SIN(X)*SIN(Y)' REAL :: FPI,STEP,X,Y INTEGER :: I,J FPI=3.14159/180. STEP = 360./(N-1) DO I=1,N X=(I-1)*STEP DO J=1,N Y=(J-1)*STEP ZMAT(I,J)=2*SIN(X*FPI)*SIN(Y*FPI) END DO END DO CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL AXSPOS(200,2600) CALL AXSLEN(1800,1800) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL NAME('Z-axis','Z') CALL TITLIN(CTIT1,2) CALL TITLIN(CTIT2,4) CALL VIEW3D(-5.,-5.,4.,'ABS') CALL GRAF3D(0.,360.,0.,90.,0.,360.,0.,90.,-3.,3.,-3.,1.) CALL HEIGHT(50) CALL TITLE() CALL COLOR('GREEN') CALL SURMAT(ZMAT,N,N,1,1) CALL DISFIN() STOP END PROGRAM EXA_10
Shaded Surface Plot / Fortran 90
PROGRAM EXA_10 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=50 REAL, DIMENSION (N,N) :: ZMAT REAL, DIMENSION (N) :: XRAY,YRAY CHARACTER (LEN=60) :: CTIT1 = 'Shaded Surface Plot', & CTIT2 = 'F(X,Y) = 2*SIN(X)*SIN(Y)' REAL :: FPI,STEP,X,Y INTEGER :: I,J FPI=3.14159/180. STEP = 360./(N-1) DO I=1,N X=(I-1)*STEP XRAY(I)=X DO J=1,N Y=(J-1)*STEP YRAY(J)=Y ZMAT(I,J)=2*SIN(X*FPI)*SIN(Y*FPI) END DO END DO CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL AXSPOS(200,2600) CALL AXSLEN(1800,1800) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL NAME('Z-axis','Z') CALL TITLIN(CTIT1,2) CALL TITLIN(CTIT2,4) CALL VIEW3D(-5.,-5.,4.,'ABS') CALL GRAF3D(0.,360.,0.,90.,0.,360.,0.,90.,-3.,3.,-3.,1.) CALL HEIGHT(50) CALL TITLE() CALL SHDMOD('SMOOTH','SURFACE') CALL SURSHD(XRAY,N,YRAY,N,ZMAT) CALL DISFIN() STOP END PROGRAM EXA_10
Contour Plot / Fortran 90
PROGRAM EX14_1 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=50 REAL, DIMENSION (N) :: XRAY,YRAY REAL, DIMENSION (N,N) :: ZMAT INTEGER :: I,J REAL :: FPI,STEP,ZLEV FPI=3.14159/180. STEP=360./(N-1) DO I=1,N XRAY(I)=(I-1.)*STEP YRAY(I)=(I-1.)*STEP END DO DO I=1,N DO J=1,N ZMAT(I,J)=2*SIN(XRAY(I)*FPI)*SIN(YRAY(J)*FPI) END DO END DO CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL COMPLX() CALL PAGERA() CALL TITLIN('Contour Plot',1) CALL TITLIN('F(X,Y) = 2 * SIN(X) * SIN(Y)',3) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL INTAX() CALL AXSPOS(450,2670) CALL GRAF(0.,360.,0.,90.,0.,360.,0.,90.) CALL HEIGHT(30) DO I=1,9 ZLEV=-2.+(I-1)*0.5 CALL SETCLR(I*25) IF(I.EQ.5) THEN CALL LABELS('NONE','CONTUR') ELSE CALL LABELS('FLOAT','CONTUR') END IF CALL CONTUR(XRAY,N,YRAY,N,ZMAT,ZLEV) END DO CALL HEIGHT(50) CALL COLOR('FORE') CALL TITLE() CALL DISFIN() STOP END PROGRAM EX14_1
Shaded Contour Plot / Fortran 90
PROGRAM EX14_2 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=50 REAL, DIMENSION (N) :: XRAY,YRAY REAL, DIMENSION (N,N) :: ZMAT REAL, DIMENSION (12) :: ZLEV REAL :: STEP,X,Y INTEGER :: I,J STEP=1.6/(N-1) DO I=1,N X=0.0+(I-1)*STEP XRAY(I)=X DO J=1,N Y=0.0+(J-1)*STEP YRAY(J)=Y ZMAT(I,J)=(X*X-1.)**2 + (Y*Y-1.)**2 END DO END DO CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL MIXALF() CALL TITLIN('Shaded Contour Plot',1) CALL TITLIN('F(X,Y) = (X[2$ - 1)[2$ + (Y[2$ - 1)[2$',3) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL SHDMOD('POLY','CONTUR') CALL AXSPOS(450,2670) CALL GRAF(0.0,1.6,0.0,0.2,0.0,1.6,0.0,0.2) DO I=1,12 ZLEV(13-I)=0.1+(I-1)*0.1 END DO CALL CONSHD(XRAY,N,YRAY,N,ZMAT,ZLEV,12) CALL HEIGHT(50) CALL TITLE() CALL DISFIN() STOP END PROGRAM EX14_2
Shaded Surface / Contour Plot / Fortran 90
PROGRAM EXA12_5 USE DISLIN IMPLICIT NONE INTEGER, PARAMETER :: N=50,NLEV=20 REAL, DIMENSION (N,N) :: ZMAT REAL, DIMENSION (N) :: XRAY,YRAY REAL, DIMENSION (NLEV) :: ZLEV CHARACTER (LEN=60) :: CTIT1 = 'Shaded Surface / Contour Plot', & CTIT2 = 'F(X,Y) = 2*SIN(X)*SIN(Y)' REAL :: FPI,STEP,X,Y INTEGER :: I,J FPI=3.14159/180. STEP = 360./(N-1) DO I=1,N X=(I-1)*STEP XRAY(I)=X DO J=1,N Y=(J-1)*STEP YRAY(J)=Y ZMAT(I,J)=2*SIN(X*FPI)*SIN(Y*FPI) END DO END DO CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL HWFONT() CALL AXSPOS(200,2600) CALL AXSLEN(1800,1800) CALL NAME('X-axis','X') CALL NAME('Y-axis','Y') CALL NAME('Z-axis','Z') CALL TITLIN(CTIT1,2) CALL TITLIN(CTIT2,4) CALL GRAF3D(0.,360.,0.,90.,0.,360.,0.,90.,-2.,2.,-2.,1.) CALL HEIGHT(50) CALL TITLE() CALL GRFINI(-1.,-1.,-1.,1.,-1.,-1.,1.,1.,-1.) CALL NOGRAF() CALL GRAF(0.,360.,0.,90.,0.,360.,0.,90.) STEP=4./NLEV DO I=1,NLEV ZLEV(I)=-2.0+(I-1)*STEP END DO CALL CONSHD(XRAY,N,YRAY,N,ZMAT,ZLEV,NLEV) CALL BOX2D() CALL RESET('NOGRAF') CALL GRFFIN() CALL SHDMOD('SMOOTH','SURFACE') CALL SURSHD(XRAY,N,YRAY,N,ZMAT) CALL DISFIN() STOP END PROGRAM EXA12_5
Spheres and Tubes / Fortran 90
PROGRAM EXA12_6 USE DISLIN IMPLICIT NONE REAL, DIMENSION (17) :: X = (/10., 20., 10., 20., 5., 15., 25., & 5., 15., 25., 5., 15., 25., 10., 20., 10., 20./) REAL, DIMENSION (17) :: Y = (/10., 10., 20., 20., 5., 5., 5., & 15., 15., 15., 25., 25., 25., 10., 10., 20., 20./) REAL, DIMENSION (17) :: Z = (/5., 5., 5., 5., 15., 15., 15., & 15., 15., 15., 15., 15., 15., 25., 25., 25., 25./) INTEGER, DIMENSION (56) :: IDX = (/1, 2, 1, 3, 3, 4, 2, 4, 5, 6, & 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 5, 8, 8, 11, 6, 9, 9, & 12, 7, 10, 10, 13, 14, 15, 16, 17, 14, 16, 15, 17, & 1, 5, 2, 7, 3, 11, 4, 13, 5, 14, 7, 15, 11, 16, 13, 17/) INTEGER :: I,J1,J2,IRET CALL SETPAG('da4p') CALL SCRMOD('revers') CALL METAFL('cons') CALL DISINI() CALL PAGERA() CALL HWFONT() CALL LIGHT('on') CALL MATOP3(0.02, 0.02, 0.02, 'specular') CALL CLIP3D('none') CALL AXSPOS(0,2500) CALL AXSLEN(2100,2100) CALL HTITLE(50) CALL TITLIN('Spheres and Tubes', 4) CALL NAME('X-axis', 'x') CALL NAME('Y-axis', 'y') CALL NAME('Z-axis', 'z') CALL LABDIG(-1, 'xyz') CALL LABL3D('hori') CALL GRAF3D(0., 30., 0., 5., 0., 30., 0., 5., 0., 30., 0., 5.) CALL TITLE() CALL SHDMOD('smooth', 'surface') CALL ZBFINI(IRET) CALL MATOP3(1.0, 0.0, 0.0, 'diffuse') DO I=1,17 CALL SPHE3D(X(I),Y(I),Z(I),2.0,50,25) END DO CALL MATOP3(0.0, 1.0, 0.0, 'diffuse') DO I=1,56,2 J1=IDX(I) J2=IDX(I+1) CALL TUBE3D(X(J1),Y(J1),Z(J1),X(J2),Y(J2),Z(J2),0.5,10,5) END DO CALL ZBFFIN() CALL DISFIN() END PROGRAM EXA12_6
Some Solids / Fortran 90
PROGRAM EXA12_7 USE DISLIN IMPLICIT NONE INTEGER :: IRET CALL SETPAG('da4p') CALL SCRMOD('revers') CALL METAFL('cons') CALL DISINI() CALL PAGERA() CALL HWFONT() CALL LIGHT('on') CALL LITOP3(1,0.5,0.5,0.5,'ambient') CALL CLIP3D('none') CALL AXSPOS(0, 2500) CALL AXSLEN(2100, 2100) CALL HTITLE(60) CALL TITLIN('Some Solids', 4) CALL NOGRAF() CALL GRAF3D(-5., 5., -5., 2., -5., 5., -5., 2., -5., 5., -5., 2.) CALL TITLE() CALL SHDMOD('smooth', 'surface') CALL ZBFINI(IRET) CALL MATOP3(1.0, 0.5, 0.0, 'diffuse') CALL TUBE3D(-3., -3., 8.0, 2., 3., 5.5, 1., 40, 20) CALL ROT3D(-60., 0., 0.) CALL MATOP3(1.0, 0.0, 1.0, 'diffuse') CALL SETFCE('bottom') CALL MATOP3(1.0, 0.0, 0.0, 'diffuse') CALL CONE3D(-3., -3., 3.5, 2., 3., 3., 40, 20) CALL SETFCE('top') CALL ROT3D(0., 0., 0.) CALL MATOP3(0.0, 1.0, 1.0, 'diffuse') CALL PLAT3D(4., 4., 3., 3., 'ICOS') CALL ROT3D(0., 0., 0.) CALL MATOP3(1.0, 1.0, 0.0, 'diffuse') CALL SPHE3D(0., 0., 0., 3., 40, 20) CALL ROT3D(0., 0., -20.) CALL MATOP3(0.0, 0.0, 1.0, 'diffuse') CALL QUAD3D(-4., -4., -3., 3., 3., 3.) CALL ROT3D(0., 0., 30.) CALL MATOP3(1.0, 0.3, 0.3, 'diffuse') CALL PYRA3D(-2., -5., -10., 3., 5., 5., 4) CALL ROT3D(0., 0., 0.) CALL MATOP3(1.0, 0.0, 0.0, 'diffuse') CALL TORUS3D(7., -3., -2., 1.5, 3.5, 1.5, 0., 360., 40, 20) CALL ROT3D(0., 90., 0.) CALL MATOP3(0.0, 1.0, 0.0, 'diffuse') CALL TORUS3D(7., -5., -2., 1.5, 3.5, 1.5, 0., 360., 40, 20) CALL ZBFFIN() CALL DISFIN() END PROGRAM EXA12_7
Map Plot / Fortran 90
PROGRAM EX13_1 USE DISLIN IMPLICIT NONE CALL SCRMOD('REVERS') CALL SETPAG('DA4L') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL FRAME(3) CALL AXSPOS(400,1850) CALL AXSLEN(2400,1400) CALL NAME('Longitude','X') CALL NAME('Latitude','Y') CALL TITLIN('World Coastlines and Lakes',3) CALL LABELS('MAP','XY') CALL GRAFMP(-180.,180.,-180.,90.,-90.,90.,-90.,30.) CALL GRIDMP(1,1) CALL COLOR('GREEN') CALL WORLD() CALL COLOR('FORE') CALL HEIGHT(50) CALL TITLE() CALL DISFIN() STOP END PROGRAM EX13_1
TeX Instructions for Mathematical Formulas / Fortran 90
PROGRAM EXA_13 USE DISLIN IMPLICIT NONE CHARACTER(LEN=80) :: CSTR INTEGER :: NL CALL SCRMOD('REVERS') CALL SETPAG('DA4P') CALL METAFL('CONS') CALL DISINI() CALL PAGERA() CALL COMPLX() CALL HEIGHT(40) CSTR='TeX Instructions for Mathematical Formulas' NL=NLMESS(CSTR) CALL MESSAG(CSTR, (2100 - nl)/2, 100) CALL TEXMOD('ON') CALL MESSAG('$\frac{1}{x+y}$', 150, 400) CALL MESSAG('$\frac{a^2 - b^2}{a+b} = a - b$', 1200, 400) CALL MESSAG('$r = \sqrt{x^2 + y^2}', 150, 700) CALL MESSAG('$\cos \phi = \frac{x}{\sqrt{x^2 + y^2}}$', 1200, 700) CALL MESSAG('$\Gamma(x) = \int_0^\infty e^{-t}t^{x-1}dt$', 150, 1000) CALL MESSAG('$\lim_{x \to \infty} (1 + \frac{1}{x})^x = e$', 1200, 1000) CALL MESSAG('$\mu = \sum_{i=1}^n x_i p_i$', 150, 1300) CALL MESSAG('$\mu = \int_{-\infty}^ \infty x f(x) dx$', 1200, 1300) CALL MESSAG('$\overline{x} = \frac{1}{n} \sum_{i=1}^n x_i$', 150, 1600) CALL MESSAG('$s^2 = \frac{1}{n-1} \sum_{i=1}^n (x_i - \overline{x})^2$', & 1200, 1600) CALL MESSAG('$\sqrt[n]{\frac{x^n - y^n}{1 + u^{2n}}}$', 150, 1900) CALL MESSAG('$\sqrt[3]{-q + \sqrt{q^2 + p^3}}$', 1200, 1900) CALL MESSAG('$\int \frac{dx}{1+x^2} = \arctan x + C$', 150, 2200) CALL MESSAG('$\int \frac{dx}{\sqrt{1+x^2}} = {\rm arsinh} x + C$', & 1200, 2200) CALL MESSAG('$\overline{P_1P_2} = \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$', & 150,2500) CALL MESSAG('$x = \frac{x_1 + \lambda x_2}{1 + \lambda}$', 1200, 2500) CALL DISFIN() STOP END PROGRAM EXA_13

News
Support for Python 3.11 and Windows
28. July 2023
Bug fix for the X11 distributions
22. July 2023
Upgrade 11.5.1
25. April 2023
Support for Linux 64-bit on IBM z series
30. October 2022
Support for MingW 64-bit UCRT runtime environment
28. September 2022
Release 11.5
15. March 2022
Release 11.4
15. March 2021
Support for Free Pascal 64-bit on Windows
22. July 2020
Upgrade 11.3.3
28. June 2020
Upgrade 11.3.2
19. May 2020
DISLIN Book Version 11 is available
8. March 2017
28. July 2023
Bug fix for the X11 distributions
22. July 2023
Upgrade 11.5.1
25. April 2023
Support for Linux 64-bit on IBM z series
30. October 2022
Support for MingW 64-bit UCRT runtime environment
28. September 2022
Release 11.5
15. March 2022
Release 11.4
15. March 2021
Support for Free Pascal 64-bit on Windows
22. July 2020
Upgrade 11.3.3
28. June 2020
Upgrade 11.3.2
19. May 2020
DISLIN Book Version 11 is available
8. March 2017