~ubuntu-branches/ubuntu/intrepid/plplot/intrepid

« back to all changes in this revision

Viewing changes to bindings/f95/sfstubsf95.f90

  • Committer: Bazaar Package Importer
  • Author(s): Rafael Laboissiere
  • Date: 2006-11-04 10:19:34 UTC
  • mfrom: (2.1.8 edgy)
  • Revision ID: james.westby@ubuntu.com-20061104101934-mlirvdg4gpwi6i5q
Tags: 5.6.1-10
* Orphaning the package
* debian/control: Changed the maintainer to the Debian QA Group

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
!***********************************************************************
 
2
!  $Id: sfstubsf95.f90,v 1.6 2006/05/19 17:15:15 airwin Exp $
 
3
!  sfstubsf95.f
 
4
!
 
5
!  Copyright (C) 2005, 2006  Arjen Markus
 
6
!  Copyright (C) 2006  Alan W. Irwin
 
7
!
 
8
!  This file is part of PLplot.
 
9
!
 
10
!  PLplot is free software; you can redistribute it and/or modify
 
11
!  it under the terms of the GNU General Library Public License as published
 
12
!  by the Free Software Foundation; either version 2 of the License, or
 
13
!  (at your option) any later version.
 
14
!
 
15
!  PLplot is distributed in the hope that it will be useful,
 
16
!  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
!  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
18
!  GNU Library General Public License for more details.
 
19
!
 
20
!  You should have received a copy of the GNU Library General Public License
 
21
!  along with PLplot; if not, write to the Free Software
 
22
!  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
23
!
 
24
!
 
25
!  This file contains the interfaces for Fortran 95:
 
26
!  - it includes the actual FORTRAN routines from the FORTRAN 77 bindings
 
27
!  - it includes interfaces to the C routines from these bindings
 
28
!  - it defines a few Fortran 95 specific items and interfaces
 
29
!
 
30
!  NB
 
31
!  This module is written in fixed form, because that way we can reuse
 
32
!  the FORTRAN 77 bindings (including the original file is not possible:
 
33
!  the "end" statement has to be replaced by the "end subroutine"
 
34
!  statement)
 
35
!  To enable a redefinition of certain interfaces, we actually have
 
36
!  two modules.
 
37
!
 
38
!  NB
 
39
!  The INTENT attribute is not currently used. This is a matter to
 
40
!  be looked into.
 
41
!
 
42
!  NB
 
43
!  It is assumed in the current implementation that all arrays are
 
44
!  passed with correct dimensions. It would be wiser, perhaps, to
 
45
!  use the minimum dimension instead of just the dimension of the
 
46
!  first array.
 
47
!
 
48
!  NOTE:
 
49
!  Some of the C routines will have to be renamed (via macros)
 
50
!
 
51
!***********************************************************************
 
52
 
 
53
      !
 
54
      ! Parameters for identifying the kind of PLplot's real
 
55
      ! numbers (a configuration parameter)
 
56
      ! Use whatever name suits you better.
 
57
      !
 
58
      module plplot_flt
 
59
         include 'plflt.inc'
 
60
      end module
 
61
 
 
62
      module plplotp
 
63
         use plplot_flt
 
64
         implicit none
 
65
 
 
66
         interface plcont
 
67
            module procedure plcontour_0
 
68
            module procedure plcontour_1
 
69
            module procedure plcontour_2
 
70
            module procedure plcontour_tr
 
71
            module procedure plcontour_0_all
 
72
            module procedure plcontour_1_all
 
73
            module procedure plcontour_2_all
 
74
            module procedure plcontour_tr_all
 
75
         end interface
 
76
         private :: plcontour_0, plcontour_1, plcontour_2, plcontour_tr
 
77
         private :: plcontour_0_all, plcontour_1_all, plcontour_2_all, plcontour_tr_all
 
78
 
 
79
         interface plvect
 
80
            module procedure plvectors_0
 
81
            module procedure plvectors_1
 
82
            module procedure plvectors_2
 
83
            module procedure plvectors_tr
 
84
         end interface
 
85
         private :: plvectors_0, plvectors_1, plvectors_2, plvectors_tr
 
86
 
 
87
         interface plshade
 
88
            module procedure plshade_single_0
 
89
            module procedure plshade_single_1
 
90
            module procedure plshade_single_2
 
91
            module procedure plshade_single_tr
 
92
         end interface
 
93
         private :: plshade_single_0, plshade_single_1, plshade_single_2, plshade_single_tr
 
94
 
 
95
         interface plshades
 
96
            module procedure plshades_multiple_0
 
97
            module procedure plshades_multiple_1
 
98
            module procedure plshades_multiple_2
 
99
            module procedure plshades_multiple_tr
 
100
         end interface
 
101
         private :: plshades_multiple_0, plshades_multiple_1, &
 
102
                    plshades_multiple_2, plshades_multiple_tr
 
103
      contains
 
104
         include 'sfstubs.f90'
 
105
      end module plplotp
 
106
 
 
107
      module plplot
 
108
      use plplotp
 
