• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

sfstubsf95.f90

Go to the documentation of this file.
00001 !***********************************************************************
00002 !  $Id: sfstubsf95.f90 11915 2011-09-07 11:45:29Z andrewross $
00003 !  sfstubsf95.f
00004 !
00005 !  Copyright (C) 2005, 2006  Arjen Markus
00006 !  Copyright (C) 2006  Alan W. Irwin
00007 !
00008 !  This file is part of PLplot.
00009 !
00010 !  PLplot is free software; you can redistribute it and/or modify
00011 !  it under the terms of the GNU Library General Public License as published
00012 !  by the Free Software Foundation; either version 2 of the License, or
00013 !  (at your option) any later version.
00014 !
00015 !  PLplot is distributed in the hope that it will be useful,
00016 !  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017 !  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018 !  GNU Library General Public License for more details.
00019 !
00020 !  You should have received a copy of the GNU Library General Public License
00021 !  along with PLplot; if not, write to the Free Software
00022 !  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00023 !
00024 !
00025 !  This file contains the interfaces for Fortran 95:
00026 !  - it includes the actual FORTRAN routines from the FORTRAN 77 bindings
00027 !  - it includes interfaces to the C routines from these bindings
00028 !  - it defines a few Fortran 95 specific items and interfaces
00029 !
00030 !  NB
00031 !  This module is written in fixed form, because that way we can reuse
00032 !  the FORTRAN 77 bindings (including the original file is not possible:
00033 !  the "end" statement has to be replaced by the "end subroutine"
00034 !  statement)
00035 !  To enable a redefinition of certain interfaces, we actually have
00036 !  two modules.
00037 !
00038 !  NB
00039 !  The INTENT attribute is not currently used. This is a matter to
00040 !  be looked into.
00041 !
00042 !  NB
00043 !  It is assumed in the current implementation that all arrays are
00044 !  passed with correct dimensions. It would be wiser, perhaps, to
00045 !  use the minimum dimension instead of just the dimension of the
00046 !  first array.
00047 !
00048 !  NOTE:
00049 !  Some of the C routines will have to be renamed (via macros)
00050 !
00051 !***********************************************************************
00052 
00053       !
00054       ! Parameters for identifying the kind of PLplot's real
00055       ! numbers (a configuration parameter)
00056       ! Use whatever name suits you better.
00057       !
00058       module plplot_flt
00059          include 'plflt.inc'
00060       end module
00061 
00062       module plplotp
00063          use plplot_flt
00064          implicit none
00065 
00066          interface plcont
00067             module procedure plcontour_0
00068             module procedure plcontour_1
00069             module procedure plcontour_2
00070             module procedure plcontour_tr
00071             module procedure plcontour_0_all
00072             module procedure plcontour_1_all
00073             module procedure plcontour_2_all
00074             module procedure plcontour_tr_all
00075          end interface
00076          private :: plcontour_0, plcontour_1, plcontour_2, plcontour_tr
00077          private :: plcontour_0_all, plcontour_1_all, plcontour_2_all, plcontour_tr_all
00078 
00079          interface plvect
00080             module procedure plvectors_0
00081             module procedure plvectors_1
00082             module procedure plvectors_2
00083             module procedure plvectors_tr
00084          end interface
00085          private :: plvectors_0, plvectors_1, plvectors_2, plvectors_tr
00086 
00087          interface plshade
00088             module procedure plshade_single_0
00089             module procedure plshade_single_1
00090             module procedure plshade_single_2
00091             module procedure plshade_single_tr
00092          end interface
00093          private :: plshade_single_0, plshade_single_1, plshade_single_2, plshade_single_tr
00094 
00095          interface plshades
00096             module procedure plshades_multiple_0
00097             module procedure plshades_multiple_1
00098             module procedure plshades_multiple_2
00099             module procedure plshades_multiple_tr
00100          end interface
00101          private :: plshades_multiple_0, plshades_multiple_1, &
00102                     plshades_multiple_2, plshades_multiple_tr
00103 
00104          interface plimagefr
00105             module procedure plimagefr_0
00106             module procedure plimagefr_1
00107             module procedure plimagefr_2
00108             module procedure plimagefr_tr
00109          end interface
00110          private :: plimagefr_0, plimagefr_1, plimagefr_2, plimagefr_tr
00111 
00112       contains
00113          include 'sfstubs.f90'
00114       end module plplotp
00115 
00116       module plplot_types
00117         use plplot_flt
00118         type :: PLGraphicsIn
00119            integer type          ! of event (CURRENTLY UNUSED)
00120            integer state         ! key or button mask
00121            integer keysym        ! key selected
00122            integer button        ! mouse button selected
00123            integer subwindow     ! subwindow (alias subpage, alias subplot) number
00124            character(len=16) string   ! translated string
00125            integer pX, pY        ! absolute device coordinates of pointer
00126            real(kind=plflt) dX, dY    ! relative device coordinates of pointer
00127            real(kind=plflt) wX, wY    ! world coordinates of pointer
00128         end type PLGraphicsIn
00129       end module plplot_types
00130 
00131       module plplot
00132       use plplotp
00133       use plplot_flt
00134       use plplot_types
00135       !
00136       ! To be added: renaming list
00137       !
00138 
00139       implicit none
00140       include 'plplot_parameters.h'
00141 
00142       !
00143       ! To be added: alternative interfaces
00144       !
00145       interface
00146          subroutine pladv( sub )
00147             integer :: sub
00148          end subroutine pladv
00149       end interface
00150 
00151       interface plbin
00152          module procedure plbin
00153       end interface
00154 
00155       interface
00156          subroutine plbop
00157          end subroutine plbop
00158       end interface
00159 
00160       interface
00161          subroutine plcalc_world( rx, ry, wx, wy, window )
00162             use plplot_flt
00163             real(kind=plflt) :: rx, ry, wx, wy
00164             integer          :: window
00165          end subroutine plcalc_world
00166       end interface
00167 
00168       interface
00169          subroutine plclear
00170          end subroutine plclear
00171       end interface
00172 
00173       interface
00174          subroutine plcol0( icol )
00175             integer :: icol
00176          end subroutine plcol0
00177       end interface
00178 
00179       interface
00180          subroutine plcol1( col )
00181             use plplot_flt
00182             real(kind=plflt) :: col
00183          end subroutine plcol1
00184       end interface
00185 
00186       interface plcpstrm
00187          module procedure plcpstrm
00188       end interface
00189 
00190       interface
00191          subroutine plend
00192          end subroutine plend
00193       end interface
00194 
00195       interface
00196          subroutine plend1
00197          end subroutine plend1
00198       end interface
00199 
00200       interface
00201          subroutine plenv( xmin, xmax, ymin, ymax, just, axis )
00202             use plplot_flt
00203             real(kind=plflt) :: xmin, xmax, ymin, ymax
00204             integer          :: just, axis
00205          end subroutine plenv
00206       end interface
00207 
00208       interface
00209          subroutine pleop
00210          end subroutine pleop
00211       end interface
00212 
00213       interface plerrx
00214          module procedure plerrx
00215       end interface
00216 
00217       interface plerry
00218          module procedure plerry
00219       end interface
00220 
00221       interface plfamadv
00222          subroutine plfamadv
00223          end subroutine plfamadv
00224       end interface
00225 
00226       interface plfill
00227          module procedure plfill
00228       end interface
00229 
00230       interface plfill3
00231          module procedure plfill3
00232       end interface
00233 
00234       interface
00235          subroutine plflush
00236          end subroutine plflush
00237       end interface
00238 
00239       interface
00240          subroutine plfont( font )
00241             integer :: font
00242          end subroutine plfont
00243       end interface
00244 
00245       interface
00246          subroutine plfontld( charset )
00247             integer :: charset
00248          end subroutine plfontld
00249       end interface
00250 
00251       interface
00252          subroutine plgchr( chrdef, chrht )
00253             use plplot_flt
00254             real(kind=plflt) :: chrdef, chrht
00255          end subroutine plgchr
00256       end interface
00257 
00258       interface
00259          subroutine plgcol0( icol, r, g, b )
00260             integer :: icol, r, g, b
00261          end subroutine plgcol0
00262       end interface
00263 
00264       interface
00265          subroutine plgcol0a( icol, r, g, b, a )
00266             use plplot_flt
00267             integer :: icol, r, g, b
00268             real(kind=plflt) :: a
00269          end subroutine plgcol0a
00270       end interface
00271 
00272       interface
00273          subroutine plgcolbg( r, g, b )
00274             integer :: r, g, b
00275          end subroutine plgcolbg
00276       end interface
00277 
00278       interface
00279          subroutine plgcolbga( r, g, b, a )
00280             use plplot_flt
00281             integer :: r, g, b
00282             real(kind=plflt) :: a
00283          end subroutine plgcolbga
00284       end interface
00285 
00286       interface
00287          subroutine plgcompression( compression )
00288             integer :: compression
00289          end subroutine plgcompression
00290       end interface
00291 
00292       interface
00293          subroutine plgdidev( mar, aspect, jx, jy )
00294             use plplot_flt
00295             real(kind=plflt) :: mar, aspect, jx, jy
00296          end subroutine plgdidev
00297       end interface
00298 
00299       interface
00300          subroutine plgdiori( rot )
00301             use plplot_flt
00302             real(kind=plflt) :: rot
00303          end subroutine plgdiori
00304       end interface
00305 
00306       interface
00307          subroutine plgdiplt( xmin, xmax, ymin, ymax )
00308             use plplot_flt
00309             real(kind=plflt) :: xmin, xmax, ymin, ymax
00310          end subroutine plgdiplt
00311       end interface
00312 
00313       interface
00314          subroutine plgetcursor( gin )
00315            use plplot_flt
00316            use plplot_types
00317            type(PLGraphicsIn) :: gin
00318          end subroutine plgetcursor
00319       end interface
00320 
00321       interface
00322          subroutine plgfam( fam, num, bmax )
00323             integer :: fam, num, bmax
00324          end subroutine plgfam
00325       end interface
00326 
00327       interface
00328          subroutine plgfci( fci )
00329             use plplot_flt
00330             integer(kind=plunicode) :: fci
00331          end subroutine plgfci
00332       end interface
00333 
00334       interface
00335          subroutine plgfont( family, style, weight )
00336             integer :: family, style, weight
00337          end subroutine plgfont
00338       end interface
00339 
00340       interface
00341          subroutine plglevel( level )
00342             integer :: level
00343          end subroutine plglevel
00344       end interface
00345 
00346       interface
00347          subroutine plgpage( xpmm, ypmm, xwid, ywid, xoff, yoff )
00348             use plplot_flt
00349             real(kind=plflt) :: xpmm, ypmm
00350             integer          :: xwid, ywid, xoff, yoff
00351          end subroutine plgpage
00352       end interface
00353 
00354       interface
00355          subroutine plgra
00356          end subroutine plgra
00357       end interface
00358 
00359       interface plgradient
00360          module procedure plgradient
00361       end interface
00362 
00363       interface plgriddata
00364          module procedure plgriddata
00365       end interface
00366 
00367       interface
00368          subroutine plgspa( xmin, xmax, ymin, ymax )
00369             use plplot_flt
00370             real(kind=plflt) :: xmin, xmax, ymin, ymax
00371          end subroutine plgspa
00372       end interface
00373 
00374       interface
00375          subroutine plgstrm( strm )
00376             integer :: strm
00377          end subroutine plgstrm
00378       end interface
00379 
00380       interface
00381          subroutine plgvpd( xmin, xmax, ymin, ymax )
00382             use plplot_flt
00383             real(kind=plflt) :: xmin, xmax, ymin, ymax
00384          end subroutine plgvpd
00385       end interface
00386 
00387       interface
00388          subroutine plgvpw( xmin, xmax, ymin, ymax )
00389             use plplot_flt
00390             real(kind=plflt) :: xmin, xmax, ymin, ymax
00391          end subroutine plgvpw
00392       end interface
00393 
00394       interface
00395          subroutine plgxax( digmax, digits )
00396             integer :: digmax, digits
00397          end subroutine plgxax
00398       end interface
00399 
00400       interface
00401          subroutine plgyax( digmax, digits )
00402             integer :: digmax, digits
00403          end subroutine plgyax
00404       end interface
00405 
00406       interface
00407          subroutine plgzax( digmax, digits )
00408             integer :: digmax, digits
00409          end subroutine plgzax
00410       end interface
00411 
00412       interface plhist
00413          module procedure plhist
00414       end interface
00415 
00416       interface
00417          subroutine plhls( h, l, s )
00418             use plplot_flt
00419             real(kind=plflt) :: h, l, s
00420          end subroutine plhls
00421       end interface
00422 
00423       interface
00424          subroutine plhlsrgb( h, l, s, r, g, b )
00425             use plplot_flt
00426             real(kind=plflt) :: h, l, s, r, g, b
00427          end subroutine plhlsrgb
00428       end interface
00429 
00430       interface
00431          subroutine plinit
00432          end subroutine plinit
00433       end interface
00434 
00435       interface
00436          subroutine pljoin( x1, y1, x2, y2 )
00437             use plplot_flt
00438             real(kind=plflt) :: x1, y1, x2, y2
00439          end subroutine pljoin
00440       end interface
00441 
00442       interface
00443          subroutine pllightsource( x, y, z )
00444             use plplot_flt
00445             real(kind=plflt) :: x, y, z
00446          end subroutine pllightsource
00447       end interface
00448 
00449       interface pllegend
00450          module procedure pllegend_1
00451          module procedure pllegend_2
00452       end interface
00453 
00454       interface plline
00455          module procedure plline
00456       end interface
00457 
00458       interface plline3
00459          module procedure plline3
00460       end interface
00461 
00462       interface pllsty
00463          subroutine pllsty( lin )
00464             integer :: lin
00465          end subroutine pllsty
00466       end interface
00467 
00468       interface plmap
00469          module procedure plmap1, plmap2
00470       end interface plmap
00471 
00472       interface plmeridians
00473          module procedure plmeridians1, plmeridians2
00474       end interface plmeridians
00475 
00476       interface plmesh
00477          module procedure plmesh
00478       end interface
00479 
00480       interface plmeshc
00481          module procedure plmeshc
00482       end interface
00483 
00484       interface
00485          subroutine plmkstrm( strm )
00486             integer :: strm
00487          end subroutine plmkstrm
00488       end interface
00489 
00490       interface
00491          subroutine plpat( nlin, inc, del )
00492             integer :: nlin, inc, del
00493          end subroutine plpat
00494       end interface
00495 
00496       interface plot3d
00497          module procedure plot3d
00498       end interface
00499 
00500       interface plot3dc
00501          module procedure plot3dc
00502       end interface
00503 
00504       interface plpoin
00505          module procedure plpoin
00506       end interface
00507 
00508       interface plpoin3
00509          module procedure plpoin3
00510       end interface
00511 
00512       interface plpoly3
00513          module procedure plpoly3
00514       end interface
00515 
00516       interface
00517          subroutine plprec( setp, prec )
00518             integer :: setp, prec
00519          end subroutine plprec
00520       end interface
00521 
00522       interface
00523          subroutine plpsty( patt )
00524             integer :: patt
00525          end subroutine plpsty
00526       end interface
00527 
00528       interface
00529          subroutine plreplot
00530          end subroutine plreplot
00531       end interface
00532 
00533       !
00534       ! Note: plrgb and plrgb1 can be merged
00535       !
00536       interface
00537          subroutine plrgb( r, g, b )
00538             use plplot_flt
00539             real(kind=plflt) :: r, g, b
00540          end subroutine plrgb
00541       end interface
00542 
00543       interface
00544          subroutine plrgb1( r, g, b )
00545             integer :: r, g, b
00546          end subroutine plrgb1
00547       end interface
00548 
00549       interface
00550          subroutine plrgbhls( r, g, b, h, l, s )
00551             use plplot_flt
00552             real(kind=plflt) :: r, g, b, h, l, s
00553          end subroutine plrgbhls
00554       end interface
00555 
00556       interface
00557          subroutine plschr( chrdef, chrht )
00558             use plplot_flt
00559             real(kind=plflt) :: chrdef, chrht
00560          end subroutine plschr
00561       end interface
00562 
00563       interface plscmap0
00564          module procedure plscmap0
00565       end interface
00566 
00567       interface plscmap0a
00568          module procedure plscmap0a
00569       end interface
00570 
00571       interface
00572          subroutine plscmap0n( n )
00573             integer :: n
00574          end subroutine plscmap0n
00575       end interface
00576 
00577       interface plscmap1
00578          module procedure plscmap1
00579       end interface
00580 
00581       interface plscmap1a
00582          module procedure plscmap1a
00583       end interface
00584 
00585       interface plscmap1l
00586          module procedure plscmap1l
00587          module procedure plscmap1l2
00588       end interface
00589 
00590       interface plscmap1la
00591          module procedure plscmap1la
00592          module procedure plscmap1la2
00593       end interface
00594 
00595       interface
00596          subroutine plscmap1n( n )
00597             integer :: n
00598          end subroutine plscmap1n
00599       end interface
00600 
00601       interface
00602          subroutine plscol0( icol, r, g, b )
00603             integer :: icol, r, g, b
00604          end subroutine plscol0
00605       end interface
00606 
00607       interface
00608          subroutine plscol0a( icol, r, g, b, a )
00609             use plplot_flt
00610             integer :: icol, r, g, b
00611             real(kind=plflt) :: a
00612          end subroutine plscol0a
00613       end interface
00614 
00615       interface
00616          subroutine plscolbg( r, g, b )
00617             integer :: r, g, b
00618          end subroutine plscolbg
00619       end interface
00620 
00621       interface
00622          subroutine plscolbga( r, g, b, a )
00623             use plplot_flt
00624             integer :: r, g, b
00625             real(kind=plflt) :: a
00626          end subroutine plscolbga
00627       end interface
00628 
00629       interface
00630          subroutine plscolor( color )
00631             integer :: color
00632          end subroutine plscolor
00633       end interface
00634 
00635       interface
00636          subroutine plscompression( compression )
00637             integer :: compression
00638          end subroutine plscompression
00639       end interface
00640 
00641       interface
00642          subroutine plsdidev( mar, aspect, jx, jy )
00643             use plplot_flt
00644             real(kind=plflt) :: mar, aspect, jx, jy
00645          end subroutine plsdidev
00646       end interface
00647 
00648       interface
00649          subroutine plsdimap( dimxmi, dimxmax, diymin, dimymax, dimxpmm, diypmm )
00650             use plplot_flt
00651             real(kind=plflt) :: dimxmi, dimxmax, diymin, dimymax, dimxpmm, diypmm
00652          end subroutine plsdimap
00653       end interface
00654 
00655       interface
00656          subroutine plsdiori( rot )
00657             use plplot_flt
00658             real(kind=plflt) :: rot
00659          end subroutine plsdiori
00660       end interface
00661 
00662       interface
00663          subroutine plsdiplt( xmin, xmax, ymin, ymax )
00664             use plplot_flt
00665             real(kind=plflt) :: xmin, xmax, ymin, ymax
00666          end subroutine plsdiplt
00667       end interface
00668 
00669       interface
00670          subroutine plsdiplz( xmin, xmax, ymin, ymax )
00671             use plplot_flt
00672             real(kind=plflt) :: xmin, xmax, ymin, ymax
00673          end subroutine plsdiplz
00674       end interface
00675 
00676       interface
00677          subroutine plseed( s )
00678            integer :: s
00679          end subroutine plseed
00680       end interface
00681 
00682       ! TODO: character-version
00683       interface
00684          subroutine plsesc( esc )
00685             integer :: esc
00686          end subroutine plsesc
00687       end interface
00688 
00689       !
00690       ! TODO: F95-specific form for these routines
00691       !
00692       interface plsetmapformc
00693          subroutine plsetmapformc( mapform )
00694             use plplot_flt
00695             interface
00696                subroutine mapform( n, x, y )
00697                   use plplot_flt
00698                   integer                        :: n
00699                   real(kind=plflt), dimension(*) :: x, y
00700                end subroutine mapform
00701             end interface
00702          end subroutine plsetmapformc
00703       end interface
00704 
00705       interface
00706          subroutine plsfam( fam, num, bmax )
00707             integer :: fam, num, bmax
00708          end subroutine plsfam
00709       end interface
00710 
00711       interface
00712          subroutine plsfci( fci )
00713             use plplot_flt
00714             integer(kind=plunicode) :: fci
00715          end subroutine plsfci
00716       end interface
00717 
00718       interface
00719          subroutine plsfont( family, style, weight )
00720             integer :: family, style, weight
00721          end subroutine plsfont
00722       end interface
00723 
00724       interface plslabelfunc
00725           subroutine plslabelfunc_on( labelfunc )
00726               interface
00727                   subroutine labelfunc(axis, value, label, length)
00728                       use plplot_flt
00729                       implicit none
00730                       integer :: axis, length
00731                       real(kind=plflt) :: value
00732                       character*(length) label
00733                   end subroutine labelfunc
00734               end interface
00735           end subroutine plslabelfunc_on
00736 
00737           subroutine plslabelfunc_off( dummy )
00738               implicit none
00739               integer :: dummy
00740           end subroutine plslabelfunc_off
00741 
00742           subroutine plslabelfunc_none
00743           end subroutine plslabelfunc_none
00744 
00745       end interface
00746 
00747       interface
00748          subroutine plsmaj( def, scale )
00749             use plplot_flt
00750             real(kind=plflt) :: def, scale
00751          end subroutine plsmaj
00752       end interface
00753 
00754       ! plsmem: void * argument tricky - TODO
00755       ! plsmema: void * argument tricky - TODO
00756 
00757       interface
00758          subroutine plsmin( def, scale )
00759             use plplot_flt
00760             real(kind=plflt) :: def, scale
00761          end subroutine plsmin
00762       end interface
00763 
00764       interface
00765          subroutine plsori( rot )
00766             integer :: rot
00767          end subroutine plsori
00768       end interface
00769 
00770       interface
00771          subroutine plspage( xpmm, ypmm, xwid, ywid, xoff, yoff )
00772             use plplot_flt
00773             real(kind=plflt) :: xpmm, ypmm
00774             integer          :: xwid, ywid, xoff, yoff
00775          end subroutine plspage
00776       end interface
00777 
00778       interface plspause
00779          module procedure plspause
00780       end interface
00781 
00782       interface
00783          subroutine plsstrm( strm )
00784             integer :: strm
00785          end subroutine plsstrm
00786       end interface
00787 
00788       interface
00789          subroutine plssub( nx, ny )
00790             integer :: nx, ny
00791          end subroutine plssub
00792       end interface
00793 
00794       interface
00795          subroutine plssym( def, scale )
00796             use plplot_flt
00797             real(kind=plflt) :: def, scale
00798          end subroutine plssym
00799       end interface
00800 
00801       interface
00802          subroutine plstar( nx, ny )
00803             integer :: nx, ny
00804          end subroutine plstar
00805       end interface
00806 
00807       interface plstransform
00808           subroutine plstransform1( transformfunc )
00809               interface
00810                   subroutine transformfunc(x, y, xt, yt)
00811                       use plplot_flt
00812                       implicit none
00813                       real(kind=plflt) :: x, y, xt, yt
00814                   end subroutine transformfunc
00815               end interface
00816           end subroutine plstransform1
00817 
00818           subroutine plstransform2( dummy )
00819               implicit none
00820               integer :: dummy
00821           end subroutine plstransform2
00822 
00823           subroutine plstransform3
00824           end subroutine plstransform3
00825 
00826       end interface
00827 
00828       interface
00829          subroutine plstripa( id, pen, x, y )
00830             use plplot_flt
00831             integer          :: id, pen
00832             real(kind=plflt) :: x, y
00833          end subroutine plstripa
00834       end interface
00835 
00836       interface
00837          subroutine plstripd( id )
00838             integer :: id
00839          end subroutine plstripd
00840       end interface
00841 
00842       interface
00843          subroutine plstyl( n, mark, space )
00844             integer :: n, mark, space
00845          end subroutine plstyl
00846       end interface
00847 
00848       interface plsurf3d
00849          module procedure plsurf3d
00850       end interface
00851 
00852       interface plstripc
00853          module procedure plstripc
00854       end interface
00855 
00856       interface plsvect
00857          module procedure plsvect
00858       end interface
00859 
00860       interface
00861          subroutine plsvpa( xmin, xmax, ymin, ymax )
00862             use plplot_flt
00863             real(kind=plflt) :: xmin, xmax, ymin, ymax
00864          end subroutine plsvpa
00865       end interface
00866 
00867       interface
00868          subroutine plsxax( digmax, digits )
00869             integer :: digmax, digits
00870          end subroutine plsxax
00871       end interface
00872 
00873       interface
00874          subroutine plsyax( digmax, digits )
00875             integer :: digmax, digits
00876          end subroutine plsyax
00877       end interface
00878 
00879       interface plsym
00880          module procedure plsym
00881       end interface
00882 
00883       interface
00884          subroutine plszax( digmax, digits )
00885             integer :: digmax, digits
00886          end subroutine plszax
00887       end interface
00888 
00889       interface
00890          subroutine pltext
00891          end subroutine pltext
00892       end interface
00893 
00894       interface
00895          subroutine plvasp( aspect )
00896             use plplot_flt
00897             real(kind=plflt) :: aspect
00898          end subroutine plvasp
00899       end interface
00900 
00901       interface
00902          subroutine plvpas( xmin, xmax, ymin, ymax, aspect )
00903             use plplot_flt
00904             real(kind=plflt) :: xmin, xmax, ymin, ymax, aspect
00905          end subroutine plvpas
00906       end interface
00907 
00908       interface
00909          subroutine plvpor( xmin, xmax, ymin, ymax )
00910             use plplot_flt
00911             real(kind=plflt) :: xmin, xmax, ymin, ymax
00912          end subroutine plvpor
00913       end interface
00914 
00915       interface
00916          subroutine plvsta
00917          end subroutine plvsta
00918       end interface
00919 
00920       interface
00921          subroutine plw3d( basex, basey, height, xmin, xmax, ymin, ymax, zmin, zmax, alt, az )
00922             use plplot_flt
00923             real(kind=plflt) :: basex, basey, height, xmin, xmax, ymin, ymax, zmin, zmax, alt, az
00924          end subroutine plw3d
00925       end interface
00926 
00927       interface
00928          subroutine plwid( width )
00929             integer :: width
00930          end subroutine plwid
00931       end interface
00932 
00933       interface
00934          subroutine plwind( xmin, xmax, ymin, ymax )
00935             use plplot_flt
00936             real(kind=plflt) :: xmin, xmax, ymin, ymax
00937          end subroutine plwind
00938       end interface
00939 
00940       interface plxormod
00941          module procedure plxormod
00942       end interface
00943 
00944 
00945       private :: convert_to_int
00946       private :: convert_to_log
00947 
00948 ! -------------------------------------------------------------------
00949       contains
00950 ! -------------------------------------------------------------------
00951       integer function convert_to_int( logvalue )
00952          logical :: logvalue
00953          if ( logvalue ) then
00954            convert_to_int = 1
00955          else
00956            convert_to_int = 0
00957          endif
00958       end function convert_to_int
00959 
00960       logical function convert_to_log( intvalue )
00961          integer :: intvalue
00962          convert_to_log = intvalue.ne.0
00963       end function convert_to_log
00964 
00965       subroutine plbin( x, y, center )
00966          real(kind=plflt), dimension(:) :: x, y
00967          integer                        :: center
00968 
00969          call plbinf77( size(x), x, y, center )
00970       end subroutine plbin
00971 
00972       subroutine plcpstrm( iplsr, flags )
00973          integer                        :: iplsr
00974          logical                        :: flags
00975 
00976          integer                        :: iflags
00977 
00978          iflags = convert_to_int( flags )
00979          call plcpstrmf77( iplsr, iflags )
00980       end subroutine plcpstrm
00981 
00982       subroutine plerrx( xmin, xmax, y )
00983          real(kind=plflt), dimension(:) :: xmin, xmax, y
00984 
00985          call plerrxf77( size(xmin), xmin, xmax, y )
00986       end subroutine plerrx
00987 
00988       subroutine plerry( x, ymin, ymax )
00989          real(kind=plflt), dimension(:) :: x, ymin, ymax
00990 
00991          call plerryf77( size(x), x, ymin, ymax )
00992       end subroutine plerry
00993 
00994       subroutine plfill( x, y )
00995          real(kind=plflt), dimension(:) :: x, y
00996 
00997          call plfillf77( size(x), x, y )
00998       end subroutine plfill
00999 
01000       subroutine plfill3( x, y, z )
01001          real(kind=plflt), dimension(:) :: x, y, z
01002 
01003          call plfill3f77( size(x), x, y, z )
01004       end subroutine plfill3
01005 
01006       subroutine plgradient( x, y, angle )
01007          real(kind=plflt), dimension(:) :: x, y
01008          real(kind=plflt)               :: angle
01009 
01010          call plgradientf77( size(x), x, y, angle )
01011       end subroutine plgradient
01012 
01013       subroutine plgriddata( x, y, z, xg, yg, zg, type, data )
01014          real(kind=plflt), dimension(:)   :: x, y, z, xg, yg
01015          real(kind=plflt), dimension(:,:) :: zg
01016          real(kind=plflt)                 :: data
01017          integer                          :: type
01018 
01019          call plgriddataf77( x, y, z, size(x), xg, size(xg), yg, size(yg), zg, &
01020             type, data )
01021 
01022          return
01023       end subroutine plgriddata
01024 
01025       subroutine plhist( data, datmin, datmax, nbin, oldwin )
01026          real(kind=plflt), dimension(:) :: data
01027          real(kind=plflt)               :: datmin, datmax
01028          integer                        :: nbin, oldwin
01029 
01030          call plhistf77( size(data), data, datmin, datmax, nbin, oldwin )
01031       end subroutine plhist
01032 
01033 !     subroutine plimagefr( idata, xmin, xmax, ymin, ymax, zmin, zmax, &
01034 !                           dxmin, dxmax, dymin, dymax, valuemin, valuemax )
01035 !        real(kind=plflt), dimension(:,:) :: idata
01036 !        real(kind=plflt)                 :: xmin,  xmax,  ymin,  ymax,  zmin, zmax
01037 !        real(kind=plflt)                 :: dxmin, dxmax, dymin, dymax, &
01038 !                                            valuemin, valuemax
01039 !
01040 !        integer                          :: nx, ny
01041 !
01042 !        nx = size(idata,1)
01043 !        ny = size(idata,2)
01044 !        call plimagefrf77( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, &
01045 !                           dxmin, dxmax, dymin, dymax, valuemin, valuemax )
01046 !     end subroutine plimagefr
01047 
01048       subroutine plimage( idata, xmin, xmax, ymin, ymax, zmin, zmax, &
01049                           dxmin, dxmax, dymin, dymax )
01050          real(kind=plflt), dimension(:,:) :: idata
01051          real(kind=plflt)                 :: xmin,  xmax,  ymin,  ymax,  zmin, zmax
01052          real(kind=plflt)                 :: dxmin, dxmax, dymin, dymax
01053 
01054          integer                          :: nx, ny
01055 
01056          nx = size(idata,1)
01057          ny = size(idata,2)
01058          call plimagef77( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, &
01059                           dxmin, dxmax, dymin, dymax )
01060       end subroutine plimage
01061 
01062       subroutine pllegend_1( legend_width, legend_height, &
01063      &                       opt, position, x, y, &
01064      &                       plot_width, bg_color, bb_color, bb_style, &
01065      &                       nrow, ncolumn, nlegend, opt_array, &
01066      &                       text_offset, text_scale, text_spacing, &
01067      &                       text_justification, text_colors, text, &
01068      &                       box_colors, box_patterns, box_scales, &
01069      &                       box_line_widths, &
01070      &                       line_colors, line_styles, line_widths, &
01071      &                       symbol_colors, symbol_scales, &
01072      &                       symbol_numbers, symbols )
01073 
01074       real(kind=plflt)               :: legend_width, legend_height, plot_width, x, y
01075       real(kind=plflt)               :: text_offset, text_scale, text_spacing, text_justification
01076       integer                        :: position, opt, bg_color, bb_color, bb_style
01077       integer                        :: nrow, ncolumn, nlegend
01078 
01079       character(len=*), dimension(:) :: text, symbols
01080 
01081       integer, dimension(:)          :: opt_array, text_colors, box_colors
01082       integer, dimension(:)          :: box_patterns, box_line_widths
01083       integer, dimension(:)          :: line_colors, line_styles, line_widths
01084       integer, dimension(:)          :: symbol_colors, symbol_numbers
01085       real(kind=plflt), dimension(:) :: box_scales, symbol_scales
01086 
01087       !
01088       ! Convert the text arrays and store the results in a convenient
01089       ! albeit global location. This way we avoid all manner of complications.
01090       ! (Though introducing a potentially nasty one: non-threadsafety)
01091       !
01092       call pllegend07_cnv_text( 1, nlegend, text )
01093       call pllegend07_cnv_text( 2, nlegend, symbols )
01094 
01095       call pllegend07( legend_width, legend_height, opt, position, x, y, &
01096                        plot_width, bg_color, bb_color, bb_style, &
01097                        nrow, ncolumn, nlegend, opt_array, &
01098                        text_offset, text_scale, text_spacing, &
01099                        text_justification, text_colors, &
01100                        box_colors, box_patterns, box_scales, &
01101                        box_line_widths, &
01102                        line_colors, line_styles, line_widths, &
01103                        symbol_colors, symbol_scales, &
01104                        symbol_numbers )
01105 
01106       end subroutine pllegend_1
01107 
01108       subroutine pllegend_2( legend_width, legend_height, &
01109      &                       opt, position, x, y, &
01110      &                       plot_width, bg_color, bb_color, bb_style, &
01111      &                       nrow, ncolumn, opt_array, &
01112      &                       text_offset, text_scale, text_spacing, &
01113      &                       text_justification, text_colors, text, &
01114      &                       box_colors, box_patterns, box_scales, &
01115      &                       box_line_widths, &
01116      &                       line_colors, line_styles, line_widths, &
01117      &                       symbol_colors, symbol_scales, &
01118      &                       symbol_numbers, symbols )
01119 
01120       real(kind=plflt)               :: legend_width, legend_height, plot_width, x, y
01121       real(kind=plflt)               :: text_offset, text_scale, text_spacing, text_justification
01122       integer                        :: position, opt, bg_color, bb_color, bb_style
01123       integer                        :: nrow, ncolumn
01124 
01125       character(len=*), dimension(:) :: text, symbols
01126 
01127       integer, dimension(:)          :: opt_array, text_colors, box_colors
01128       integer, dimension(:)          :: box_patterns, box_line_widths
01129       integer, dimension(:)          :: line_colors, line_styles, line_widths
01130       integer, dimension(:)          :: symbol_colors, symbol_numbers
01131       real(kind=plflt), dimension(:) :: box_scales, symbol_scales
01132 
01133       integer                        :: nlegend
01134 
01135       !
01136       ! Determine number of legend entries
01137       !
01138       nlegend = min( size(opt_array), size(text) )
01139 
01140       call pllegend_1( legend_width, legend_height, &
01141                        opt, position, x, y, &
01142                        plot_width, bg_color, bb_color, bb_style, &
01143                        nrow, ncolumn, nlegend, opt_array, &
01144                        text_offset, text_scale, text_spacing, &
01145                        text_justification, text_colors, text, &
01146                        box_colors, box_patterns, box_scales, &
01147                        box_line_widths, &
01148                        line_colors, line_styles, line_widths, &
01149                        symbol_colors, symbol_scales, &
01150                        symbol_numbers, symbols )
01151 
01152       end subroutine pllegend_2
01153 
01154       subroutine plline( x, y )
01155          real(kind=plflt), dimension(:) :: x, y
01156 
01157          call pllinef77( size(x), x, y )
01158       end subroutine plline
01159 
01160       subroutine plline3( x, y, z )
01161          real(kind=plflt), dimension(:) :: x, y, z
01162 
01163          call plline3f77( size(x), x, y, z )
01164       end subroutine plline3
01165 
01166       subroutine plmap1(mapform,mapname,minx,maxx,miny,maxy)
01167         use plplot_flt
01168         implicit none
01169         real(kind=plflt) minx, maxx, miny, maxy
01170         character*(*) mapname
01171         external mapform
01172 
01173         include 'sfstubs.h'
01174 
01175         call plstrf2c(mapname, string1, maxlen)
01176 
01177         call plsetmapformc(mapform)
01178         s1 = transfer( string1, s1 )
01179         call plmap7(s1,minx,maxx,miny,maxy)
01180 
01181       end subroutine plmap1
01182 
01183       subroutine plmap2(mapname,minx,maxx,miny,maxy)
01184         use plplot_flt
01185         implicit none
01186         real(kind=plflt) minx, maxx, miny, maxy
01187         character*(*) mapname
01188 
01189         include 'sfstubs.h'
01190 
01191         call plstrf2c(mapname, string1, maxlen)
01192 
01193         call plclearmapformc()
01194         s1 = transfer( string1, s1 )
01195         call plmap7(s1,minx,maxx,miny,maxy)
01196 
01197       end subroutine plmap2
01198 
01199       subroutine plmeridians1(mapform,dlong,dlat,minlong,maxlong, &
01200                              minlat,maxlat)
01201 
01202       implicit none
01203       real(kind=plflt) dlong, dlat, minlong, maxlong, minlat, maxlat
01204       external mapform
01205 
01206       include 'sfstubs.h'
01207 
01208       call plsetmapformc(mapform)
01209       call plmeridians7(dlong,dlat,minlong,maxlong,minlat,maxlat)
01210 
01211       end subroutine plmeridians1
01212 
01213       subroutine plmeridians2(dlong,dlat,minlong,maxlong, &
01214                              minlat,maxlat)
01215 
01216       implicit none
01217       real(kind=plflt) dlong, dlat, minlong, maxlong, minlat, maxlat
01218 
01219       include 'sfstubs.h'
01220 
01221       call plclearmapformc
01222       call plmeridians7(dlong,dlat,minlong,maxlong,minlat,maxlat)
01223 
01224       end subroutine plmeridians2
01225 
01226       subroutine plmesh( x, y, z, opt )
01227          integer                          :: opt
01228          real(kind=plflt), dimension(:)   :: x, y
01229          real(kind=plflt), dimension(:,:) :: z
01230 
01231          call plmeshf77( x, y, z, size(x), size(y), opt, size(x))
01232 
01233       end subroutine plmesh
01234 
01235       subroutine plmeshc( x, y, z, opt, clevel )
01236          integer                          :: opt
01237          real(kind=plflt), dimension(:)   :: x, y, clevel
01238          real(kind=plflt), dimension(:,:) :: z
01239 
01240          call plmeshcf77( x, y, z, size(x), size(y), opt, &
01241            clevel, size(clevel), size(x))
01242 
01243       end subroutine plmeshc
01244 
01245       subroutine plot3d( x, y, z, opt, side )
01246          integer                          :: opt
01247          logical                          :: side
01248          real(kind=plflt), dimension(:)   :: x, y
01249          real(kind=plflt), dimension(:,:) :: z
01250          integer                          :: iside
01251 
01252          iside = convert_to_int(side)
01253          call plot3df77( x, y, z, size(x), size(y), opt, iside, size(x))
01254 
01255       end subroutine plot3d
01256 
01257       subroutine plot3dc( x, y, z, opt, clevel )
01258          integer                          :: opt
01259          real(kind=plflt), dimension(:)   :: x, y, clevel
01260          real(kind=plflt), dimension(:,:) :: z
01261 
01262          call plot3dcf77( x, y, z, size(x), size(y), opt, clevel, &
01263            size(clevel), size(x))
01264 
01265       end subroutine plot3dc
01266 
01267       subroutine plspause( lpause )
01268          logical                        :: lpause
01269 
01270          integer                        :: ipause
01271 
01272          ipause = convert_to_int( lpause )
01273          call plspausef77( ipause )
01274       end subroutine plspause
01275 
01276       subroutine plsurf3d( x, y, z, opt, clevel )
01277          integer                        :: opt
01278          real(kind=plflt), dimension(:) :: x, y, clevel
01279          real(kind=plflt), dimension(:,:) :: z
01280 
01281          call plsurf3df77( x, y, z, size(x), size(y), opt, clevel, &
01282            size(clevel), size(x))
01283 
01284       end subroutine plsurf3d
01285 
01286       subroutine plpoin( x, y, code )
01287          integer                        :: code
01288          real(kind=plflt), dimension(:) :: x, y
01289 
01290          call plpoinf77( size(x), x, y, code )
01291       end subroutine plpoin
01292 
01293       subroutine plpoin3( x, y, z, code )
01294          integer                        :: code
01295          real(kind=plflt), dimension(:) :: x, y, z
01296 
01297          call plpoin3f77( size(x), x, y, z, code )
01298       end subroutine plpoin3
01299 
01300       subroutine plpoly3( x, y, z, draw, ifcc )
01301          logical                        :: ifcc
01302          logical, dimension(:)          :: draw
01303          real(kind=plflt), dimension(:) :: x, y, z
01304 
01305          integer, dimension(size(draw))  :: idraw
01306          integer                        :: i
01307          integer                        :: iifcc
01308 
01309          iifcc = convert_to_int( ifcc )
01310          do i = 1,size(draw)
01311             idraw(i) = convert_to_int( draw(i) )
01312          enddo
01313          call plpoly3f77( size(x), x, y, z, idraw, iifcc )
01314       end subroutine plpoly3
01315 
01316       real (kind=plflt) function plrandd()
01317         external plranddf77
01318         real(kind=plflt) :: plranddf77
01319 
01320         plrandd = plranddf77()
01321       end function plrandd
01322 
01323       subroutine plscmap0( r, g, b )
01324          integer, dimension(:) :: r, g, b
01325 
01326          call plscmap0f77( r, g, b, size(r) )
01327       end subroutine plscmap0
01328 
01329       subroutine plscmap0a( r, g, b, a )
01330          integer, dimension(:) :: r, g, b
01331          real(kind=plflt), dimension(:) :: a
01332 
01333          call plscmap0af77( r, g, b, a, size(r) )
01334       end subroutine plscmap0a
01335 
01336       subroutine plscmap1( r, g, b )
01337          integer, dimension(:) :: r, g, b
01338 
01339          call plscmap1f77( r, g, b, size(r) )
01340       end subroutine plscmap1
01341 
01342       subroutine plscmap1a( r, g, b, a )
01343          integer, dimension(:) :: r, g, b
01344          real(kind=plflt), dimension(:) :: a
01345 
01346          call plscmap1af77( r, g, b, a, size(r) )
01347       end subroutine plscmap1a
01348 
01349       subroutine plscmap1l( rgbtype, intensity, coord1, coord2, coord3, rev)
01350             logical                        :: rgbtype
01351             real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3
01352             logical, dimension(:)          :: rev
01353 
01354             integer, dimension(size(rev))  :: irev
01355             integer                        :: i
01356             integer                        :: type
01357 
01358          type = convert_to_int( rgbtype )
01359          do i = 1,size(rev)
01360             irev(i) = convert_to_int( rev(i) )
01361          enddo
01362          call plscmap1lf77( type, size(intensity), intensity, coord1, coord2, coord3, irev )
01363       end subroutine plscmap1l
01364 
01365       subroutine plscmap1l2( rgbtype, intensity, coord1, coord2, coord3)
01366             logical                        :: rgbtype
01367             real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3
01368 
01369             integer                        :: type
01370 
01371          type = convert_to_int( rgbtype )
01372          call plscmap1l2f77( type, size(intensity), intensity, coord1, coord2, coord3)
01373       end subroutine plscmap1l2
01374 
01375       subroutine plscmap1la( rgbtype, intensity, coord1, coord2, coord3, a, rev)
01376             logical                        :: rgbtype
01377             real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3, a
01378             logical, dimension(:)          :: rev
01379 
01380             integer, dimension(size(rev))  :: irev
01381             integer                        :: i
01382             integer                        :: type
01383 
01384          type = convert_to_int( rgbtype )
01385          do i = 1,size(rev)
01386             irev(i) = convert_to_int( rev(i) )
01387          enddo
01388          call plscmap1laf77( type, size(intensity), intensity, coord1, coord2, coord3, a, irev )
01389       end subroutine plscmap1la
01390 
01391       subroutine plscmap1la2( rgbtype, intensity, coord1, coord2, coord3, a)
01392             logical                        :: rgbtype
01393             real(kind=plflt), dimension(:) :: intensity, coord1, coord2, coord3, a
01394 
01395             integer                        :: type
01396 
01397          type = convert_to_int( rgbtype )
01398          call plscmap1la2f77( type, size(intensity), intensity, coord1, coord2, coord3, a)
01399       end subroutine plscmap1la2
01400 
01401       subroutine plstripc(id, xspec, yspec, xmin, xmax, xjump, &
01402         ymin, ymax, xlpos, ylpos, y_ascl, acc, &
01403         colbox, collab, colline, styline, legline, &
01404         labx, laby, labtop)
01405 
01406       implicit none
01407       integer id, colbox, collab, colline(4), styline(4)
01408       character*(*) xspec, yspec, legline(4), labx, laby, labtop
01409       real(kind=plflt) xmin, xmax, xjump, ymin, ymax, xlpos, ylpos
01410       integer nx, ny
01411       logical y_ascl, acc
01412       integer iy_ascl, iacc
01413 
01414       include 'sfstubs.h'
01415 
01416       call plstrf2c(xspec, string1, maxlen)
01417       call plstrf2c(yspec, string2, maxlen)
01418       call plstrf2c(legline(1), string3, maxlen)
01419       call plstrf2c(legline(2), string4, maxlen)
01420       call plstrf2c(legline(3), string5, maxlen)
01421       call plstrf2c(legline(4), string6, maxlen)
01422       call plstrf2c(labx, string7, maxlen)
01423       call plstrf2c(laby, string8, maxlen)
01424       call plstrf2c(labtop, string9, maxlen)
01425 
01426       iy_ascl = convert_to_int( y_ascl )
01427       iacc = convert_to_int( acc )
01428 
01429       s1 = transfer( string1, s1 )
01430       s2 = transfer( string2, s2 )
01431       s3 = transfer( string3, s3 )
01432       s4 = transfer( string4, s4 )
01433       s5 = transfer( string5, s5 )
01434       s6 = transfer( string6, s6 )
01435       s7 = transfer( string7, s7 )
01436       s8 = transfer( string8, s8 )
01437       s9 = transfer( string9, s9 )
01438       call plstripcf77(id, s1, s2, xmin, xmax, xjump, &
01439         ymin, ymax, xlpos, ylpos, iy_ascl, iacc, &
01440         colbox, collab, colline, styline, &
01441         s3, s4, s5, s6, &
01442         s7, s8, s9)
01443 
01444       end subroutine plstripc
01445 
01446       subroutine plsvect( arrowx, arrowy, fill )
01447            logical                        :: fill
01448            real(kind=plflt), dimension(:) :: arrowx, arrowy
01449            integer ifill
01450            ifill = convert_to_int(fill)
01451 
01452          call plsvectf77( arrowx, arrowy, size(arrowx), ifill )
01453       end subroutine plsvect
01454 
01455       subroutine plsym( x, y, code )
01456          integer                        :: code
01457          real(kind=plflt), dimension(:) :: x, y
01458 
01459          call plsymf77( size(x), x, y, code )
01460       end subroutine plsym
01461 
01462       subroutine plxormod( mode, status )
01463          logical :: mode, status
01464          integer :: imode, istatus
01465          imode = convert_to_int(mode)
01466          call plxormodf77( imode, istatus)
01467          status = convert_to_log(istatus)
01468       end subroutine plxormod
01469       end module plplot
01470 

Generated on Wed Oct 12 2011 20:42:23 for PLplot by  doxygen 1.7.1