29 use plplot
, only: plflt
35 real(plflt),
parameter ::
ch_fac = 0.35_plflt
59 use plplot
, only: plbop, plinit
80 use plplot
, only: pllsty
83 integer,
intent(in) :: ls
84 integer :: ls1,ls2, styles(5)
87 styles = (/1,4,5,2,6/)
90 if(ls1.lt.1.or.ls1.gt.5) ls1 = 1
111 integer,
intent(out) :: ls
122 use plplot
, only: plflt, plwidth
125 integer,
intent(in) :: lw
127 real(kind=plflt) :: lw2
130 lw1 = max(min(lw,201),1)
148 integer,
intent(out) :: lw
161 use plplot
, only: plfont
163 integer,
intent(in) :: cf
176 use plplot
, only: plgfont
178 integer,
intent(out) :: cf
179 integer :: family, style, weight
181 call plgfont(family, style, weight)
182 if(style .eq. 1)
then 185 else if(family .eq. 1)
then 188 else if(family .eq. 3)
then 203 subroutine pgqinf(item, value, length)
205 character,
intent(in) :: item*(*)
206 character,
intent(out) :: value*(*)
207 integer,
intent(out) :: length
219 subroutine pgsci(ci1)
221 use plplot
, only: plcol0
223 integer,
intent(in) :: ci1
224 integer :: ci2,colours(0:15)
228 colours = (/0,15,1,3,9,7,13,2,8,12,4,11,10,5,7,7/)
229 if(ci1.ge.0.and.ci1.le.15) ci2 = colours(ci1)
246 subroutine pgscr(ci1, r,g,b)
247 use plplot
, only: plscol0, plscmap0n
249 integer,
intent(in) :: ci1
250 real,
intent(in) :: r,g,b
251 integer :: ci2,ri,gi,bi,colours(0:15)
257 colours = (/0,15,1,3,9,7,13,2,8,12,4,11,10,5,7,7/)
259 if(ci1.ge.0.and.ci1.le.15) ci2 = colours(ci1)
260 if(ci2.gt.15)
call plscmap0n(256)
262 call plscol0(ci2, ri,gi,bi)
277 subroutine pgqcr(ci1, r,g,b)
278 use plplot
, only: plgcol0
280 integer,
intent(in) :: ci1
281 real,
intent(out) :: r,g,b
282 integer :: ci2,ri,gi,bi,colours(0:15)
285 colours = (/0,15,1,3,9,7,13,2,8,12,4,11,10,5,7,7/)
286 if(ci1.ge.0.and.ci1.le.15) ci2 = colours(ci1)
288 call plgcol0(ci2,ri,gi,bi)
305 subroutine pgscir(ci1,ci2)
308 integer,
intent(in) :: ci1,ci2
310 integer,
save :: warn
330 subroutine pgqcir(ci1,ci2)
333 integer,
intent(out) :: ci1,ci2
334 integer,
save :: warn
354 use plplot
, only: plpsty
356 integer,
intent(in) :: fs
357 integer :: fs1,fs2, styles(4)
360 if(fs.lt.1.or.fs.gt.4) fs1 = 1
384 subroutine pgshs(ang, sep, ph)
385 use plplot
, only: plpat
387 real,
intent(in) :: ang, sep, ph
388 integer :: inc, del, tmp
395 call plpat([inc], [del])
407 use plplot
, only: plflt, plschr
411 real,
intent(in) :: ch
412 real(kind=plflt) :: ch1,ch2
434 subroutine pgqcs(unit, xch, ych)
435 use plplot
, only: plflt, plgpage, plgchr
439 integer,
intent(in) :: unit
440 real,
intent(out) :: xch, ych
441 real(kind=plflt) :: ch1,ch2
442 real(kind=plflt) :: xp, yp
443 integer :: xleng, yleng, xoff, yoff
448 else if(unit .eq. 1)
then 451 else if(unit .eq. 0)
then 452 call plgpage(xp, yp, xleng, yleng, xoff, yoff)
453 xch =
real(ch2 / yleng)
454 ych =
real(ch2 / yleng)
456 print *,
'unknown unit in pgqcs', unit
468 use plplot
, only: plflt, plgchr
472 real,
intent(out) :: ch
473 real(kind=plflt) :: ch1,ch2
476 ch =
real(ch2/(ch1*
ch_fac))
491 subroutine pgsah(fs, angle, barb)
494 integer,
intent(in) :: fs
495 real,
intent(in) :: angle, barb
497 integer,
save :: warn
519 subroutine pgline(n,x1,y1)
520 use plplot
, only: plflt, plline
523 integer,
intent(in) :: n
524 real,
intent(in) :: x1(n),y1(n)
525 real(kind=plflt) :: x2(n),y2(n)
546 subroutine pgarro(x1,y1, x2,y2)
547 use plplot
, only: plflt, plline, plpoin
550 real,
intent(in) :: x1,x2, y1,y2
551 real(kind=plflt) :: x(2),y(2)
557 call plpoin((/x(2)/),(/y(2)/),2)
575 use plplot
, only: plflt, plpoin
578 integer,
intent(in) :: n,s
579 real,
intent(in) :: x1(n),y1(n)
580 real(kind=plflt) :: x2(n),y2(n)
598 subroutine pgpoly(n,x1,y1)
599 use plplot
, only: plflt, plfill
602 integer,
intent(in) :: n
603 real,
intent(in) :: x1(n),y1(n)
604 real(kind=plflt) :: x2(n),y2(n)
624 subroutine pgrect(x1,x2,y1,y2)
625 use plplot
, only: plflt, plfill
628 real,
intent(in) :: x1,x2,y1,y2
629 real(kind=plflt) :: x(4),y(4)
647 subroutine pgcirc(xc, yc, r)
648 use plplot
, only: plflt, plfill
651 real,
intent(in) :: xc, yc, r
653 integer,
parameter :: n=100
655 real(kind=plflt) :: x(n),y(n),twopi
660 x(i) = xc + r * cos(twopi/
real(n-1))
661 y(i) = yc + r * sin(twopi/
real(n-1))
686 subroutine pgcont(arr, nx,ny, ix1,ix2, iy1,iy2, c, nc, tr)
687 use plplot
, only: plflt, plcont
690 integer,
intent(in) :: nx,ny, ix1,ix2, iy1,iy2, nc
691 real,
intent(in) :: arr(nx,ny), c(*), tr(6)
692 real(kind=plflt) :: arr1(nx,ny), clevel(nc), tr1(6)
698 call plcont(arr1, ix1,ix2, iy1,iy2, clevel, tr1)
718 subroutine pgconf(arr, nx,ny, ix1,ix2, iy1,iy2, c1, c2, tr)
721 integer,
intent(in) :: nx,ny, ix1,ix2, iy1,iy2
722 real,
intent(in) :: arr(nx,ny), c1,c2, tr(6)
725 integer,
save :: warn
776 subroutine pgptxt(x1,y1,ang,just1,text)
777 use plplot
, only: plflt, plptex, plgvpw
780 real,
intent(in) :: x1,y1,ang,just1
781 character,
intent(in) :: text*(*)
783 real(kind=plflt) :: x2,y2,just2,dx,dy,xmin,xmax,ymin,ymax
784 character :: text1*(len(text))
787 call plgvpw(xmin,xmax,ymin,ymax)
792 if(abs(ang).lt.1.e-5)
then 794 else if(abs(mod(ang-90.,180.)).lt.1.e-5)
then 797 if(abs(mod(ang-90.,360.)).lt.1.e-5) dy = 1.
800 dy = dx*tan(ang*d2r) * (ymax-ymin)/(xmax-xmin)
801 if(ang.gt.90. .and. ang.lt.270. .or. ang.lt.-90. .and. ang.gt.-270.)
then 814 call plptex(x2,y2,dx,dy,just2,trim(text1))
833 subroutine pgptext(x,y,ang,just,text)
835 real,
intent(in) :: x,y,ang,just
836 character,
intent(in) :: text*(*)
838 call pgptxt(x,y,ang,just,text)
851 subroutine pgtext(x1,y1,text)
852 use plplot
, only: plflt, plptex
855 real,
intent(in) :: x1,y1
856 character,
intent(in) :: text*(*)
857 real(kind=plflt) :: x2,y2,just,dx,dy
858 character :: text1*(len(text))
870 call plptex(x2,y2,dx,dy,just,text1)
885 subroutine pgmtxt(side, disp1, pos1, just1, text)
886 use plplot
, only: plflt, plmtex
889 real,
intent(in) :: disp1,pos1,just1
890 real(kind=plflt) :: disp2,pos2,just2
891 character,
intent(in) :: side*(*)
892 character,
intent(in) :: text*(*)
893 character :: text1*(len(text))
903 call plmtex(side, disp2, pos2, just2, text1)
917 subroutine pgmtext(side, disp, pos, just, text)
919 real,
intent(in) :: disp,pos,just
920 character,
intent(in) :: side*(*)
921 character,
intent(in) :: text*(*)
922 character :: text1*(len(text))
926 call pgmtxt(side, disp, pos, just, text1)
939 subroutine pglab(xlbl, ylbl, toplbl)
941 character,
intent(in) :: xlbl*(*), ylbl*(*), toplbl*(*)
943 call pgmtxt(
'T', 2.0, 0.5, 0.5, toplbl)
944 call pgmtxt(
'B', 3.2, 0.5, 0.5, xlbl)
945 call pgmtxt(
'L', 2.2, 0.5, 0.5, ylbl)
957 subroutine pglabel(xlbl, ylbl, toplbl)
959 character,
intent(in) :: xlbl*(*), ylbl*(*), toplbl*(*)
960 call pglab(xlbl, ylbl, toplbl)
973 use plplot
, only: plspause, plsfnam, plsdev, plmkstrm, plsetopt, plssub, plfontld
977 character,
intent(in) :: pgdev*(*)
980 character :: pldev*(99),filename*(99)
982 filename =
'plot_temp.png' 984 call pg2pldev(pgdev, pldev,filename)
985 call plmkstrm(cur_stream)
987 call plsdev(trim(pldev))
988 if(trim(pldev).ne.
'xwin')
then 993 call plsfnam(trim(filename))
995 status = plsetopt(
"db",
"")
1000 call plspause(.false.)
1002 pgopen = cur_stream + 1
1013 subroutine pgqid(id)
1016 integer,
intent(out) :: id
1018 end subroutine pgqid 1032 subroutine pgbegin(i,pgdev,nx,ny)
1033 use plplot
, only: plspause, plsfnam, plsetopt, plssub, plsdev, plfontld
1036 integer,
intent(in) :: i,nx,ny
1037 character,
intent(in) :: pgdev*(*)
1038 integer :: i1, check_error, status
1039 character :: pldev*(99),filename*(99)
1047 call pg2pldev(pgdev, pldev,filename)
1049 if(trim(pldev).ne.
'xwin')
then 1050 if(check_error(trim(filename)).ne.0)
return 1051 call plsfnam(trim(filename))
1053 status = plsetopt(
"db",
"")
1058 call plsdev(trim(pldev))
1060 call plspause(.false.)
1072 subroutine pgbeg(i, pgdev, nx, ny)
1074 integer,
intent(in) :: i,nx,ny
1075 character,
intent(in) :: pgdev*(*)
1076 call pgbegin(i, pgdev, nx, ny)
1077 end subroutine pgbeg 1086 use plplot
, only: plflush, plend1
1091 end subroutine pgend 1101 subroutine pgpap(width,ratio)
1103 use plplot
, only : plflt, plspage
1105 real,
intent(in) :: width, ratio
1106 integer :: xlen,ylen,xoff,yoff
1107 real(kind=plflt) :: xp,yp
1120 call plspage(xp,yp,xlen,ylen,xoff,yoff)
1123 end subroutine pgpap 1135 subroutine pgsvp(xl1,xr1,yb1,yt1)
1136 use plplot
, only: plflt, plvpor
1139 real,
intent(in) :: xl1,xr1,yb1,yt1
1140 real(kind=plflt) :: xl2,xr2,yb2,yt2
1148 call plvpor(xl2,xr2,yb2,yt2)
1150 end subroutine pgsvp 1162 subroutine pgswin(xmin1,xmax1,ymin1,ymax1)
1163 use plplot
, only: plflt, plwind
1166 real,
intent(in) :: xmin1,xmax1,ymin1,ymax1
1167 real(kind=plflt) :: xmin2,xmax2,ymin2,ymax2
1175 call plwind(xmin2,xmax2,ymin2,ymax2)
1188 subroutine pgwindow(xmin1,xmax1,ymin1,ymax1)
1189 use plplot
, only: plflt, plwind
1192 real,
intent(in) :: xmin1,xmax1,ymin1,ymax1
1193 real(kind=plflt) :: xmin2,xmax2,ymin2,ymax2
1199 call plwind(xmin2,xmax2,ymin2,ymax2)
1211 subroutine pgsubp(nxsub, nysub)
1212 use plplot
, only: plssub
1214 integer,
intent(in) :: nxsub,nysub
1216 call plssub(nxsub, nysub)
1227 use plplot
, only: pladv
1252 integer,
save :: warn
1271 integer,
save :: warn
1293 subroutine pgbox(xopt, xtick1, nxsub, yopt, ytick1, nysub)
1294 use plplot
, only: plflt, plbox
1297 integer,
intent(in) :: nxsub,nysub
1298 real,
intent(in) :: xtick1,ytick1
1299 character,
intent(in) :: xopt*(*),yopt*(*)
1300 real(kind=plflt) :: xtick2,ytick2
1306 call plbox(xopt, xtick2, nxsub, yopt, ytick2, nysub)
1308 end subroutine pgbox 1329 subroutine pgtick(x1, y1, x2, y2, pos, tikl, tikr, disp, orient, lbl)
1330 use plplot
, only: plflt, plmtex, pljoin, plgvpw
1333 real,
intent(in) :: x1, y1, x2, y2, pos, tikl, tikr, disp, orient
1334 character,
intent(in) :: lbl*(*)
1336 real :: x,y,dx,dy, dpx,dpy, reldiff
1337 real(plflt) :: p_xmin,p_xmax,p_ymin,p_ymax, plx1,plx2,ply1,ply2, tlen, disp1,pos1,just
1338 character :: lbl1*(len(lbl))
1351 call plgvpw(p_xmin, p_xmax, p_ymin, p_ymax)
1353 dpx =
real(abs(p_xmax-p_xmin))
1354 dpy =
real(abs(p_ymax-p_ymin))
1361 if(reldiff(y1,y2) .le. epsilon(y1)*10 .or. (seq(y1,0.) .and. seq(y2,0.)))
then 1368 if(tikl.gt.tiny(tikl))
then 1369 ply2 = y - dpy * tikl * tlen
1370 call pljoin(plx1,ply1,plx2,ply2)
1374 if(tikr.gt.tiny(tikr))
then 1375 ply2 = y + dpy * tikr * tlen
1376 call pljoin(plx1,ply1,plx2,ply2)
1380 if(abs(reldiff(y,
real(p_ymin))) .le. epsilon(y)*10 .or. (seq(y,0.) .and. deq(p_ymin,0.0_plflt))) then
1381 call plmtex(
'B', disp1, pos1, just, trim(lbl1))
1383 call plmtex(
'T', disp1, pos1, just, trim(lbl1))
1386 else if(reldiff(x1,x2) .le. epsilon(x1)*10 .or. (seq(x1,0.) .and. seq(x2,0.)))
then 1393 if(tikl.gt.tiny(tikl))
then 1394 plx2 = x - dpx * tikl * tlen
1395 call pljoin(plx1,ply1, plx2,ply2)
1399 if(tikr.gt.tiny(tikr))
then 1400 plx2 = x + dpx * tikr * tlen
1401 call pljoin(plx1,ply1, plx2,ply2)
1405 if(abs(reldiff(x,
real(p_xmin))) .le. epsilon(x)*10 .or. (seq(x,0.) .and. deq(p_xmin,0.0_plflt))) then
1406 call plmtex(
'L', disp1, pos1, just, trim(lbl1))
1408 call plmtex(
'R', disp1, pos1, just, trim(lbl1))
1412 write(0,
'(A)')
"PG2PLplot, pgtick(): x1!=x2 and y1!=y2 - I don't know which axis you want to use..." 1413 print*,
'x:',x1,x2,reldiff(x1,x2)
1414 print*,
'y:',y1,y2,reldiff(y1,y2)
1433 subroutine pgolin(maxpt, npt, x, y, symbol)
1437 integer,
intent(in) :: maxpt,symbol
1438 integer,
intent(out) :: npt
1439 real,
intent(out) :: x(maxpt),y(maxpt)
1442 integer,
save :: warn
1463 use plplot
, only: plclear
1478 character,
intent(inout) :: string*(*)
1482 call replace_substring(string,
'\', '#') ! Replace the PGPlot escape character \ with the PLplot escape character # ' 1514 subroutine pg2pldev(pgdev, pldev,filename)
1516 character,
intent(in) :: pgdev*(*)
1517 character,
intent(out) :: pldev*(*), filename*(*)
1521 i = index(pgdev,
'/', back=.true.)
1524 if(i.ne.1) filename = pgdev(1:i-1)
1543 if(pldev .eq.
'png') pldev =
'pngcairo' 1556 use plplot
, only : plspause, plgdev, pleop, plsstrm
1559 integer,
intent(in) :: pgdev
1560 character :: pldev*(99)
1564 if(trim(pldev).eq.
'xwin')
call pleop()
1565 call plsstrm(pgdev-1)
1580 use plplot
, only : plgfont
1583 save_level = save_level + 1
1584 if(save_level.gt.max_level)
then 1585 write(0,
'(/,A,/)')
'*** PG2PLplot WARNING: too many save calls in pgsave()' 1589 call plgfont(save_ffamily(save_level), save_fstyle(save_level), save_fweight(save_level))
1591 save_color(save_level) = cur_color
1605 use plplot
, only : plsfont
1608 if(save_level.eq.0)
then 1609 write(0,
'(/,A,/)')
'*** PG2PLplot WARNING: no save call in stack in pgunsa()' 1613 if(save_level.gt.max_level)
then 1614 write(0,
'(/,A,/)')
'*** PG2PLplot WARNING: unsave greater than stack in pgunsa()' 1615 save_level = save_level - 1
1619 call plsfont(save_ffamily(save_level), save_fstyle(save_level), save_fweight(save_level))
1623 save_level = save_level - 1
1638 real,
intent(in) :: x, y
1655 use plplot
, only: pljoin, plflt
1657 real,
intent(in) :: x, y
1658 real(plflt) :: x1, y1
1678 subroutine pgpt(n, x, y, ncode)
1679 use plplot
, only: plpoin, plflt, plsym
1682 integer,
intent(in) :: n, ncode
1683 real(plflt),
intent(in),
dimension(n) :: x, y
1688 if(ncode == -3)
then 1690 else if(ncode == -4)
then 1692 else if(ncode < 0)
then 1698 call plsym(x, y, code)
1711 subroutine pgpt1(x, y, ncode)
1712 use plplot
, only: plpoin, plflt
1714 integer,
intent(in) :: ncode
1715 real(plflt),
intent(in) :: x, y
1716 real(plflt),
dimension(1) :: xin, yin
1721 call pgpt(1, xin, yin, ncode)
1723 end subroutine pgpt1 1732 use plplot
, only: plend1
1750 subroutine pgband(mode, posn, xref, yref, x, y, ch)
1754 integer,
intent(in) :: mode, posn
1755 real,
intent(in) :: xref, yref
1756 real,
intent(out) :: x, y
1757 character,
intent(out) :: ch*(*)
1759 integer,
save :: warn
1790 subroutine pgqcol(c1, c2)
1794 integer,
intent(out) :: c1, c2
1795 integer,
save :: warn
1815 subroutine pgqci(ci)
1819 integer,
intent(out) :: ci
1820 integer,
save :: warn
1828 end subroutine pgqci 1846 subroutine pgqvp(units, x1, x2, y1, y2)
1847 use plplot
, only: plflt, plgpage, plgvpd
1850 integer,
intent(in) :: units
1851 real,
intent(out) :: x1, x2, y1, y2
1852 real(kind=plflt) :: x1d, x2d, y1d, y2d
1853 real(kind=plflt) :: xp, yp
1854 integer :: xleng, yleng, xoff, yoff
1856 call plgvpd(x1d, x2d, y1d, y2d)
1857 if(units .ne. 0)
then 1858 call plgpage(xp, yp, xleng, yleng, xoff, yoff)
1859 x1 =
real(x1d * xleng - xoff) 1860 x2 =
real(x2d * xleng - xoff)
1861 y1 =
real(y1d * yleng - yoff)
1862 y2 =
real(y2d * yleng - yoff) 1863 if(units .eq. 3)
then 1865 else if(units .eq. 2)
then 1871 else if(units .eq. 1)
then 1879 print *,
"unknown units in pgqvp", units
1885 end subroutine pgqvp 1891 subroutine pgqvsz(units, x1, x2, y1, y2)
1892 use plplot
, only: plflt, plgpage
1895 integer,
intent(in) :: units
1896 real,
intent(out) :: x1, x2, y1, y2
1897 real(kind=plflt) xp, yp
1898 integer :: xleng, yleng, xoff, yoff
1903 if(units .eq. 0)
then 1909 call plgpage(xp, yp, xleng, yleng, xoff, yoff)
1910 if(units .eq. 3)
then 1913 else if(units .eq. 2)
then 1916 else if(units .eq. 1)
then 1921 print *,
'undefined units in pgqvsz' 1936 integer,
save :: warn
1955 subroutine pgqwin(x1, x2, y1, y2)
1956 use plplot
, only: plflt, plgspa
1958 real,
intent(out) :: x1, x2, y1, y2
1959 real(kind=plflt) :: xmin, xmax, ymin, ymax
1961 call plgspa(xmin, xmax, ymin, ymax)
1990 character,
intent(inout) :: string*(*)
1991 character,
intent(in) :: str_in*(*),str_out*(*)
1994 l = len_trim(str_in)
1997 is = index(string, str_in, back=.false.)
1999 string = string(1:is-1)//trim(str_out)//trim(string(is+l:))
2010 subroutine pgqfs(fs)
2012 integer,
intent(out) :: fs
2014 end subroutine pgqfs 2024 integer,
intent(in) :: b
2038 integer,
intent(out) :: b
2049 subroutine pgask(prompt)
2051 logical,
intent(in) :: prompt
2055 end subroutine pgask 2068 subroutine pgenv(xmin, xmax, ymin, ymax, just, axis)
2069 use plplot
, only: plflt, plenv
2071 real,
intent(in) :: xmin, xmax, ymin, ymax
2072 integer,
intent(in) :: just, axis
2073 real(kind=plflt) :: xminp, xmaxp, yminp, ymaxp
2078 call plenv(xminp, xmaxp, yminp, ymaxp, just, axis)
2079 end subroutine pgenv 2090 subroutine pgbin(nbin, x, data, center)
2091 use plplot
, only: plflt, plbin
2093 integer,
intent(in) :: nbin
2094 real,
intent(in) :: x(*), data(*)
2095 logical,
intent(in) :: center
2096 real(kind=plflt) :: xp(nbin), datap(nbin)
2099 datap =
data(1:nbin)
2101 call plbin(xp, datap, opt)
2102 end subroutine pgbin 2114 subroutine pgerry(n, x, ymax, ymin, t)
2115 use plplot
, only: plflt, plerry
2117 integer,
intent(in) :: n
2118 real,
intent(in) :: x(*), ymin(*), ymax(*), t
2119 real(kind=plflt) :: xp(n), yminp(n), ymaxp(n)
2124 call plerry(xp, yminp, ymaxp)
2137 subroutine pgvsiz(xleft, xright, ybot, ytop)
2138 use plplot
, only: plflt,plsvpa
2140 real,
intent(in) :: xleft, xright, ybot, ytop
2141 real(kind=plflt) :: x1p, x2p, y1p, y2p
2146 call plsvpa(x1p, x2p, y1p, y2p)
2158 subroutine pgvsize(xleft, xright, ybot, ytop)
2160 real,
intent(in) :: xleft, xright, ybot, ytop
2161 call pgvsiz(xleft, xright, ybot, ytop)
2174 subroutine pglen(units, string, xl, yl)
2176 character,
intent(in) :: string*(*)
2177 integer,
intent(in) :: units
2178 real,
intent(out) :: xl, yl
2181 print *,
"pglen not implemented" 2184 xl = 1.0 +
real(0*units) 2187 end subroutine pglen 2203 subroutine pgqtxt(x, y, angle, fjust, text, xbox, ybox)
2205 character,
intent(in) :: text*(*)
2206 integer,
intent(in) :: x, y, angle, fjust
2207 real,
intent(out) :: xbox(4), ybox(4)
2213 dumint = x + y + angle + fjust
2218 print *,
"pgqtxt not implemented" 2244 real,
intent(in) :: x1,x2
2245 real :: reldiff, xsum,xdiff
2250 if(abs(xsum).gt.tiny(xsum))
then 2251 reldiff = xdiff / (xsum*0.5)
2253 if(abs(xdiff).gt.tiny(xdiff))
then 2271 character,
intent(in) :: fname*(*)
2272 integer :: err, check_error
2274 open(9999, file=trim(fname), err=450, iostat=err)
2294 character,
intent(in) :: routine*(*),message*(*)
2296 write(0,
'(/,A)')
'*** PG2PLplot WARNING: no PLplot equivalent was found for the PGplot routine '//trim(routine)//
'() '// &
2297 trim(message)//
' ***' 2310 use plplot
, only: plflt
2313 real(plflt),
intent(in) :: x1,x2
2318 if(abs(x1-x2).le.eps)
then 2336 real,
intent(in) :: x1,x2
2341 if(abs(x1-x2).le.eps)
then subroutine pgscf(cf)
Set character font.
logical, parameter compatibility_warnings
subroutine pgebuf()
End buffering output - dummy routine!
subroutine pgqlw(lw)
Query line width.
subroutine pgqcir(ci1, ci2)
Query colour-index range for pggray and pgimag - dummy routine!
subroutine pgupdt()
Flush - dummy routine.
subroutine pgsah(fs, angle, barb)
Set arrow head - dummy routine!
subroutine pgptxt(x1, y1, ang, just1, text)
Print text with arbitrary angle and justification.
subroutine pglen(units, string, xl, yl)
Find length of a string in a variety of units - dummy variable.
integer function check_error(fname)
Check whether opening a file gives an error.
subroutine pgsubp(nxsub, nysub)
Subdivide view surface into panels.
subroutine pgband(mode, posn, xref, yref, x, y, ch)
Get cursor location - dummy routine!
subroutine pg2pldev(pgdev, pldev, filename)
Converts PGplot device ID to PLplot device ID + file name.
subroutine pgqtxt(x, y, angle, fjust, text, xbox, ybox)
Find bounding box of text string - dummy variable.
subroutine pgolin(maxpt, npt, x, y, symbol)
Read data from screen - no PLplot equivalent (yet) - dummy routine!
subroutine pgscir(ci1, ci2)
Set colour-index range for pggray and pgimag - dummy routine!
subroutine pgdraw(x, y)
Draw line to location.
subroutine pgbbuf()
Start buffering output - dummy routine!
integer, dimension(max_level) save_color
subroutine pgiden()
Print user name and date in plot - dummy routine!
integer, dimension(max_level) save_ffamily
integer, parameter max_open
subroutine pgconf(arr, nx, ny, ix1, ix2, iy1, iy2, c1, c2, tr)
Shade a region (between contours/heights) - dummy routine!
subroutine pgsave()
Save parameters.
subroutine pgptext(x, y, ang, just, text)
Non-standard alias for pgptxt()
subroutine pgqch(ch)
Query character height.
subroutine pgqtbg(b)
Query text background color index - dummy routine.
integer, dimension(max_level) save_fweight
subroutine warn_dummy_routine(routine, message)
Print a warning when no (proper) PLplot equivalent is defined and a dummy routine is used instead...
subroutine pgstbg(b)
Set text background color index - dummy routine.
logical function deq(x1, x2)
Test whether two double-precision variables are equal to better than twice the machine precision...
subroutine pgbox(xopt, xtick1, nxsub, yopt, ytick1, nysub)
Draw a box (+axes) around a plot.
subroutine pgqcr(ci1, r, g, b)
Query colour representation.
subroutine pgqwin(x1, x2, y1, y2)
get window size
subroutine pgtick(x1, y1, x2, y2, pos, tikl, tikr, disp, orient, lbl)
Draw a single tick mark, optionally with label - no PLplot routine found, using an ad-hoc routine...
subroutine pgline(n, x1, y1)
Draw a line.
subroutine pgvsize(xleft, xright, ybot, ytop)
Non-standard alias for PGVSIZ.
subroutine pgclos()
Close stream.
subroutine pglabel(xlbl, ylbl, toplbl)
Alias for pglab.
subroutine pgarro(x1, y1, x2, y2)
Draw an arrow - only a line is drawn, arrows not supported in PLplot!
subroutine pgadvance()
Alias for pgpage.
subroutine pgenv(xmin, xmax, ymin, ymax, just, axis)
Set window and viewport and draw labeled frame.
real(plflt), parameter mm_per_inch
subroutine pgunsa()
Unsave parameters.
subroutine pgwindow(xmin1, xmax1, ymin1, ymax1)
alias for pgswin
subroutine pgend()
End a plot.
subroutine pgqvp(units, x1, x2, y1, y2)
Get viewport size.
subroutine pgask(prompt)
Control new page prompting - dummy routine.
subroutine pgqvsz(units, x1, x2, y1, y2)
get view surface
subroutine pglab(xlbl, ylbl, toplbl)
Interface for pglab.
subroutine pgqls(ls)
Query line style.
subroutine pgmtxt(side, disp1, pos1, just1, text)
Print text in the margin.
subroutine pgsch(ch)
Set character height.
integer, parameter max_level
integer, dimension(max_level) save_lwidth
subroutine pgqci(ci)
Get current colour index - dummy routine!
subroutine pgerry(n, x, ymax, ymin, t)
Vertical error bar.
subroutine pgtext(x1, y1, text)
Print text with default angle and justification.
subroutine pgvsiz(xleft, xright, ybot, ytop)
Set viewport (inches)
real function reldiff(x1, x2)
Return the relative difference between two numbers: dx/<x> - taken from libSUFR, turned into single p...
subroutine pgqcol(c1, c2)
Get colour range - dummy routine!
subroutine pgswin(xmin1, xmax1, ymin1, ymax1)
Set window.
integer, dimension(max_level) save_fstyle
subroutine pgscr(ci1, r, g, b)
Set colour representation.
subroutine pgcirc(xc, yc, r)
Draw a circle.
subroutine pgpage()
Advance to the next (sub-)page.
subroutine pgrect(x1, x2, y1, y2)
Draw a rectangle.
subroutine pgsci(ci1)
Set colour index.
subroutine pgqcs(unit, xch, ych)
Inquire character height in a variety of units.
subroutine pgbeg(i, pgdev, nx, ny)
Alias for pgbegin.
subroutine pgslct(pgdev)
Select output stream.
subroutine pgcont(arr, nx, ny, ix1, ix2, iy1, iy2, c, nc, tr)
Make a contour plot.
subroutine pgqinf(item, value, length)
Inquire PGPLOT general information - dummy routine.
subroutine pgsvp(xl1, xr1, yb1, yt1)
Set view port.
subroutine pgqid(id)
Inquire current device identifier.
subroutine pgmove(x, y)
Move pen to location - for use with pgdraw() only!
subroutine pgbegin(i, pgdev, nx, ny)
Begin a new plot.
integer function pgopen(pgdev)
Start a new plot.
subroutine pgpoint(n, x1, y1, s)
Draw points.
subroutine pgpt1(x, y, ncode)
Draw a single point.
subroutine pgbin(nbin, x, data, center)
Plot a histogram of binned data.
integer, dimension(max_level) save_lstyle
subroutine pgqfs(fs)
Inquire fill-area style - dummy routine.
subroutine pgpap(width, ratio)
Set paper size.
subroutine pgmtext(side, disp, pos, just, text)
Alias for pgmtxt()
subroutine pgpoly(n, x1, y1)
Draw a polygone.
subroutine pg2pltext(string)
Replace the PGPlot escape character '\' with the PLplot escape character '#'.
real(plflt), parameter ch_fac
Conversion factor for the character height.
subroutine pgsls(ls)
Set line style.
subroutine replace_substring(string, str_in, str_out)
Search and replace occurences of a substring in a string, taken from libSUFR.
subroutine pgshs(ang, sep, ph)
Set hash style.
subroutine pgpt(n, x, y, ncode)
Draw a point.
subroutine pgslw(lw)
Set line width.
logical function seq(x1, x2)
Test whether two single-precision variables are equal to better than twice the machine precision...
subroutine pgeras()
Erase screen.
subroutine pgsfs(fs)
Set fill style.
subroutine pgqcf(cf)
Query character font.