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
48 integer(kind=private_plint),
parameter ::
maxlen = 320
50 include
'included_plplot_parameters.f90' 52 private :: c_ptr, c_char, c_loc, c_funloc, c_funptr, c_null_char, c_null_ptr, c_null_funptr
79 integer(kind=private_plint) :: interface_plparseopts
80 integer(kind=private_plint),
value,
intent(in) :: mode
82 integer(kind=private_plint),
intent(inout) :: argc
83 type(c_ptr),
dimension(*),
intent(inout) :: argv
483 integer,
intent(in) :: lexp, sigdig
486 subroutine interface_pl_setcontlabelformat( lexp, sigdig ) bind(c,name='c_pl_setcontlabelformat')
489 integer(kind=private_plint),
value,
intent(in) :: lexp, sigdig
490 end subroutine interface_pl_setcontlabelformat
497 integer,
intent(in) :: sub
499 subroutine interface_pladv( sub ) bind( c, name = 'c_pladv' )
502 integer(kind=private_plint),
value,
intent(in) :: sub
503 end subroutine interface_pladv
511 subroutine interface_plbop() bind(c,name='c_plbop')
512 end subroutine interface_plbop
514 call interface_plbop()
519 subroutine interface_plclear() bind(c,name='c_plclear')
520 end subroutine interface_plclear
522 call interface_plclear()
526 integer,
intent(in) :: icol
528 subroutine interface_plcol0( icol ) bind(c, name = 'c_plcol0' )
531 integer(kind=private_plint),
value,
intent(in) :: icol
532 end subroutine interface_plcol0
539 integer,
intent(in) :: iplsr
540 logical,
intent(in) :: flags
542 subroutine interface_plcpstrm( iplsr, flags ) bind(c, name = 'c_plcpstrm' )
545 integer(kind=private_plint),
value,
intent(in) :: iplsr
546 integer(kind=private_plbool),
value,
intent(in) :: flags
547 end subroutine interface_plcpstrm
555 subroutine interface_plend1() bind( c, name = 'c_plend1' )
556 end subroutine interface_plend1
558 call interface_plend1()
563 subroutine interface_plend() bind( c, name = 'c_plend' )
564 end subroutine interface_plend
566 call interface_plend()
571 subroutine interface_pleop() bind( c, name = 'c_pleop' )
572 end subroutine interface_pleop
574 call interface_pleop()
579 subroutine interface_plfamadv() bind( c, name = 'c_plfamadv' )
580 end subroutine interface_plfamadv
582 call interface_plfamadv()
587 subroutine interface_plflush() bind( c, name = 'c_plflush' )
588 end subroutine interface_plflush
590 call interface_plflush()
594 integer,
intent(in) :: font
596 subroutine interface_plfont( font ) bind( c, name = 'c_plfont' )
599 integer(kind=private_plint),
value,
intent(in) :: font
600 end subroutine interface_plfont
607 integer,
intent(in) :: charset
609 subroutine interface_plfontld( charset ) bind( c, name = 'c_plfontld' )
612 integer(kind=private_plint),
value,
intent(in) :: charset
613 end subroutine interface_plfontld
620 integer,
intent(in) :: icol
621 integer,
intent(out) :: r, g, b
623 integer(kind=private_plint) :: r_out, g_out, b_out
626 subroutine interface_plgcol0( icol, r, g, b ) bind( c, name = 'c_plgcol0' )
629 integer(kind=private_plint),
value,
intent(in) :: icol
630 integer(kind=private_plint),
intent(out) :: r, g, b
631 end subroutine interface_plgcol0
634 call interface_plgcol0( int(icol,kind=
private_plint), r_out, g_out, b_out )
641 integer,
intent(out) :: r, g, b
643 integer(kind=private_plint) :: r_out, g_out, b_out
646 subroutine interface_plgcolbg( r, g, b ) bind( c, name = 'c_plgcolbg' )
649 integer(kind=private_plint),
intent(out) :: r, g, b
650 end subroutine interface_plgcolbg
653 call interface_plgcolbg( r_out, g_out, b_out )
660 integer,
intent(out) :: compression
662 integer(kind=private_plint) :: compression_out
665 subroutine interface_plgcompression( compression ) bind( c, name = 'c_plgcompression' )
668 integer(kind=private_plint),
intent(out) :: compression
669 end subroutine interface_plgcompression
672 call interface_plgcompression( compression_out )
673 compression = int(compression_out)
677 character*(*),
intent(out) :: dev
679 character(len=1),
dimension(100) :: dev_out
682 subroutine interface_plgdev( dev ) bind(c,name='c_plgdev')
684 character(len=1),
dimension(*),
intent(out) :: dev
685 end subroutine interface_plgdev
688 call interface_plgdev( dev_out )
694 integer :: plgdrawmode_impl
697 function interface_plgdrawmode() bind(c,name='c_plgdrawmode')
700 integer(kind=private_plint) :: interface_plgdrawmode
701 end function interface_plgdrawmode
704 plgdrawmode_impl = int(interface_plgdrawmode())
705 end function plgdrawmode_impl
708 integer :: plget_arguments_dynamic
709 character(len=:),
dimension(:),
allocatable,
intent(out) :: argv
711 integer :: nargv_local
712 character(len=1) :: test_argv_local
713 integer :: length_argv_local, length_local, iargs_local
715 nargv_local = command_argument_count()
716 if (nargv_local < 0)
then 718 write(error_unit,
'(a)')
'Plplot Fortran Severe Warning: plget_arguments: negative number of arguments' 719 plget_arguments_dynamic = 1
724 length_argv_local = 0
725 do iargs_local = 0, nargv_local
726 call get_command_argument(iargs_local, test_argv_local, length_local)
727 length_argv_local =
max(length_argv_local, length_local)
731 allocate(
character(len=length_argv_local) :: argv(0:nargv_local))
732 do iargs_local = 0, nargv_local
733 call get_command_argument(iargs_local, argv(iargs_local))
735 plget_arguments_dynamic = 0
739 integer :: plget_arguments_static_length
740 character(len=*),
dimension(:),
allocatable,
intent(out) :: argv
741 integer,
intent(in) :: disambiguate
743 integer :: nargv_local
744 character(len=1) :: test_argv_local
745 integer :: length_argv_local, length_local, iargs_local
747 nargv_local = command_argument_count()
748 if (nargv_local < 0)
then 750 write(error_unit,
'(a)')
'Plplot Fortran Severe Warning: plget_arguments: negative number of arguments' 751 plget_arguments_static_length = 1
756 length_argv_local = 0
757 do iargs_local = 0, nargv_local
758 call get_command_argument(iargs_local, test_argv_local, length_local)
759 length_argv_local =
max(length_argv_local, length_local)
762 if(length_argv_local > len(argv) )
then 763 write(error_unit,*)
'Plplot Fortran Severe Warning: plget_arguments: at least one argument is too long to process' 764 plget_arguments_static_length = 1
769 allocate(argv(0:nargv_local))
770 do iargs_local = 0, nargv_local
771 call get_command_argument(iargs_local, argv(iargs_local))
773 plget_arguments_static_length = 0
777 integer :: plget_arguments_static
778 integer,
intent(out) :: nargv
779 character(len=*),
dimension(0:),
intent(out) :: argv
781 character(len=1) :: test_argv_local
782 integer :: length_argv_local, length_local, iargs_local
784 nargv = command_argument_count()
787 write(error_unit,
'(a)')
'Plplot Fortran Severe Warning: plget_arguments: negative number of arguments' 788 plget_arguments_static = 1
792 if(nargv + 1 >
size(argv))
then 793 write(error_unit,
'(a)')
'Plplot Fortran Severe Warning: plget_arguments: too many arguments to process' 794 plget_arguments_static = 1
799 length_argv_local = 0
800 do iargs_local = 0, nargv
801 call get_command_argument(iargs_local, test_argv_local, length_local)
802 length_argv_local =
max(length_argv_local, length_local)
804 if(length_argv_local > len(argv) )
then 805 write(error_unit,*)
'Plplot Fortran Severe Warning: plget_arguments: at least one argument is too long to process' 806 plget_arguments_static = 1
810 do iargs_local = 0, nargv
811 call get_command_argument(iargs_local, argv(iargs_local))
813 plget_arguments_static = 0
817 integer,
intent(out) :: fam, num, bmax
819 integer(kind=private_plint) :: fam_out, num_out, bmax_out
822 subroutine interface_plgfam( fam, num, bmax ) bind( c, name = 'c_plgfam' )
825 integer(kind=private_plint),
intent(out) :: fam, num, bmax
826 end subroutine interface_plgfam
829 call interface_plgfam( fam_out, num_out, bmax_out )
836 integer,
intent(out) :: fci
838 integer(kind=private_plunicode) :: fci_out
841 subroutine interface_plgfci( fci ) bind( c, name = 'c_plgfci' )
844 integer(kind=private_plunicode),
intent(out) :: fci
845 end subroutine interface_plgfci
848 call interface_plgfci( fci_out )
853 character*(*),
intent(out) :: fnam
855 character(len=1),
dimension(100) :: fnam_out
858 subroutine interface_plgfnam( fnam ) bind(c,name='c_plgfnam')
860 character(len=1),
dimension(*),
intent(out) :: fnam
861 end subroutine interface_plgfnam
864 call interface_plgfnam( fnam_out )
869 integer,
intent(out) :: family, style, weight
871 integer(kind=private_plint) :: family_out, style_out, weight_out
874 subroutine interface_plgfont( family, style, weight ) bind( c, name = 'c_plgfont' )
877 integer(kind=private_plint),
intent(out) :: family, style, weight
878 end subroutine interface_plgfont
881 call interface_plgfont( family_out, style_out, weight_out )
882 family = int(family_out)
883 style = int(style_out)
884 weight = int(weight_out)
888 integer,
intent(out) :: level
890 integer(kind=private_plint) :: level_out
893 subroutine interface_plglevel( level ) bind( c, name = 'c_plglevel' )
896 integer(kind=private_plint),
intent(out) :: level
897 end subroutine interface_plglevel
900 call interface_plglevel( level_out )
901 level = int(level_out)
906 subroutine interface_plgra() bind( c, name = 'c_plgra' )
907 end subroutine interface_plgra
909 call interface_plgra()
913 integer,
intent(out) :: strm
915 integer(kind=private_plint) :: strm_out
918 subroutine interface_plgstrm( strm ) bind( c, name = 'c_plgstrm' )
921 integer(kind=private_plint),
intent(out) :: strm
922 end subroutine interface_plgstrm
925 call interface_plgstrm( strm_out )
930 character*(*),
intent(out) :: ver
932 character(len=1),
dimension(100) :: ver_out
935 subroutine interface_plgver( ver ) bind(c,name='c_plgver')
937 character(len=1),
dimension(*),
intent(out) :: ver
938 end subroutine interface_plgver
941 call interface_plgver( ver_out )
946 integer,
intent(out) :: digmax, digits
948 integer(kind=private_plint) :: digmax_out, digits_out
951 subroutine interface_plgxax( digmax, digits ) bind( c, name = 'c_plgxax' )
954 integer(kind=private_plint),
intent(out) :: digmax, digits
955 end subroutine interface_plgxax
958 call interface_plgxax( digmax_out, digits_out )
959 digmax = int(digmax_out)
960 digits = int(digits_out)
964 integer,
intent(out) :: digmax, digits
966 integer(kind=private_plint) :: digmax_out, digits_out
969 subroutine interface_plgyax( digmax, digits ) bind( c, name = 'c_plgyax' )
972 integer(kind=private_plint),
intent(out) :: digmax, digits
973 end subroutine interface_plgyax
976 call interface_plgyax( digmax_out, digits_out )
977 digmax = int(digmax_out)
978 digits = int(digits_out)
982 integer,
intent(out) :: digmax, digits
984 integer(kind=private_plint) :: digmax_out, digits_out
987 subroutine interface_plgzax( digmax, digits ) bind( c, name = 'c_plgzax' )
990 integer(kind=private_plint),
intent(out) :: digmax, digits
991 end subroutine interface_plgzax
994 call interface_plgzax( digmax_out, digits_out )
995 digmax = int(digmax_out)
996 digits = int(digits_out)
1001 subroutine interface_plinit() bind( c, name = 'c_plinit' )
1002 end subroutine interface_plinit
1004 call interface_plinit()
1008 character(len=*),
intent(in) :: xlab, ylab, title
1011 subroutine interface_pllab( xlab, ylab, title ) bind(c,name='c_pllab')
1013 character(len=1),
dimension(*),
intent(in) :: xlab, ylab, title
1014 end subroutine interface_pllab
1017 call interface_pllab( trim(xlab)//c_null_char, trim(ylab)//c_null_char, trim(title)//c_null_char )
1022 integer,
intent(in) :: lin
1024 subroutine interface_pllsty( lin ) bind( c, name = 'c_pllsty' )
1027 integer(kind=private_plint),
value,
intent(in) :: lin
1028 end subroutine interface_pllsty
1035 integer,
intent(in) :: strm
1037 subroutine interface_plmkstrm( strm ) bind( c, name = 'c_plmkstrm' )
1040 integer(kind=private_plint),
value,
intent(in) :: strm
1041 end subroutine interface_plmkstrm
1048 integer :: plparseopts_dynamic
1049 character(len=:),
intent(inout),
dimension(:),
allocatable :: argv
1050 integer,
intent(in) :: mode
1052 integer(kind=private_plint) :: size_local
1053 integer :: max_length_local
1055 character(len=1),
dimension(:,:),
allocatable :: cstring_arg_local
1056 type(c_ptr),
dimension(:),
allocatable :: cstring_address_arg_inout
1064 if(plparseopts_dynamic /= 0)
return 1067 allocate(
character(len=max_length_local) :: argv(0:size_local - 1))
1072 integer :: plparseopts_static_length
1073 character(len=*),
intent(inout),
dimension(:),
allocatable :: argv
1074 integer,
intent(in) :: mode, disambiguate
1076 integer(kind=private_plint) :: size_local
1078 character(len=1),
dimension(:,:),
allocatable :: cstring_arg_local
1079 type(c_ptr),
dimension(:),
allocatable :: cstring_address_arg_inout
1087 if(plparseopts_static_length /= 0)
return 1090 write(error_unit,*)
'Plplot Fortran Severe Warning: plparseopts: at least one argument is too long to process' 1091 plparseopts_static_length = 1
1095 allocate(argv(0:size_local - 1))
1096 plparseopts_static_length =
c_to_character_array(argv, cstring_address_arg_inout(1:size_local))
1100 integer :: plparseopts_static
1101 integer,
intent(out) :: nargv
1102 character(len=*),
intent(inout),
dimension(0:) :: argv
1103 integer,
intent(in) :: mode
1105 integer(kind=private_plint) :: size_local
1107 character(len=1),
dimension(:,:),
allocatable :: cstring_arg_local
1108 type(c_ptr),
dimension(:),
allocatable :: cstring_address_arg_inout
1116 if(plparseopts_static /= 0)
return 1118 write(error_unit,*)
'Plplot Fortran Severe Warning: plparseopts: at least one argument is too long to process' 1119 plparseopts_static = 1
1123 nargv = int(size_local - 1)
1127 integer :: plparseopts_brief
1128 integer,
intent(in) :: mode
1130 integer :: numargs_local, plget_arguments_rc
1131 integer(kind=private_plint) :: size_local
1133 integer,
parameter :: maxargs_local = 1000
1134 character (len=maxlen),
dimension(0:maxargs_local) :: arg_local
1135 character(len=1),
dimension(:,:),
allocatable :: cstring_arg_local
1136 type(c_ptr),
dimension(:),
allocatable :: cstring_address_arg_inout
1139 if(plget_arguments_rc /= 0)
then 1140 plparseopts_brief = 1
1143 call character_array_to_c( cstring_arg_local, cstring_address_arg_inout, arg_local(0:numargs_local) )
1152 integer,
dimension(:),
intent(in) :: inc, del
1154 integer(kind=private_plint) :: nlin_local
1157 subroutine interface_plpat( nlin, inc, del ) bind( c, name = 'c_plpat' )
1160 integer(kind=private_plint),
value,
intent(in) :: nlin
1161 integer(kind=private_plint),
dimension(*),
intent(in) :: inc, del
1162 end subroutine interface_plpat
1167 write(error_unit,
"(a)")
"Plplot Fortran Warning: plpat: sizes of inc and del are not consistent" 1175 integer,
intent(in) :: setp, prec
1177 subroutine interface_plprec( setp, prec ) bind( c, name = 'c_plprec' )
1180 integer(kind=private_plint),
value,
intent(in) :: setp, prec
1181 end subroutine interface_plprec
1188 integer,
intent(in) :: patt
1190 subroutine interface_plpsty( patt ) bind( c, name = 'c_plpsty' )
1193 integer(kind=private_plint),
value,
intent(in) :: patt
1194 end subroutine interface_plpsty
1202 subroutine interface_plreplot() bind(c,name='c_plreplot')
1203 end subroutine interface_plreplot
1205 call interface_plreplot()
1209 integer,
dimension(:),
intent(in) :: r, g, b
1211 integer(kind=private_plint) :: n_local
1214 subroutine interface_plscmap0( r, g, b, n ) bind(c,name='c_plscmap0')
1217 integer(kind=private_plint),
dimension(*),
intent(in) :: r, g, b
1218 integer(kind=private_plint),
value,
intent(in) :: n
1219 end subroutine interface_plscmap0
1224 write(error_unit,
"(a)")
"Plplot Fortran Warning: plscmap0: inconsistent sizes for r, g, and/or b" 1232 integer,
intent(in) :: n
1234 subroutine interface_plscmap0n( n ) bind( c, name = 'c_plscmap0n' )
1237 integer(kind=private_plint),
value,
intent(in) :: n
1238 end subroutine interface_plscmap0n
1245 integer,
dimension(:),
intent(in) :: r, g, b
1247 integer(kind=private_plint) :: n_local
1250 subroutine interface_plscmap1( r, g, b, n ) bind(c,name='c_plscmap1')
1253 integer(kind=private_plint),
dimension(*),
intent(in) :: r, g, b
1254 integer(kind=private_plint),
value,
intent(in) :: n
1255 end subroutine interface_plscmap1
1260 write(error_unit,
"(a)")
"Plplot Fortran Warning: plscmap1: inconsistent sizes for r, g, and/or b" 1268 integer,
intent(in) :: n
1270 subroutine interface_plscmap1n( n ) bind( c, name = 'c_plscmap1n' )
1273 integer(kind=private_plint),
value,
intent(in) :: n
1274 end subroutine interface_plscmap1n
1281 integer,
intent(in) :: icol, r, g, b
1283 subroutine interface_plscol0( icol, r, g, b ) bind( c, name = 'c_plscol0' )
1286 integer(kind=private_plint),
value,
intent(in) :: icol, r, g, b
1287 end subroutine interface_plscol0
1295 integer,
intent(in) :: r, g, b
1297 subroutine interface_plscolbg( r, g, b ) bind( c, name = 'c_plscolbg' )
1300 integer(kind=private_plint),
value,
intent(in) :: r, g, b
1301 end subroutine interface_plscolbg
1309 integer,
intent(in) :: color
1311 subroutine interface_plscolor( color ) bind( c, name = 'c_plscolor' )
1314 integer(kind=private_plint),
value,
intent(in) :: color
1315 end subroutine interface_plscolor
1322 integer,
intent(in) :: compression
1324 subroutine interface_plscompression( compression ) bind( c, name = 'c_plscompression' )
1327 integer(kind=private_plint),
value,
intent(in) :: compression
1328 end subroutine interface_plscompression
1331 call interface_plscompression( int(compression,kind=
private_plint) )
1335 character(len=*),
intent(in) :: devname
1338 subroutine interface_plsdev( devname ) bind(c,name='c_plsdev')
1340 character(len=1),
dimension(*),
intent(in) :: devname
1341 end subroutine interface_plsdev
1344 call interface_plsdev( trim(devname)//c_null_char )
1349 integer,
intent(in) :: mode
1351 subroutine interface_plsdrawmode( mode ) bind( c, name = 'c_plsdrawmode' )
1354 integer(kind=private_plint),
value,
intent(in) :: mode
1355 end subroutine interface_plsdrawmode
1362 integer,
intent(in) :: s
1364 subroutine interface_plseed( s ) bind( c, name = 'c_plseed' )
1367 integer(kind=private_plint),
value,
intent(in) :: s
1368 end subroutine interface_plseed
1376 integer,
intent(in) :: esc
1378 subroutine interface_plsesc( esc ) bind( c, name = 'c_plsesc' )
1381 integer(kind=private_plint),
value,
intent(in) :: esc
1382 end subroutine interface_plsesc
1389 integer :: plsetopt_impl
1390 character(len=*),
intent(in) :: opt, optarg
1394 function interface_plsetopt( opt, optarg ) bind(c,name='c_plsetopt')
1397 integer(kind=private_plint) :: interface_plsetopt
1398 character(len=1),
dimension(*),
intent(in) :: opt, optarg
1399 end function interface_plsetopt
1402 plsetopt_impl = int(interface_plsetopt( trim(opt)//c_null_char, trim(optarg)//c_null_char ))
1404 end function plsetopt_impl
1407 integer,
intent(in) :: fam, num, bmax
1409 subroutine interface_plsfam( fam, num, bmax ) bind( c, name = 'c_plsfam' )
1412 integer(kind=private_plint),
value,
intent(in) :: fam, num, bmax
1413 end subroutine interface_plsfam
1420 integer,
intent(in) :: fci
1423 subroutine interface_plsfci( fci ) bind( c, name = 'c_plsfci' )
1426 integer(kind=private_plunicode),
value,
intent(in) :: fci
1427 end subroutine interface_plsfci
1435 character(len=*),
intent(in) :: fnam
1438 subroutine interface_plsfnam( fnam ) bind(c,name='c_plsfnam')
1440 character(len=1),
dimension(*),
intent(in) :: fnam
1441 end subroutine interface_plsfnam
1444 call interface_plsfnam( trim(fnam)//c_null_char )
1449 integer,
intent(in) :: family, style, weight
1451 subroutine interface_plsfont( family, style, weight ) bind( c, name = 'c_plsfont' )
1454 integer(kind=private_plint),
value,
intent(in) :: family, style, weight
1455 end subroutine interface_plsfont
1466 integer,
intent(in) :: maxx, maxy
1467 character(kind=c_char),
dimension(:, :, :),
target,
intent(in) :: plotmem
1469 subroutine interface_plsmem( maxx, maxy, plotmem ) bind( c, name = 'c_plsmem' )
1473 integer(kind=private_plint),
value,
intent(in) :: maxx, maxy
1474 type(c_ptr),
value,
intent(in) :: plotmem
1475 end subroutine interface_plsmem
1479 if( 3 /=
size(plotmem,1) )
then 1480 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmem: first dimension of plotmem is not 3" 1485 if( maxx /=
size(plotmem,2) .or. maxy /=
size(plotmem,3) )
then 1486 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmem: maxx and/or maxy not & 1487 &consistent with second and third plotmem dimensions" 1497 integer,
intent(in) :: maxx, maxy
1498 character(kind=c_char),
dimension(:, :, :),
target,
intent(in) :: plotmem
1500 subroutine interface_plsmema( maxx, maxy, plotmem ) bind( c, name = 'c_plsmema' )
1504 integer(kind=private_plint),
value,
intent(in) :: maxx, maxy
1505 type(c_ptr),
value,
intent(in) :: plotmem
1506 end subroutine interface_plsmema
1510 if( 4 /=
size(plotmem,1) )
then 1511 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmema: first dimension of plotmem is not 4" 1516 if( maxx /=
size(plotmem,2) .or. maxy /=
size(plotmem,3) )
then 1517 write(error_unit,
"(a)")
"Plplot Fortran Warning: plsmema: maxx and/or maxy not & 1518 &consistent with second and third plotmem dimensions" 1524 integer,
intent(in) :: rot
1526 subroutine interface_plsori( rot ) bind( c, name = 'c_plsori' )
1529 integer(kind=private_plint),
value,
intent(in) :: rot
1530 end subroutine interface_plsori
1537 character(len=*),
intent(in) :: filename
1540 subroutine interface_plspal0( filename ) bind(c,name='c_plspal0')
1542 character(len=1),
dimension(*),
intent(in) :: filename
1543 end subroutine interface_plspal0
1546 call interface_plspal0( trim(filename)//c_null_char )
1551 character(len=*),
intent(in) :: filename
1552 logical,
intent(in) :: interpolate
1555 subroutine interface_plspal1( filename, interpolate ) bind(c,name='c_plspal1')
1558 integer(kind=private_plbool),
value,
intent(in) :: interpolate
1559 character(len=1),
dimension(*),
intent(in) :: filename
1560 end subroutine interface_plspal1
1563 call interface_plspal1( trim(filename)//c_null_char, int( merge(1,0,interpolate),kind=
private_plbool) )
1568 logical,
intent(in) :: pause
1571 subroutine interface_plspause( pause ) bind(c,name='c_plspause')
1574 integer(kind=private_plbool),
value,
intent(in) :: pause
1575 end subroutine interface_plspause
1578 call interface_plspause( int( merge(1,0,pause),kind=
private_plbool) )
1582 integer,
intent(in) :: strm
1584 subroutine interface_plsstrm( strm ) bind( c, name = 'c_plsstrm' )
1587 integer(kind=private_plint),
value,
intent(in) :: strm
1588 end subroutine interface_plsstrm
1595 integer,
intent(in) :: nx, ny
1597 subroutine interface_plssub( nx, ny ) bind( c, name = 'c_plssub' )
1600 integer(kind=private_plint),
value,
intent(in) :: nx, ny
1601 end subroutine interface_plssub
1608 integer,
intent(in) :: nx, ny
1610 subroutine interface_plstar( nx, ny ) bind( c, name = 'c_plstar' )
1613 integer(kind=private_plint),
value,
intent(in) :: nx, ny
1614 end subroutine interface_plstar
1621 integer,
intent(in) :: nx, ny
1622 character(len=*),
intent(in) :: devname
1624 subroutine interface_plstart( devname, nx, ny ) bind( c, name = 'c_plstart' )
1627 integer(kind=private_plint),
value,
intent(in) :: nx, ny
1628 character(len=1),
dimension(*),
intent(in) :: devname
1629 end subroutine interface_plstart
1636 integer,
intent(in) :: id
1638 subroutine interface_plstripd( id ) bind( c, name = 'c_plstripd' )
1641 integer(kind=private_plint),
value,
intent(in) :: id
1642 end subroutine interface_plstripd
1649 integer,
dimension(:),
intent(in) :: mark, space
1651 integer(kind=private_plint) :: n_local
1654 subroutine interface_plstyl( n, mark, space ) bind( c, name = 'c_plstyl' )
1657 integer(kind=private_plint),
value,
intent(in) :: n
1658 integer(kind=private_plint),
dimension(*),
intent(in) :: mark, space
1659 end subroutine interface_plstyl
1664 write(error_unit,
"(a)")
"Plplot Fortran Warning: plstyl: inconsistent sizes for mark and space" 1672 logical,
optional,
intent(in) :: fill
1675 subroutine interface_plsvect_null() bind(c,name='plsvect_null')
1676 end subroutine interface_plsvect_null
1680 if (
present(fill) )
then 1681 call interface_plsvect_null
1683 call interface_plsvect_null
1688 integer,
intent(in) :: digmax, digits
1690 subroutine interface_plsxax( digmax, digits ) bind( c, name = 'c_plsxax' )
1693 integer(kind=private_plint),
value,
intent(in) :: digmax, digits
1694 end subroutine interface_plsxax
1701 integer,
intent(in) :: digmax, digits
1703 subroutine interface_plsyax( digmax, digits ) bind( c, name = 'c_plsyax' )
1706 integer(kind=private_plint),
value,
intent(in) :: digmax, digits
1707 end subroutine interface_plsyax
1714 integer,
intent(in) :: digmax, digits
1716 subroutine interface_plszax( digmax, digits ) bind( c, name = 'c_plszax' )
1719 integer(kind=private_plint),
value,
intent(in) :: digmax, digits
1720 end subroutine interface_plszax
1728 subroutine interface_pltext() bind(c,name='c_pltext')
1729 end subroutine interface_pltext
1731 call interface_pltext()
1735 character(len=*),
intent(in) :: fmt
1738 subroutine interface_pltimefmt( fmt ) bind(c,name='c_pltimefmt')
1740 character(len=1),
dimension(*),
intent(in) :: fmt
1741 end subroutine interface_pltimefmt
1744 call interface_pltimefmt( trim(fmt)//c_null_char )
1750 subroutine interface_plvsta() bind(c,name='c_plvsta')
1751 end subroutine interface_plvsta
1753 call interface_plvsta()
1757 logical,
intent(in) :: mode
1758 logical,
intent(out) :: status
1760 integer(kind=private_plbool) :: status_out
1763 subroutine interface_plxormod( mode, status ) bind(c,name='c_plxormod')
1766 integer(kind=private_plbool),
value,
intent(in) :: mode
1767 integer(kind=private_plbool),
intent(out) :: status
1768 end subroutine interface_plxormod
1771 call interface_plxormod( int( merge(1,0,mode),kind=
private_plbool), status_out )
1772 status = status_out /= 0_private_plbool
subroutine, private plgra_impl()
integer(kind=private_plint), parameter, private maxlen
subroutine, private plcol0_impl(icol)
subroutine, private plsxax_impl(digmax, digits)
integer, parameter private_single
integer function, private plget_arguments_dynamic(argv)
subroutine, private plsfci_impl(fci)
subroutine, private plmkstrm_impl(strm)
subroutine, private plfamadv_impl()
integer, parameter pl_test_flt
subroutine, private plgfam_impl(fam, num, bmax)
subroutine, private plscmap1_impl(r, g, b)
subroutine, private plsfnam_impl(fnam)
integer function, private plsetopt_impl(opt, optarg)
subroutine, private plvsta_impl()
integer function, private plparseopts_static_length(argv, mode, disambiguate)
integer function, private plparseopts_dynamic(argv, mode)
subroutine, private plszax_impl(digmax, digits)
integer, parameter private_double
subroutine, private plpsty_impl(patt)
subroutine, private plscolbg_impl(r, g, b)
subroutine, private plsyax_impl(digmax, digits)
subroutine, private plsfont_impl(family, style, weight)
subroutine, private plclear_impl()
subroutine, private plsfam_impl(fam, num, bmax)
integer, parameter private_plunicode
subroutine, private plend1_impl()
subroutine, private pladv_impl(sub)
subroutine, private pllsty_impl(lin)
subroutine, private plgdev_impl(dev)
integer function, private plparseopts_brief(mode)
subroutine, private plcpstrm_impl(iplsr, flags)
subroutine, private plgzax_impl(digmax, digits)
integer function max_cstring_length(cstring_address_array)
subroutine, private plgver_impl(ver)
subroutine, private plspause_impl(pause)
subroutine, private pleop_impl()
subroutine, private plglevel_impl(level)
subroutine, private plsdrawmode_impl(mode)
integer, parameter private_plbool
subroutine, private plgfci_impl(fci)
subroutine, private plsesc_impl(esc)
subroutine, private plscolor_impl(color)
subroutine, private plend_impl()
subroutine, private plscol0_impl(icol, r, g, b)
subroutine, private plgstrm_impl(strm)
integer function, private plget_arguments_static(nargv, argv)
subroutine, private plgcompression_impl(compression)
subroutine, private plprec_impl(setp, prec)
subroutine, private plsori_impl(rot)
integer, parameter private_plint
subroutine, private plgcolbg_impl(r, g, b)
subroutine, private pltext_impl()
subroutine, private plspal0_impl(filename)
subroutine copystring2f(fstring, cstring)
subroutine, private plbop_impl()
subroutine, private pltimefmt_impl(fmt)
subroutine, private plsvect_none(fill)
subroutine, private plsstrm_impl(strm)
subroutine, private plflush_impl()
subroutine, private plgfont_impl(family, style, weight)
subroutine, private plgcol0_impl(icol, r, g, b)
subroutine, private plgyax_impl(digmax, digits)
subroutine, private plpat_impl(inc, del)
subroutine, private plgfnam_impl(fnam)
subroutine, private plscmap0n_impl(n)
subroutine character_array_to_c(cstring_array, cstring_address, character_array)
subroutine, private plgxax_impl(digmax, digits)
subroutine, private plssub_impl(nx, ny)
character(len=1), parameter pl_end_of_string
subroutine, private plscmap1n_impl(n)
integer function, private plgdrawmode_impl()
subroutine, private plxormod_impl(mode, status)
subroutine, private plsdev_impl(devname)
subroutine, private plsmema_impl(maxx, maxy, plotmem)
integer function, private plget_arguments_static_length(argv, disambiguate)
subroutine, private plscmap0_impl(r, g, b)
subroutine, private plfont_impl(font)
subroutine, private plstart_impl(devname, nx, ny)
integer function c_to_character_array(character_array, cstring_address_array)
subroutine, private pllab_impl(xlab, ylab, title)
subroutine, private plstyl_impl(mark, space)
subroutine, private plseed_impl(s)
integer function, private plparseopts_static(nargv, argv, mode)
subroutine, private plfontld_impl(charset)
subroutine, private pl_setcontlabelformat_impl(lexp, sigdig)
subroutine, private plreplot_impl()
subroutine, private plsmem_impl(maxx, maxy, plotmem)
subroutine, private plscompression_impl(compression)
subroutine, private plinit_impl()
subroutine, private plstripd_impl(id)
subroutine, private plspal1_impl(filename, interpolate)
subroutine, private plstar_impl(nx, ny)