109
      use plplot_flt
 
110
      !
 
111
      ! To be added: renaming list
 
112
      !
 
113
 
 
114
      implicit none
 
115
 
 
116
      !
 
117
      ! Parameters connecting a mnemonic name to the
 
118
      ! constants used by various routines
 
119
      !
 
120
      integer, parameter :: PL_PARSE_FULL = 1
 
121
 
 
122
      integer, parameter :: PL_GRID_CSA    = 1
 
123
      integer, parameter :: PL_GRID_DTLI   = 2
 
124
      integer, parameter :: PL_GRID_NNI    = 3
 
125
      integer, parameter :: PL_GRID_NNIDW  = 4
 
126
      integer, parameter :: PL_GRID_NNLI   = 5
 
127
      integer, parameter :: PL_GRID_NNAIDW = 6
 
128
 
 
129
      integer, parameter :: PL_JUST_NONE      = -1
 
130
      integer, parameter :: PL_JUST_OPTIMAL   =  0
 
131
      integer, parameter :: PL_JUST_SAME      =  1
 
132
      integer, parameter :: PL_JUST_ISOMETRIC =  2
 
133
 
 
134
      integer, parameter :: PL_AXIS_NOTHING    = -2
 
135
      integer, parameter :: PL_AXIS_BOX_ONLY   = -1
 
136
      integer, parameter :: PL_AXIS_NORMAL     =  0
 
137
      integer, parameter :: PL_AXIS_ATZERO     =  1
 
138
      integer, parameter :: PL_AXIS_MAJORGRID  =  2
 
139
      integer, parameter :: PL_AXIS_MINORGRID  =  3
 
140
      integer, parameter :: PL_AXIS_LOGX       = 10
 
141
      integer, parameter :: PL_AXIS_LOGY       = 20
 
142
      integer, parameter :: PL_AXIS_LOGXY      = 30
 
143
 
 
144
      integer, parameter :: PL_FONT_STANDARD   =  0
 
145
      integer, parameter :: PL_FONT_EXTENDED   =  1
 
146
 
 
147
      !
 
148
      ! TODO:
 
149
      ! Parameters for fill patterns and symbols
 
150
      !
 
151
 
 
152
      real(kind=plflt), parameter :: PL_PI = 3.1415926535897932384_plflt
 
153
 
 
154
      !
 
155
      ! To be added: alternative interfaces
 
156
      !
 
157
      interface
 
158
         subroutine pladv( sub )
 
159
            integer :: sub
 
160
         end subroutine pladv
 
161
      end interface
 
162
 
 
163
      interface plbin
 
164
         module procedure plbin
 
165
      end interface
 
166
 
 
167
      interface
 
168
         subroutine plbop
 
169
         end subroutine plbop
 
170
      end interface
 
171
 
 
172
      interface
 
173
         subroutine plcalc_world( rx, ry, wx, wy, window )
 
174
            use plplot_flt
 
175
            real(kind=plflt) :: rx, ry, wx, wy
 
176
            integer          :: window
 
177
         end subroutine plcalc_world
 
178
      end interface
 
179
 
 
180
      interface
 
181
         subroutine plclear
 
182
         end subroutine plclear
 
183
      end interface
 
184
 
 
185
      interface
 
186
         subroutine plcol0( icol )
 
187
            integer :: icol
 
188
         end subroutine plcol0
 
189
      end interface
 
190
 
 
191
      interface
 
192
         subroutine plcol( icol )
 
193
            integer :: icol
 
194
         end subroutine plcol
 
195
      end interface
 
196
 
 
197
      interface
 
198
         subroutine plcol1( col )
 
199
            use plplot_flt
 
200
            real(kind=plflt) :: col
 
201
         end subroutine plcol1
 
202
      end interface
 
203
 
 
204
      interface plcpstrm
 
205
         module procedure plcpstrm
 
206
      end interface
 
207
 
 
208
      interface
 
209
         subroutine plend
 
210
         end subroutine plend
 
211
      end interface
 
212
 
 
213
      interface
 
214
         subroutine plend1
 
215
         end subroutine plend1
 
216
      end interface
 
217
 
 
218
      interface
 
219
         subroutine plenv( xmin, xmax, ymin, ymax, just, axis )
 
220
            use plplot_flt
 
221
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
222
            integer          :: just, axis
 
223
         end subroutine plenv
 
224
      end interface
 
225
 
 
226
      interface
 
227
         subroutine pleop
 
228
         end subroutine pleop
 
229
      end interface
 
230
 
 
231
      interface plerrx
 
232
         module procedure plerrx
 
233
      end interface
 
234
 
 
235
      interface plerry
 
236
         module procedure plerry
 
237
      end interface
 
238
 
 
239
      interface plfamadv
 
240
         subroutine plfamadv
 
241
         end subroutine plfamadv
 
242
      end interface
 
243
 
 
244
      interface plfill
 
245
         module procedure plfill
 
246
      end interface
 
247
 
 
248
      interface plfill3
 
249
         module procedure plfill3
 
250
      end interface
 
