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