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