251
 
 
252
      interface
 
253
         subroutine plflush
 
254
         end subroutine plflush
 
255
      end interface
 
256
 
 
257
      interface
 
258
         subroutine plfont( font )
 
259
            integer :: font
 
260
         end subroutine plfont
 
261
      end interface
 
262
 
 
263
      interface
 
264
         subroutine plfontld( charset )
 
265
            integer :: charset
 
266
         end subroutine plfontld
 
267
      end interface
 
268
 
 
269
      interface
 
270
         subroutine plgchr( chrdef, chrht )
 
271
            use plplot_flt
 
272
            real(kind=plflt) :: chrdef, chrht
 
273
         end subroutine plgchr
 
274
      end interface
 
275
 
 
276
      interface
 
277
         subroutine plgcol0( icol, r, g, b )
 
278
            integer :: icol, r, g, b
 
279
         end subroutine plgcol0
 
280
      end interface
 
281
 
 
282
      interface
 
283
         subroutine plgcolbg( r, g, b )
 
284
            integer :: r, g, b
 
285
         end subroutine plgcolbg
 
286
      end interface
 
287
 
 
288
      interface
 
289
         subroutine plgcompression( compression )
 
290
            integer :: compression
 
291
         end subroutine plgcompression
 
292
      end interface
 
293
 
 
294
      interface
 
295
         subroutine plgdidev( mar, aspect, jx, jy )
 
296
            use plplot_flt
 
297
            real(kind=plflt) :: mar, aspect, jx, jy
 
298
         end subroutine plgdidev
 
299
      end interface
 
300
 
 
301
      interface
 
302
         subroutine plgdiori( rot )
 
303
            use plplot_flt
 
304
            real(kind=plflt) :: rot
 
305
         end subroutine plgdiori
 
306
      end interface
 
307
 
 
308
      interface
 
309
         subroutine plgdiplt( xmin, xmax, ymin, ymax )
 
310
            use plplot_flt
 
311
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
312
         end subroutine plgdiplt
 
313
      end interface
 
314
 
 
315
      interface
 
316
         subroutine plgfam( fam, num, bmax )
 
317
            integer :: fam, num, bmax
 
318
         end subroutine plgfam
 
319
      end interface
 
320
 
 
321
      interface
 
322
         subroutine plglevel( level )
 
323
            integer :: level
 
324
         end subroutine plglevel
 
325
      end interface
 
326
 
 
327
      interface
 
328
         subroutine plgpage( xpmm, ypmm, xwid, ywid, xoff, yoff )
 
329
            use plplot_flt
 
330
            real(kind=plflt) :: xpmm, ypmm
 
331
            integer          :: xwid, ywid, xoff, yoff
 
332
         end subroutine plgpage
 
333
      end interface
 
334
 
 
335
      interface
 
336
         subroutine plgra
 
337
         end subroutine plgra
 
338
      end interface
 
339
 
 
340
      interface plgriddata
 
341
         module procedure plgriddata
 
342
      end interface
 
343
 
 
344
      interface
 
345
         subroutine plgspa( xmin, xmax, ymin, ymax )
 
346
            use plplot_flt
 
347
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
348
         end subroutine plgspa
 
349
      end interface
 
350
 
 
351
      interface
 
352
         subroutine plgstrm( strm )
 
353
            integer :: strm
 
354
         end subroutine plgstrm
 
355
      end interface
 
356
 
 
357
      interface
 
358
         subroutine plgvpd( xmin, xmax, ymin, ymax )
 
359
            use plplot_flt
 
360
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
361
         end subroutine plgvpd
 
362
      end interface
 
363
 
 
364
      interface
 
365
         subroutine plgvpw( xmin, xmax, ymin, ymax )
 
366
            use plplot_flt
 
367
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
368
         end subroutine plgvpw
 
369
      end interface
 
370
 
 
371
      interface
 
372
         subroutine plgxax( digmax, digits )
 
373
            integer :: digmax, digits
 
374
         end subroutine plgxax
 
375
      end interface
 
376
 
 
377
      interface
 
378
         subroutine plgyax( digmax, digits )
 
379
            integer :: digmax, digits
 
380
         end subroutine plgyax
 
381
      end interface
 
382
 
 
383
      interface
 
384
         subroutine plgzax( digmax, digits )
 
385
            integer :: digmax, digits
 
386
         end subroutine plgzax
 
387
      end interface
 
388
 
 
389
      interface plhist
 
390
         module procedure plhist
 
391
      end interface
 
392
 
 
393
      interface
 
394
         subroutine plhls( h, l, s )
 
395
            use plplot_flt
 
396
            real(kind=plflt) :: h, l, s
 
397
         end subroutine plhls
 
398
      end interface
 
399
 
 
400
      interface
 
401
         subroutine plhlsrgb( h, l, s, r, g, b )
 
402
            use plplot_flt
 
403
            real(kind=plflt) :: h, l, s, r, g, b
 
404
         end subroutine plhlsrgb
 
405
      end interface
 
406
 
 
407
      interface
 
408
         subroutine plinit
 
