29 use plplot_types, only: private_plflt, private_plint, private_plbool, private_plunicode, private_single, private_double
31 use iso_c_binding
, only: c_ptr, c_char, c_loc, c_funloc, c_funptr, c_null_char, c_null_ptr, c_null_funptr
32 use iso_fortran_env
, only: error_unit
42 integer,
parameter :: plflt = private_plflt
47 integer,
parameter :: pl_test_flt = private_plflt
48 integer(kind=private_plint),
parameter :: maxlen = 320
49 character(len=1),
parameter :: pl_end_of_string = achar(0)
50 include
'included_plplot_parameters.f90'
51 private :: private_plflt, private_plint, private_plbool, private_plunicode, private_single, private_double
52 private :: c_ptr, c_char, c_loc, c_funloc, c_funptr, c_null_char, c_null_ptr, c_null_funptr
441 integer,
intent(in) :: lexp, sigdig
444 subroutine interface_pl_setcontlabelformat( lexp, sigdig ) bind(c,name='c_pl_setcontlabelformat')
445 import :: private_plint
447 integer(kind=private_plint),
value,
intent(in) :: lexp, sigdig
448 end subroutine interface_pl_setcontlabelformat
451 call interface_pl_setcontlabelformat( int(lexp,kind=private_plint), int(sigdig,kind=private_plint) )
455 integer,
intent(in) :: sub
457 subroutine interface_pladv( sub ) bind( c, name = 'c_pladv' )
458 import :: private_plint
460 integer(kind=private_plint),
value,
intent(in) :: sub
461 end subroutine interface_pladv
464 call interface_pladv( int(sub,kind=private_plint) )
469 subroutine interface_plbop() bind(c,name='c_plbop')
470 end subroutine interface_plbop
472 call interface_plbop()
477 subroutine interface_plclear() bind(c,name='c_plclear')
478 end subroutine interface_plclear
480 call interface_plclear()
484 integer,
intent(in) :: icol
486 subroutine interface_plcol0( icol ) bind(c, name = 'c_plcol0' )
487 import :: private_plint
489 integer(kind=private_plint),
value,
intent(in) :: icol
490 end subroutine interface_plcol0
493 call interface_plcol0( int(icol,kind=private_plint) )
497 integer,
intent(in) :: iplsr
498 logical,
intent(in) :: flags
500 subroutine interface_plcpstrm( iplsr, flags ) bind(c, name = 'c_plcpstrm' )
501 import :: private_plint, private_plbool
503 integer(kind=private_plint),
value,
intent(in) :: iplsr
504 integer(kind=private_plbool),
value,
intent(in) :: flags
505 end subroutine interface_plcpstrm
508 call interface_plcpstrm( int(iplsr,kind=private_plint), int(
merge(1,0,flags),kind=private_plbool) )
513 subroutine interface_plend1() bind( c, name = 'c_plend1' )
514 end subroutine interface_plend1
516 call interface_plend1()
521 subroutine interface_plend() bind( c, name = 'c_plend' )
522 end subroutine interface_plend
524 call interface_plend()
529 subroutine interface_pleop() bind( c, name = 'c_pleop' )
530 end subroutine interface_pleop
532 call interface_pleop()
537 subroutine interface_plfamadv() bind( c, name = 'c_plfamadv' )
538 end subroutine interface_plfamadv
540 call interface_plfamadv()
545 subroutine interface_plflush() bind( c, name = 'c_plflush' )
546 end subroutine interface_plflush
548 call interface_plflush()
552 integer,
intent(in) :: font
554 subroutine interface_plfont( font ) bind( c, name = 'c_plfont' )
555 import :: private_plint
557 integer(kind=private_plint),
value,
intent(in) :: font
558 end subroutine interface_plfont
561 call interface_plfont( int(font,kind=private_plint) )
565 integer,
intent(in) :: charset
567 subroutine interface_plfontld( charset ) bind( c, name = 'c_plfontld' )
568 import :: private_plint
570 integer(kind=private_plint),
value,
intent(in) :: charset
571 end subroutine interface_plfontld
574 call interface_plfontld( int(charset,kind=private_plint) )
578 integer,
intent(in) :: icol
579 integer,
intent(out) :: r, g, b
581 integer(kind=private_plint) :: r_out, g_out, b_out
584 subroutine interface_plgcol0( icol, r, g, b ) bind( c, name = 'c_plgcol0' )
585 import :: private_plint
587 integer(kind=private_plint),
value,
intent(in) :: icol
588 integer(kind=private_plint),
intent(out) :: r, g, b
589 end subroutine interface_plgcol0
592 call interface_plgcol0( int(icol,kind=private_plint), r_out, g_out, b_out )
599 integer,
intent(out) :: r, g, b
601 integer(kind=private_plint) :: r_out, g_out, b_out
604 subroutine interface_plgcolbg( r, g, b ) bind( c, name = 'c_plgcolbg' )
605 import :: private_plint
607 integer(kind=private_plint),
intent(out) :: r, g, b
608 end subroutine interface_plgcolbg
611 call interface_plgcolbg( r_out, g_out, b_out )
618 integer,
intent(out) :: compression
620 integer(kind=private_plint) :: compression_out
623 subroutine interface_plgcompression( compression ) bind( c, name = 'c_plgcompression' )
624 import :: private_plint
626 integer(kind=private_plint),
intent(out) :: compression
627 end subroutine interface_plgcompression
630 call interface_plgcompression( compression_out )
631 compression = int(compression_out)
635 character*(*),
intent(out) :: dev
637 character(len=1),
dimension(100) :: dev_out
640 subroutine interface_plgdev( dev ) bind(c,name='c_plgdev')
642 character(len=1),
dimension(*),
intent(out) :: dev
643 end subroutine interface_plgdev
646 call interface_plgdev( dev_out )
652 integer :: plgdrawmode_impl
655 function interface_plgdrawmode() bind(c,name='c_plgdrawmode')
656 import :: private_plint
658 integer(kind=private_plint) :: interface_plgdrawmode
659 end function interface_plgdrawmode
662 plgdrawmode_impl = int(interface_plgdrawmode())
666 integer,
intent(out) :: fam, num, bmax
668 integer(kind=private_plint) :: fam_out, num_out, bmax_out
671 subroutine interface_plgfam( fam, num, bmax ) bind( c, name = 'c_plgfam' )
672 import :: private_plint
674 integer(kind=private_plint),
intent(out) :: fam, num, bmax
675 end subroutine interface_plgfam
678 call interface_plgfam( fam_out, num_out, bmax_out )
685 integer,
intent(out) :: fci
687 integer(kind=private_plunicode) :: fci_out
690 subroutine interface_plgfci( fci ) bind( c, name = 'c_plgfci' )
691 import :: private_plunicode
693 integer(kind=private_plunicode),
intent(out) :: fci
694 end subroutine interface_plgfci
697 call interface_plgfci( fci_out )
702 character*(*),
intent(out) :: fnam
704 character(len=1),
dimension(100) :: fnam_out
707 subroutine interface_plgfnam( fnam ) bind(c,name='c_plgfnam')
709 character(len=1),
dimension(*),
intent(out) :: fnam
710 end subroutine interface_plgfnam
713 call interface_plgfnam( fnam_out )
718 integer,
intent(out) :: family, style, weight
720 integer(kind=private_plint) :: family_out, style_out, weight_out
723 subroutine interface_plgfont( family, style, weight ) bind( c, name = 'c_plgfont' )
724 import :: private_plint
726 integer(kind=private_plint),
intent(out) :: family, style, weight
727 end subroutine interface_plgfont
730 call interface_plgfont( family_out, style_out, weight_out )
731 family = int(family_out)
732 style = int(style_out)
733 weight = int(weight_out)
737 integer,
intent(out) :: level
739 integer(kind=private_plint) :: level_out
742 subroutine interface_plglevel( level ) bind( c, name = 'c_plglevel' )
743 import :: private_plint
745 integer(kind=private_plint),
intent(out) :: level
746 end subroutine interface_plglevel
749 call interface_plglevel( level_out )
750 level = int(level_out)
755 subroutine interface_plgra() bind( c, name = 'c_plgra' )
756 end subroutine interface_plgra
758 call interface_plgra()
762 integer,
intent(out) :: strm
764 integer(kind=private_plint) :: strm_out
767 subroutine interface_plgstrm( strm ) bind( c, name = 'c_plgstrm' )
768 import :: private_plint
770 integer(kind=private_plint),
intent(out) :: strm
771 end subroutine interface_plgstrm
774 call interface_plgstrm( strm_out )
779 character*(*),
intent(out) :: ver
781 character(len=1),
dimension(100) :: ver_out
784 subroutine interface_plgver( ver ) bind(c,name='c_plgver')
786 character(len=1),
dimension(*),
intent(out) :: ver
787 end subroutine interface_plgver
790 call interface_plgver( ver_out )
795 integer,
intent(out) :: digmax, digits
797 integer(kind=private_plint) :: digmax_out, digits_out
800 subroutine interface_plgxax( digmax, digits ) bind( c, name = 'c_plgxax' )
801 import :: private_plint
803 integer(kind=private_plint),
intent(out) :: digmax, digits
804 end subroutine interface_plgxax
807 call interface_plgxax( digmax_out, digits_out )
808 digmax = int(digmax_out)
809 digits = int(digits_out)
813 integer,
intent(out) :: digmax, digits
815 integer(kind=private_plint) :: digmax_out, digits_out
818 subroutine interface_plgyax( digmax, digits ) bind( c, name = 'c_plgyax' )
819 import :: private_plint
821 integer(kind=private_plint),
intent(out) :: digmax, digits
822 end subroutine interface_plgyax
825 call interface_plgyax( digmax_out, digits_out )
826 digmax = int(digmax_out)
827 digits = int(digits_out)
831 integer,
intent(out) :: digmax, digits
833 integer(kind=private_plint) :: digmax_out, digits_out
836 subroutine interface_plgzax( digmax, digits ) bind( c, name = 'c_plgzax' )
837 import :: private_plint
839 integer(kind=private_plint),
intent(out) :: digmax, digits
840 end subroutine interface_plgzax
843 call interface_plgzax( digmax_out, digits_out )
844 digmax = int(digmax_out)
845 digits = int(digits_out)
850 subroutine interface_plinit() bind( c, name = 'c_plinit' )
851 end subroutine interface_plinit
853 call interface_plinit()
857 character(len=*),
intent(in) :: xlab, ylab, title
860 subroutine interface_pllab( xlab, ylab, title ) bind(c,name='c_pllab')
862 character(len=1),
dimension(*),
intent(in) :: xlab, ylab, title
863 end subroutine interface_pllab
866 call interface_pllab( trim(xlab)//c_null_char, trim(ylab)//c_null_char, trim(title)//c_null_char )
871 integer,
intent(in) :: lin
873 subroutine interface_pllsty( lin ) bind( c, name = 'c_pllsty' )
874 import :: private_plint
876 integer(kind=private_plint),
value,
intent(in) :: lin
877 end subroutine interface_pllsty
880 call interface_pllsty( int(lin,kind=private_plint) )
884 integer,
intent(in) :: strm
886 subroutine interface_plmkstrm( strm ) bind( c, name = 'c_plmkstrm' )
887 import :: private_plint
889 integer(kind=private_plint),
value,
intent(in) :: strm
890 end subroutine interface_plmkstrm
893 call interface_plmkstrm( int(strm,kind=private_plint) )
897 integer :: plparseopts_impl
898 integer,
intent(in) :: mode
900 integer :: iargs_local, numargs_local
901 integer(kind=private_plint) :: numargsp1_inout
903 integer,
parameter :: maxargs_local = 100
904 character (len=maxlen),
dimension(0:maxargs_local) :: arg_local
905 character(len=1),
dimension(:,:),
allocatable :: cstring_arg_local
906 type(c_ptr),
dimension(:),
allocatable :: cstring_address_arg_inout
909 function interface_plparseopts( argc, argv, mode ) bind(c,name='c_plparseopts')
911 import :: private_plint
913 integer(kind=private_plint) :: interface_plparseopts
914 integer(kind=private_plint),
value,
intent(in) :: mode
916 integer(kind=private_plint),
intent(inout) :: argc
917 type(c_ptr),
dimension(*),
intent(inout) :: argv
918 end function interface_plparseopts
921 numargs_local = command_argument_count()
922 if (numargs_local < 0)
then
924 write(error_unit,
'(a)')
'Plplot Fortran Severe Warning: plparseopts: negative number of arguments'
928 if(numargs_local > maxargs_local)
then
929 write(error_unit,
'(a)')
'Plplot Fortran Severe Warning: plparseopts: too many arguments'
933 do iargs_local = 0, numargs_local
934 call get_command_argument(iargs_local, arg_local(iargs_local))
937 call
character_array_to_c( cstring_arg_local, cstring_address_arg_inout, arg_local(0:numargs_local) )
945 numargsp1_inout = int(numargs_local+1, kind=private_plint)
946 plparseopts_impl = int(interface_plparseopts( numargsp1_inout, &
947 cstring_address_arg_inout, int(mode, kind=private_plint)))
951 integer,
dimension(:),
intent(in) :: inc, del
953 integer(kind=private_plint) :: nlin_local
956 subroutine interface_plpat( nlin, inc, del ) bind( c, name = 'c_plpat' )
957 import :: private_plint
959 integer(kind=private_plint),
value,
intent(in) :: nlin
960 integer(kind=private_plint),
dimension(*),
intent(in) :: inc, del
961 end subroutine interface_plpat
964 nlin_local =
size(inc, kind=private_plint)
965 if(nlin_local /=
size(del, kind=private_plint) )
then
966 write(error_unit,
"(a)")
"Plplot Fortran Warning: plpat: sizes of inc and del are not consistent"
969 call interface_plpat( nlin_local, int(inc,kind=private_plint), int(del,kind=private_plint) )
974 integer,
intent(in) :: setp, prec
976 subroutine interface_plprec( setp, prec ) bind( c, name = 'c_plprec' )
977 import :: private_plint
979 integer(kind=private_plint),
value,
intent(in) :: setp, prec
980 end subroutine interface_plprec
983 call interface_plprec( int(setp,kind=private_plint), int(prec,kind=private_plint) )
987 integer,
intent(in) :: patt
989 subroutine interface_plpsty( patt ) bind( c, name = 'c_plpsty' )
990 import :: private_plint
992 integer(kind=private_plint),
value,
intent(in) :: patt
993 end subroutine interface_plpsty
996 call interface_plpsty( int(patt,kind=private_plint) )
1001 subroutine interface_plreplot() bind(c,name='c_plreplot')
1002 end subroutine interface_plreplot
1004 call interface_plreplot()
1008 integer,
dimension(:),
intent(in) :: r, g, b
1010 integer(kind=private_plint) :: n_local
1013 subroutine interface_plscmap0( r, g, b, n ) bind(c,name='c_plscmap0')
1014 import :: private_plint
1016 integer(kind=private_plint),
dimension(*),
intent(in) :: r, g, b
1017 integer(kind=private_plint),
value,
intent(in) :: n
1018 end subroutine interface_plscmap0
1021 n_local =
size(r,kind=private_plint)
1022 if( n_local /=
size(g, kind=private_plint) .or. n_local /=
size(b, kind=private_plint) )
then
1023 write(error_unit,
"(a)")
"Plplot Fortran Warning: plscmap0: inconsistent sizes for r, g, and/or b"
1026 call interface_plscmap0( int(r,kind=private_plint), int(g,kind=private_plint), int(b,kind=private_plint), &
1031 integer,
intent(in) :: n
1033 subroutine interface_plscmap0n( n ) bind( c, name = 'c_plscmap0n' )
1034 import :: private_plint
1036 integer(kind=private_plint),
value,
intent(in) :: n
1037 end subroutine interface_plscmap0n
1040 call interface_plscmap0n( int(n,kind=private_plint) )
1044 integer,
dimension(:),
intent(in) :: r, g, b
1046 integer(kind=private_plint) :: n_local
1049 subroutine interface_plscmap1( r, g, b, n ) bind(c,name='c_plscmap1')
1050 import :: private_plint
1052 integer(kind=private_plint),
dimension(*),
intent(in) :: r, g, b
1053 integer(kind=private_plint),
value,
intent(in) :: n
1054 end subroutine interface_plscmap1
1057 n_local =
size(r,kind=private_plint)
1058 if( n_local /=
size(g, kind=private_plint) .or. n_local /=
size(b, kind=private_plint) )
then
1059 write(error_unit,
"(a)")
"Plplot Fortran Warning: plscmap1: inconsistent sizes for r, g, and/or b"
1062 call interface_plscmap1( int(r,kind=private_plint), int(g,kind=private_plint), int(b,kind=private_plint), &
1067 integer,
intent(in) :: n
1069 subroutine interface_plscmap1n( n ) bind( c, name = 'c_plscmap1n' )
1070 import :: private_plint
1072 integer(kind=private_plint),
value,
intent(in) :: n
1073 end subroutine interface_plscmap1n
1076 call interface_plscmap1n( int(n,kind=private_plint) )
1080 integer,
intent(in) :: icol, r, g, b
1082 subroutine interface_plscol0( icol, r, g, b ) bind( c, name = 'c_plscol0' )
1083 import :: private_plint
1085 integer(kind=private_plint),
value,
intent(in) :: icol, r, g, b
1086 end subroutine interface_plscol0
1089 call interface_plscol0( int(icol,kind=private_plint), &
1090 int(r,kind=private_plint), int(g,kind=private_plint), int(b,kind=private_plint) )
1094 integer,
intent(in) :: r, g, b
1096 subroutine interface_plscolbg( r, g, b ) bind( c, name = 'c_plscolbg' )
1097 import :: private_plint
1099 integer(kind=private_plint),
value,
intent(in) :: r, g, b
1100 end subroutine interface_plscolbg
1103 call interface_plscolbg( int(r,kind=private_plint), int(g,kind=private_plint), int(b,kind=private_plint) )
1108 integer,
intent(in) :: color
1110 subroutine interface_plscolor( color ) bind( c, name = 'c_plscolor' )
1111 import :: private_plint
1113 integer(kind=private_plint),
value,
intent(in) :: color
1114 end subroutine interface_plscolor
1117 call interface_plscolor( int(color,kind=private_plint) )
1121 integer,
intent(in) :: compression
1123 subroutine interface_plscompression( compression ) bind( c, name = 'c_plscompression' )
1124 import :: private_plint
1126 integer(kind=private_plint),
value,
intent(in) :: compression
1127 end subroutine interface_plscompression
1130 call interface_plscompression( int(compression,kind=private_plint) )
1134 character(len=*),
intent(in) :: devname
1137 subroutine interface_plsdev( devname ) bind(c,name='c_plsdev')
1139 character(len=1),
dimension(*),
intent(in) :: devname
1140 end subroutine interface_plsdev
1143 call interface_plsdev( trim(devname)//c_null_char )
1148 integer,
intent(in) :: mode
1150 subroutine interface_plsdrawmode( mode ) bind( c, name = 'c_plsdrawmode' )
1151 import :: private_plint
1153 integer(kind=private_plint),
value,
intent(in) :: mode
1154 end subroutine interface_plsdrawmode
1157 call interface_plsdrawmode( int(mode,kind=private_plint) )
1161 integer,
intent(in) :: s
1163 subroutine interface_plseed( s ) bind( c, name = 'c_plseed' )
1164 import :: private_plint
1166 integer(kind=private_plint),
value,
intent(in) :: s
1167 end subroutine interface_plseed
1170 call interface_plseed( int(s,kind=private_plint) )
1175 integer,
intent(in) :: esc
1177 subroutine interface_plsesc( esc ) bind( c, name = 'c_plsesc' )
1178 import :: private_plint
1180 integer(kind=private_plint),
value,
intent(in) :: esc
1181 end subroutine interface_plsesc
1184 call interface_plsesc( int(esc,kind=private_plint) )
1188 integer :: plsetopt_impl
1189 character(len=*),
intent(in) :: opt, optarg
1193 function interface_plsetopt( opt, optarg ) bind(c,name='c_plsetopt')
1194 import :: private_plint
1196 integer(kind=private_plint) :: interface_plsetopt
1197 character(len=1),
dimension(*),
intent(in) :: opt, optarg
1198 end function interface_plsetopt
1201 plsetopt_impl = int(interface_plsetopt( trim(opt)//c_null_char, trim(optarg)//c_null_char ))
1206 integer,
intent(in) :: fam, num, bmax
1208 subroutine interface_plsfam( fam, num, bmax ) bind( c, name = 'c_plsfam' )
1209 import :: private_plint
1211 integer(kind=private_plint),
value,
intent(in) :: fam, num, bmax
1212 end subroutine interface_plsfam
1215 call interface_plsfam( int(fam,kind=private_plint), int(num,kind=private_plint), int(bmax,kind=private_plint) )
1219 integer,
intent(in) :: fci
1222 subroutine interface_plsfci( fci ) bind( c, name = 'c_plsfci' )
1223 import :: private_plunicode
1225 integer(kind=private_plunicode),
value,
intent(in) :: fci
1226 end subroutine interface_plsfci
1229 call interface_plsfci( int(fci,kind=private_plunicode) )
1234 character(len=*),
intent(in) :: fnam
1237 subroutine interface_plsfnam( fnam ) bind(c,name='c_plsfnam')
1239 character(len=1),
dimension(*),
intent(in) :: fnam
1240 end subroutine interface_plsfnam
1243 call interface_plsfnam( trim(fnam)//c_null_char )
1248 integer,
intent(in) :: family, style, weight
1250 subroutine interface_plsfont( family, style, weight ) bind( c, name = 'c_plsfont' )
1251 import :: private_plint
1253 integer(kind=private_plint),
value,
intent(in) :: family, style, weight
1254 end subroutine interface_plsfont
1257 call interface_plsfont( int(family,kind=private_plint), int(style,kind=private_plint), int(weight,kind=private_plint) )
1265 integer,
intent(in) :: maxx, maxy
1266 character(kind=c_char),
dimension(:, :, :),
target,
intent(in) :: plotmem
1268 subroutine interface_plsmem( maxx, maxy, plotmem ) bind( c, name = 'c_plsmem' )
1270 import :: private_plint
1272 integer(kind=private_plint),
value,
intent(in) :: maxx, maxy
1273 type(c_ptr),
value,
intent(in) :: plotmem
1274 end subroutine interface_plsmem
1278 if( 3 /=
size(plotmem,1) )
then
1279 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmem: first dimension of plotmem is not 3"
1284 if( maxx /=
size(plotmem,2) .or. maxy /=
size(plotmem,3) )
then
1285 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmem: maxx and/or maxy not &
1286 &consistent with second and third plotmem dimensions"
1288 call interface_plsmem( int(maxx,kind=private_plint), int(maxy,kind=private_plint), c_loc(plotmem))
1296 integer,
intent(in) :: maxx, maxy
1297 character(kind=c_char),
dimension(:, :, :),
target,
intent(in) :: plotmem
1299 subroutine interface_plsmema( maxx, maxy, plotmem ) bind( c, name = 'c_plsmema' )
1301 import :: private_plint
1303 integer(kind=private_plint),
value,
intent(in) :: maxx, maxy
1304 type(c_ptr),
value,
intent(in) :: plotmem
1305 end subroutine interface_plsmema
1309 if( 4 /=
size(plotmem,1) )
then
1310 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmema: first dimension of plotmem is not 4"
1315 if( maxx /=
size(plotmem,2) .or. maxy /=
size(plotmem,3) )
then
1316 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmema: maxx and/or maxy not &
1317 &consistent with second and third plotmem dimensions"
1319 call interface_plsmema( int(maxx,kind=private_plint), int(maxy,kind=private_plint), c_loc(plotmem))
1323 integer,
intent(in) :: rot
1325 subroutine interface_plsori( rot ) bind( c, name = 'c_plsori' )
1326 import :: private_plint
1328 integer(kind=private_plint),
value,
intent(in) :: rot
1329 end subroutine interface_plsori
1332 call interface_plsori( int(rot,kind=private_plint) )
1336 character(len=*),
intent(in) :: filename
1339 subroutine interface_plspal0( filename ) bind(c,name='c_plspal0')
1341 character(len=1),
dimension(*),
intent(in) :: filename
1342 end subroutine interface_plspal0
1345 call interface_plspal0( trim(filename)//c_null_char )
1350 character(len=*),
intent(in) :: filename
1351 logical,
intent(in) :: interpolate
1354 subroutine interface_plspal1( filename, interpolate ) bind(c,name='c_plspal1')
1355 import :: private_plbool
1357 integer(kind=private_plbool),
value,
intent(in) :: interpolate
1358 character(len=1),
dimension(*),
intent(in) :: filename
1359 end subroutine interface_plspal1
1362 call interface_plspal1( trim(filename)//c_null_char, int(
merge(1,0,interpolate),kind=private_plbool) )
1367 logical,
intent(in) :: pause
1370 subroutine interface_plspause( pause ) bind(c,name='c_plspause')
1371 import :: private_plbool
1373 integer(kind=private_plbool),
value,
intent(in) :: pause
1374 end subroutine interface_plspause
1377 call interface_plspause( int(
merge(1,0,pause),kind=private_plbool) )
1381 integer,
intent(in) :: strm
1383 subroutine interface_plsstrm( strm ) bind( c, name = 'c_plsstrm' )
1384 import :: private_plint
1386 integer(kind=private_plint),
value,
intent(in) :: strm
1387 end subroutine interface_plsstrm
1390 call interface_plsstrm( int(strm,kind=private_plint) )
1394 integer,
intent(in) :: nx, ny
1396 subroutine interface_plssub( nx, ny ) bind( c, name = 'c_plssub' )
1397 import :: private_plint
1399 integer(kind=private_plint),
value,
intent(in) :: nx, ny
1400 end subroutine interface_plssub
1403 call interface_plssub( int(nx,kind=private_plint), int(ny,kind=private_plint) )
1407 integer,
intent(in) :: nx, ny
1409 subroutine interface_plstar( nx, ny ) bind( c, name = 'c_plstar' )
1410 import :: private_plint
1412 integer(kind=private_plint),
value,
intent(in) :: nx, ny
1413 end subroutine interface_plstar
1416 call interface_plstar( int(nx,kind=private_plint), int(ny,kind=private_plint) )
1420 integer,
intent(in) :: nx, ny
1421 character(len=*),
intent(in) :: devname
1423 subroutine interface_plstart( devname, nx, ny ) bind( c, name = 'c_plstart' )
1424 import :: private_plint
1426 integer(kind=private_plint),
value,
intent(in) :: nx, ny
1427 character(len=1),
dimension(*),
intent(in) :: devname
1428 end subroutine interface_plstart
1431 call interface_plstart( trim(devname)//c_null_char, int(nx,kind=private_plint), int(ny,kind=private_plint) )
1435 integer,
intent(in) :: id
1437 subroutine interface_plstripd( id ) bind( c, name = 'c_plstripd' )
1438 import :: private_plint
1440 integer(kind=private_plint),
value,
intent(in) :: id
1441 end subroutine interface_plstripd
1444 call interface_plstripd( int(id,kind=private_plint) )
1448 integer,
dimension(:),
intent(in) :: mark, space
1450 integer(kind=private_plint) :: n_local
1453 subroutine interface_plstyl( n, mark, space ) bind( c, name = 'c_plstyl' )
1454 import :: private_plint
1456 integer(kind=private_plint),
value,
intent(in) :: n
1457 integer(kind=private_plint),
dimension(*),
intent(in) :: mark, space
1458 end subroutine interface_plstyl
1461 n_local =
size(mark,kind=private_plint)
1462 if( n_local /=
size(space, kind=private_plint) )
then
1463 write(error_unit,
"(a)")
"Plplot Fortran Warning: plstyl: inconsistent sizes for mark and space"
1466 call interface_plstyl( n_local, int(mark,kind=private_plint), int(space,kind=private_plint) )
1471 logical,
optional,
intent(in) :: fill
1474 subroutine interface_plsvect_null() bind(c,name='plsvect_null')
1475 end subroutine interface_plsvect_null
1479 if (
present(fill) )
then
1480 call interface_plsvect_null
1482 call interface_plsvect_null
1487 integer,
intent(in) :: digmax, digits
1489 subroutine interface_plsxax( digmax, digits ) bind( c, name = 'c_plsxax' )
1490 import :: private_plint
1492 integer(kind=private_plint),
value,
intent(in) :: digmax, digits
1493 end subroutine interface_plsxax
1496 call interface_plsxax( int(digmax,kind=private_plint), int(digits,kind=private_plint) )
1500 integer,
intent(in) :: digmax, digits
1502 subroutine interface_plsyax( digmax, digits ) bind( c, name = 'c_plsyax' )
1503 import :: private_plint
1505 integer(kind=private_plint),
value,
intent(in) :: digmax, digits
1506 end subroutine interface_plsyax
1509 call interface_plsyax( int(digmax,kind=private_plint), int(digits,kind=private_plint) )
1513 integer,
intent(in) :: digmax, digits
1515 subroutine interface_plszax( digmax, digits ) bind( c, name = 'c_plszax' )
1516 import :: private_plint
1518 integer(kind=private_plint),
value,
intent(in) :: digmax, digits
1519 end subroutine interface_plszax
1522 call interface_plszax( int(digmax,kind=private_plint), int(digits,kind=private_plint) )
1527 subroutine interface_pltext() bind(c,name='c_pltext')
1528 end subroutine interface_pltext
1530 call interface_pltext()
1534 character(len=*),
intent(in) :: fmt
1537 subroutine interface_pltimefmt( fmt ) bind(c,name='c_pltimefmt')
1539 character(len=1),
dimension(*),
intent(in) :: fmt
1540 end subroutine interface_pltimefmt
1543 call interface_pltimefmt( trim(fmt)//c_null_char )
1549 subroutine interface_plvsta() bind(c,name='c_plvsta')
1550 end subroutine interface_plvsta
1552 call interface_plvsta()
1556 logical,
intent(in) :: mode
1557 logical,
intent(out) :: status
1559 integer(kind=private_plbool) :: status_out
1562 subroutine interface_plxormod( mode, status ) bind(c,name='c_plxormod')
1563 import :: private_plbool
1565 integer(kind=private_plbool),
value,
intent(in) :: mode
1566 integer(kind=private_plbool),
intent(out) :: status
1567 end subroutine interface_plxormod
1570 call interface_plxormod( int(
merge(1,0,mode),kind=private_plbool), status_out )
1571 status = status_out /= 0_private_plbool
subroutine plsyax_impl(digmax, digits)
void merge(octave_swig_type &rhs)
subroutine plglevel_impl(level)
subroutine plscmap0n_impl(n)
subroutine plstar_impl(nx, ny)
subroutine plsmem_impl(maxx, maxy, plotmem)
subroutine plsdrawmode_impl(mode)
subroutine plpsty_impl(patt)
subroutine plspause_impl(pause)
subroutine plsfont_impl(family, style, weight)
subroutine plgyax_impl(digmax, digits)
subroutine plsstrm_impl(strm)
subroutine plstart_impl(devname, nx, ny)
subroutine plsdev_impl(devname)
subroutine character_array_to_c(cstring_array, cstring_address, character_array)
subroutine plgdev_impl(dev)
subroutine plsfam_impl(fam, num, bmax)
integer function plgdrawmode_impl()
integer function plsetopt_impl(opt, optarg)
subroutine plscmap0_impl(r, g, b)
subroutine plssub_impl(nx, ny)
subroutine plgver_impl(ver)
subroutine plsvect_none(fill)
subroutine plpat_impl(inc, del)
subroutine pllab_impl(xlab, ylab, title)
subroutine plprec_impl(setp, prec)
subroutine plgzax_impl(digmax, digits)
subroutine plcpstrm_impl(iplsr, flags)
subroutine plgcolbg_impl(r, g, b)
subroutine plsesc_impl(esc)
subroutine plsfnam_impl(fnam)
subroutine plszax_impl(digmax, digits)
subroutine plscolor_impl(color)
subroutine plstripd_impl(id)
subroutine plfont_impl(font)
subroutine plgfnam_impl(fnam)
subroutine plreplot_impl()
subroutine plfontld_impl(charset)
subroutine plscmap1n_impl(n)
subroutine plmkstrm_impl(strm)
subroutine plsxax_impl(digmax, digits)
subroutine plgcol0_impl(icol, r, g, b)
subroutine copystring2f(fstring, cstring)
subroutine plflush_impl()
subroutine plgxax_impl(digmax, digits)
subroutine plstyl_impl(mark, space)
subroutine plcol0_impl(icol)
subroutine plxormod_impl(mode, status)
subroutine pladv_impl(sub)
subroutine plspal0_impl(filename)
subroutine plscol0_impl(icol, r, g, b)
subroutine plgcompression_impl(compression)
subroutine plseed_impl(s)
subroutine plsmema_impl(maxx, maxy, plotmem)
subroutine plspal1_impl(filename, interpolate)
subroutine plscmap1_impl(r, g, b)
subroutine plscolbg_impl(r, g, b)
subroutine plgstrm_impl(strm)
subroutine plsori_impl(rot)
subroutine pllsty_impl(lin)
subroutine plsfci_impl(fci)
subroutine plfamadv_impl()
subroutine plscompression_impl(compression)
subroutine plgfam_impl(fam, num, bmax)
subroutine plclear_impl()
subroutine pltimefmt_impl(fmt)
subroutine plgfci_impl(fci)
integer function plparseopts_impl(mode)
subroutine plgfont_impl(family, style, weight)