PLplot  5.11.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
sfstubsf95.f90
Go to the documentation of this file.
1 !***********************************************************************
2 ! sfstubsf95.f
3 !
4 ! Copyright (C) 2005, 2006 Arjen Markus
5 ! Copyright (C) 2006-2014 Alan W. Irwin
6 !
7 ! This file is part of PLplot.
8 !
9 ! PLplot is free software; you can redistribute it and/or modify
10 ! it under the terms of the GNU Library General Public License as published
11 ! by the Free Software Foundation; either version 2 of the License, or
12 ! (at your option) any later version.
13 !
14 ! PLplot is distributed in the hope that it will be useful,
15 ! but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 ! GNU Library General Public License for more details.
18 !
19 ! You should have received a copy of the GNU Library General Public License
20 ! along with PLplot; if not, write to the Free Software
21 ! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 !
23 !
24 ! This file contains the interfaces for Fortran 95:
25 ! - it includes the actual FORTRAN routines from the FORTRAN 95 bindings
26 ! - it includes interfaces to the C routines from these bindings
27 ! - it defines a few Fortran 95 specific items and interfaces
28 !
29 ! NB
30 ! This module is written in fixed form.
31 ! To enable a redefinition of certain interfaces, we actually have
32 ! two modules.
33 !
34 ! NB
35 ! The INTENT attribute is not currently used. This is a matter to
36 ! be looked into.
37 !
38 ! NB
39 ! It is assumed in the current implementation that all arrays are
40 ! passed with correct dimensions. It would be wiser, perhaps, to
41 ! use the minimum dimension instead of just the dimension of the
42 ! first array.
43 !
44 ! NOTE:
45 ! Some of the C routines will have to be renamed (via macros)
46 !
47 !***********************************************************************
48 
49 !
50 ! Parameters and variables for strings / arrays for
51 ! string conversion
52 !
53 module plplot_str
54  use plplot_types
55  implicit none
56  integer(kind=plint), parameter :: maxlen = 320
57  integer(kind=plint), parameter :: maxleni = 80
58  character (len = maxlen) :: string1, string2, string3
59  character (len = maxlen) :: string4, string5, string6
60  character (len = maxlen) :: string7, string8, string9
61  integer(kind=plint), dimension(maxleni) :: s1, s2, s3, s4, s5, s6, s7, s8, s9
62 
63  character(len=1), parameter :: PL_END_OF_STRING = achar(0)
64 end module
65 
66 module plplotp
67  use plplot_types
68  use plplot_str
69  use plplot_strutils
70  implicit none
71 
72  interface plcont
73  module procedure plcontour_0
74  module procedure plcontour_1
75  module procedure plcontour_2
76  module procedure plcontour_tr
77  module procedure plcontour_0_all
78  module procedure plcontour_1_all
79  module procedure plcontour_2_all
80  module procedure plcontour_tr_all
81  end interface
84 
85  interface plvect
86  module procedure plvectors_0
87  module procedure plvectors_1
88  module procedure plvectors_2
89  module procedure plvectors_tr
90  end interface
92 
93  interface plshade
94  module procedure plshade_single_0
95  module procedure plshade_single_1
96  module procedure plshade_single_2
97  module procedure plshade_single_tr
98  end interface
100 
101  interface plshades
102  module procedure plshades_multiple_0
103  module procedure plshades_multiple_1
104  module procedure plshades_multiple_1r
105  module procedure plshades_multiple_2
106  module procedure plshades_multiple_2r
107  module procedure plshades_multiple_tr
108  module procedure plshades_multiple_trr
109  end interface
113 
114  interface plimagefr
115  module procedure plimagefr_0
116  module procedure plimagefr_1
117  module procedure plimagefr_2
118  module procedure plimagefr_tr
119  end interface
121 
122 contains
123  include 'sfstubs.inc'
124 end module plplotp
125 
127  use plplot_types
128  implicit none
129  type :: plgraphicsin
130  integer(kind=plint) type ! of event (CURRENTLY UNUSED)
131  integer(kind=plint) state ! key or button mask
132  integer(kind=plint) keysym ! key selected
133  integer(kind=plint) button ! mouse button selected
134  integer(kind=plint) subwindow ! subwindow (alias subpage, alias subplot) number
135  character(len=16) string ! translated string
136  integer(kind=plint) pX, pY ! absolute device coordinates of pointer
137  real(kind=plflt) dX, dY ! relative device coordinates of pointer
138  real(kind=plflt) wX, wY ! world coordinates of pointer
139  end type plgraphicsin
140 end module plplot_graphics
141 
142 module plplot
143  use plplot_types
144  use plplotp
145  use plplot_graphics
146  use plplot_strutils
147  !
148  ! To be added: renaming list
149  !
150 
151  implicit none
152  include 'plplot_parameters.inc'
153 
154  !
155  ! To be added: alternative interfaces
156  !
157  interface
158  subroutine pladv( sub )
159  use plplot_types
160  implicit none
161  integer(kind=plint) :: sub
162  end subroutine pladv
163  end interface
164 
165  interface plbin
166  module procedure plbin
167  end interface
168 
169  interface
170  subroutine plbop
171  end subroutine plbop
172  end interface
173 
174  interface
175  subroutine plbtime( year, month, day, hour, min, sec, ctime )
176  use plplot_types
177  implicit none
178  integer(kind=plint) :: year, month, day, hour, min
179  real(kind=plflt) :: sec, ctime
180  end subroutine plbtime
181  end interface
182 
183  interface
184  subroutine plcalc_world( rx, ry, wx, wy, window )
185  use plplot_types
186  implicit none
187  real(kind=plflt) :: rx, ry, wx, wy
188  integer(kind=plint) :: window
189  end subroutine plcalc_world
190  end interface
191 
192  interface
193  subroutine plclear
194  end subroutine plclear
195  end interface
196 
197  interface
198  subroutine plcol0( icol )
199  use plplot_types
200  implicit none
201  integer(kind=plint) :: icol
202  end subroutine plcol0
203  end interface
204 
205  interface
206  subroutine plcol1( col )
207  use plplot_types
208  implicit none
209  real(kind=plflt) :: col
210  end subroutine plcol1
211  end interface
212 
213  interface plcolorbar
214  module procedure plcolorbar_1
215  module procedure plcolorbar_2
216  end interface
217 
218  interface
219  subroutine plconfigtime( scale, offset1, offset2, control, ifbtime_offset, &
220  year, month, day, hour, min, sec )
221  use plplot_types
222  implicit none
223  real(kind=plflt) :: scale, offset1, offset2, sec
224  integer(kind=plint) :: control, ifbtime_offset, year, month, day, hour, min
225  end subroutine plconfigtime
226  end interface
227 
228  interface plcpstrm
229  module procedure plcpstrm
230  end interface
231 
232  interface
233  subroutine plctime( year, month, day, hour, min, sec, ctime )
234  use plplot_types
235  implicit none
236  integer(kind=plint) :: year, month, day, hour, min
237  real(kind=plflt) :: sec, ctime
238  end subroutine plctime
239  end interface
240 
241  interface
242  subroutine plend1
243  end subroutine plend1
244  end interface
245 
246  interface
247  subroutine plenv( xmin, xmax, ymin, ymax, just, axis )
248  use plplot_types
249  implicit none
250  real(kind=plflt) :: xmin, xmax, ymin, ymax
251  integer(kind=plint) :: just, axis
252  end subroutine plenv
253  end interface
254 
255  interface
256  subroutine pleop
257  end subroutine pleop
258  end interface
259 
260  interface plerrx
261  module procedure plerrx
262  end interface
263 
264  interface plerry
265  module procedure plerry
266  end interface
267 
268  interface plfamadv
269  subroutine plfamadv
270  end subroutine plfamadv
271  end interface
272 
273  interface plfill
274  module procedure plfill
275  end interface
276 
277  interface plfill3
278  module procedure plfill3
279  end interface
280 
281  interface
282  subroutine plflush
283  end subroutine plflush
284  end interface
285 
286  interface
287  subroutine plfont( font )
288  use plplot_types
289  implicit none
290  integer(kind=plint) :: font
291  end subroutine plfont
292  end interface
293 
294  interface
295  subroutine plfontld( charset )
296  use plplot_types
297  implicit none
298  integer(kind=plint) :: charset
299  end subroutine plfontld
300  end interface
301 
302  interface
303  subroutine plgchr( chrdef, chrht )
304  use plplot_types
305  implicit none
306  real(kind=plflt) :: chrdef, chrht
307  end subroutine plgchr
308  end interface
309 
310  interface
311  subroutine plgcmap1_range( min_color, max_color )
312  use plplot_types
313  implicit none
314  real(kind=plflt) :: min_color, max_color
315  end subroutine plgcmap1_range
316  end interface
317 
318  interface
319  subroutine plgcol0( icol, r, g, b )
320  use plplot_types
321  implicit none
322  integer(kind=plint) :: icol, r, g, b
323  end subroutine plgcol0
324  end interface
325 
326  interface
327  subroutine plgcol0a( icol, r, g, b, a )
328  use plplot_types
329  implicit none
330  integer(kind=plint) :: icol, r, g, b
331  real(kind=plflt) :: a
332  end subroutine plgcol0a
333  end interface
334 
335  interface
336  subroutine plgcolbg( r, g, b )
337  use plplot_types
338  implicit none
339  integer(kind=plint) :: r, g, b
340  end subroutine plgcolbg
341  end interface
342 
343  interface
344  subroutine plgcolbga( r, g, b, a )
345  use plplot_types
346  implicit none
347  integer(kind=plint) :: r, g, b
348  real(kind=plflt) :: a
349  end subroutine plgcolbga
350  end interface
351 
352  interface
353  subroutine plgcompression( compression )
354  use plplot_types
355  implicit none
356  integer(kind=plint) :: compression
357  end subroutine plgcompression
358  end interface
359 
360  interface
361  subroutine plgdidev( mar, aspect, jx, jy )
362  use plplot_types
363  implicit none
364  real(kind=plflt) :: mar, aspect, jx, jy
365  end subroutine plgdidev
366  end interface
367 
368  interface
369  subroutine plgdiori( rot )
370  use plplot_types
371  implicit none
372  real(kind=plflt) :: rot
373  end subroutine plgdiori
374  end interface
375 
376  interface
377  subroutine plgdiplt( xmin, xmax, ymin, ymax )
378  use plplot_types
379  implicit none
380  real(kind=plflt) :: xmin, xmax, ymin, ymax
381  end subroutine plgdiplt
382  end interface
383 
384  interface
385  subroutine plgetcursor( gin )
386  use plplot_types
387  use plplot_graphics
388  implicit none
389  type(plgraphicsin) :: gin
390  end subroutine plgetcursor
391  end interface
392 
393  interface
394  subroutine plgfam( fam, num, bmax )
395  use plplot_types
396  implicit none
397  integer(kind=plint) :: fam, num, bmax
398  end subroutine plgfam
399  end interface
400 
401  interface
402  subroutine plgfci( fci )
403  use plplot_types
404  implicit none
405  integer(kind=plunicode) :: fci
406  end subroutine plgfci
407  end interface
408 
409  interface
410  subroutine plgfont( family, style, weight )
411  use plplot_types
412  implicit none
413  integer(kind=plint) :: family, style, weight
414  end subroutine plgfont
415  end interface
416 
417  interface
418  subroutine plglevel( level )
419  use plplot_types
420  implicit none
421  integer(kind=plint) :: level
422  end subroutine plglevel
423  end interface
424 
425  interface
426  subroutine plgpage( xpmm, ypmm, xwid, ywid, xoff, yoff )
427  use plplot_types
428  implicit none
429  real(kind=plflt) :: xpmm, ypmm
430  integer(kind=plint) :: xwid, ywid, xoff, yoff
431  end subroutine plgpage
432  end interface
433 
434  interface
435  subroutine plgra
436  end subroutine plgra
437  end interface
438 
439  interface plgradient
440  module procedure plgradient
441  end interface
442 
443  interface plgriddata
444  module procedure plgriddata
445  end interface
446 
447  interface
448  subroutine plgspa( xmin, xmax, ymin, ymax )
449  use plplot_types
450  implicit none
451  real(kind=plflt) :: xmin, xmax, ymin, ymax
452  end subroutine plgspa
453  end interface
454 
455  interface
456  subroutine plgstrm( strm )
457  use plplot_types
458  implicit none
459  integer(kind=plint) :: strm
460  end subroutine plgstrm
461  end interface
462 
463  interface
464  subroutine plgvpd( xmin, xmax, ymin, ymax )
465  use plplot_types
466  implicit none
467  real(kind=plflt) :: xmin, xmax, ymin, ymax
468  end subroutine plgvpd
469  end interface
470 
471  interface
472  subroutine plgvpw( xmin, xmax, ymin, ymax )
473  use plplot_types
474  implicit none
475  real(kind=plflt) :: xmin, xmax, ymin, ymax
476  end subroutine plgvpw
477  end interface
478 
479  interface
480  subroutine plgxax( digmax, digits )
481  use plplot_types
482  implicit none
483  integer(kind=plint) :: digmax, digits
484  end subroutine plgxax
485  end interface
486 
487  interface
488  subroutine plgyax( digmax, digits )
489  use plplot_types
490  implicit none
491  integer(kind=plint) :: digmax, digits
492  end subroutine plgyax
493  end interface
494 
495  interface
496  subroutine plgzax( digmax, digits )
497  use plplot_types
498  implicit none
499  integer(kind=plint) :: digmax, digits
500  end subroutine plgzax
501  end interface
502 
503  interface plhist
504  module procedure plhist
505  end interface
506 
507  interface
508  subroutine plhls( h, l, s )
509  use plplot_types
510  implicit none
511  real(kind=plflt) :: h, l, s
512  end subroutine plhls
513  end interface
514 
515  interface
516  subroutine plhlsrgb( h, l, s, r, g, b )
517  use plplot_types
518  implicit none
519  real(kind=plflt) :: h, l, s, r, g, b
520  end subroutine plhlsrgb
521  end interface
522 
523  interface
524  subroutine plinit
525  end subroutine plinit
526  end interface
527 
528  interface
529  subroutine pljoin( x1, y1, x2, y2 )
530  use plplot_types
531  implicit none
532  real(kind=plflt) :: x1, y1, x2, y2
533  end subroutine pljoin
534  end interface
535 
536  interface
537  subroutine pllightsource( x, y, z )
538  use plplot_types
539  implicit none
540  real(kind=plflt) :: x, y, z
541  end subroutine pllightsource
542  end interface
543 
544  interface pllegend
545  module procedure pllegend_1
546  module procedure pllegend_2
547  end interface
548 
549  interface plline
550  module procedure plline
551  end interface
552 
553  interface plline3
554  module procedure plline3
555  end interface
556 
557  interface pllsty
558  subroutine pllsty( lin )
559  use plplot_types
560  implicit none
561  integer(kind=plint) :: lin
562  end subroutine pllsty
563  end interface
564 
565  interface plmap
566  module procedure plmap1, plmap2
567  end interface
568 
569  interface plmapline
570  module procedure plmapline1, plmapline2
571  end interface
572 
573  interface plmapfill
574  module procedure plmapfill1, plmapfill2
575  end interface
576 
577  interface plmapstring
578  module procedure plmapstring1, plmapstring2
579  end interface
580 
581  interface plmaptex
582  module procedure plmaptex1, plmaptex2
583  end interface
584 
585  interface plmeridians
586  module procedure plmeridians1, plmeridians2
587  end interface
588 
589  interface plmesh
590  module procedure plmesh
591  end interface
592 
593  interface plmeshc
594  module procedure plmeshc
595  end interface
596 
597  interface
598  subroutine plmkstrm( strm )
599  use plplot_types
600  implicit none
601  integer(kind=plint) :: strm
602  end subroutine plmkstrm
603  end interface
604 
605  interface
606  subroutine plpat( nlin, inc, del )
607  use plplot_types
608  implicit none
609  integer(kind=plint) :: nlin, inc, del
610  end subroutine plpat
611  end interface
612 
613  interface
614  subroutine plpath( n, x1, y1, x2, y2 )
615  use plplot_types
616  implicit none
617  integer(kind=plint) :: n
618  real(kind=plflt) :: x1, y1, x2, y2
619  end subroutine plpath
620  end interface
621 
622  interface plot3d
623  module procedure plot3d
624  end interface
625 
626  interface plot3dc
627  module procedure plot3dc
628  end interface
629 
630  interface plpoin
631  module procedure plpoin
632  end interface
633 
634  interface plpoin3
635  module procedure plpoin3
636  end interface
637 
638  interface plpoly3
639  module procedure plpoly3
640  end interface
641 
642  interface
643  subroutine plprec( setp, prec )
644  use plplot_types
645  implicit none
646  integer(kind=plint) :: setp, prec
647  end subroutine plprec
648  end interface
649 
650  interface
651  subroutine plpsty( patt )
652  use plplot_types
653  implicit none
654  integer(kind=plint) :: patt
655  end subroutine plpsty
656  end interface
657 
658  interface
659  subroutine plreplot
660  end subroutine plreplot
661  end interface
662 
663  !
664  ! Note: plrgb and plrgb1 can be merged
665  !
666  interface
667  subroutine plrgb( r, g, b )
668  use plplot_types
669  implicit none
670  real(kind=plflt) :: r, g, b
671  end subroutine plrgb
672  end interface
673 
674  interface
675  subroutine plrgb1( r, g, b )
676  use plplot_types
677  implicit none
678  integer(kind=plint) :: r, g, b
679  end subroutine plrgb1
680  end interface
681 
682  interface
683  subroutine plrgbhls( r, g, b, h, l, s )
684  use plplot_types
685  implicit none
686  real(kind=plflt) :: r, g, b, h, l, s
687  end subroutine plrgbhls
688  end interface
689 
690  interface
691  subroutine plschr( chrdef, chrht )
692  use plplot_types
693  implicit none
694  real(kind=plflt) :: chrdef, chrht
695  end subroutine plschr
696  end interface
697 
698  interface plscmap0
699  module procedure plscmap0
700  end interface
701 
702  interface plscmap0a
703  module procedure plscmap0a
704  end interface
705 
706  interface
707  subroutine plscmap0n( n )
708  use plplot_types
709  implicit none
710  integer(kind=plint) :: n
711  end subroutine plscmap0n
712  end interface
713 
714  interface plscmap1
715  module procedure plscmap1
716  end interface
717 
718  interface plscmap1a
719  module procedure plscmap1a
720  end interface
721 
722  interface plscmap1l
723  module procedure plscmap1l
724  module procedure plscmap1l2
725  end interface
726 
727  interface plscmap1la
728  module procedure plscmap1la
729  module procedure plscmap1la2
730  end interface
731 
732  interface
733  subroutine plscmap1n( n )
734  use plplot_types
735  implicit none
736  integer(kind=plint) :: n
737  end subroutine plscmap1n
738  end interface
739 
740  interface
741  subroutine plscmap1_range( min_color, max_color )
742  use plplot_types
743  implicit none
744  real(kind=plflt) :: min_color, max_color
745  end subroutine plscmap1_range
746  end interface
747 
748  interface
749  subroutine plscol0( icol, r, g, b )
750  use plplot_types
751  implicit none
752  integer(kind=plint) :: icol, r, g, b
753  end subroutine plscol0
754  end interface
755 
756  interface
757  subroutine plscol0a( icol, r, g, b, a )
758  use plplot_types
759  implicit none
760  integer(kind=plint) :: icol, r, g, b
761  real(kind=plflt) :: a
762  end subroutine plscol0a
763  end interface
764 
765  interface
766  subroutine plscolbg( r, g, b )
767  use plplot_types
768  implicit none
769  integer(kind=plint) :: r, g, b
770  end subroutine plscolbg
771  end interface
772 
773  interface
774  subroutine plscolbga( r, g, b, a )
775  use plplot_types
776  implicit none
777  integer(kind=plint) :: r, g, b
778  real(kind=plflt) :: a
779  end subroutine plscolbga
780  end interface
781 
782  interface
783  subroutine plscolor( color )
784  use plplot_types
785  implicit none
786  integer(kind=plint) :: color
787  end subroutine plscolor
788  end interface
789 
790  interface
791  subroutine plscompression( compression )
792  use plplot_types
793  implicit none
794  integer(kind=plint) :: compression
795  end subroutine plscompression
796  end interface
797 
798  interface
799  subroutine plsdidev( mar, aspect, jx, jy )
800  use plplot_types
801  implicit none
802  real(kind=plflt) :: mar, aspect, jx, jy
803  end subroutine plsdidev
804  end interface
805 
806  interface
807  subroutine plsdimap( dimxmi, dimxmax, diymin, dimymax, dimxpmm, diypmm )
808  use plplot_types
809  implicit none
810  real(kind=plflt) :: dimxmi, dimxmax, diymin, dimymax, dimxpmm, diypmm
811  end subroutine plsdimap
812  end interface
813 
814  interface
815  subroutine plsdiori( rot )
816  use plplot_types
817  implicit none
818  real(kind=plflt) :: rot
819  end subroutine plsdiori
820  end interface
821 
822  interface
823  subroutine plsdiplt( xmin, xmax, ymin, ymax )
824  use plplot_types
825  implicit none
826  real(kind=plflt) :: xmin, xmax, ymin, ymax
827  end subroutine plsdiplt
828  end interface
829 
830  interface
831  subroutine plsdiplz( xmin, xmax, ymin, ymax )
832  use plplot_types
833  implicit none
834  real(kind=plflt) :: xmin, xmax, ymin, ymax
835  end subroutine plsdiplz
836  end interface
837 
838  interface
839  subroutine plseed( s )
840  use plplot_types
841  implicit none
842  integer(kind=plint) :: s
843  end subroutine plseed
844  end interface
845 
846  ! TODO: character-version
847  interface
848  subroutine plsesc( esc )
849  use plplot_types
850  implicit none
851  integer(kind=plint) :: esc
852  end subroutine plsesc
853  end interface
854 
855  !
856  ! TODO: F95-specific form for these routines
857  !
858  interface plsetmapformc
859  subroutine plsetmapformc( mapform )
860  interface
861  subroutine mapform( n, x, y )
862  use plplot_types
863  implicit none
864  integer(kind=plint) :: n
865  real(kind=plflt), dimension(*) :: x, y
866  end subroutine mapform
867  end interface
868  end subroutine plsetmapformc
869  end interface
870 
871  interface
872  subroutine plsfam( fam, num, bmax )
873  use plplot_types
874  implicit none
875  integer(kind=plint) :: fam, num, bmax
876  end subroutine plsfam
877  end interface
878 
879  interface
880  subroutine plsfci( fci )
881  use plplot_types
882  implicit none
883  integer(kind=plunicode) :: fci
884  end subroutine plsfci
885  end interface
886 
887  interface
888  subroutine plsfont( family, style, weight )
889  use plplot_types
890  implicit none
891  integer(kind=plint) :: family, style, weight
892  end subroutine plsfont
893  end interface
894 
895  interface plslabelfunc
896  subroutine plslabelfunc_on( labelfunc )
897  interface
898  subroutine labelfunc(axis, value, label, length)
899  use plplot_types
900  implicit none
901  integer(kind=plint) :: axis, length
902  real(kind=plflt) :: value
903  character*(length) label
904  end subroutine labelfunc
905  end interface
906  end subroutine plslabelfunc_on
907 
908  subroutine plslabelfunc_off( dummy )
909  use plplot_types
910  implicit none
911  integer(kind=plint) :: dummy
912  end subroutine plslabelfunc_off
913 
914  subroutine plslabelfunc_none
915  end subroutine plslabelfunc_none
916 
917  end interface
918 
919  interface
920  subroutine plsmaj( def, scale )
921  use plplot_types
922  implicit none
923  real(kind=plflt) :: def, scale
924  end subroutine plsmaj
925  end interface
926 
927  ! plsmem: void * argument tricky - TODO
928  ! plsmema: void * argument tricky - TODO
929 
930  interface
931  subroutine plsmin( def, scale )
932  use plplot_types
933  implicit none
934  real(kind=plflt) :: def, scale
935  end subroutine plsmin
936  end interface
937 
938  interface
939  subroutine plsori( rot )
940  use plplot_types
941  implicit none
942  integer(kind=plint) :: rot
943  end subroutine plsori
944  end interface
945 
946  interface
947  subroutine plspage( xpmm, ypmm, xwid, ywid, xoff, yoff )
948  use plplot_types
949  implicit none
950  real(kind=plflt) :: xpmm, ypmm
951  integer(kind=plint) :: xwid, ywid, xoff, yoff
952  end subroutine plspage
953  end interface
954 
955  interface plspause
956  module procedure plspause
957  end interface
958 
959  interface
960  subroutine plsstrm( strm )
961  use plplot_types
962  implicit none
963  integer(kind=plint) :: strm
964  end subroutine plsstrm
965  end interface
966 
967  interface
968  subroutine plssub( nx, ny )
969  use plplot_types
970  implicit none
971  integer(kind=plint) :: nx, ny
972  end subroutine plssub
973  end interface
974 
975  interface
976  subroutine plssym( def, scale )
977  use plplot_types
978  implicit none
979  real(kind=plflt) :: def, scale
980  end subroutine plssym
981  end interface
982 
983  interface
984  subroutine plstar( nx, ny )
985  use plplot_types
986  implicit none
987  integer(kind=plint) :: nx, ny
988  end subroutine plstar
989  end interface
990 
991  interface plstransform
992  subroutine plstransform1( transformfunc )
993  interface
994  subroutine transformfunc(x, y, xt, yt)
995  use plplot_types
996  implicit none
997  real(kind=plflt) :: x, y, xt, yt
998  end subroutine transformfunc
999  end interface
1000  end subroutine plstransform1
1001 
1002  subroutine plstransform2( dummy )
1003  use plplot_types
1004  implicit none
1005  integer(kind=plint) :: dummy
1006  end subroutine plstransform2
1007 
1008  subroutine plstransform3
1009  end subroutine plstransform3
1010 
1011  end interface
1012 
1013  interface
1014  subroutine plstripa( id, pen, x, y )
1015  use plplot_types
1016  implicit none
1017  integer(kind=plint) :: id, pen
1018  real(kind=plflt) :: x, y
1019  end subroutine plstripa
1020  end interface
1021 
1022  interface
1023  subroutine plstripd( id )
1024  use plplot_types
1025  implicit none
1026  integer(kind=plint) :: id
1027  end subroutine plstripd
1028  end interface
1029 
1030  interface
1031  subroutine plstyl( n, mark, space )
1032  use plplot_types
1033  implicit none
1034  integer(kind=plint) :: n, mark, space
1035  end subroutine plstyl
1036  end interface
1037 
1038  interface plsurf3d
1039  module procedure plsurf3d
1040  end interface
1041 
1042  interface plsurf3dl
1043  module procedure plsurf3dl
1044  end interface
1045 
1046  interface plstripc
1047  module procedure plstripc
1048  end interface
1049 
1050  interface plsvect
1051  module procedure plsvect1
1052  end interface
1053 
1054  interface plsvect
1055  subroutine plsvect2
1056  end subroutine plsvect2
1057  end interface
1058 
1059  interface
1060  subroutine plsvpa( xmin, xmax, ymin, ymax )
1061  use plplot_types
1062  implicit none
1063  real(kind=plflt) :: xmin, xmax, ymin, ymax
1064  end subroutine plsvpa
1065  end interface
1066 
1067  interface
1068  subroutine plsxax( digmax, digits )
1069  use plplot_types
1070  implicit none
1071  integer(kind=plint) :: digmax, digits
1072  end subroutine plsxax
1073  end interface
1074 
1075  interface
1076  subroutine plsyax( digmax, digits )
1077  use plplot_types
1078  implicit none
1079  integer(kind=plint) :: digmax, digits
1080  end subroutine plsyax
1081  end interface
1082 
1083  interface plsym
1084  module procedure plsym
1085  end interface
1086 
1087  interface
1088  subroutine plszax( digmax, digits )
1089  use plplot_types
1090  implicit none
1091  integer(kind=plint) :: digmax, digits
1092  end subroutine plszax
1093  end interface
1094 
1095  interface
1096  subroutine pltext
1097  end subroutine pltext
1098  end interface
1099 
1100  interface
1101  subroutine plvasp( aspect )
1102  use plplot_types
1103  implicit none
1104  real(kind=plflt) :: aspect
1105  end subroutine plvasp
1106  end interface
1107 
1108  interface
1109  subroutine plvpas( xmin, xmax, ymin, ymax, aspect )
1110  use plplot_types
1111  implicit none
1112  real(kind=plflt) :: xmin, xmax, ymin, ymax, aspect
1113  end subroutine plvpas
1114  end interface
1115 
1116  interface
1117  subroutine plvpor( xmin, xmax, ymin, ymax )
1118  use plplot_types
1119  implicit none
1120  real(kind=plflt) :: xmin, xmax, ymin, ymax
1121  end subroutine plvpor
1122  end interface
1123 
1124  interface
1125  subroutine plvsta
1126  end subroutine plvsta
1127  end interface
1128 
1129  interface
1130  subroutine plw3d( basex, basey, height, xmin, xmax, ymin, ymax, zmin, zmax, alt, az )
1131  use plplot_types
1132  implicit none
1133  real(kind=plflt) :: basex, basey, height, xmin, xmax, ymin, ymax, zmin, zmax, alt, az
1134  end subroutine plw3d
1135  end interface
1136 
1137  interface
1138  subroutine plwidth( width )
1139  use plplot_types
1140  implicit none
1141  real(kind=plflt) :: width
1142  end subroutine plwidth
1143  end interface
1144 
1145  interface
1146  subroutine plwind( xmin, xmax, ymin, ymax )
1147  use plplot_types
1148  implicit none
1149  real(kind=plflt) :: xmin, xmax, ymin, ymax
1150  end subroutine plwind
1151  end interface
1152 
1153  interface plxormod
1154  module procedure plxormod
1155  end interface
1156 
1157 
1158  private :: convert_to_int
1159  private :: convert_to_log
1160 
1161 ! -------------------------------------------------------------------
1162 contains
1163 ! -------------------------------------------------------------------
1164  integer(kind=plint) function convert_to_int( logvalue )
1165  logical :: logvalue
1166  if ( logvalue ) then
1167  convert_to_int = 1_plint
1168  else
1169  convert_to_int = 0_plint
1170  endif
1171  end function convert_to_int
1172 
1173  logical function convert_to_log( intvalue )
1174  integer(kind=plint) :: intvalue
1175  convert_to_log = intvalue.ne.0_plint
1176  end function convert_to_log
1177 
1178  subroutine plbin( x, y, center )
1179  real(kind=plflt), dimension(:) :: x, y
1180  integer(kind=plint) :: center
1181 
1182  call plbinf95( size(x,kind=plint), x, y, center )
1183  end subroutine plbin
1184 
1185  subroutine plcolorbar_1( p_colorbar_width, p_colorbar_height, &
1186  opt, position, x, y, &
1187  x_length, y_length, &
1188  bg_color, bb_color, bb_style, &
1189  low_cap_color, high_cap_color, &
1190  cont_color, cont_width, &
1191  n_labels, label_opts, labels, &
1192  n_axes, axis_opts, ticks, sub_ticks, &
1193  n_values, values)
1194  real (kind=plflt) :: p_colorbar_width, p_colorbar_height
1195  integer(kind=plint) :: opt, position, bg_color, bb_color, bb_style, cont_color
1196  integer(kind=plint) :: n_labels, n_axes
1197  real (kind=plflt) :: x, y, x_length, y_length, low_cap_color, high_cap_color, cont_width
1198  integer(kind=plint), dimension(:) :: label_opts, sub_ticks, n_values
1199  real (kind=plflt), dimension(:) :: ticks
1200  real (kind=plflt), dimension(:,:) :: values
1201  character(len=*), dimension(:) :: labels, axis_opts
1202 
1203  !
1204  ! Convert the text arrays and store the results in a convenient
1205  ! albeit global location. This way we avoid all manner of complications.
1206  ! (Though introducing a potentially nasty one: non-threadsafety)
1207  !
1208  call pllegend07_cnv_text( 3_plint, n_labels, labels )
1209  call pllegend07_cnv_text( 4_plint, n_axes, axis_opts )
1210 
1211  call plcolorbar07(p_colorbar_width, p_colorbar_height, &
1212  opt, position, x, y, &
1213  x_length, y_length, &
1214  bg_color, bb_color, bb_style, &
1215  low_cap_color, high_cap_color, &
1216  cont_color, cont_width, &
1217  n_labels, label_opts, n_axes, ticks, sub_ticks, &
1218  n_values, values)
1219  end subroutine plcolorbar_1
1220 
1221  subroutine plcolorbar_2( p_colorbar_width, p_colorbar_height, &
1222  opt, position, x, y, &
1223  x_length, y_length, &
1224  bg_color, bb_color, bb_style, &
1225  low_cap_color, high_cap_color, &
1226  cont_color, cont_width, &
1227  label_opts, labels, axis_opts, ticks, sub_ticks, &
1228  n_values, values)
1229  real (kind=plflt) :: p_colorbar_width, p_colorbar_height
1230  integer(kind=plint) :: opt, position, bg_color, bb_color, bb_style, cont_color
1231  real (kind=plflt) :: x, y, x_length, y_length, low_cap_color, high_cap_color, cont_width
1232  integer(kind=plint), dimension(:) :: label_opts, sub_ticks, n_values
1233  real (kind=plflt), dimension(:) :: ticks
1234  real (kind=plflt), dimension(:,:) :: values
1235  character(len=*), dimension(:) :: labels, axis_opts
1236 
1237  integer(kind=plint) :: n_labels, n_axes
1238 
1239  n_labels = size(label_opts,1,kind=plint)
1240  n_axes = size(axis_opts,1,kind=plint)
1241  !
1242  ! Convert the text arrays and store the results in a convenient
1243  ! albeit global location. This way we avoid all manner of complications.
1244  ! (Though introducing a potentially nasty one: non-threadsafety)
1245  !
1246  call pllegend07_cnv_text( 3_plint, n_labels, labels )
1247  call pllegend07_cnv_text( 4_plint, n_axes, axis_opts )
1248 
1249  call plcolorbar07(p_colorbar_width, p_colorbar_height, &
1250  opt, position, x, y, &
1251  x_length, y_length, &
1252  bg_color, bb_color, bb_style, &
1253  low_cap_color, high_cap_color, &
1254  cont_color, cont_width, &
1255  n_labels, label_opts, n_axes, ticks, sub_ticks, &
1256  n_values, values)
1257  end subroutine plcolorbar_2
1258 
1259  subroutine plcpstrm( iplsr, flags )
1260  integer(kind=plint) :: iplsr
1261  logical :: flags
1262 
1263  integer(kind=plint) :: iflags
1264 
1265  iflags = convert_to_int( flags )
1266  call plcpstrmf95( iplsr, iflags )
1267  end subroutine plcpstrm
1268 
1269  subroutine plerrx( xmin, xmax, y )
1270  real(kind=plflt), dimension(:) :: xmin, xmax, y
1271 
1272  call plerrxf95( size(xmin,kind=plint), xmin, xmax, y )
1273  end subroutine plerrx
1274 
1275  subroutine plerry( x, ymin, ymax )
1276  real(kind=plflt), dimension(:) :: x, ymin, ymax
1277 
1278  call plerryf95( size(x,kind=plint), x, ymin, ymax )
1279  end subroutine plerry
1280 
1281  subroutine plfill( x, y )
1282  real(kind=plflt), dimension(:) :: x, y
1283 
1284  call plfillf95( size(x,kind=plint), x, y )
1285  end subroutine plfill
1286 
1287  subroutine plfill3( x, y, z )
1288  real(kind=plflt), dimension(:) :: x, y, z
1289 
1290  call plfill3f95( size(x,kind=plint), x, y, z )
1291  end subroutine plfill3
1292 
1293  subroutine plgradient( x, y, angle )
1294  real(kind=plflt), dimension(:) :: x, y
1295  real(kind=plflt) :: angle
1296 
1297  call plgradientf95( size(x,kind=plint), x, y, angle )
1298  end subroutine plgradient
1299 
1300  subroutine plgriddata( x, y, z, xg, yg, zg, type, data )
1301  real(kind=plflt), dimension(:) :: x, y, z, xg, yg
1302  real(kind=plflt), dimension(:,:) :: zg
1303  real(kind=plflt) :: data
1304  integer(kind=plint) :: type
1305 
1306  call plgriddataf95( x, y, z, size(x,kind=plint), xg, size(xg,kind=plint), yg, size(yg,kind=plint), zg, &
1307  type, data )
1308 
1309  return
1310  end subroutine plgriddata
1311 
1312  subroutine plhist( data, datmin, datmax, nbin, oldwin )
1313  real(kind=plflt), dimension(:) :: data
1314  real(kind=plflt) :: datmin, datmax
1315  integer(kind=plint) :: nbin, oldwin
1316 
1317  call plhistf95( size(data,kind=plint), data, datmin, datmax, nbin, oldwin )
1318  end subroutine plhist
1319 
1320 ! subroutine plimagefr( idata, xmin, xmax, ymin, ymax, zmin, zmax, &
1321 ! dxmin, dxmax, dymin, dymax, valuemin, valuemax )
1322 ! real(kind=plflt), dimension(:,:) :: idata
1323 ! real(kind=plflt) :: xmin, xmax, ymin, ymax, zmin, zmax
1324 ! real(kind=plflt) :: dxmin, dxmax, dymin, dymax, &
1325 ! valuemin, valuemax
1326 !
1327 ! integer(kind=plint) :: nx, ny
1328 !
1329 ! nx = size(idata,1,kind=plint)
1330 ! ny = size(idata,2,kind=plint)
1331 ! call plimagefrf95( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, &
1332 ! dxmin, dxmax, dymin, dymax, valuemin, valuemax )
1333 ! end subroutine plimagefr
1334 
1335  subroutine plimage( idata, xmin, xmax, ymin, ymax, zmin, zmax, &
1336  dxmin, dxmax, dymin, dymax )
1337  real(kind=plflt), dimension(:,:) :: idata
1338  real(kind=plflt) :: xmin, xmax, ymin, ymax, zmin, zmax
1339  real(kind=plflt) :: dxmin, dxmax, dymin, dymax
1340 
1341  integer(kind=plint) :: nx, ny
1342 
1343  nx = size(idata,1,kind=plint)
1344  ny = size(idata,2,kind=plint)
1345  call plimagef95( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, &
1346  dxmin, dxmax, dymin, dymax )
1347  end subroutine plimage
1348 
1349  subroutine pllegend_1( legend_width, legend_height, &
1350  opt, position, x, y, &
1351  plot_width, bg_color, bb_color, bb_style, &
1352  nrow, ncolumn, nlegend, opt_array, &
1353  text_offset, text_scale, text_spacing, &
1354  text_justification, text_colors, text, &
1355  box_colors, box_patterns, box_scales, &
1356  box_line_widths, &
1357  line_colors, line_styles, line_widths, &
1358  symbol_colors, symbol_scales, &
1359  symbol_numbers, symbols )
1360 
1361  real(kind=plflt) :: legend_width, legend_height, plot_width, x, y
1362  real(kind=plflt) :: text_offset, text_scale, text_spacing, text_justification
1363  integer(kind=plint) :: position, opt, bg_color, bb_color, bb_style
1364  integer(kind=plint) :: nrow, ncolumn, nlegend
1365 
1366  character(len=*), dimension(:) :: text, symbols
1367 
1368  integer(kind=plint), dimension(:) :: opt_array, text_colors, box_colors
1369  integer(kind=plint), dimension(:) :: box_patterns
1370  real(kind=plflt), dimension(:) :: box_line_widths
1371  integer(kind=plint), dimension(:) :: line_colors, line_styles
1372  real(kind=plflt), dimension(:) :: line_widths
1373  integer(kind=plint), dimension(:) :: symbol_colors, symbol_numbers
1374  real(kind=plflt), dimension(:) :: box_scales, symbol_scales
1375 
1376  !
1377  ! Convert the text arrays and store the results in a convenient
1378  ! albeit global location. This way we avoid all manner of complications.
1379  ! (Though introducing a potentially nasty one: non-threadsafety)
1380  !
1381  call pllegend07_cnv_text( 1_plint, nlegend, text )
1382  call pllegend07_cnv_text( 2_plint, nlegend, symbols )
1383 
1384  call pllegend07( legend_width, legend_height, opt, position, x, y, &
1385  plot_width, bg_color, bb_color, bb_style, &
1386  nrow, ncolumn, nlegend, opt_array, &
1387  text_offset, text_scale, text_spacing, &
1388  text_justification, text_colors, &
1389  box_colors, box_patterns, box_scales, &
1390  box_line_widths, &
1391  line_colors, line_styles, line_widths, &
1392  symbol_colors, symbol_scales, &
1393  symbol_numbers )
1394 
1395  end subroutine pllegend_1
1396 
1397  subroutine pllegend_2( legend_width, legend_height, &
1398  opt, position, x, y, &
1399  plot_width, bg_color, bb_color, bb_style, &
1400  nrow, ncolumn, opt_array, &
1401  text_offset, text_scale, text_spacing, &
1402  text_justification, text_colors, text, &
1403  box_colors, box_patterns, box_scales, &
1404  box_line_widths, &
1405  line_colors, line_styles, line_widths, &
1406  symbol_colors, symbol_scales, &
1407  symbol_numbers, symbols )
1408 
1409  real(kind=plflt) :: legend_width, legend_height, plot_width, x, y
1410  real(kind=plflt) :: text_offset, text_scale, text_spacing, text_justification
1411  integer(kind=plint) :: position, opt, bg_color, bb_color, bb_style
1412  integer(kind=plint) :: nrow, ncolumn
1413 
1414  character(len=*), dimension(:) :: text, symbols
1415 
1416  integer(kind=plint), dimension(:) :: opt_array, text_colors, box_colors
1417  integer(kind=plint), dimension(:) :: box_patterns
1418  real(kind=plflt), dimension(:) :: box_line_widths
1419  integer(kind=plint), dimension(:) :: line_colors, line_styles
1420  real(kind=plflt), dimension(:) :: line_widths
1421  integer(kind=plint), dimension(:) :: symbol_colors, symbol_numbers
1422  real(kind=plflt), dimension(:) :: box_scales, symbol_scales
1423 
1424  integer(kind=plint) :: nlegend
1425 
1426  !
1427  ! Determine number of legend entries
1428  !
1429  nlegend = min( size(opt_array,kind=plint), size(text,kind=plint) )
1430 
1431  call pllegend_1( legend_width, legend_height, &
1432  opt, position, x, y, &
1433  plot_width, bg_color, bb_color, bb_style, &
1434  nrow, ncolumn, nlegend, opt_array, &
1435  text_offset, text_scale, text_spacing, &
1436  text_justification, text_colors, text, &
1437  box_colors, box_patterns, box_scales, &
1438  box_line_widths, &
1439  line_colors, line_styles, line_widths, &
1440  symbol_colors, symbol_scales, &
1441  symbol_numbers, symbols )
1442 
1443  end subroutine pllegend_2
1444 
1445  subroutine plline( x, y )
1446  real(kind=plflt), dimension(:) :: x, y
1447 
1448  call pllinef95( size(x,kind=plint), x, y )
1449  end subroutine plline
1450 
1451  subroutine plline3( x, y, z )
1452  real(kind=plflt), dimension(:) :: x, y, z
1453 
1454  call plline3f95( size(x,kind=plint), x, y, z )
1455  end subroutine plline3
1456 
1457  subroutine plmap1(mapform,mapname,minx,maxx,miny,maxy)
1458  real(kind=plflt) minx, maxx, miny, maxy
1459  character*(*) mapname
1460  external mapform
1461 
1462  call plstrf2c(mapname, string1)
1463 
1464  call plsetmapformc(mapform)
1465  s1 = transfer( string1, s1 )
1466  call plmap7(s1,minx,maxx,miny,maxy)
1467 
1468  end subroutine plmap1
1469 
1470  subroutine plmap2(mapname,minx,maxx,miny,maxy)
1471  real(kind=plflt) minx, maxx, miny, maxy
1472  character*(*) mapname
1473 
1474  call plstrf2c(mapname, string1)
1475 
1476  call plclearmapformc()
1477  s1 = transfer( string1, s1 )
1478  call plmap7(s1,minx,maxx,miny,maxy)
1479 
1480  end subroutine plmap2
1481 
1482  subroutine plmapfill1(mapform,mapname,minx,maxx,miny,maxy,plotentries)
1483  real(kind=plflt) minx, maxx, miny, maxy
1484  integer(kind=plint), dimension(:), optional :: plotentries
1485  character*(*) mapname
1486  external mapform
1487  integer(kind=plint), dimension(1) :: dummy
1488 
1489  call plstrf2c(mapname, string1)
1490 
1491  call plsetmapformc(mapform)
1492  s1 = transfer( string1, s1 )
1493  if ( present(plotentries) ) then
1494  call plmapfill7(s1,minx,maxx,miny,maxy,plotentries,size(plotentries,kind=plint))
1495  else
1496  call plmapfill7(s1,minx,maxx,miny,maxy,dummy,0_plint)
1497  endif
1498 
1499  end subroutine plmapfill1
1500 
1501  subroutine plmapfill2(mapname,minx,maxx,miny,maxy,plotentries)
1502  real(kind=plflt) minx, maxx, miny, maxy
1503  integer(kind=plint), dimension(:), optional :: plotentries
1504  character*(*) mapname
1505  integer(kind=plint), dimension(1) :: dummy
1506 
1507  call plstrf2c(mapname, string1)
1508 
1509  call plclearmapformc()
1510  s1 = transfer( string1, s1 )
1511  if ( present(plotentries) ) then
1512  call plmapfill7(s1,minx,maxx,miny,maxy,plotentries,size(plotentries,kind=plint))
1513  else
1514  call plmapfill7(s1,minx,maxx,miny,maxy,dummy,0_plint)
1515  endif
1516 
1517  end subroutine plmapfill2
1518 
1519  subroutine plmapline1(mapform,mapname,minx,maxx,miny,maxy,plotentries)
1520  real(kind=plflt) minx, maxx, miny, maxy
1521  integer(kind=plint), dimension(:), optional :: plotentries
1522  character*(*) mapname
1523  external mapform
1524  integer(kind=plint), dimension(1) :: dummy
1525 
1526  call plstrf2c(mapname, string1)
1527 
1528  call plsetmapformc(mapform)
1529  s1 = transfer( string1, s1 )
1530  if ( present(plotentries) ) then
1531  call plmapline7(s1,minx,maxx,miny,maxy,plotentries,size(plotentries,kind=plint))
1532  else
1533  call plmapline7(s1,minx,maxx,miny,maxy,dummy,0_plint)
1534  endif
1535 
1536  end subroutine plmapline1
1537 
1538  subroutine plmapline2(mapname,minx,maxx,miny,maxy,plotentries)
1539  real(kind=plflt) minx, maxx, miny, maxy
1540  integer(kind=plint), dimension(:), optional :: plotentries
1541  character*(*) mapname
1542  integer(kind=plint), dimension(1) :: dummy
1543 
1544  call plstrf2c(mapname, string1)
1545 
1546  call plclearmapformc()
1547  s1 = transfer( string1, s1 )
1548  if ( present(plotentries) ) then
1549  call plmapline7(s1,minx,maxx,miny,maxy,plotentries,size(plotentries,kind=plint))
1550  else
1551  call plmapline7(s1,minx,maxx,miny,maxy,dummy,0_plint)
1552  endif
1553 
1554  end subroutine plmapline2
1555 
1556  subroutine plmapstring1(mapform,mapname,string,minx,maxx,miny,maxy,plotentries)
1557  real(kind=plflt) minx, maxx, miny, maxy
1558  integer(kind=plint), dimension(:), optional :: plotentries
1559  character*(*) mapname, string
1560  external mapform
1561  integer(kind=plint), dimension(1) :: dummy
1562 
1563  call plstrf2c(mapname, string1)
1564  call plstrf2c(string, string2)
1565 
1566  call plsetmapformc(mapform)
1567  s1 = transfer( string1, s1 )
1568  s2 = transfer( string2, s2 )
1569  if ( present(plotentries) ) then
1570  call plmapstring7(s1,s2,minx,maxx,miny,maxy,plotentries,size(plotentries,kind=plint))
1571  else
1572  call plmapstring7(s1,s2,minx,maxx,miny,maxy,dummy,0_plint)
1573  endif
1574 
1575  end subroutine plmapstring1
1576 
1577  subroutine plmapstring2(mapname,string,minx,maxx,miny,maxy,plotentries)
1578  real(kind=plflt) minx, maxx, miny, maxy
1579  integer(kind=plint), dimension(:), optional :: plotentries
1580  character*(*) mapname, string
1581  integer(kind=plint), dimension(1) :: dummy
1582 
1583  call plstrf2c(mapname, string1)
1584  call plstrf2c(string, string2)
1585 
1586  call plclearmapformc()
1587  s1 = transfer( string1, s1 )
1588  s2 = transfer( string2, s2 )
1589  if ( present(plotentries) ) then
1590  call plmapstring7(s1,s2,minx,maxx,miny,maxy,plotentries,size(plotentries,kind=plint))
1591  else
1592  call plmapstring7(s1,s2,minx,maxx,miny,maxy,dummy,0_plint)
1593  endif
1594 
1595  end subroutine plmapstring2
1596 
1597  subroutine plmaptex1(mapform,mapname,dx,dy,just,text,minx,maxx,miny,maxy,plotentry)
1598  real(kind=plflt) dx, dy, just, minx, maxx, miny, maxy
1599  integer(kind=plint) :: plotentry
1600  character*(*) mapname, text
1601  external mapform
1602  integer(kind=plint) :: dummy
1603 
1604  call plstrf2c(mapname, string1)
1605  call plstrf2c_esc(text, string2)
1606 
1607  call plsetmapformc(mapform)
1608  s1 = transfer( string1, s1 )
1609  s2 = transfer( string2, s2 )
1610  call plmaptex7(s1,dx,dy,just,s2,minx,maxx,miny,maxy,plotentry)
1611 
1612  end subroutine plmaptex1
1613 
1614  subroutine plmaptex2(mapname,dx,dy,just,text,minx,maxx,miny,maxy,plotentry)
1615  real(kind=plflt) dx, dy, just, minx, maxx, miny, maxy
1616  integer(kind=plint) :: plotentry
1617  character*(*) mapname, text
1618  integer(kind=plint) :: dummy
1619 
1620  call plstrf2c(mapname, string1)
1621  call plstrf2c_esc(text, string2)
1622 
1623  call plclearmapformc()
1624  s1 = transfer( string1, s1 )
1625  s2 = transfer( string2, s2 )
1626  call plmaptex7(s1,dx,dy,just,s2,minx,maxx,miny,maxy,plotentry)
1627 
1628  end subroutine plmaptex2
1629 
1630  subroutine plmeridians1(mapform,dlong,dlat,minlong,maxlong, &
1631  minlat,maxlat)
1632 
1633  real(kind=plflt) dlong, dlat, minlong, maxlong, minlat, maxlat
1634  external mapform
1635 
1636  call plsetmapformc(mapform)
1637  call plmeridians7(dlong,dlat,minlong,maxlong,minlat,maxlat)
1638 
1639  end subroutine plmeridians1
1640 
1641  subroutine plmeridians2(dlong,dlat,minlong,maxlong, &
1642  minlat,maxlat)
1643 
1644  real(kind=plflt) dlong, dlat, minlong, maxlong, minlat, maxlat
1645 
1646  call plclearmapformc
1647  call plmeridians7(dlong,dlat,minlong,maxlong,minlat,maxlat)
1648 
1649  end subroutine plmeridians2
1650 
1651  subroutine plmesh( x, y, z, opt )
1652  integer(kind=plint) :: opt
1653  real(kind=plflt), dimension(:) :: x, y
1654  real(kind=plflt), dimension(:,:) :: z
1655 
1656  call plmeshf95( x, y, z, size(x,kind=plint), size(y,kind=plint), opt, size(x,kind=plint))
1657 
1658  end subroutine plmesh
1659 
1660  subroutine plmeshc( x, y, z, opt, clevel )
1661  integer(kind=plint) :: opt
1662  real(kind=plflt), dimension(:) :: x, y, clevel
1663  real(kind=plflt), dimension(:,:) :: z
1664 
1665  call plmeshcf95( x, y, z, size(x,kind=plint), size(y,kind=plint), opt, &
1666  clevel, size(clevel,kind=plint), size(x,kind=plint))
1667 
1668  end subroutine plmeshc
1669 
1670  subroutine plot3d( x, y, z, opt, side )
1671  integer(kind=plint) :: opt
1672  logical :: side
1673  real(kind=plflt), dimension(:) :: x, y
1674  real(kind=plflt), dimension(:,:) :: z
1675  integer(kind=plint) :: iside
1676 
1677  iside = convert_to_int(side)
1678  call plot3df95( x, y, z, size(x,kind=plint), size(y,kind=plint), opt, iside, size(x,kind=plint))
1679 
1680  end subroutine plot3d
1681 
1682  subroutine plot3dc( x, y, z, opt, clevel )
1683  integer(kind=plint) :: opt
1684  real(kind=plflt), dimension(:) :: x, y, clevel
1685  real(kind=plflt), dimension(:,:) :: z
1686 
1687  call plot3dcf95( x, y, z, size(x,kind=plint), size(y,kind=plint), opt, clevel, &
1688  size(clevel,kind=plint), size(x,kind=plint))
1689 
1690  end subroutine plot3dc
1691 
1692  subroutine plspause( lpause )
1693  logical :: lpause
1694 
1695  integer(kind=plint) :: ipause
1696 
1697  ipause = convert_to_int( lpause )
1698  call plspausef95( ipause )
1699  end subroutine plspause
1700 
1701  subroutine plsurf3d( x, y, z, opt, clevel )
1702  integer(kind=plint) :: opt
1703  real(kind=plflt), dimension(:) :: x, y, clevel
1704  real(kind=plflt), dimension(:,:) :: z
1705 
1706  call plsurf3df95( x, y, z, size(x,kind=plint), size(y,kind=plint), opt, clevel, &
1707  size(clevel,kind=plint), size(x,kind=plint))
1708 
1709  end subroutine plsurf3d
1710 
1711  subroutine plsurf3dl( x, y, z, opt, clevel, indexxmin, indexxmax, indexymin, indexymax )
1712  integer(kind=plint) :: opt
1713  real(kind=plflt), dimension(:) :: x, y, clevel
1714  real(kind=plflt), dimension(:,:) :: z
1715  integer(kind=plint) :: indexxmin, indexxmax
1716  integer(kind=plint), dimension(:) :: indexymin, indexymax
1717 
1718  integer(kind=plint), dimension(size(x)) :: indexyminm1, indexymaxm1
1719 
1720  indexyminm1 = indexymin - 1
1721  indexymaxm1 = indexymax - 1
1722 
1723  call plsurf3dlf95( x, y, z, size(x,kind=plint), size(y,kind=plint), opt, clevel, &
1724  size(clevel,kind=plint), size(x,kind=plint), indexxmin-1, indexxmax-1, indexyminm1, indexymaxm1 )
1725 
1726  end subroutine plsurf3dl
1727 
1728  subroutine plpoin( x, y, code )
1729  integer(kind=plint) :: code
1730  real(kind=plflt), dimension(:) :: x, y
1731 
1732  call plpoinf95( size(x,kind=plint), x, y, code )
1733  end subroutine plpoin
1734 
1735  subroutine plpoin3( x, y, z, code )
1736  integer(kind=plint) :: code
1737  real(kind=plflt), dimension(:) :: x, y, z
1738 
1739  call plpoin3f95( size(x,kind=plint), x, y, z, code )
1740  end subroutine plpoin3
1741 
1742  subroutine plpoly3( x, y, z, draw, ifcc )
1743  logical :: ifcc
1744  logical, dimension(:) :: draw
1745  real(kind=plflt), dimension(:) :: x, y, z
1746 
1747  integer(kind=plint), dimension(size(draw,kind=plint)) :: idraw
1748  integer(kind=plint) :: i
1749  integer(kind=plint) :: iifcc
1750 
1751  iifcc = convert_to_int( ifcc )
1752  do i = 1_plint,size(draw,kind=plint)
1753  idraw(i) = convert_to_int( draw(i) )
1754  enddo
1755  call plpoly3f95( size(x,kind=plint), x, y, z, idraw, iifcc )
1756  end subroutine plpoly3
1757 
1758  real (kind=plflt) function plrandd()
1759  external plranddf95
1760  real(kind=plflt) :: plranddf95
1761 
1762  plrandd = plranddf95()
1763  end function plrandd
1764 
1765  subroutine plscmap0( r, g, b )
1766  integer(kind=plint), dimension(:) :: r, g, b
1767 
1768  call plscmap0f95( r, g, b, size(r,kind=plint) )
1769  end subroutine plscmap0
1770 
1771  subroutine plscmap0a( r, g, b, a )
1772  integer(kind=plint), dimension(:) :: r, g, b
1773  real(kind=plflt), dimension(:) :: a
1774 
1775  call plscmap0af95( r, g, b, a, size(r,kind=plint) )
1776  end subroutine plscmap0a
1777 
1778  subroutine plscmap1( r, g, b )
1779  integer(kind=plint), dimension(:) :: r, g, b
1780 
1781  call plscmap1f95( r, g, b, size(r,kind=plint) )
1782  end subroutine plscmap1
1783 
1784  subroutine plscmap1a( r, g, b, a )
1785  integer(kind=plint), dimension(:) :: r, g, b
1786  real(kind=plflt), dimension(:) :: a
1787 
1788  call plscmap1af95( r, g, b, a, size(r,kind=plint) )
1789  end subroutine plscmap1a
1790 
1791  subroutine plscmap1l( rgbtype, intensity, coord1, coord2, coord3, alt_hue_path)
1792  logical :: rgbtype
1793  real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3
1794  logical, dimension(:) :: alt_hue_path
1795 
1796  integer(kind=plint), dimension(size(alt_hue_path,kind=plint)) :: ialt_hue_path
1797  integer(kind=plint) :: i
1798  integer(kind=plint) :: type
1799 
1800  type = convert_to_int( rgbtype )
1801  do i = 1_plint,size(alt_hue_path,kind=plint)
1802  ialt_hue_path(i) = convert_to_int( alt_hue_path(i) )
1803  enddo
1804  call plscmap1lf95( type, size(intensity,kind=plint), intensity, coord1, coord2, coord3, ialt_hue_path )
1805  end subroutine plscmap1l
1806 
1807  subroutine plscmap1l2( rgbtype, intensity, coord1, coord2, coord3)
1808  logical :: rgbtype
1809  real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3
1810 
1811  integer(kind=plint) :: type
1812 
1813  type = convert_to_int( rgbtype )
1814  call plscmap1l2f95( type, size(intensity,kind=plint), intensity, coord1, coord2, coord3)
1815  end subroutine plscmap1l2
1816 
1817  subroutine plscmap1la( rgbtype, intensity, coord1, coord2, coord3, a, alt_hue_path)
1818  logical :: rgbtype
1819  real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3, a
1820  logical, dimension(:) :: alt_hue_path
1821 
1822  integer(kind=plint), dimension(size(alt_hue_path,kind=plint)) :: ialt_hue_path
1823  integer(kind=plint) :: i
1824  integer(kind=plint) :: type
1825 
1826  type = convert_to_int( rgbtype )
1827  do i = 1_plint,size(alt_hue_path,kind=plint)
1828  ialt_hue_path(i) = convert_to_int( alt_hue_path(i) )
1829  enddo
1830  call plscmap1laf95( type, size(intensity,kind=plint), intensity, coord1, coord2, coord3, a, ialt_hue_path )
1831  end subroutine plscmap1la
1832 
1833  subroutine plscmap1la2( rgbtype, intensity, coord1, coord2, coord3, a)
1834  logical :: rgbtype
1835  real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3, a
1836 
1837  integer(kind=plint) :: type
1838 
1839  type = convert_to_int( rgbtype )
1840  call plscmap1la2f95( type, size(intensity,kind=plint), intensity, coord1, coord2, coord3, a)
1841  end subroutine plscmap1la2
1842 
1843  subroutine plstripc(id, xspec, yspec, xmin, xmax, xjump, &
1844  ymin, ymax, xlpos, ylpos, y_ascl, acc, &
1845  colbox, collab, colline, styline, legline, &
1846  labx, laby, labtop)
1847 
1848  integer(kind=plint) id, colbox, collab, colline(4), styline(4)
1849  character*(*) xspec, yspec, legline(4), labx, laby, labtop
1850  real(kind=plflt) xmin, xmax, xjump, ymin, ymax, xlpos, ylpos
1851  logical y_ascl, acc
1852  integer(kind=plint) iy_ascl, iacc
1853 
1854 
1855  call plstrf2c(xspec, string1)
1856  call plstrf2c(yspec, string2)
1857  call plstrf2c(legline(1), string3)
1858  call plstrf2c(legline(2), string4)
1859  call plstrf2c(legline(3), string5)
1860  call plstrf2c(legline(4), string6)
1861  call plstrf2c(labx, string7)
1862  call plstrf2c(laby, string8)
1863  call plstrf2c(labtop, string9)
1864 
1865  iy_ascl = convert_to_int( y_ascl )
1866  iacc = convert_to_int( acc )
1867 
1868  s1 = transfer( string1, s1 )
1869  s2 = transfer( string2, s2 )
1870  s3 = transfer( string3, s3 )
1871  s4 = transfer( string4, s4 )
1872  s5 = transfer( string5, s5 )
1873  s6 = transfer( string6, s6 )
1874  s7 = transfer( string7, s7 )
1875  s8 = transfer( string8, s8 )
1876  s9 = transfer( string9, s9 )
1877  call plstripcf95(id, s1, s2, xmin, xmax, xjump, &
1878  ymin, ymax, xlpos, ylpos, iy_ascl, iacc, &
1879  colbox, collab, colline, styline, &
1880  s3, s4, s5, s6, &
1881  s7, s8, s9)
1882 
1883  end subroutine plstripc
1884 
1885  subroutine plsvect1( arrowx, arrowy, fill )
1886  logical :: fill
1887  real(kind=plflt), dimension(:) :: arrowx, arrowy
1888  integer(kind=plint) ifill
1889  ifill = convert_to_int(fill)
1890 
1891  call plsvect1f95( arrowx, arrowy, size(arrowx,kind=plint), ifill )
1892  end subroutine plsvect1
1893 
1894  subroutine plsym( x, y, code )
1895  integer(kind=plint) :: code
1896  real(kind=plflt), dimension(:) :: x, y
1897 
1898  call plsymf95( size(x,kind=plint), x, y, code )
1899  end subroutine plsym
1900 
1901  subroutine plxormod( mode, status )
1902  logical :: mode, status
1903  integer(kind=plint) :: imode, istatus
1904  imode = convert_to_int(mode)
1905  call plxormodf95( imode, istatus)
1906  status = convert_to_log(istatus)
1907  end subroutine plxormod
1908 end module plplot