409
         end subroutine plinit
 
410
      end interface
 
411
 
 
412
      interface
 
413
         subroutine pljoin( x1, y1, x2, y2 )
 
414
            use plplot_flt
 
415
            real(kind=plflt) :: x1, y1, x2, y2
 
416
         end subroutine pljoin
 
417
      end interface
 
418
 
 
419
      interface
 
420
         subroutine pllightsource( x, y, z )
 
421
            use plplot_flt
 
422
            real(kind=plflt) :: x, y, z
 
423
         end subroutine pllightsource
 
424
      end interface
 
425
 
 
426
      interface plline
 
427
         module procedure plline
 
428
      end interface
 
429
 
 
430
      interface plline3
 
431
         module procedure plline3
 
432
      end interface
 
433
 
 
434
      interface pllsty
 
435
         subroutine pllsty( lin )
 
436
            integer :: lin
 
437
         end subroutine pllsty
 
438
      end interface
 
439
 
 
440
      interface plmesh
 
441
         module procedure plmesh
 
442
      end interface
 
443
 
 
444
      interface plmeshc
 
445
         module procedure plmeshc
 
446
      end interface
 
447
 
 
448
      interface
 
449
         subroutine plmkstrm( strm )
 
450
            integer :: strm
 
451
         end subroutine plmkstrm
 
452
      end interface
 
453
 
 
454
      interface
 
455
         subroutine plpat( nlin, inc, del )
 
456
            integer :: nlin, inc, del
 
457
         end subroutine plpat
 
458
      end interface
 
459
 
 
460
      interface plot3d
 
461
         module procedure plot3d
 
462
      end interface
 
463
 
 
464
      interface plot3dc
 
465
         module procedure plot3dc
 
466
      end interface
 
467
 
 
468
      interface plpoin
 
469
         module procedure plpoin
 
470
      end interface
 
471
 
 
472
      interface plpoin3
 
473
         module procedure plpoin3
 
474
      end interface
 
475
 
 
476
      interface plpoly3
 
477
         module procedure plpoly3
 
478
      end interface
 
479
 
 
480
      interface
 
481
         subroutine plprec( setp, prec )
 
482
            integer :: setp, prec
 
483
         end subroutine plprec
 
484
      end interface
 
485
 
 
486
      interface
 
487
         subroutine plpsty( patt )
 
488
            integer :: patt
 
489
         end subroutine plpsty
 
490
      end interface
 
491
 
 
492
      interface
 
493
         subroutine plreplot
 
494
         end subroutine plreplot
 
495
      end interface
 
496
 
 
497
      !
 
498
      ! Note: plrgb and plrgb1 can be merged
 
499
      !
 
500
      interface
 
501
         subroutine plrgb( r, g, b )
 
502
            use plplot_flt
 
503
            real(kind=plflt) :: r, g, b
 
504
         end subroutine plrgb
 
505
      end interface
 
506
 
 
507
      interface
 
508
         subroutine plrgb1( r, g, b )
 
509
            integer :: r, g, b
 
510
         end subroutine plrgb1
 
511
      end interface
 
512
 
 
513
      interface
 
514
         subroutine plrgbhls( r, g, b, h, l, s )
 
515
            use plplot_flt
 
516
            real(kind=plflt) :: r, g, b, h, l, s
 
517
         end subroutine plrgbhls
 
518
      end interface
 
519
 
 
520
      interface
 
521
         subroutine plschr( chrdef, chrht )
 
522
            use plplot_flt
 
523
            real(kind=plflt) :: chrdef, chrht
 
524
         end subroutine plschr
 
525
      end interface
 
526
 
 
527
      interface plscmap0
 
528
         module procedure plscmap0
 
529
      end interface
 
530
 
 
531
      interface
 
532
         subroutine plscmap0n( n )
 
533
            integer :: n
 
534
         end subroutine plscmap0n
 
535
      end interface
 
536
 
 
537
      interface plscmap1
 
538
         module procedure plscmap1
 
539
      end interface
 
540
 
 
541
      interface plscmap1l
 
542
         module procedure plscmap1l
 
543
      end interface
 
544
 
 
545
      interface
 
546
         subroutine plscmap1n( n )
 
547
            integer :: n
 
548
         end subroutine plscmap1n
 
549
      end interface
 
550
 
 
551
      interface
 
552
         subroutine plscol0( icol, r, g, b )
 
553
            integer :: icol, r, g, b
 
554
         end subroutine plscol0
 
555
      end interface
 
556
 
 
557
      interface
 
558
         subroutine plscolbg( r, g, b )
 
559
            integer :: r, g, b
 
560
         end subroutine plscolbg
 
561
      end interface
 
562
 
 
563
      interface
 
564
         subroutine plscolor( color )
 
565
            integer :: color
 
566
         end subroutine plscolor
 
567
      end interface
 
568
 
 
569
      interface
 
570
         subroutine plscompression( compression )
 
571
            integer :: compression
 
572
         end subroutine plscompression
 
573
      end interface
 
574
 
 
575
      interface
 
