1210 character(len = GNUPLOT_MAX_LABEL_LENGTH) :: m_fontname = &
1211 gnuplot_default_fontname
1213 integer(int32) :: m_fontsize = gnuplot_default_font_size
1224 procedure,
public :: get_window_width => term_get_window_width
1237 procedure,
public :: set_window_width => term_set_window_width
1247 procedure,
public :: get_window_height => term_get_window_height
1260 procedure,
public :: set_window_height => term_set_window_height
1271 procedure,
public :: get_command_string => term_get_command_string
1281 procedure,
public :: get_plot_window_number => &
1282 term_get_plot_window_number
1292 procedure,
public :: set_plot_window_number => &
1293 term_set_plot_window_number
1303 procedure,
public :: get_title => term_get_title
1313 procedure,
public :: set_title => term_set_title
1324 procedure,
public :: get_font_name => term_get_font_name
1336 procedure,
public :: set_font_name => term_set_font_name
1346 procedure,
public :: get_font_size => term_get_font_size
1358 procedure,
public :: set_font_size => term_set_font_size
1360 procedure(term_get_string_result),
deferred,
public :: get_id_string
1365 pure module function term_get_window_width(this) result(x)
1366 class(terminal),
intent(in) :: this
1370 module subroutine term_set_window_width(this, x)
1371 class(terminal),
intent(inout) :: this
1372 integer,
intent(in) :: x
1375 pure module function term_get_window_height(this) result(x)
1376 class(terminal),
intent(in) :: this
1380 module subroutine term_set_window_height(this, x)
1381 class(terminal),
intent(inout) :: this
1382 integer,
intent(in) :: x
1385 pure module function term_get_plot_window_number(this) result(x)
1386 class(terminal),
intent(in) :: this
1390 module subroutine term_set_plot_window_number(this, x)
1391 class(terminal),
intent(inout) :: this
1392 integer(int32),
intent(in) :: x
1395 module function term_get_title(this) result(str)
1396 class(terminal),
intent(in) :: this
1397 character(len = :),
allocatable :: str
1400 module subroutine term_set_title(this, txt)
1401 class(terminal),
intent(inout) :: this
1402 character(len = *),
intent(in) :: txt
1405 module function term_get_font_name(this) result(name)
1406 class(terminal),
intent(in) :: this
1407 character(len = :),
allocatable :: name
1410 module subroutine term_set_font_name(this, name)
1411 class(terminal),
intent(inout) :: this
1412 character(len = *),
intent(in) :: name
1415 pure module function term_get_font_size(this) result(sz)
1416 class(terminal),
intent(in) :: this
1417 integer(int32) :: sz
1420 module subroutine term_set_font_size(this, sz)
1421 class(terminal),
intent(inout) :: this
1422 integer(int32),
intent(in) :: sz
1425 module function term_get_command_string(this) result(x)
1426 class(terminal),
intent(in) :: this
1427 character(len = :),
allocatable :: x
1435 type,
extends(terminal) :: windows_terminal
1438 character(len = 3) :: m_id =
"win"
1449 procedure,
public :: get_id_string => wt_get_term_string
1454 module function wt_get_term_string(this) result(x)
1455 class(windows_terminal),
intent(in) :: this
1456 character(len = :),
allocatable :: x
1464 type,
extends(terminal) :: qt_terminal
1467 character(len = 2) :: m_id =
"qt"
1478 procedure,
public :: get_id_string => qt_get_term_string
1483 module function qt_get_term_string(this) result(x)
1484 class(qt_terminal),
intent(in) :: this
1485 character(len = :),
allocatable :: x
1493 type,
extends(terminal) :: wxt_terminal
1496 character(len = 3) :: m_id =
"wxt"
1507 procedure,
public :: get_id_string => wxt_get_term_string
1512 module function wxt_get_term_string(this) result(x)
1513 class(wxt_terminal),
intent(in) :: this
1514 character(len = :),
allocatable :: x
1522 type,
extends(terminal) :: png_terminal
1525 character(len = 3) :: m_id =
"png"
1527 character(len = GNUPLOT_MAX_PATH_LENGTH) :: m_fname =
"default.png"
1538 procedure,
public :: get_filename => png_get_filename
1548 procedure,
public :: set_filename => png_set_filename
1558 procedure,
public :: get_id_string => png_get_term_string
1569 procedure,
public :: get_command_string => png_get_command_string
1574 module function png_get_term_string(this) result(x)
1575 class(png_terminal),
intent(in) :: this
1576 character(len = :),
allocatable :: x
1579 module function png_get_filename(this) result(txt)
1580 class(png_terminal),
intent(in) :: this
1581 character(len = :),
allocatable :: txt
1584 module subroutine png_set_filename(this, txt)
1585 class(png_terminal),
intent(inout) :: this
1586 character(len = *),
intent(in) :: txt
1589 module function png_get_command_string(this) result(x)
1590 class(png_terminal),
intent(in) :: this
1591 character(len = :),
allocatable :: x
1599 type,
extends(terminal) :: latex_terminal
1602 character(len = 14) :: m_id =
"epslatex color"
1604 character(len = GNUPLOT_MAX_PATH_LENGTH) :: m_fname =
"default.tex"
1615 procedure,
public :: get_filename => tex_get_filename
1625 procedure,
public :: set_filename => tex_set_filename
1635 procedure,
public :: get_id_string => tex_get_term_string
1646 procedure,
public :: get_command_string => tex_get_command_string
1651 module function tex_get_term_string(this) result(x)
1652 class(latex_terminal),
intent(in) :: this
1653 character(len = :),
allocatable :: x
1656 module function tex_get_filename(this) result(txt)
1657 class(latex_terminal),
intent(in) :: this
1658 character(len = :),
allocatable :: txt
1661 module subroutine tex_set_filename(this, txt)
1662 class(latex_terminal),
intent(inout) :: this
1663 character(len = *),
intent(in) :: txt
1666 module function tex_get_command_string(this) result(x)
1667 class(latex_terminal),
intent(in) :: this
1668 character(len = :),
allocatable :: x
1676 type,
abstract,
extends(plot_object) :: plot_data
1679 character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_name =
""
1690 procedure,
public :: get_name => pd_get_name
1700 procedure,
public :: set_name => pd_set_name
1703 procedure(pd_get_string_result),
deferred,
public :: get_data_string
1708 pure module function pd_get_name(this) result(txt)
1709 class(plot_data),
intent(in) :: this
1710 character(len = :),
allocatable :: txt
1713 module subroutine pd_set_name(this, txt)
1714 class(plot_data),
intent(inout) :: this
1715 character(len = *),
intent(in) :: txt
1723 type,
abstract,
extends(plot_data) :: plot_data_colored
1726 type(color) :: m_color = clr_blue
1728 logical :: m_useautocolor = .true.
1730 integer(int32) :: m_colorindex = 1
1741 procedure,
public :: get_line_color => pdc_get_line_color
1751 procedure,
public :: set_line_color => pdc_set_line_color
1752 procedure,
private :: get_color_index => pdc_get_color_index
1753 procedure,
private :: set_color_index => pdc_set_color_index
1758 pure module function pdc_get_line_color(this) result(x)
1759 class(plot_data_colored),
intent(in) :: this
1763 module subroutine pdc_set_line_color(this, x)
1764 class(plot_data_colored),
intent(inout) :: this
1765 type(color),
intent(in) :: x
1768 pure module function pdc_get_color_index(this) result(x)
1769 class(plot_data_colored),
intent(in) :: this
1773 module subroutine pdc_set_color_index(this, x)
1774 class(plot_data_colored),
intent(inout) :: this
1775 integer(int32),
intent(in) :: x
1783 type,
abstract,
extends(plot_object) :: plot_axis
1786 logical :: m_hastitle = .false.
1788 character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title =
""
1790 logical :: m_autoscale = .true.
1792 real(real64),
dimension(2) :: m_limits = [0.0d0, 1.0d0]
1794 logical :: m_logscale = .false.
1796 logical :: m_zeroaxis = .false.
1798 real(real32) :: m_axiswidth = 1.0
1801 logical :: m_defaultticlabels = .true.
1803 character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_ticlabelfmt =
"%g"
1814 procedure,
public :: get_title => pa_get_title
1826 procedure,
public :: set_title => pa_set_title
1838 procedure,
public :: is_title_defined => pa_has_title
1850 procedure,
public :: get_autoscale => pa_get_autoscale
1862 procedure,
public :: set_autoscale => pa_set_autoscale
1874 procedure,
public :: get_limits => pa_get_axis_limits
1886 procedure,
public :: set_limits => pa_set_axis_limits
1897 procedure,
public :: get_is_log_scaled => pa_get_log_scale
1909 procedure,
public :: set_is_log_scaled => pa_set_log_scale
1920 procedure,
public :: get_command_string => pa_get_cmd_string
1931 procedure,
public :: get_zero_axis => pa_get_zero_axis
1942 procedure,
public :: set_zero_axis => pa_set_zero_axis
1953 procedure,
public :: get_zero_axis_line_width => pa_get_zero_axis_width
1964 procedure,
public :: set_zero_axis_line_width => pa_set_zero_axis_width
1966 procedure(pa_get_string_result),
deferred,
public :: get_id_string
1979 procedure,
public :: get_use_default_tic_label_format => &
1980 pa_get_use_dft_tic_lbl_fmt
1992 procedure,
public :: set_use_default_tic_label_format => &
1993 pa_set_use_dft_tic_lbl_fmt
2004 procedure,
public :: get_tic_label_format => pa_get_tic_label_fmt
2015 procedure,
public :: set_tic_label_format => pa_set_tic_label_fmt
2020 module function pa_get_title(this) result(txt)
2021 class(plot_axis),
intent(in) :: this
2022 character(len = :),
allocatable :: txt
2025 module subroutine pa_set_title(this, txt)
2026 class(plot_axis),
intent(inout) :: this
2027 character(len = *),
intent(in) :: txt
2030 pure module function pa_has_title(this) result(x)
2031 class(plot_axis),
intent(in) :: this
2035 pure module function pa_get_autoscale(this) result(x)
2036 class(plot_axis),
intent(in) :: this
2040 module subroutine pa_set_autoscale(this, x)
2041 class(plot_axis),
intent(inout) :: this
2042 logical,
intent(in) :: x
2045 pure module function pa_get_axis_limits(this) result(x)
2046 class(plot_axis),
intent(in) :: this
2047 real(real64),
dimension(2) :: x
2050 module subroutine pa_set_axis_limits(this, lower, upper)
2051 class(plot_axis),
intent(inout) :: this
2052 real(real64),
intent(in) :: lower, upper
2055 pure module function pa_get_log_scale(this) result(x)
2056 class(plot_axis),
intent(in) :: this
2060 module subroutine pa_set_log_scale(this, x)
2061 class(plot_axis),
intent(inout) :: this
2062 logical,
intent(in) :: x
2065 module function pa_get_cmd_string(this) result(txt)
2066 class(plot_axis),
intent(in) :: this
2067 character(len = :),
allocatable :: txt
2070 pure module function pa_get_zero_axis(this) result(x)
2071 class(plot_axis),
intent(in) :: this
2075 module subroutine pa_set_zero_axis(this, x)
2076 class(plot_axis),
intent(inout) :: this
2077 logical,
intent(in) :: x
2080 pure module function pa_get_zero_axis_width(this) result(x)
2081 class(plot_axis),
intent(in) :: this
2085 module subroutine pa_set_zero_axis_width(this, x)
2086 class(plot_axis),
intent(inout) :: this
2087 real(real32),
intent(in) :: x
2090 pure module function pa_get_use_dft_tic_lbl_fmt(this) result(rst)
2091 class(plot_axis),
intent(in) :: this
2095 module subroutine pa_set_use_dft_tic_lbl_fmt(this, x)
2096 class(plot_axis),
intent(inout) :: this
2097 logical,
intent(in) :: x
2100 pure module function pa_get_tic_label_fmt(this) result(rst)
2101 class(plot_axis),
intent(in) :: this
2102 character(len = :),
allocatable :: rst
2105 module subroutine pa_set_tic_label_fmt(this, x)
2106 class(plot_axis),
intent(inout) :: this
2107 character(len = *),
intent(in) :: x
2115 type,
extends(plot_object) :: legend
2118 logical :: m_inside = .true.
2120 logical :: m_box = .true.
2122 character(len = 20) :: m_horzposition = legend_right
2124 character(len = 20) :: m_vertposition = legend_top
2126 logical :: m_show = .false.
2128 character(len = 20) :: m_layout = legend_arrange_vertically
2130 logical :: m_opaque = .true.
2142 procedure,
public :: get_draw_inside_axes => leg_get_inside
2153 procedure,
public :: set_draw_inside_axes => leg_set_inside
2163 procedure,
public :: get_draw_border => leg_get_box
2173 procedure,
public :: set_draw_border => leg_set_box
2184 procedure,
public :: get_horizontal_position => leg_get_horz_pos
2196 procedure,
public :: set_horizontal_position => leg_set_horz_pos
2207 procedure,
public :: get_vertical_position => leg_get_vert_pos
2219 procedure,
public :: set_vertical_position => leg_set_vert_pos
2229 procedure,
public :: get_is_visible => leg_get_visible
2239 procedure,
public :: set_is_visible => leg_set_visible
2249 procedure,
public :: get_command_string => leg_get_command_txt
2260 procedure,
public :: get_layout => leg_get_layout
2271 procedure,
public :: set_layout => leg_set_layout
2281 procedure,
public :: get_is_opaque => leg_get_opaque
2291 procedure,
public :: set_is_opaque => leg_set_opaque
2296 pure module function leg_get_inside(this) result(x)
2297 class(legend),
intent(in) :: this
2301 module subroutine leg_set_inside(this, x)
2302 class(legend),
intent(inout) :: this
2303 logical,
intent(in) :: x
2306 pure module function leg_get_box(this) result(x)
2307 class(legend),
intent(in) :: this
2311 module subroutine leg_set_box(this, x)
2312 class(legend),
intent(inout) :: this
2313 logical,
intent(in) :: x
2316 module function leg_get_horz_pos(this) result(x)
2317 class(legend),
intent(in) :: this
2318 character(len = :),
allocatable :: x
2321 module subroutine leg_set_horz_pos(this, x)
2322 class(legend),
intent(inout) :: this
2323 character(len = *),
intent(in) :: x
2326 module function leg_get_vert_pos(this) result(x)
2327 class(legend),
intent(in) :: this
2328 character(len = :),
allocatable :: x
2331 module subroutine leg_set_vert_pos(this, x)
2332 class(legend),
intent(inout) :: this
2333 character(len = *),
intent(in) :: x
2336 pure module function leg_get_visible(this) result(x)
2337 class(legend),
intent(in) :: this
2341 module subroutine leg_set_visible(this, x)
2342 class(legend),
intent(inout) :: this
2343 logical,
intent(in) :: x
2346 module function leg_get_command_txt(this) result(txt)
2347 class(legend),
intent(in) :: this
2348 character(len = :),
allocatable :: txt
2351 pure module function leg_get_layout(this) result(rst)
2352 class(legend),
intent(in) :: this
2353 character(len = :),
allocatable :: rst
2356 module subroutine leg_set_layout(this, x)
2357 class(legend),
intent(inout) :: this
2358 character(len = *),
intent(in) :: x
2361 pure module function leg_get_opaque(this) result(rst)
2362 class(legend),
intent(in) :: this
2366 module subroutine leg_set_opaque(this, x)
2367 class(legend),
intent(inout) :: this
2377 type,
abstract,
extends(plot_object) :: colormap
2380 character(len = :),
allocatable :: m_label
2382 logical :: m_horizontal = .false.
2384 logical :: m_drawborder = .true.
2386 logical :: m_showtics = .true.
2398 procedure,
public :: get_command_string => cm_get_cmd
2403 procedure(cm_get_string_result),
deferred,
public :: get_color_string
2413 procedure,
public :: get_label => cm_get_label
2423 procedure,
public :: set_label => cm_set_label
2435 procedure,
public :: get_horizontal => cm_get_horizontal
2447 procedure,
public :: set_horizontal => cm_set_horizontal
2458 procedure,
public :: get_draw_border => cm_get_draw_border
2469 procedure,
public :: set_draw_border => cm_set_draw_border
2480 procedure,
public :: get_show_tics => cm_get_show_tics
2502 procedure,
public :: set_show_tics => cm_set_show_tics
2507 type,
extends(colormap) :: rainbow_colormap
2518 procedure,
public :: get_color_string => rcm_get_clr
2523 type,
extends(colormap) :: hot_colormap
2534 procedure,
public :: get_color_string => hcm_get_clr
2539 type,
extends(colormap) :: cool_colormap
2550 procedure,
public :: get_color_string => ccm_get_clr
2555 type,
extends(colormap) :: parula_colormap
2566 procedure,
public :: get_color_string => pcm_get_clr
2571 type,
extends(colormap) :: grey_colormap
2582 procedure,
public :: get_color_string => gcm_get_clr
2587 type,
extends(colormap) :: earth_colormap
2598 procedure,
public :: get_color_string => ecm_get_clr
2604 type,
extends(colormap) :: custom_colormap
2605 class(cmap),
private,
pointer :: m_map => null()
2607 final :: custom_final
2617 procedure,
public :: get_color_string => custom_get_clr
2639 procedure,
public :: set_colormap => custom_set
2649 procedure,
public :: get_colormap => custom_get
2654 module function cm_get_cmd(this) result(x)
2655 class(colormap),
intent(in) :: this
2656 character(len = :),
allocatable :: x
2659 pure module function cm_get_label(this) result(rst)
2660 class(colormap),
intent(in) :: this
2661 character(len = :),
allocatable :: rst
2664 module subroutine cm_set_label(this, x)
2665 class(colormap),
intent(inout) :: this
2666 character(len = *),
intent(in) :: x
2669 pure module function cm_get_horizontal(this) result(rst)
2670 class(colormap),
intent(in) :: this
2674 module subroutine cm_set_horizontal(this, x)
2675 class(colormap),
intent(inout) :: this
2676 logical,
intent(in) :: x
2679 pure module function cm_get_draw_border(this) result(rst)
2680 class(colormap),
intent(in) :: this
2684 module subroutine cm_set_draw_border(this, x)
2685 class(colormap),
intent(inout) :: this
2686 logical,
intent(in) :: x
2689 pure module function cm_get_show_tics(this) result(rst)
2690 class(colormap),
intent(in) :: this
2694 module subroutine cm_set_show_tics(this, x)
2695 class(colormap),
intent(inout) :: this
2696 logical,
intent(in) :: x
2701 module function rcm_get_clr(this) result(x)
2702 class(rainbow_colormap),
intent(in) :: this
2703 character(len = :),
allocatable :: x
2708 module function hcm_get_clr(this) result(x)
2709 class(hot_colormap),
intent(in) :: this
2710 character(len = :),
allocatable :: x
2715 module function ccm_get_clr(this) result(x)
2716 class(cool_colormap),
intent(in) :: this
2717 character(len = :),
allocatable :: x
2722 module function pcm_get_clr(this) result(x)
2723 class(parula_colormap),
intent(in) :: this
2724 character(len = :),
allocatable :: x
2729 module function gcm_get_clr(this) result(x)
2730 class(grey_colormap),
intent(in) :: this
2731 character(len = :),
allocatable :: x
2736 module function ecm_get_clr(this) result(x)
2737 class(earth_colormap),
intent(in) :: this
2738 character(len = :),
allocatable :: x
2742 module function custom_get_clr(this) result(x)
2743 class(custom_colormap),
intent(in) :: this
2744 character(len = :),
allocatable :: x
2748 module subroutine custom_set(this, map, err)
2749 class(custom_colormap),
intent(inout) :: this
2750 class(cmap),
intent(in) :: map
2751 class(errors),
intent(inout),
optional,
target :: err
2755 module function custom_get(this) result(rst)
2756 class(custom_colormap),
intent(in) :: this
2757 class(cmap),
pointer :: rst
2761 module subroutine custom_final(this)
2762 type(custom_colormap),
intent(inout) :: this
2772 type,
extends(plot_object) :: plot
2775 character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title =
""
2777 logical :: m_hastitle = .false.
2779 class(terminal),
pointer :: m_terminal => null()
2781 type(list) :: m_data
2783 type(legend),
pointer :: m_legend => null()
2785 logical :: m_showgrid = .true.
2787 logical :: m_ticsin = .true.
2789 logical :: m_drawborder = .true.
2791 type(list) :: m_labels
2793 integer(int32) :: m_colorindex = 1
2795 logical :: m_axisequal = .false.
2797 class(colormap),
pointer :: m_colormap
2799 logical :: m_showcolorbar = .true.
2801 type(list) :: m_arrows
2813 procedure,
public :: free_resources => plt_clean_up
2837 procedure,
public :: initialize => plt_init
2847 procedure,
public :: get_title => plt_get_title
2859 procedure,
public :: set_title => plt_set_title
2871 procedure,
public :: is_title_defined => plt_has_title
2881 procedure,
public :: get_legend => plt_get_legend
2891 procedure,
public :: get_count => plt_get_count
2907 procedure,
public :: push => plt_push_data
2916 procedure,
public :: pop => plt_pop_data
2925 procedure,
public :: clear_all => plt_clear_all
2936 procedure,
public :: get => plt_get
2947 procedure,
public :: set => plt_set
2957 procedure,
public :: get_terminal => plt_get_term
2967 procedure,
public :: get_show_gridlines => plt_get_show_grid
2977 procedure,
public :: set_show_gridlines => plt_set_show_grid
2996 procedure,
public :: draw => plt_draw
3012 procedure,
public :: save_file => plt_save
3022 procedure,
public :: get_font_name => plt_get_font
3032 procedure,
public :: set_font_name => plt_set_font
3042 procedure,
public :: get_font_size => plt_get_font_size
3054 procedure,
public :: set_font_size => plt_set_font_size
3066 procedure,
public :: get_tics_inward => plt_get_tics_in
3078 procedure,
public :: set_tics_inward => plt_set_tics_in
3088 procedure,
public :: get_draw_border => plt_get_draw_border
3098 procedure,
public :: set_draw_border => plt_set_draw_border
3111 procedure,
public :: push_label => plt_push_label
3120 procedure,
public :: pop_label => plt_pop_label
3131 procedure,
public :: get_label => plt_get_label
3142 procedure,
public :: set_label => plt_set_label
3152 procedure,
public :: get_label_count => plt_get_label_count
3161 procedure,
public :: clear_all_labels => plt_clear_labels
3172 procedure,
public :: get_axis_equal => plt_get_axis_equal
3183 procedure,
public :: set_axis_equal => plt_set_axis_equal
3194 procedure,
public :: get_colormap => plt_get_colormap
3212 procedure,
public :: set_colormap => plt_set_colormap
3222 procedure,
public :: get_show_colorbar => plt_get_show_colorbar
3232 procedure,
public :: set_show_colorbar => plt_set_show_colorbar
3243 procedure,
public :: get_command_string => plt_get_cmd
3257 procedure,
public :: push_arrow => plt_push_arrow
3266 procedure,
public :: pop_arrow => plt_pop_arrow
3276 procedure,
public :: get_arrow => plt_get_arrow
3288 procedure,
public :: set_arrow => plt_set_arrow
3300 procedure,
public :: get_arrow_count => plt_get_arrow_count
3309 procedure,
public :: clear_arrows => plt_clear_arrows
3314 module subroutine plt_clean_up(this)
3315 class(plot),
intent(inout) :: this
3318 module subroutine plt_init(this, term, fname, err)
3319 class(plot),
intent(inout) :: this
3320 integer(int32),
intent(in),
optional :: term
3321 character(len = *),
intent(in),
optional :: fname
3322 class(errors),
intent(inout),
optional,
target :: err
3325 module function plt_get_title(this) result(txt)
3326 class(plot),
intent(in) :: this
3327 character(len = :),
allocatable :: txt
3330 module subroutine plt_set_title(this, txt)
3331 class(plot),
intent(inout) :: this
3332 character(len = *),
intent(in) :: txt
3335 pure module function plt_has_title(this) result(x)
3336 class(plot),
intent(in) :: this
3340 module function plt_get_legend(this) result(x)
3341 class(plot),
intent(in) :: this
3342 type(legend),
pointer :: x
3345 pure module function plt_get_count(this) result(x)
3346 class(plot),
intent(in) :: this
3350 module subroutine plt_push_data(this, x, err)
3351 class(plot),
intent(inout) :: this
3352 class(plot_data),
intent(inout) :: x
3353 class(errors),
intent(inout),
optional,
target :: err
3356 module subroutine plt_pop_data(this)
3357 class(plot),
intent(inout) :: this
3360 module subroutine plt_clear_all(this)
3361 class(plot),
intent(inout) :: this
3364 module function plt_get(this, i) result(x)
3365 class(plot),
intent(in) :: this
3366 integer(int32),
intent(in) :: i
3367 class(plot_data),
pointer :: x
3370 module subroutine plt_set(this, i, x)
3371 class(plot),
intent(inout) :: this
3372 integer(int32),
intent(in) :: i
3373 class(plot_data),
intent(in) :: x
3376 module function plt_get_term(this) result(x)
3377 class(plot),
intent(in) :: this
3378 class(terminal),
pointer :: x
3381 pure module function plt_get_show_grid(this) result(x)
3382 class(plot),
intent(in) :: this
3386 module subroutine plt_set_show_grid(this, x)
3387 class(plot),
intent(inout) :: this
3388 logical,
intent(in) :: x
3391 module subroutine plt_draw(this, persist, err)
3392 class(plot),
intent(in) :: this
3393 logical,
intent(in),
optional :: persist
3394 class(errors),
intent(inout),
optional,
target :: err
3397 module subroutine plt_save(this, fname, err)
3398 class(plot),
intent(in) :: this
3399 character(len = *),
intent(in) :: fname
3400 class(errors),
intent(inout),
optional,
target :: err
3403 module function plt_get_font(this) result(x)
3404 class(plot),
intent(in) :: this
3405 character(len = :),
allocatable :: x
3408 module subroutine plt_set_font(this, x)
3409 class(plot),
intent(inout) :: this
3410 character(len = *),
intent(in) :: x
3413 module function plt_get_font_size(this) result(x)
3414 class(plot),
intent(in) :: this
3418 module subroutine plt_set_font_size(this, x)
3419 class(plot),
intent(inout) :: this
3420 integer(int32),
intent(in) :: x
3423 pure module function plt_get_tics_in(this) result(x)
3424 class(plot),
intent(in) :: this
3428 module subroutine plt_set_tics_in(this, x)
3429 class(plot),
intent(inout) :: this
3430 logical,
intent(in) :: x
3433 pure module function plt_get_draw_border(this) result(x)
3434 class(plot),
intent(in) :: this
3438 module subroutine plt_set_draw_border(this, x)
3439 class(plot),
intent(inout) :: this
3440 logical,
intent(in) :: x
3443 module subroutine plt_push_label(this, lbl, err)
3444 class(plot),
intent(inout) :: this
3445 class(plot_label),
intent(in) :: lbl
3446 class(errors),
intent(inout),
optional,
target :: err
3449 module subroutine plt_pop_label(this)
3450 class(plot),
intent(inout) :: this
3453 module function plt_get_label(this, i) result(x)
3454 class(plot),
intent(in) :: this
3455 integer(int32),
intent(in) :: i
3456 class(plot_label),
pointer :: x
3459 module subroutine plt_set_label(this, i, x)
3460 class(plot),
intent(inout) :: this
3461 integer(int32),
intent(in) :: i
3462 class(plot_label),
intent(in) :: x
3465 pure module function plt_get_label_count(this) result(x)
3466 class(plot),
intent(in) :: this
3470 module subroutine plt_clear_labels(this)
3471 class(plot),
intent(inout) :: this
3474 pure module function plt_get_axis_equal(this) result(rst)
3475 class(plot),
intent(in) :: this
3479 module subroutine plt_set_axis_equal(this, x)
3480 class(plot),
intent(inout) :: this
3481 logical,
intent(in) :: x
3484 module function plt_get_colormap(this) result(x)
3485 class(plot),
intent(in) :: this
3486 class(colormap),
pointer :: x
3489 module subroutine plt_set_colormap(this, x, err)
3490 class(plot),
intent(inout) :: this
3491 class(colormap),
intent(in) :: x
3492 class(errors),
intent(inout),
optional,
target :: err
3495 pure module function plt_get_show_colorbar(this) result(x)
3496 class(plot),
intent(in) :: this
3500 module subroutine plt_set_show_colorbar(this, x)
3501 class(plot),
intent(inout) :: this
3502 logical,
intent(in) :: x
3505 module function plt_get_cmd(this) result(x)
3506 class(plot),
intent(in) :: this
3507 character(len = :),
allocatable :: x
3510 module subroutine plt_push_arrow(this, x, err)
3511 class(plot),
intent(inout) :: this
3512 class(plot_arrow),
intent(in) :: x
3513 class(errors),
intent(inout),
optional,
target :: err
3516 module subroutine plt_pop_arrow(this)
3517 class(plot),
intent(inout) :: this
3520 module function plt_get_arrow(this, i) result(rst)
3521 class(plot),
intent(in) :: this
3522 integer(int32),
intent(in) :: i
3523 class(plot_arrow),
pointer :: rst
3526 module subroutine plt_set_arrow(this, i, x)
3527 class(plot),
intent(inout) :: this
3528 integer(int32),
intent(in) :: i
3529 class(plot_arrow),
intent(in) :: x
3532 pure module function plt_get_arrow_count(this) result(rst)
3533 class(plot),
intent(in) :: this
3534 integer(int32) :: rst
3537 module subroutine plt_clear_arrows(this)
3538 class(plot),
intent(inout) :: this
3546 type,
abstract,
extends(plot_data_colored) :: scatter_plot_data
3549 logical :: m_drawline = .true.
3551 logical :: m_drawmarkers = .false.
3553 integer(int32) :: m_markerfrequency = 1
3555 real(real32) :: m_linewidth = 1.0
3557 integer(int32) :: m_linestyle = line_solid
3559 integer(int32) :: m_markertype = marker_x
3561 real(real32) :: m_markersize = 1.0
3564 logical :: m_simplifydata = .true.
3568 real(real64) :: m_simplifyfactor = 1.0d-3
3570 logical :: m_datadependentcolors = .false.
3572 logical :: m_filledcurve = .false.
3574 logical :: m_usevariablesizepoints = .false.
3586 procedure,
public :: get_command_string => spd_get_cmd
3596 procedure,
public :: get_line_width => spd_get_line_width
3606 procedure,
public :: set_line_width => spd_set_line_width
3621 procedure,
public :: get_line_style => spd_get_line_style
3637 procedure,
public :: set_line_style => spd_set_line_style
3647 procedure,
public :: get_draw_line => spd_get_draw_line
3657 procedure,
public :: set_draw_line => spd_set_draw_line
3668 procedure,
public :: get_draw_markers => spd_get_draw_markers
3679 procedure,
public :: set_draw_markers => spd_set_draw_markers
3702 procedure,
public :: get_marker_style => spd_get_marker_style
3726 procedure,
public :: set_marker_style => spd_set_marker_style
3736 procedure,
public :: get_marker_scaling => spd_get_marker_scaling
3746 procedure,
public :: set_marker_scaling => spd_set_marker_scaling
3756 procedure,
public :: get_marker_frequency => spd_get_marker_frequency
3766 procedure,
public :: set_marker_frequency => spd_set_marker_frequency
3768 procedure(spd_get_int_value),
deferred,
public :: get_count
3770 procedure(spd_get_value),
deferred,
public :: get_x
3772 procedure(spd_set_value),
deferred,
public :: set_x
3774 procedure(spd_get_value),
deferred,
public :: get_y
3776 procedure(spd_set_value),
deferred,
public :: set_y
3779 procedure(spd_get_string_result),
deferred,
public :: get_axes_string
3791 procedure,
public :: get_simplify_data => spd_get_simplify_data
3803 procedure,
public :: set_simplify_data => spd_set_simplify_data
3813 procedure,
public :: get_simplification_factor => spd_get_simplify_factor
3825 procedure,
public :: set_simplification_factor => spd_set_simplify_factor
3837 procedure,
public :: get_use_data_dependent_colors => &
3838 spd_get_data_dependent_colors
3850 procedure,
public :: set_use_data_dependent_colors => &
3851 spd_set_data_dependent_colors
3862 procedure,
public :: get_fill_curve => spd_get_filled
3873 procedure,
public :: set_fill_curve => spd_set_filled
3885 procedure,
public :: get_use_variable_size_points => spd_get_use_var_point_size
3898 procedure,
public :: set_use_variable_size_points => spd_set_use_var_point_size
3903 module function spd_get_cmd(this) result(x)
3904 class(scatter_plot_data),
intent(in) :: this
3905 character(len = :),
allocatable :: x
3908 pure module function spd_get_line_width(this) result(x)
3909 class(scatter_plot_data),
intent(in) :: this
3913 module subroutine spd_set_line_width(this, x)
3914 class(scatter_plot_data),
intent(inout) :: this
3915 real(real32),
intent(in) :: x
3918 pure module function spd_get_line_style(this) result(x)
3919 class(scatter_plot_data),
intent(in) :: this
3923 module subroutine spd_set_line_style(this, x)
3924 class(scatter_plot_data),
intent(inout) :: this
3925 integer(int32),
intent(in) :: x
3928 pure module function spd_get_draw_line(this) result(x)
3929 class(scatter_plot_data),
intent(in) :: this
3933 module subroutine spd_set_draw_line(this, x)
3934 class(scatter_plot_data),
intent(inout) :: this
3935 logical,
intent(in) :: x
3938 pure module function spd_get_draw_markers(this) result(x)
3939 class(scatter_plot_data),
intent(in) :: this
3943 module subroutine spd_set_draw_markers(this, x)
3944 class(scatter_plot_data),
intent(inout) :: this
3945 logical,
intent(in) :: x
3948 pure module function spd_get_marker_style(this) result(x)
3949 class(scatter_plot_data),
intent(in) :: this
3953 module subroutine spd_set_marker_style(this, x)
3954 class(scatter_plot_data),
intent(inout) :: this
3955 integer(int32),
intent(in) :: x
3958 pure module function spd_get_marker_scaling(this) result(x)
3959 class(scatter_plot_data),
intent(in) :: this
3963 module subroutine spd_set_marker_scaling(this, x)
3964 class(scatter_plot_data),
intent(inout) :: this
3965 real(real32),
intent(in) :: x
3968 pure module function spd_get_marker_frequency(this) result(x)
3969 class(scatter_plot_data),
intent(in) :: this
3973 module subroutine spd_set_marker_frequency(this, x)
3974 class(scatter_plot_data),
intent(inout) :: this
3975 integer(int32),
intent(in) :: x
3978 pure module function spd_get_simplify_data(this) result(x)
3979 class(scatter_plot_data),
intent(in) :: this
3983 module subroutine spd_set_simplify_data(this, x)
3984 class(scatter_plot_data),
intent(inout) :: this
3985 logical,
intent(in) :: x
3988 pure module function spd_get_simplify_factor(this) result(x)
3989 class(scatter_plot_data),
intent(in) :: this
3993 module subroutine spd_set_simplify_factor(this, x)
3994 class(scatter_plot_data),
intent(inout) :: this
3995 real(real64),
intent(in) :: x
3998 pure module function spd_get_data_dependent_colors(this) result(rst)
3999 class(scatter_plot_data),
intent(in) :: this
4003 module subroutine spd_set_data_dependent_colors(this, x)
4004 class(scatter_plot_data),
intent(inout) :: this
4005 logical,
intent(in) :: x
4008 pure module function spd_get_filled(this) result(rst)
4009 class(scatter_plot_data),
intent(in) :: this
4013 module subroutine spd_set_filled(this, x)
4014 class(scatter_plot_data),
intent(inout) :: this
4015 logical,
intent(in) :: x
4018 pure module function spd_get_use_var_point_size(this) result(rst)
4019 class(scatter_plot_data),
intent(in) :: this
4023 module subroutine spd_set_use_var_point_size(this, x)
4024 class(scatter_plot_data),
intent(inout) :: this
4025 logical,
intent(in) :: x
4033 type,
extends(scatter_plot_data) :: plot_data_2d
4036 real(real64),
allocatable,
dimension(:,:) :: m_data
4038 logical :: m_usey2 = .false.
4050 procedure,
public :: get_axes_string => pd2d_get_axes_cmd
4061 procedure,
public :: get_data_string => pd2d_get_data_cmd
4071 procedure,
public :: get_count => pd2d_get_data_count
4082 procedure,
public :: get_x => pd2d_get_x_data
4093 procedure,
public :: set_x => pd2d_set_x_data
4104 procedure,
public :: get_y => pd2d_get_y_data
4115 procedure,
public :: set_y => pd2d_set_y_data
4127 procedure,
public :: get_draw_against_y2 => pd2d_get_draw_against_y2
4139 procedure,
public :: set_draw_against_y2 => pd2d_set_draw_against_y2
4199 generic,
public :: define_data => pd2d_set_data_1, pd2d_set_data_2
4200 procedure :: pd2d_set_data_1
4201 procedure :: pd2d_set_data_2
4212 procedure,
public :: get_x_data => pd2d_get_x_array
4222 procedure,
public :: get_y_data => pd2d_get_y_array
4232 procedure,
public :: get_color_data => pd2d_get_c_array
4242 procedure,
public :: get_point_size_data => pd2d_get_ps_array
4247 module function pd2d_get_axes_cmd(this) result(x)
4248 class(plot_data_2d),
intent(in) :: this
4249 character(len = :),
allocatable :: x
4252 module function pd2d_get_data_cmd(this) result(x)
4253 class(plot_data_2d),
intent(in) :: this
4254 character(len = :),
allocatable :: x
4257 pure module function pd2d_get_data_count(this) result(x)
4258 class(plot_data_2d),
intent(in) :: this
4262 pure module function pd2d_get_x_data(this, index) result(x)
4263 class(plot_data_2d),
intent(in) :: this
4264 integer(int32),
intent(in) :: index
4268 module subroutine pd2d_set_x_data(this, index, x)
4269 class(plot_data_2d),
intent(inout) :: this
4270 integer(int32),
intent(in) :: index
4271 real(real64),
intent(in) :: x
4274 pure module function pd2d_get_y_data(this, index) result(x)
4275 class(plot_data_2d),
intent(in) :: this
4276 integer(int32),
intent(in) :: index
4280 module subroutine pd2d_set_y_data(this, index, x)
4281 class(plot_data_2d),
intent(inout) :: this
4282 integer(int32),
intent(in) :: index
4283 real(real64),
intent(in) :: x
4286 module subroutine pd2d_set_data_1(this, x, y, c, ps, err)
4287 class(plot_data_2d),
intent(inout) :: this
4288 real(real64),
intent(in),
dimension(:) :: x, y
4289 real(real64),
intent(in),
dimension(:),
optional :: c, ps
4290 class(errors),
intent(inout),
optional,
target :: err
4293 pure module function pd2d_get_draw_against_y2(this) result(x)
4294 class(plot_data_2d),
intent(in) :: this
4298 module subroutine pd2d_set_draw_against_y2(this, x)
4299 class(plot_data_2d),
intent(inout) :: this
4300 logical,
intent(in) :: x
4303 module subroutine pd2d_set_data_2(this, y, err)
4304 class(plot_data_2d),
intent(inout) :: this
4305 real(real64),
intent(in),
dimension(:) :: y
4306 class(errors),
intent(inout),
optional,
target :: err
4309 module function pd2d_get_x_array(this) result(x)
4310 class(plot_data_2d),
intent(in) :: this
4311 real(real64),
allocatable,
dimension(:) :: x
4314 module function pd2d_get_y_array(this) result(x)
4315 class(plot_data_2d),
intent(in) :: this
4316 real(real64),
allocatable,
dimension(:) :: x
4319 module function pd2d_get_c_array(this) result(x)
4320 class(plot_data_2d),
intent(in) :: this
4321 real(real64),
allocatable,
dimension(:) :: x
4324 module function pd2d_get_ps_array(this) result(x)
4325 class(plot_data_2d),
intent(in) :: this
4326 real(real64),
allocatable,
dimension(:) :: x
4334 type,
extends(scatter_plot_data) :: plot_data_3d
4337 real(real64),
allocatable,
dimension(:,:) :: m_data
4348 procedure,
public :: get_count => pd3d_get_data_count
4359 procedure,
public :: get_x => pd3d_get_x_data
4370 procedure,
public :: set_x => pd3d_set_x_data
4381 procedure,
public :: get_y => pd3d_get_y_data
4392 procedure,
public :: set_y => pd3d_set_y_data
4403 procedure,
public :: get_z => pd3d_get_z_data
4414 procedure,
public :: set_z => pd3d_set_z_data
4425 procedure,
public :: get_axes_string => pd3d_get_axes_cmd
4436 procedure,
public :: get_data_string => pd3d_get_data_cmd
4456 procedure,
public :: define_data => pd3d_set_data_1
4466 procedure,
public :: get_x_data => pd3d_get_x_array
4476 procedure,
public :: get_y_data => pd3d_get_y_array
4486 procedure,
public :: get_z_data => pd3d_get_z_array
4496 procedure,
public :: get_color_data => pd3d_get_c_array
4506 procedure,
public :: get_point_size_data => pd3d_get_c_array
4511 pure module function pd3d_get_data_count(this) result(x)
4512 class(plot_data_3d),
intent(in) :: this
4516 pure module function pd3d_get_x_data(this, index) result(x)
4517 class(plot_data_3d),
intent(in) :: this
4518 integer(int32),
intent(in) :: index
4522 module subroutine pd3d_set_x_data(this, index, x)
4523 class(plot_data_3d),
intent(inout) :: this
4524 integer(int32),
intent(in) :: index
4525 real(real64),
intent(in) :: x
4528 pure module function pd3d_get_y_data(this, index) result(x)
4529 class(plot_data_3d),
intent(in) :: this
4530 integer(int32),
intent(in) :: index
4534 module subroutine pd3d_set_y_data(this, index, x)
4535 class(plot_data_3d),
intent(inout) :: this
4536 integer(int32),
intent(in) :: index
4537 real(real64),
intent(in) :: x
4540 pure module function pd3d_get_z_data(this, index) result(x)
4541 class(plot_data_3d),
intent(in) :: this
4542 integer(int32),
intent(in) :: index
4546 module subroutine pd3d_set_z_data(this, index, x)
4547 class(plot_data_3d),
intent(inout) :: this
4548 integer(int32),
intent(in) :: index
4549 real(real64),
intent(in) :: x
4552 module function pd3d_get_axes_cmd(this) result(x)
4553 class(plot_data_3d),
intent(in) :: this
4554 character(len = :),
allocatable :: x
4557 module function pd3d_get_data_cmd(this) result(x)
4558 class(plot_data_3d),
intent(in) :: this
4559 character(len = :),
allocatable :: x
4562 module subroutine pd3d_set_data_1(this, x, y, z, c, ps, err)
4563 class(plot_data_3d),
intent(inout) :: this
4564 real(real64),
intent(in),
dimension(:) :: x, y, z
4565 real(real64),
intent(in),
dimension(:),
optional :: c, ps
4566 class(errors),
intent(inout),
optional,
target :: err
4569 module function pd3d_get_x_array(this) result(x)
4570 class(plot_data_3d),
intent(in) :: this
4571 real(real64),
allocatable,
dimension(:) :: x
4574 module function pd3d_get_y_array(this) result(x)
4575 class(plot_data_3d),
intent(in) :: this
4576 real(real64),
allocatable,
dimension(:) :: x
4579 module function pd3d_get_z_array(this) result(x)
4580 class(plot_data_3d),
intent(in) :: this
4581 real(real64),
allocatable,
dimension(:) :: x
4584 module function pd3d_get_c_array(this) result(x)
4585 class(plot_data_3d),
intent(in) :: this
4586 real(real64),
allocatable,
dimension(:) :: x
4589 module function pd3d_get_ps_array(this) result(x)
4590 class(plot_data_3d),
intent(in) :: this
4591 real(real64),
allocatable,
dimension(:) :: x
4599 type,
extends(plot_data) :: surface_plot_data
4602 real(real64),
allocatable,
dimension(:,:) :: m_x
4604 real(real64),
allocatable,
dimension(:,:) :: m_y
4606 real(real64),
allocatable,
dimension(:,:) :: m_z
4609 logical :: m_wireframe = .false.
4622 procedure,
public :: get_size => surfd_get_size
4634 procedure,
public :: get_x => surfd_get_x
4646 procedure,
public :: set_x => surfd_set_x
4658 procedure,
public :: get_y => surfd_get_y
4670 procedure,
public :: set_y => surfd_set_y
4682 procedure,
public :: get_z => surfd_get_z
4694 procedure,
public :: set_z => surfd_set_z
4706 procedure,
public :: get_use_wireframe => surfd_get_wireframe
4718 procedure,
public :: set_use_wireframe => surfd_set_wireframe
4729 procedure,
public :: get_command_string => surfd_get_cmd
4740 procedure,
public :: get_data_string => surfd_get_data_cmd
4760 procedure,
public :: define_data => surfd_set_data_1
4765 pure module function surfd_get_size(this, dim) result(x)
4766 class(surface_plot_data),
intent(in) :: this
4767 integer(int32),
intent(in) :: dim
4771 pure module function surfd_get_x(this, i, j) result(x)
4772 class(surface_plot_data),
intent(in) :: this
4773 integer(int32),
intent(in) :: i, j
4777 module subroutine surfd_set_x(this, i, j, x)
4778 class(surface_plot_data),
intent(inout) :: this
4779 integer(int32),
intent(in) :: i, j
4780 real(real64),
intent(in) :: x
4783 pure module function surfd_get_y(this, i, j) result(x)
4784 class(surface_plot_data),
intent(in) :: this
4785 integer(int32),
intent(in) :: i, j
4789 module subroutine surfd_set_y(this, i, j, x)
4790 class(surface_plot_data),
intent(inout) :: this
4791 integer(int32),
intent(in) :: i, j
4792 real(real64),
intent(in) :: x
4795 pure module function surfd_get_z(this, i, j) result(x)
4796 class(surface_plot_data),
intent(in) :: this
4797 integer(int32),
intent(in) :: i, j
4801 module subroutine surfd_set_z(this, i, j, x)
4802 class(surface_plot_data),
intent(inout) :: this
4803 integer(int32),
intent(in) :: i, j
4804 real(real64),
intent(in) :: x
4807 pure module function surfd_get_wireframe(this) result(x)
4808 class(surface_plot_data),
intent(in) :: this
4812 module subroutine surfd_set_wireframe(this, x)
4813 class(surface_plot_data),
intent(inout) :: this
4814 logical,
intent(in) :: x
4817 module function surfd_get_cmd(this) result(x)
4818 class(surface_plot_data),
intent(in) :: this
4819 character(len = :),
allocatable :: x
4822 module function surfd_get_data_cmd(this) result(x)
4823 class(surface_plot_data),
intent(in) :: this
4824 character(len = :),
allocatable :: x
4827 module subroutine surfd_set_data_1(this, x, y, z, err)
4828 class(surface_plot_data),
intent(inout) :: this
4829 real(real64),
intent(in),
dimension(:,:) :: x, y, z
4830 class(errors),
intent(inout),
optional,
target :: err
4838 type,
extends(plot) :: plot_2d
4841 type(x_axis),
pointer :: m_xaxis => null()
4843 type(y_axis),
pointer :: m_yaxis => null()
4845 type(y2_axis),
pointer :: m_y2axis => null()
4847 logical :: m_usey2 = .false.
4849 logical :: m_set2square = .false.
4859 final :: p2d_clean_up
4883 procedure,
public :: initialize => p2d_init
4894 procedure,
public :: get_command_string => p2d_get_cmd
4905 procedure,
public :: get_x_axis => p2d_get_x_axis
4915 procedure,
public :: get_y_axis => p2d_get_y_axis
4925 procedure,
public :: get_y2_axis => p2d_get_y2_axis
4936 procedure,
public :: get_use_y2_axis => p2d_get_use_y2
4947 procedure,
public :: set_use_y2_axis => p2d_set_use_y2
4959 procedure,
public :: get_square_axes => p2d_get_square_axes
4971 procedure,
public :: set_square_axes => p2d_set_square_axes
4976 module subroutine p2d_clean_up(this)
4977 type(plot_2d),
intent(inout) :: this
4980 module subroutine p2d_init(this, term, fname, err)
4981 class(plot_2d),
intent(inout) :: this
4982 integer(int32),
intent(in),
optional :: term
4983 character(len = *),
intent(in),
optional :: fname
4984 class(errors),
intent(inout),
optional,
target :: err
4987 module function p2d_get_cmd(this) result(x)
4988 class(plot_2d),
intent(in) :: this
4989 character(len = :),
allocatable :: x
4992 module function p2d_get_x_axis(this) result(ptr)
4993 class(plot_2d),
intent(in) :: this
4994 class(plot_axis),
pointer :: ptr
4997 module function p2d_get_y_axis(this) result(ptr)
4998 class(plot_2d),
intent(in) :: this
4999 class(plot_axis),
pointer :: ptr
5002 module function p2d_get_y2_axis(this) result(ptr)
5003 class(plot_2d),
intent(in) :: this
5004 class(plot_axis),
pointer :: ptr
5007 pure module function p2d_get_use_y2(this) result(x)
5008 class(plot_2d),
intent(in) :: this
5012 module subroutine p2d_set_use_y2(this, x)
5013 class(plot_2d),
intent(inout) :: this
5014 logical,
intent(in) :: x
5017 pure module function p2d_get_square_axes(this) result(rst)
5018 class(plot_2d),
intent(in) :: this
5022 module subroutine p2d_set_square_axes(this, x)
5023 class(plot_2d),
intent(inout) :: this
5024 logical,
intent(in) :: x
5032 type,
extends(plot) :: plot_3d
5035 type(x_axis),
pointer :: m_xaxis => null()
5037 type(y_axis),
pointer :: m_yaxis => null()
5039 type(z_axis),
pointer :: m_zaxis => null()
5041 real(real64) :: m_elevation = 60.0d0
5043 real(real64) :: m_azimuth = 30.0d0
5045 logical :: m_zintersect = .true.
5047 logical :: m_setmap = .false.
5049 integer(int32) :: m_csys = coordinates_cartesian
5054 final :: p3d_clean_up
5078 procedure,
public :: initialize => p3d_init
5089 procedure,
public :: get_command_string => p3d_get_cmd
5099 procedure,
public :: get_x_axis => p3d_get_x_axis
5109 procedure,
public :: get_y_axis => p3d_get_y_axis
5119 procedure,
public :: get_z_axis => p3d_get_z_axis
5129 procedure,
public :: get_elevation => p3d_get_elevation
5139 procedure,
public :: set_elevation => p3d_set_elevation
5149 procedure,
public :: get_azimuth => p3d_get_azimuth
5159 procedure,
public :: set_azimuth => p3d_set_azimuth
5171 procedure,
public :: get_z_intersect_xy => p3d_get_z_axis_intersect
5183 procedure,
public :: set_z_intersect_xy => p3d_set_z_axis_intersect
5194 procedure,
public :: get_use_map_view => p3d_get_use_map_view
5205 procedure,
public :: set_use_map_view => p3d_set_use_map_view
5218 procedure,
public :: get_coordinate_system => p3d_get_csys
5232 procedure,
public :: set_coordinate_system => p3d_set_csys
5237 module subroutine p3d_clean_up(this)
5238 type(plot_3d),
intent(inout) :: this
5241 module subroutine p3d_init(this, term, fname, err)
5242 class(plot_3d),
intent(inout) :: this
5243 integer(int32),
intent(in),
optional :: term
5244 character(len = *),
intent(in),
optional :: fname
5245 class(errors),
intent(inout),
optional,
target :: err
5248 module function p3d_get_cmd(this) result(x)
5249 class(plot_3d),
intent(in) :: this
5250 character(len = :),
allocatable :: x
5253 module function p3d_get_x_axis(this) result(ptr)
5254 class(plot_3d),
intent(in) :: this
5255 class(plot_axis),
pointer :: ptr
5258 module function p3d_get_y_axis(this) result(ptr)
5259 class(plot_3d),
intent(in) :: this
5260 class(plot_axis),
pointer :: ptr
5263 module function p3d_get_z_axis(this) result(ptr)
5264 class(plot_3d),
intent(in) :: this
5265 class(plot_axis),
pointer :: ptr
5268 pure module function p3d_get_elevation(this) result(x)
5269 class(plot_3d),
intent(in) :: this
5273 module subroutine p3d_set_elevation(this, x)
5274 class(plot_3d),
intent(inout) :: this
5275 real(real64),
intent(in) :: x
5278 pure module function p3d_get_azimuth(this) result(x)
5279 class(plot_3d),
intent(in) :: this
5283 module subroutine p3d_set_azimuth(this, x)
5284 class(plot_3d),
intent(inout) :: this
5285 real(real64),
intent(in) :: x
5288 pure module function p3d_get_z_axis_intersect(this) result(x)
5289 class(plot_3d),
intent(in) :: this
5293 module subroutine p3d_set_z_axis_intersect(this, x)
5294 class(plot_3d),
intent(inout) :: this
5295 logical,
intent(in) :: x
5298 pure module function p3d_get_use_map_view(this) result(rst)
5299 class(plot_3d),
intent(in) :: this
5303 module subroutine p3d_set_use_map_view(this, x)
5304 class(plot_3d),
intent(inout) :: this
5305 logical,
intent(in) :: x
5308 pure module function p3d_get_csys(this) result(rst)
5309 class(plot_3d),
intent(in) :: this
5310 integer(int32) :: rst
5313 module subroutine p3d_set_csys(this, x)
5314 class(plot_3d),
intent(inout) :: this
5315 integer(int32),
intent(in) :: x
5323 type,
extends(plot_3d) :: surface_plot
5326 logical :: m_showhidden = .false.
5330 logical :: m_smooth = .true.
5332 logical :: m_contour = .false.
5336 logical :: m_uselighting = .false.
5338 real(real32) :: m_lightintensity = 0.5
5340 real(real32) :: m_specular = 0.5
5342 real(real32) :: m_transparency = 1.0
5371 procedure,
public :: initialize => surf_init
5381 procedure,
public :: get_show_hidden => surf_get_show_hidden
5391 procedure,
public :: set_show_hidden => surf_set_show_hidden
5402 procedure,
public :: get_command_string => surf_get_cmd
5413 procedure,
public :: get_allow_smoothing => surf_get_smooth
5424 procedure,
public :: set_allow_smoothing => surf_set_smooth
5436 procedure,
public :: get_show_contours => surf_get_show_contours
5448 procedure,
public :: set_show_contours => surf_set_show_contours
5459 procedure,
public :: get_use_lighting => surf_get_use_lighting
5470 procedure,
public :: set_use_lighting => surf_set_use_lighting
5481 procedure,
public :: get_light_intensity => surf_get_light_intensity
5493 procedure,
public :: set_light_intensity => surf_set_light_intensity
5504 procedure,
public :: get_specular_intensity => surf_get_specular_intensity
5517 procedure,
public :: set_specular_intensity => surf_set_specular_intensity
5528 procedure,
public :: get_transparency => surf_get_transparency
5541 procedure,
public :: set_transparency => surf_set_transparency
5550 module subroutine surf_init(this, term, fname, err)
5551 class(surface_plot),
intent(inout) :: this
5552 integer(int32),
intent(in),
optional :: term
5553 character(len = *),
intent(in),
optional :: fname
5554 class(errors),
intent(inout),
optional,
target :: err
5557 pure module function surf_get_show_hidden(this) result(x)
5558 class(surface_plot),
intent(in) :: this
5562 module subroutine surf_set_show_hidden(this, x)
5563 class(surface_plot),
intent(inout) :: this
5564 logical,
intent(in) :: x
5567 module function surf_get_cmd(this) result(x)
5568 class(surface_plot),
intent(in) :: this
5569 character(len = :),
allocatable :: x
5583 pure module function surf_get_smooth(this) result(x)
5584 class(surface_plot),
intent(in) :: this
5588 module subroutine surf_set_smooth(this, x)
5589 class(surface_plot),
intent(inout) :: this
5590 logical,
intent(in) :: x
5593 pure module function surf_get_show_contours(this) result(x)
5594 class(surface_plot),
intent(in) :: this
5598 module subroutine surf_set_show_contours(this, x)
5599 class(surface_plot),
intent(inout) :: this
5600 logical,
intent(in) :: x
5613 pure module function surf_get_use_lighting(this) result(x)
5614 class(surface_plot),
intent(in) :: this
5618 module subroutine surf_set_use_lighting(this, x)
5619 class(surface_plot),
intent(inout) :: this
5620 logical,
intent(in) :: x
5623 pure module function surf_get_light_intensity(this) result(x)
5624 class(surface_plot),
intent(in) :: this
5628 module subroutine surf_set_light_intensity(this, x)
5629 class(surface_plot),
intent(inout) :: this
5630 real(real32),
intent(in) :: x
5633 pure module function surf_get_specular_intensity(this) result(x)
5634 class(surface_plot),
intent(in) :: this
5638 module subroutine surf_set_specular_intensity(this, x)
5639 class(surface_plot),
intent(inout) :: this
5640 real(real32),
intent(in) :: x
5643 pure module function surf_get_transparency(this) result(x)
5644 class(surface_plot),
intent(in) :: this
5648 module subroutine surf_set_transparency(this, x)
5649 class(surface_plot),
intent(inout) :: this
5650 real(real32),
intent(in) :: x
5666 type,
extends(plot_axis) :: x_axis
5668 character :: m_id =
"x"
5671 procedure,
public :: get_id_string => xa_get_id
5684 type,
extends(plot_axis) :: y_axis
5686 character :: m_id =
"y"
5689 procedure,
public :: get_id_string => ya_get_id
5702 type,
extends(plot_axis) :: y2_axis
5704 character(len = 2) :: m_id =
"y2"
5707 procedure,
public :: get_id_string => y2a_get_id
5720 type,
extends(plot_axis) :: z_axis
5722 character :: m_id =
"z"
5725 procedure,
public :: get_id_string => za_get_id
5730 module function xa_get_id(this) result(x)
5731 class(x_axis),
intent(in) :: this
5732 character(len = :),
allocatable :: x
5735 module function ya_get_id(this) result(x)
5736 class(y_axis),
intent(in) :: this
5737 character(len = :),
allocatable :: x
5740 module function y2a_get_id(this) result(x)
5741 class(y2_axis),
intent(in) :: this
5742 character(len = :),
allocatable :: x
5745 module function za_get_id(this) result(x)
5746 class(z_axis),
intent(in) :: this
5747 character(len = :),
allocatable :: x
5759 function get_string_result(this)
result(x)
5761 class(plot_object),
intent(in) :: this
5762 character(len = :),
allocatable :: x
5769 function term_get_string_result(this)
result(x)
5771 class(terminal),
intent(in) :: this
5772 character(len = :),
allocatable :: x
5779 function pd_get_string_result(this)
result(x)
5781 class(plot_data),
intent(in) :: this
5782 character(len = :),
allocatable :: x
5789 function pa_get_string_result(this)
result(x)
5791 class(plot_axis),
intent(in) :: this
5792 character(len = :),
allocatable :: x
5800 pure function spd_get_value(this, index)
result(x)
5801 use,
intrinsic :: iso_fortran_env, only : int32, real64
5802 import scatter_plot_data
5803 class(scatter_plot_data),
intent(in) :: this
5804 integer(int32),
intent(in) :: index
5813 subroutine spd_set_value(this, index, x)
5814 use,
intrinsic :: iso_fortran_env, only : int32, real64
5815 import scatter_plot_data
5816 class(scatter_plot_data),
intent(inout) :: this
5817 integer(int32),
intent(in) :: index
5818 real(real64),
intent(in) :: x
5825 pure function spd_get_int_value(this)
result(x)
5826 use,
intrinsic :: iso_fortran_env, only : int32
5827 import scatter_plot_data
5828 class(scatter_plot_data),
intent(in) :: this
5836 function spd_get_string_result(this)
result(x)
5837 import scatter_plot_data
5838 class(scatter_plot_data),
intent(in) :: this
5839 character(len = :),
allocatable :: x
5846 function cm_get_string_result(this)
result(x)
5848 class(colormap),
intent(in) :: this
5849 character(len = :),
allocatable :: x
5857 type,
extends(plot_object) :: multiplot
5859 type(list) :: m_plots
5861 integer(int32) :: m_rows = 0
5863 integer(int32) :: m_cols = 0
5865 character(len = PLOTDATA_MAX_NAME_LENGTH) :: m_title
5867 logical :: m_hastitle = .false.
5869 class(terminal),
pointer :: m_terminal => null()
5872 procedure,
public :: get_command_string => mp_get_command
5894 procedure,
public :: initialize => mp_init
5904 procedure,
public :: get_row_count => mp_get_rows
5914 procedure,
public :: get_column_count => mp_get_cols
5924 procedure,
public :: get_plot_count => mp_get_count
5934 procedure,
public :: get_title => mp_get_title
5946 procedure,
public :: set_title => mp_set_title
5965 procedure,
public :: draw => mp_draw
5977 procedure,
public :: get => mp_get
5989 procedure,
public :: set => mp_set
6001 procedure,
public :: is_title_defined => mp_has_title
6011 procedure,
public :: get_terminal => mp_get_term
6027 procedure,
public :: save_file => mp_save
6037 procedure,
public :: get_font_name => mp_get_font
6047 procedure,
public :: set_font_name => mp_set_font
6057 procedure,
public :: get_font_size => mp_get_font_size
6069 procedure,
public :: set_font_size => mp_set_font_size
6074 module function mp_get_command(this) result(x)
6075 class(multiplot),
intent(in) :: this
6076 character(len = :),
allocatable :: x
6079 module subroutine mp_init(this, m, n, term, err)
6080 class(multiplot),
intent(inout) :: this
6081 integer(int32),
intent(in) :: m, n
6082 integer(int32),
intent(in),
optional :: term
6083 class(errors),
intent(inout),
optional,
target :: err
6086 module subroutine mp_clean(this)
6087 type(multiplot),
intent(inout) :: this
6090 pure module function mp_get_rows(this) result(x)
6091 class(multiplot),
intent(in) :: this
6095 pure module function mp_get_cols(this) result(x)
6096 class(multiplot),
intent(in) :: this
6100 pure module function mp_get_count(this) result(x)
6101 class(multiplot),
intent(in) :: this
6105 module function mp_get_title(this) result(x)
6106 class(multiplot),
intent(in) :: this
6107 character(len = :),
allocatable :: x
6110 module subroutine mp_set_title(this, x)
6111 class(multiplot),
intent(inout) :: this
6112 character(len = *),
intent(in) :: x
6115 module subroutine mp_draw(this, persist, err)
6116 class(multiplot),
intent(in) :: this
6117 logical,
intent(in),
optional :: persist
6118 class(errors),
intent(inout),
optional,
target :: err
6121 module function mp_get(this, i, j) result(x)
6122 class(multiplot),
intent(in) :: this
6123 integer(int32),
intent(in) :: i, j
6124 class(plot),
pointer :: x
6127 module subroutine mp_set(this, i, j, x)
6128 class(multiplot),
intent(inout) :: this
6129 integer(int32),
intent(in) :: i, j
6130 class(plot),
intent(in) :: x
6133 pure module function mp_has_title(this) result(x)
6134 class(multiplot),
intent(in) :: this
6138 module function mp_get_term(this) result(x)
6139 class(multiplot),
intent(in) :: this
6140 class(terminal),
pointer :: x
6143 module subroutine mp_save(this, fname, err)
6144 class(multiplot),
intent(in) :: this
6145 character(len = *),
intent(in) :: fname
6146 class(errors),
intent(inout),
optional,
target :: err
6149 module function mp_get_font(this) result(x)
6150 class(multiplot),
intent(in) :: this
6151 character(len = :),
allocatable :: x
6154 module subroutine mp_set_font(this, x)
6155 class(multiplot),
intent(inout) :: this
6156 character(len = *),
intent(in) :: x
6159 module function mp_get_font_size(this) result(x)
6160 class(multiplot),
intent(in) :: this
6164 module subroutine mp_set_font_size(this, x)
6165 class(multiplot),
intent(inout) :: this
6166 integer(int32),
intent(in) :: x
6174 type,
extends(plot_data_colored) :: plot_data_error_bars
6176 logical :: m_xbars = .false.
6178 logical :: m_ybars = .false.
6182 real(real64),
allocatable,
dimension(:,:) :: m_data
6184 logical :: m_box = .false.
6186 logical :: m_range = .false.
6188 procedure,
public :: get_command_string => pde_get_cmd
6189 procedure,
public :: get_data_string => pde_get_data_cmd
6221 generic,
public :: define_x_error_data => pde_define_x_err, &
6222 pde_define_x_err_lim
6254 generic,
public :: define_y_error_data => pde_define_y_err, &
6255 pde_define_y_err_lim
6293 generic,
public :: define_xy_error_data => pde_define_xy_err, &
6294 pde_define_xy_err_lim
6306 procedure,
public :: get_plot_x_error_bars => pde_get_plot_x_err
6318 procedure,
public :: get_plot_y_error_bars => pde_get_plot_y_err
6323 procedure,
public :: get_count => pde_get_count
6338 procedure,
public :: get_use_error_box => pde_get_box
6353 procedure,
public :: set_use_error_box => pde_set_box
6364 procedure,
public :: get_use_range => pde_get_use_range
6366 procedure :: pde_define_x_err
6367 procedure :: pde_define_y_err
6368 procedure :: pde_define_xy_err
6369 procedure :: pde_define_x_err_lim
6370 procedure :: pde_define_y_err_lim
6371 procedure :: pde_define_xy_err_lim
6376 module function pde_get_cmd(this) result(cmd)
6377 class(plot_data_error_bars),
intent(in) :: this
6378 character(len = :),
allocatable :: cmd
6381 module function pde_get_data_cmd(this) result(cmd)
6382 class(plot_data_error_bars),
intent(in) :: this
6383 character(len = :),
allocatable :: cmd
6386 module subroutine pde_define_x_err(this, x, y, xerr, err)
6387 class(plot_data_error_bars),
intent(inout) :: this
6388 real(real64),
intent(in),
dimension(:) :: x, y, xerr
6389 class(errors),
intent(inout),
optional,
target :: err
6392 module subroutine pde_define_y_err(this, x, y, yerr, err)
6393 class(plot_data_error_bars),
intent(inout) :: this
6394 real(real64),
intent(in),
dimension(:) :: x, y, yerr
6395 class(errors),
intent(inout),
optional,
target :: err
6398 module subroutine pde_define_xy_err(this, x, y, xerr, yerr, err)
6399 class(plot_data_error_bars),
intent(inout) :: this
6400 real(real64),
intent(in),
dimension(:) :: x, y, xerr, yerr
6401 class(errors),
intent(inout),
optional,
target :: err
6404 pure module function pde_get_plot_x_err(this) result(x)
6405 class(plot_data_error_bars),
intent(in) :: this
6409 pure module function pde_get_plot_y_err(this) result(x)
6410 class(plot_data_error_bars),
intent(in) :: this
6414 pure module function pde_get_count(this) result(x)
6415 class(plot_data_error_bars),
intent(in) :: this
6419 pure module function pde_get_box(this) result(x)
6420 class(plot_data_error_bars),
intent(in) :: this
6424 module subroutine pde_set_box(this, x)
6425 class(plot_data_error_bars),
intent(inout) :: this
6426 logical,
intent(in) :: x
6429 pure module function pde_get_use_range(this) result(x)
6430 class(plot_data_error_bars),
intent(in) :: this
6434 module subroutine pde_define_x_err_lim(this, x, y, xmin, xmax, err)
6435 class(plot_data_error_bars),
intent(inout) :: this
6436 real(real64),
intent(in),
dimension(:) :: x, y, xmin, xmax
6437 class(errors),
intent(inout),
optional,
target :: err
6440 module subroutine pde_define_y_err_lim(this, x, y, ymin, ymax, err)
6441 class(plot_data_error_bars),
intent(inout) :: this
6442 real(real64),
intent(in),
dimension(:) :: x, y, ymin, ymax
6443 class(errors),
intent(inout),
optional,
target :: err
6446 module subroutine pde_define_xy_err_lim(this, x, y, xmin, xmax, ymin, &
6448 class(plot_data_error_bars),
intent(inout) :: this
6449 real(real64),
intent(in),
dimension(:) :: x, y, xmin, xmax, &
6451 class(errors),
intent(inout),
optional,
target :: err
6459 type,
extends(plot_data_colored) :: plot_data_bar
6462 type(string),
allocatable,
dimension(:) :: m_axislabels
6465 real(real64),
allocatable,
dimension(:,:) :: m_bardata
6469 logical :: m_useaxislabels = .true.
6471 logical :: m_usey2 = .false.
6473 logical :: m_filled = .true.
6475 real(real32) :: m_alpha = 1.0
6477 procedure,
public :: get_count => pdb_get_count
6478 procedure,
public :: get => pdb_get_data
6479 procedure,
public :: set => pdb_set_data
6480 procedure,
public :: get_data => pdb_get_data_set
6481 procedure,
public :: get_label => pdb_get_label
6482 procedure,
public :: set_label => pdb_set_label
6483 procedure,
public :: get_use_labels => pdb_get_use_labels
6484 procedure,
public :: set_use_labels => pdb_set_use_labels
6485 procedure,
public :: get_command_string => pdb_get_cmd
6486 procedure,
public :: get_data_string => pdb_get_data_cmd
6487 procedure,
public :: get_axes_string => pdb_get_axes_cmd
6488 procedure,
public :: get_bar_per_label_count => pdb_get_col_count
6489 procedure,
public :: get_draw_against_y2 => pdb_get_use_y2
6490 procedure,
public :: set_draw_against_y2 => pdb_set_use_y2
6491 procedure,
public :: get_is_filled => pdb_get_is_filled
6492 procedure,
public :: set_is_filled => pdb_set_is_filled
6493 procedure,
public :: get_transparency => pdb_get_alpha
6494 procedure,
public :: set_transparency => pdb_set_alpha
6495 generic,
public :: define_data => pdb_set_data_1, pdb_set_data_2, &
6497 procedure :: pdb_set_data_1
6498 procedure :: pdb_set_data_2
6499 procedure :: pdb_set_data_3
6500 procedure :: set_data_1 => pdb_set_data_1_core
6501 procedure :: set_data_2 => pdb_set_data_2_core
6502 procedure :: set_data_3 => pdb_set_data_3_core
6507 pure module function pdb_get_count(this) result(x)
6508 class(plot_data_bar),
intent(in) :: this
6512 pure module function pdb_get_data(this, index, col) result(x)
6513 class(plot_data_bar),
intent(in) :: this
6514 integer(int32),
intent(in) :: index, col
6518 module subroutine pdb_set_data(this, index, col, x)
6519 class(plot_data_bar),
intent(inout) :: this
6520 integer(int32),
intent(in) :: index, col
6521 real(real64),
intent(in) :: x
6524 pure module function pdb_get_data_set(this, col) result(x)
6525 class(plot_data_bar),
intent(in) :: this
6526 integer(int32),
intent(in) :: col
6527 real(real64),
allocatable,
dimension(:) :: x
6530 pure module function pdb_get_label(this, index) result(x)
6531 class(plot_data_bar),
intent(in) :: this
6532 integer(int32),
intent(in) :: index
6533 character(len = :),
allocatable :: x
6536 module subroutine pdb_set_label(this, index, txt)
6537 class(plot_data_bar),
intent(inout) :: this
6538 integer(int32) :: index
6539 character(len = *),
intent(in) :: txt
6542 pure module function pdb_get_use_labels(this) result(x)
6543 class(plot_data_bar),
intent(in) :: this
6547 module subroutine pdb_set_use_labels(this, x)
6548 class(plot_data_bar),
intent(inout) :: this
6549 logical,
intent(in) :: x
6552 module function pdb_get_cmd(this) result(x)
6553 class(plot_data_bar),
intent(in) :: this
6554 character(len = :),
allocatable :: x
6557 module function pdb_get_data_cmd(this) result(x)
6558 class(plot_data_bar),
intent(in) :: this
6559 character(len = :),
allocatable :: x
6562 module function pdb_get_axes_cmd(this) result(x)
6563 class(plot_data_bar),
intent(in) :: this
6564 character(len = :),
allocatable :: x
6567 pure module function pdb_get_col_count(this) result(x)
6568 class(plot_data_bar),
intent(in) :: this
6572 pure module function pdb_get_use_y2(this) result(x)
6573 class(plot_data_bar),
intent(in) :: this
6577 module subroutine pdb_set_use_y2(this, x)
6578 class(plot_data_bar),
intent(inout) :: this
6579 logical,
intent(in) :: x
6582 pure module function pdb_get_is_filled(this) result(x)
6583 class(plot_data_bar),
intent(in) :: this
6587 module subroutine pdb_set_is_filled(this, x)
6588 class(plot_data_bar),
intent(inout) :: this
6589 logical,
intent(in) :: x
6592 module subroutine pdb_set_data_1(this, x, err)
6593 class(plot_data_bar),
intent(inout) :: this
6594 real(real64),
intent(in),
dimension(:) :: x
6595 class(errors),
intent(inout),
optional,
target :: err
6598 module subroutine pdb_set_data_2(this, labels, x, err)
6599 class(plot_data_bar),
intent(inout) :: this
6600 class(string),
intent(in),
dimension(:) :: labels
6601 real(real64),
intent(in),
dimension(:) :: x
6602 class(errors),
intent(inout),
optional,
target :: err
6605 module subroutine pdb_set_data_3(this, labels, x, fmt, err)
6606 class(plot_data_bar),
intent(inout) :: this
6607 real(real64),
intent(in),
dimension(:) :: labels
6608 real(real64),
intent(in),
dimension(:) :: x
6609 character(len = *),
intent(in),
optional :: fmt
6610 class(errors),
intent(inout),
optional,
target :: err
6613 pure module function pdb_get_alpha(this) result(x)
6614 class(plot_data_bar),
intent(in) :: this
6618 module subroutine pdb_set_alpha(this, x)
6619 class(plot_data_bar),
intent(inout) :: this
6620 real(real32),
intent(in) :: x
6623 module subroutine pdb_set_data_1_core(this, x, err)
6624 class(plot_data_bar),
intent(inout) :: this
6625 real(real64),
intent(in),
dimension(:) :: x
6626 class(errors),
intent(inout),
optional,
target :: err
6629 module subroutine pdb_set_data_2_core(this, labels, x, err)
6630 class(plot_data_bar),
intent(inout) :: this
6631 class(string),
intent(in),
dimension(:) :: labels
6632 real(real64),
intent(in),
dimension(:) :: x
6633 class(errors),
intent(inout),
optional,
target :: err
6636 module subroutine pdb_set_data_3_core(this, labels, x, fmt, err)
6637 class(plot_data_bar),
intent(inout) :: this
6638 real(real64),
intent(in),
dimension(:) :: labels
6639 real(real64),
intent(in),
dimension(:) :: x
6640 character(len = *),
intent(in),
optional :: fmt
6641 class(errors),
intent(inout),
optional,
target :: err
6649 type,
extends(plot_data_bar) :: plot_data_histogram
6652 integer(int32) :: m_bincount = 10
6654 character(len = :),
allocatable :: m_numberfmt
6656 procedure,
public :: get_bin_count => pdh_get_bin_count
6657 procedure,
public :: set_bin_count => pdh_set_bin_count
6658 procedure,
public :: bin_data => pdh_bin_data
6659 procedure,
public :: get_extreme_values => pdh_get_extremes
6660 procedure,
public :: get_number_format => pdh_get_num_fmt
6661 procedure,
public :: set_number_format => pdh_set_num_fmt
6662 procedure :: set_data_1 => pdh_set_data_1
6663 procedure :: set_data_2 => pdh_set_data_2
6664 procedure :: set_data_3 => pdh_set_data_3
6669 pure module function pdh_get_bin_count(this) result(x)
6670 class(plot_data_histogram),
intent(in) :: this
6674 module subroutine pdh_set_bin_count(this, x)
6675 class(plot_data_histogram),
intent(inout) :: this
6676 integer(int32),
intent(in) :: x
6679 module function pdh_bin_data(this, x, err) result(bx)
6680 class(plot_data_histogram),
intent(in) :: this
6681 real(real64),
intent(in),
dimension(:) :: x
6682 class(errors),
intent(inout),
optional,
target :: err
6683 real(real64),
allocatable,
dimension(:,:) :: bx
6686 pure module function pdh_get_extremes(this) result(x)
6687 class(plot_data_histogram),
intent(in) :: this
6688 real(real64),
dimension(2) :: x
6691 module subroutine pdh_set_data_1(this, x, err)
6692 class(plot_data_histogram),
intent(inout) :: this
6693 real(real64),
intent(in),
dimension(:) :: x
6694 class(errors),
intent(inout),
optional,
target :: err
6697 module subroutine pdh_set_data_2(this, labels, x, err)
6698 class(plot_data_histogram),
intent(inout) :: this
6699 class(string),
intent(in),
dimension(:) :: labels
6700 real(real64),
intent(in),
dimension(:) :: x
6701 class(errors),
intent(inout),
optional,
target :: err
6704 module subroutine pdh_set_data_3(this, labels, x, fmt, err)
6705 class(plot_data_histogram),
intent(inout) :: this
6706 real(real64),
intent(in),
dimension(:) :: labels
6707 real(real64),
intent(in),
dimension(:) :: x
6708 character(len = *),
intent(in),
optional :: fmt
6709 class(errors),
intent(inout),
optional,
target :: err
6712 pure module function pdh_get_num_fmt(this) result(x)
6713 class(plot_data_histogram),
intent(in) :: this
6714 character(len = :),
allocatable :: x
6717 module subroutine pdh_set_num_fmt(this, x)
6718 class(plot_data_histogram),
intent(inout) :: this
6719 character(len = *),
intent(in) :: x
6727 type,
extends(plot_2d) :: plot_bar
6731 real(real32) :: m_barwidth = 0.75d0
6733 procedure,
public :: get_bar_width => pb_get_bar_width
6734 procedure,
public :: set_bar_width => pb_set_bar_width
6735 procedure,
public :: get_command_string => pb_get_cmd
6740 pure module function pb_get_bar_width(this) result(x)
6741 class(plot_bar),
intent(in) :: this
6745 module subroutine pb_set_bar_width(this, x)
6746 class(plot_bar),
intent(inout) :: this
6747 real(real32),
intent(in) :: x
6750 module function pb_get_cmd(this) result(x)
6751 class(plot_bar),
intent(in) :: this
6752 character(len = :),
allocatable :: x
6765 type delaunay_tri_2d
6768 real(real64),
allocatable,
dimension(:) :: m_x
6770 real(real64),
allocatable,
dimension(:) :: m_y
6773 integer(int32),
allocatable,
dimension(:,:) :: m_indices
6798 procedure,
public :: create => d2d_init
6808 procedure,
public :: get_point_count => d2d_get_pt_count
6818 procedure,
public :: get_triangle_count => d2d_get_tri_count
6828 procedure,
public :: get_points_x => d2d_get_x_pts
6838 procedure,
public :: get_points_y => d2d_get_y_pts
6849 procedure,
public :: get_indices => d2d_get_tris
6864 procedure,
public :: find_triangle => d2d_get_tri_with_pt
6869 module subroutine d2d_init(this, x, y, err)
6870 class(delaunay_tri_2d),
intent(inout) :: this
6871 real(real64),
intent(in),
dimension(:) :: x, y
6872 class(errors),
intent(inout),
target,
optional :: err
6875 pure module function d2d_get_pt_count(this) result(rst)
6876 class(delaunay_tri_2d),
intent(in) :: this
6877 integer(int32) :: rst
6880 pure module function d2d_get_tri_count(this) result(rst)
6881 class(delaunay_tri_2d),
intent(in) :: this
6882 integer(int32) :: rst
6885 pure module function d2d_get_x_pts(this) result(rst)
6886 class(delaunay_tri_2d),
intent(in) :: this
6887 real(real64),
allocatable,
dimension(:) :: rst
6890 pure module function d2d_get_y_pts(this) result(rst)
6891 class(delaunay_tri_2d),
intent(in) :: this
6892 real(real64),
allocatable,
dimension(:) :: rst
6895 pure module function d2d_get_tris(this) result(rst)
6896 class(delaunay_tri_2d),
intent(in) :: this
6897 integer(int32),
allocatable,
dimension(:,:) :: rst
6900 pure module function d2d_get_tri_with_pt(this, x, y) result(rst)
6901 class(delaunay_tri_2d),
intent(in) :: this
6902 real(real64),
intent(in) :: x, y
6903 integer(int32) :: rst
6911 type,
extends(plot_data_colored) :: plot_data_tri_2d
6914 real(real64),
allocatable,
dimension(:) :: m_x
6916 real(real64),
allocatable,
dimension(:) :: m_y
6919 integer(int32),
allocatable,
dimension(:,:) :: m_indices
6921 real(real32) :: m_linewidth = 1.0
6923 integer(int32) :: m_linestyle = line_solid
6925 procedure,
public :: get_data_string => pdt2d_get_data_cmd
6926 procedure,
public :: get_command_string => pdt2d_get_cmd
6936 procedure,
public :: define_data => pdt2d_define_data
6946 procedure,
public :: get_line_width => pdt2d_get_line_width
6956 procedure,
public :: set_line_width => pdt2d_set_line_width
6966 procedure,
public :: get_line_style => pdt2d_get_line_style
6982 procedure,
public :: set_line_style => pdt2d_set_line_style
6987 module function pdt2d_get_data_cmd(this) result(x)
6988 class(plot_data_tri_2d),
intent(in) :: this
6989 character(len = :),
allocatable :: x
6992 module function pdt2d_get_cmd(this) result(x)
6993 class(plot_data_tri_2d),
intent(in) :: this
6994 character(len = :),
allocatable :: x
6997 module subroutine pdt2d_define_data(this, tri)
6998 class(plot_data_tri_2d),
intent(inout) :: this
6999 class(delaunay_tri_2d),
intent(in) :: tri
7002 module function pdt2d_get_axes_cmd(this) result(x)
7003 class(plot_data_tri_2d),
intent(in) :: this
7004 character(len = :),
allocatable :: x
7007 pure module function pdt2d_get_line_width(this) result(rst)
7008 class(plot_data_tri_2d),
intent(in) :: this
7012 module subroutine pdt2d_set_line_width(this, x)
7013 class(plot_data_tri_2d),
intent(inout) :: this
7014 real(real32),
intent(in) :: x
7017 pure module function pdt2d_get_line_style(this) result(rst)
7018 class(plot_data_tri_2d),
intent(in) :: this
7019 integer(int32) :: rst
7022 module subroutine pdt2d_set_line_style(this, x)
7023 class(plot_data_tri_2d),
intent(inout) :: this
7024 integer(int32),
intent(in) :: x
7032 type,
extends(delaunay_tri_2d) :: delaunay_tri_surface
7035 real(real64),
allocatable,
dimension(:) :: m_z
7061 procedure,
public :: define_function_values => dts_define_fcn
7071 procedure,
public :: get_points_z => dts_get_z
7086 generic,
public :: evaluate => dts_interp_1, dts_interp_2
7088 procedure :: dts_interp_1
7089 procedure :: dts_interp_2
7094 module subroutine dts_define_fcn(this, z, err)
7095 class(delaunay_tri_surface),
intent(inout) :: this
7096 real(real64),
intent(in),
dimension(:) :: z
7097 class(errors),
intent(inout),
optional,
target :: err
7100 pure module function dts_get_z(this) result(rst)
7101 class(delaunay_tri_surface),
intent(in) :: this
7102 real(real64),
allocatable,
dimension(:) :: rst
7105 pure module function dts_interp_1(this, x, y) result(z)
7106 class(delaunay_tri_surface),
intent(in) :: this
7107 real(real64),
intent(in) :: x, y
7111 pure module function dts_interp_2(this, x, y) result(z)
7112 class(delaunay_tri_surface),
intent(in) :: this
7113 real(real64),
intent(in),
dimension(:) :: x, y
7114 real(real64),
allocatable,
dimension(:) :: z
7123 type,
extends(plot_data) :: tri_surface_plot_data
7126 real(real64),
allocatable,
dimension(:) :: m_x
7128 real(real64),
allocatable,
dimension(:) :: m_y
7130 real(real64),
allocatable,
dimension(:) :: m_z
7133 integer(int32),
allocatable,
dimension(:,:) :: m_indices
7135 logical :: m_wireframe = .true.
7137 procedure,
public :: get_data_string => tspd_get_data_cmd
7138 procedure,
public :: get_command_string => tspd_get_cmd
7150 procedure,
public :: get_use_wireframe => tspd_get_wireframe
7162 procedure,
public :: set_use_wireframe => tspd_set_wireframe
7172 procedure,
public :: define_data => tspd_define_data
7177 module function tspd_get_data_cmd(this) result(x)
7178 class(tri_surface_plot_data),
intent(in) :: this
7179 character(len = :),
allocatable :: x
7182 module function tspd_get_cmd(this) result(x)
7183 class(tri_surface_plot_data),
intent(in) :: this
7184 character(len = :),
allocatable :: x
7187 pure module function tspd_get_wireframe(this) result(rst)
7188 class(tri_surface_plot_data),
intent(in) :: this
7192 module subroutine tspd_set_wireframe(this, x)
7193 class(tri_surface_plot_data),
intent(inout) :: this
7194 logical,
intent(in) :: x
7197 module subroutine tspd_define_data(this, tri)
7198 class(tri_surface_plot_data),
intent(inout) :: this
7199 class(delaunay_tri_surface),
intent(in) :: tri
7212 type,
extends(plot_data_colored) :: vector_field_plot_data
7217 real(real64),
allocatable,
dimension(:,:,:) :: m_data
7219 real(real64) :: m_arrowsize = 1.0d0
7221 logical :: m_filledheads = .false.
7233 procedure,
public :: get_data_string => vfpd_get_data_cmd
7244 procedure,
public :: get_command_string => vfpd_get_cmd
7267 procedure,
public :: define_data => vfpd_define_data
7277 procedure,
public :: get_arrow_size => vfpd_get_arrow_size
7287 procedure,
public :: set_arrow_size => vfpd_set_arrow_size
7297 procedure,
public :: get_fill_arrow => vfpd_get_fill_arrow
7307 procedure,
public :: set_fill_arrow => vfpd_set_fill_arrow
7320 procedure,
public :: get_use_data_dependent_colors => &
7321 vfpd_get_use_data_dependent_colors
7326 module function vfpd_get_data_cmd(this) result(x)
7327 class(vector_field_plot_data),
intent(in) :: this
7328 character(len = :),
allocatable :: x
7331 module function vfpd_get_cmd(this) result(x)
7332 class(vector_field_plot_data),
intent(in) :: this
7333 character(len = :),
allocatable :: x
7336 module subroutine vfpd_define_data(this, x, y, dx, dy, c, err)
7337 class(vector_field_plot_data),
intent(inout) :: this
7338 real(real64),
intent(in),
dimension(:,:) :: x, y, dx, dy
7339 real(real64),
intent(in),
dimension(:,:),
optional :: c
7340 class(errors),
intent(inout),
optional,
target :: err
7343 pure module function vfpd_get_arrow_size(this) result(rst)
7344 class(vector_field_plot_data),
intent(in) :: this
7348 module subroutine vfpd_set_arrow_size(this, x)
7349 class(vector_field_plot_data),
intent(inout) :: this
7350 real(real64),
intent(in) :: x
7353 pure module function vfpd_get_fill_arrow(this) result(rst)
7354 class(vector_field_plot_data),
intent(in) :: this
7358 module subroutine vfpd_set_fill_arrow(this, x)
7359 class(vector_field_plot_data),
intent(inout) :: this
7360 logical,
intent(in) :: x
7363 pure module function vfpd_get_use_data_dependent_colors(this) result(rst)
7364 class(vector_field_plot_data),
intent(in) :: this
7373 type,
extends(plot) :: plot_polar
7376 logical :: m_autoscale = .true.
7379 real(real64) :: m_minrad = 0.0d0
7382 real(real64) :: m_maxrad = 1.0d0
7384 character(len = :),
allocatable :: m_thetastart
7386 character(len = :),
allocatable :: m_thetadirection
7388 final :: plr_clean_up
7412 procedure,
public :: initialize => plr_init
7423 procedure,
public :: get_command_string => plr_get_cmd
7434 procedure,
public :: get_autoscale => plr_get_autoscale
7445 procedure,
public :: set_autoscale => plr_set_autoscale
7456 procedure,
public :: get_radial_limits => plr_get_limits
7467 procedure,
public :: set_radial_limits => plr_set_limits
7481 procedure,
public :: get_theta_start_position => plr_get_theta_start
7496 procedure,
public :: set_theta_start_position => plr_set_theta_start
7508 procedure,
public :: get_theta_direction => plr_get_theta_direction
7520 procedure,
public :: set_theta_direction => plr_set_theta_direction
7525 module subroutine plr_clean_up(this)
7526 type(plot_polar),
intent(inout) :: this
7529 module subroutine plr_init(this, term, fname, err)
7530 class(plot_polar),
intent(inout) :: this
7531 integer(int32),
intent(in),
optional :: term
7532 character(len = *),
intent(in),
optional :: fname
7533 class(errors),
intent(inout),
optional,
target :: err
7536 module function plr_get_cmd(this) result(x)
7537 class(plot_polar),
intent(in) :: this
7538 character(len = :),
allocatable :: x
7541 pure module function plr_get_autoscale(this) result(rst)
7542 class(plot_polar),
intent(in) :: this
7546 module subroutine plr_set_autoscale(this, x)
7547 class(plot_polar),
intent(inout) :: this
7548 logical,
intent(in) :: x
7551 pure module function plr_get_limits(this) result(rst)
7552 class(plot_polar),
intent(in) :: this
7553 real(real64) :: rst(2)
7556 module subroutine plr_set_limits(this, x)
7557 class(plot_polar),
intent(inout) :: this
7558 real(real64),
intent(in) :: x(2)
7561 pure module function plr_get_theta_start(this) result(rst)
7562 class(plot_polar),
intent(in) :: this
7563 character(len = :),
allocatable :: rst
7566 module subroutine plr_set_theta_start(this, x)
7567 class(plot_polar),
intent(inout) :: this
7568 character(len = *),
intent(in) :: x
7571 pure module function plr_get_theta_direction(this) result(rst)
7572 class(plot_polar),
intent(in) :: this
7573 character(len = :),
allocatable :: rst
7576 module subroutine plr_set_theta_direction(this, x)
7577 class(plot_polar),
intent(inout) :: this
7578 character(len = *),
intent(in) :: x
7586 type,
extends(plot_data_colored) :: filled_plot_data
7589 logical :: m_usey2 = .false.
7591 real(real64),
allocatable,
dimension(:,:) :: m_data
7603 procedure,
public :: get_axes_string => fpd_get_axes_cmd
7615 procedure,
public :: get_draw_against_y2 => fpd_get_draw_against_y2
7627 procedure,
public :: set_draw_against_y2 => fpd_set_draw_against_y2
7638 procedure,
public :: get_command_string => fpd_get_cmd
7649 procedure,
public :: get_data_string => fpd_get_data_cmd
7669 procedure,
public :: define_data => fpd_define_data
7674 module function fpd_get_axes_cmd(this) result(x)
7675 class(filled_plot_data),
intent(in) :: this
7676 character(len = :),
allocatable :: x
7679 pure module function fpd_get_draw_against_y2(this) result(x)
7680 class(filled_plot_data),
intent(in) :: this
7684 module subroutine fpd_set_draw_against_y2(this, x)
7685 class(filled_plot_data),
intent(inout) :: this
7686 logical,
intent(in) :: x
7689 module function fpd_get_cmd(this) result(x)
7690 class(filled_plot_data),
intent(in) :: this
7691 character(len = :),
allocatable :: x
7694 module function fpd_get_data_cmd(this) result(x)
7695 class(filled_plot_data),
intent(in) :: this
7696 character(len = :),
allocatable :: x
7699 module subroutine fpd_define_data(this, x, y, yc, err)
7700 class(filled_plot_data),
intent(inout) :: this
7701 real(real64),
intent(in),
dimension(:) :: x, y, yc
7702 class(errors),
intent(inout),
optional,
target :: err
7786 interface simplify_polyline
7787 module procedure :: simplify_polyline_2d1
7788 module procedure :: simplify_polyline_3d1
7789 module procedure :: simplify_polyline_mtx
7793 module function simplify_polyline_2d1(x, y, tol, err) result(ln)
7794 real(real64),
intent(in),
dimension(:) :: x, y
7795 real(real64),
intent(in) :: tol
7796 class(errors),
intent(inout),
optional,
target :: err
7797 real(real64),
allocatable,
dimension(:,:) :: ln
7800 module function simplify_polyline_3d1(x, y, z, tol, err) result(ln)
7801 real(real64),
intent(in),
dimension(:) :: x, y, z
7802 real(real64),
intent(in) :: tol
7803 class(errors),
intent(inout),
optional,
target :: err
7804 real(real64),
allocatable,
dimension(:,:) :: ln
7807 module function simplify_polyline_mtx(xy, tol, err) result(ln)
7808 real(real64),
intent(in),
dimension(:,:) :: xy
7809 real(real64),
intent(in) :: tol
7810 class(errors),
intent(inout),
optional,
target :: err
7811 real(real64),
allocatable,
dimension(:,:) :: ln