576
         subroutine plsdidev( mar, aspect, jx, jy )
 
577
            use plplot_flt
 
578
            real(kind=plflt) :: mar, aspect, jx, jy
 
579
         end subroutine plsdidev
 
580
      end interface
 
581
 
 
582
      interface
 
583
         subroutine plsdimap( dimxmi, dimxmax, diymin, dimymax, dimxpmm, diypmm )
 
584
            use plplot_flt
 
585
            real(kind=plflt) :: dimxmi, dimxmax, diymin, dimymax, dimxpmm, diypmm
 
586
         end subroutine plsdimap
 
587
      end interface
 
588
 
 
589
      interface
 
590
         subroutine plsdiori( rot )
 
591
            use plplot_flt
 
592
            real(kind=plflt) :: rot
 
593
         end subroutine plsdiori
 
594
      end interface
 
595
 
 
596
      interface
 
597
         subroutine plsdiplt( xmin, xmax, ymin, ymax )
 
598
            use plplot_flt
 
599
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
600
         end subroutine plsdiplt
 
601
      end interface
 
602
 
 
603
      interface
 
604
         subroutine plsdiplz( xmin, xmax, ymin, ymax )
 
605
            use plplot_flt
 
606
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
607
         end subroutine plsdiplz
 
608
      end interface
 
609
 
 
610
      ! TODO: character-version
 
611
      interface
 
612
         subroutine plsesc( esc )
 
613
            integer :: esc
 
614
         end subroutine plsesc
 
615
      end interface
 
616
 
 
617
      !
 
618
      ! TODO: F95-specific form for these routines
 
619
      !
 
620
      interface plsetmapformc
 
621
         subroutine plsetmapformc( mapform )
 
622
            use plplot_flt
 
623
            interface
 
624
               subroutine mapform( n, x, y )
 
625
                  use plplot_flt
 
626
                  integer                        :: n
 
627
                  real(kind=plflt), dimension(*) :: x, y
 
628
               end subroutine mapform
 
629
            end interface
 
630
         end subroutine plsetmapformc
 
631
      end interface
 
632
 
 
633
      interface
 
634
         subroutine plsfam( fam, num, bmax )
 
635
            integer :: fam, num, bmax
 
636
         end subroutine plsfam
 
637
      end interface
 
638
 
 
639
      interface
 
640
         subroutine plsmaj( def, scale )
 
641
            use plplot_flt
 
642
            real(kind=plflt) :: def, scale
 
643
         end subroutine plsmaj
 
644
      end interface
 
645
 
 
646
      ! plsmem: void * argument tricky - TODO
 
647
 
 
648
      interface
 
649
         subroutine plsmin( def, scale )
 
650
            use plplot_flt
 
651
            real(kind=plflt) :: def, scale
 
652
         end subroutine plsmin
 
653
      end interface
 
654
 
 
655
      interface
 
656
         subroutine plsori( rot )
 
657
            use plplot_flt
 
658
            real(kind=plflt) :: rot
 
659
         end subroutine plsori
 
660
      end interface
 
661
 
 
662
      interface
 
663
         subroutine plspage( xpmm, ypmm, xwid, ywid, xoff, yoff )
 
664
            use plplot_flt
 
665
            real(kind=plflt) :: xpmm, ypmm
 
666
            integer          :: xwid, ywid, xoff, yoff
 
667
         end subroutine plspage
 
668
      end interface
 
669
 
 
670
      interface plspause
 
671
         module procedure plspause
 
672
      end interface
 
673
 
 
674
      interface
 
675
         subroutine plsstrm( strm )
 
676
            integer :: strm
 
677
         end subroutine plsstrm
 
678
      end interface
 
679
 
 
680
      interface
 
681
         subroutine plssub( nx, ny )
 
682
            integer :: nx, ny
 
683
         end subroutine plssub
 
684
      end interface
 
685
 
 
686
      interface
 
687
         subroutine plssym( def, scale )
 
688
            use plplot_flt
 
689
            real(kind=plflt) :: def, scale
 
690
         end subroutine plssym
 
691
      end interface
 
692
 
 
693
      interface
 
694
         subroutine plstar( x, y )
 
695
            use plplot_flt
 
696
            real(kind=plflt) :: x, y
 
697
         end subroutine plstar
 
698
      end interface
 
699
 
 
700
      interface
 
701
         subroutine plstripa( id, pen, x, y )
 
702
            use plplot_flt
 
703
            integer          :: id, pen
 
704
            real(kind=plflt) :: x, y
 
705
         end subroutine plstripa
 
706
      end interface
 
707
 
 
708
      interface
 
709
         subroutine plstripd( id )
 
710
            integer :: id
 
711
         end subroutine plstripd
 
712
      end interface
 
713
 
 
714
      interface
 
715
         subroutine plstyl( n, mark, space )
 
716
            integer :: n, mark, space
 
717
         end subroutine plstyl
 
718
      end interface
 
719
 
 
720
      interface plsurf3d
 
721
         module procedure plsurf3d
 
722
      end interface
 
723
 
 
724
      interface plstripc
 
725
         module procedure plstripc
 
726
      end interface
 
727
 
 
728
      interface plsvect
 
729
         module procedure plsvect
 
730
      end interface
 
731
 
 
732
      interface
 
733
         subroutine plsvpa( xmin, xmax, ymin, ymax )
 
734
            use plplot_flt
 
735
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
736
         end subroutine plsvpa
 
737
      end interface
 
738
 
 
739
      interface
 
740
         subroutine plsxax( digmax, digits )
 
741
            integer :: digmax, digits
 
742
         end subroutine plsxax
 
743
      end interface
 
744
 
 
745
      interface
 
746
         subroutine plsyax( digmax, digits )
 
747
            integer :: digmax, digits
 
748
         end subroutine plsyax
 
749
      end interface
 
750
 
 
751
      interface plsym
 
752
         module procedure plsym
 
753
      end interface
 
754
 
 
755
      interface
 
756
         subroutine plszax( digmax, digits )
 
757
            integer :: digmax, digits
 
758
         end subroutine plszax
 
759
      end interface
 
760
 
 
761
      interface
 
762
         subroutine pltext
 
763
         end subroutine pltext
 
764
      end interface
 
765
 
 
766
      interface
 
767
         subroutine plvasp( aspect )
 
768
            use plplot_flt
 
769
            real(kind=plflt) :: aspect
 
770
         end subroutine plvasp
 
771
      end interface
 
772
 
 
773
      interface
 
774
         subroutine plvpas( xmin, xmax, ymin, ymax, aspect )
 
775
            use plplot_flt
 
776
            real(kind=plflt) :: xmin, xmax, ymin, ymax, aspect
 
777
         end subroutine plvpas
 
778
      end interface
 
779
 
 
780
      interface
 
781
         subroutine plvpor( xmin, xmax, ymin, ymax )
 
782
            use plplot_flt
 
783
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
784
         end subroutine plvpor
 
785
      end interface
 
786
 
 
787
      interface
 
788
         subroutine plvsta
 
789
         end subroutine plvsta
 
790
      end interface
 
791
 
 
792
      interface
 
793
         subroutine plw3d( basex, basey, height, xmin, xmax, ymin, ymax, zmin, zmax, alt, az )
 
794
            use plplot_flt
 
795
            real(kind=plflt) :: basex, basey, height, xmin, xmax, ymin, ymax, zmin, zmax, alt, az
 
796
         end subroutine plw3d
 
797
      end interface
 
798
 
 
799
      interface
 
800
         subroutine plwid( width )
 
801
            integer :: width
 
802
         end subroutine plwid
 
803
      end interface
 
804
 
 
805
      interface
 
806
         subroutine plwind( xmin, xmax, ymin, ymax )
 
807
            use plplot_flt
 
808
            real(kind=plflt) :: xmin, xmax, ymin, ymax
 
809
         end subroutine plwind
 
810
      end interface
 
811
 
 
812
      interface plxormod
 
813
         module procedure plxormod
 
814
      end interface
 
815
 
 
816
 
 
817
      private :: convert_to_int
 
818
      private :: convert_to_log
 
819
 
 
820
! -------------------------------------------------------------------
 
821
      contains
 
822
! -------------------------------------------------------------------
 
823
      integer function convert_to_int( logvalue )
 
824
         logical :: logvalue
 
825
         if ( logvalue ) then
 
826
           convert_to_int = 1
 
827
         else
 
828
           convert_to_int = 0
 
829
         endif
 
830
      end function convert_to_int
 
831
 
 
832
      logical function convert_to_log( intvalue )
 
833
         integer :: intvalue
 
834
         convert_to_log = intvalue.ne.0
 
835
      end function convert_to_log
 
836
 
 
837
      subroutine plbin( x, y, center )
 
838
         real(kind=plflt), dimension(:) :: x, y
 
839
         integer                        :: center
 
840
 
 
841
         call plbinf77( size(x), x, y, center )
 
842
      end subroutine plbin
 
843
 
 
844
      subroutine plcpstrm( iplsr, flags )
 
845
         integer                        :: iplsr
 
846
         logical                        :: flags
 
847
 
 
848
         integer                        :: iflags
 
849
 
 
850
         iflags = convert_to_int( flags )
 
851
         call plcpstrmf77( iplsr, iflags )
 
852
      end subroutine plcpstrm
 
853
 
 
854
      subroutine plerrx( xmin, xmax, y )
 
855
         real(kind=plflt), dimension(:) :: xmin, xmax, y
 
856
 
 
857
         call plerrxf77( size(xmin), xmin, xmax, y )
 
858
      end subroutine plerrx
 
859
 
 
860
      subroutine plerry( x, ymin, ymax )
 
861
         real(kind=plflt), dimension(:) :: x, ymin, ymax
 
862
 
 
863
         call plerryf77( size(x), x, ymin, ymax )
 
864
      end subroutine plerry
 
865
 
 
866
      subroutine plfill( x, y )
 
867
         real(kind=plflt), dimension(:) :: x, y
 
868
 
 
869
         call plfillf77( size(x), x, y )
 
870
      end subroutine plfill
 
871
 
 
872
      subroutine plfill3( x, y, z )
 
873
         real(kind=plflt), dimension(:) :: x, y, z
 
874
 
 
875
         call plfill3f77( size(x), x, y, z )
 
876
      end subroutine plfill3
 
877
 
 
878
      subroutine plgriddata( x, y, z, xg, yg, zg, type, data )
 
879
         real(kind=plflt), dimension(:)   :: x, y, z, xg, yg, data
 
880
         real(kind=plflt), dimension(:,:) :: zg
 
881
         integer                          :: type
 
882
 
 
883
         call plgriddataf77( x, y, z, size(x), xg, size(xg), yg, size(yg), zg, &
 
884
            type, data )
 
885
 
 
886
         return
 
887
      end subroutine plgriddata
 
888
 
 
889
      subroutine plhist( data, datmin, datmax, nbin, oldwin )
 
890
         real(kind=plflt), dimension(:) :: data
 
891
         real(kind=plflt)               :: datmin, datmax
 
892
         integer                        :: nbin, oldwin
 
893
 
 
894
         call plhistf77( size(data), data, datmin, datmax, nbin, oldwin )
 
895
      end subroutine plhist
 
896
 
 
897
      subroutine plline( x, y )
 
898
         real(kind=plflt), dimension(:) :: x, y
 
899
 
 
900
         call pllinef77( size(x), x, y )
 
901
      end subroutine plline
 
902
 
 
903
      subroutine plline3( x, y, z )
 
904
         real(kind=plflt), dimension(:) :: x, y, z
 
905
 
 
906
         call plline3f77( size(x), x, y, z )
 
907
      end subroutine plline3
 
908
 
 
909
      subroutine plmesh( x, y, z, opt )
 
910
         integer                          :: opt
 
911
         real(kind=plflt), dimension(:)   :: x, y
 
912
         real(kind=plflt), dimension(:,:) :: z
 
913
 
 
914
         call plmeshf77( x, y, z, size(x), size(y), opt, size(x))
 
915
 
 
916
      end subroutine plmesh
 
917
 
 
918
      subroutine plmeshc( x, y, z, opt, clevel )
 
919
         integer                          :: opt
 
920
         real(kind=plflt), dimension(:)   :: x, y, clevel
 
921
         real(kind=plflt), dimension(:,:) :: z
 
922
 
 
923
         call plmeshcf77( x, y, z, size(x), size(y), opt, &
 
924
           clevel, size(clevel), size(x))
 
925
 
 
926
      end subroutine plmeshc
 
927
 
 
928
      subroutine plot3d( x, y, z, opt, side )
 
929
         integer                          :: opt
 
930
         logical                          :: side
 
931
         real(kind=plflt), dimension(:)   :: x, y
 
932
         real(kind=plflt), dimension(:,:) :: z
 
933
         integer                          :: iside
 
934
 
 
935
         iside = convert_to_int(side)
 
936
         call plot3df77( x, y, z, size(x), size(y), opt, iside, size(x))
 
937
 
 
938
      end subroutine plot3d
 
939
 
 
940
      subroutine plot3dc( x, y, z, opt, clevel )
 
941
         integer                          :: opt
 
942
         real(kind=plflt), dimension(:)   :: x, y, clevel
 
943
         real(kind=plflt), dimension(:,:) :: z
 
944
 
 
945
         call plot3dcf77( x, y, z, size(x), size(y), opt, clevel, &
 
946
           size(clevel), size(x))
 
947
 
 
948
      end subroutine plot3dc
 
949
 
 
950
      subroutine plspause( lpause )
 
951
         logical                        :: lpause
 
952
 
 
953
         integer                        :: ipause
 
954
 
 
955
         ipause = convert_to_int( lpause )
 
956
         call plspausef77( ipause )
 
957
      end subroutine plspause
 
958
 
 
959
      subroutine plsurf3d( x, y, z, opt, clevel )
 
960
         integer                        :: opt
 
961
         real(kind=plflt), dimension(:) :: x, y, clevel
 
962
         real(kind=plflt), dimension(:,:) :: z
 
963
 
 
964
         call plsurf3df77( x, y, z, size(x), size(y), opt, clevel, &
 
965
           size(clevel), size(x))
 
966
 
 
967
      end subroutine plsurf3d
 
968
 
 
969
      subroutine plpoin( x, y, code )
 
970
         integer                        :: code
 
971
         real(kind=plflt), dimension(:) :: x, y
 
972
 
 
973
         call plpoinf77( size(x), x, y, code )
 
974
      end subroutine plpoin
 
975
 
 
976
      subroutine plpoin3( x, y, z, code )
 
977
         integer                        :: code
 
978
         real(kind=plflt), dimension(:) :: x, y, z
 
979
 
 
980
         call plpoin3f77( size(x), x, y, z, code )
 
981
      end subroutine plpoin3
 
982
 
 
983
      subroutine plpoly3( x, y, z, draw, ifcc )
 
984
         logical                        :: ifcc
 
985
         logical, dimension(:)          :: draw
 
986
         real(kind=plflt), dimension(:) :: x, y, z
 
987
 
 
988
         integer, dimension(size(draw))  :: idraw
 
989
         integer                        :: i
 
990
         integer                        :: iifcc
 
991
 
 
992
         iifcc = convert_to_int( ifcc )
 
993
         do i = 1,size(draw)
 
994
            idraw(i) = convert_to_int( draw(i) )
 
995
         enddo
 
996
         call plpoly3f77( size(x), x, y, z, idraw, iifcc )
 
997
      end subroutine plpoly3
 
998
 
 
999
      subroutine plscmap0( r, g, b )
 
1000
         integer, dimension(:) :: r, g, b
 
1001
 
 
1002
         call plscmap0f77( r, g, b, size(r) )
 
1003
      end subroutine plscmap0
 
1004
 
 
1005
      subroutine plscmap1( r, g, b )
 
1006
         integer, dimension(:) :: r, g, b
 
1007
 
 
1008
         call plscmap1f77( r, g, b, size(r) )
 
1009
      end subroutine plscmap1
 
1010
 
 
1011
      subroutine plscmap1l( rgbtype, intensity, coord1, coord2, coord3, rev)
 
1012
            logical                        :: rgbtype
 
1013
            real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3
 
1014
            logical, dimension(:)          :: rev
 
1015
 
 
1016
            integer, dimension(size(rev))  :: irev
 
1017
            integer                        :: i
 
1018
            integer                        :: type
 
1019
 
 
1020
         type = convert_to_int( rgbtype )
 
1021
         do i = 1,size(rev)
 
1022
            irev(i) = convert_to_int( rev(i) )
 
1023
         enddo
 
1024
         call plscmap1lf77( type, size(intensity), intensity, coord1, coord2, coord3, irev )
 
1025
      end subroutine plscmap1l
 
1026
 
 
1027
      subroutine plstripc(id, xspec, yspec, xmin, xmax, xjump, &
 
1028
        ymin, ymax, xlpos, ylpos, y_ascl, acc, &
 
1029
        colbox, collab, colline, styline, legline, &
 
1030
        labx, laby, labtop)
 
1031
 
 
1032
      implicit none
 
1033
      integer id, colbox, collab, colline(4), styline(4)
 
1034
      character*(*) xspec, yspec, legline(4), labx, laby, labtop
 
1035
      real(kind=plflt) xmin, xmax, xjump, ymin, ymax, xlpos, ylpos
 
1036
      integer nx, ny
 
1037
      logical y_ascl, acc
 
1038
      integer iy_ascl, iacc
 
1039
 
 
1040
      include 'sfstubs.h'
 
1041
 
 
1042
      call plstrf2c(xspec, string1, maxlen)
 
1043
      call plstrf2c(yspec, string2, maxlen)
 
1044
      call plstrf2c(legline(1), string3, maxlen)
 
1045
      call plstrf2c(legline(2), string4, maxlen)
 
1046
      call plstrf2c(legline(3), string5, maxlen)
 
1047
      call plstrf2c(legline(4), string6, maxlen)
 
1048
      call plstrf2c(labx, string7, maxlen)
 
1049
      call plstrf2c(laby, string8, maxlen)
 
1050
      call plstrf2c(labtop, string9, maxlen)
 
1051
 
 
1052
      iy_ascl = convert_to_int( y_ascl )
 
1053
      iacc = convert_to_int( acc )
 
1054
 
 
1055
      call plstripcf77(id, s1, s2, xmin, xmax, xjump, &
 
1056
        ymin, ymax, xlpos, ylpos, iy_ascl, iacc, &
 
1057
        colbox, collab, colline, styline, &
 
1058
        s3, s4, s5, s6, &
 
1059
        s7, s8, s9)
 
1060
 
 
1061
      end subroutine plstripc
 
1062
 
 
1063
      subroutine plsvect( arrowx, arrowy, fill )
 
1064
           logical                        :: fill
 
1065
           real(kind=plflt), dimension(:) :: arrowx, arrowy
 
1066
           integer ifill
 
1067
         ifill = convert_to_int(fill)
 
1068
 
 
1069
         call plsvectf77( arrowx, arrowy, size(arrowx), ifill )
 
1070
      end subroutine plsvect
 
1071
 
 
1072
      subroutine plsym( x, y, code )
 
1073
         integer                        :: code
 
1074
         real(kind=plflt), dimension(:) :: x, y
 
1075
 
 
1076
         call plsymf77( size(x), x, y, code )
 
1077
      end subroutine plsym
 
1078
 
 
1079
      subroutine plxormod( mode, status )
 
1080
         logical :: mode, status
 
1081
         integer :: imode, istatus
 
1082
         imode = convert_to_int(mode)
 
1083
         call plxormodf77( imode, istatus)
 
1084
         status = convert_to_log(istatus)
 
1085
      end subroutine plxormod
 
1086
      end module plplot
 
1087