| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | width | ||||
| integer, | public | :: | height | ||||
| real(kind=wp), | public | :: | x_min | ||||
| real(kind=wp), | public | :: | x_max | ||||
| real(kind=wp), | public | :: | y_min | ||||
| real(kind=wp), | public | :: | y_max | ||||
| logical, | public | :: | has_rendered_arrows | = | .false. | ||
| logical, | public | :: | uses_vector_arrows | = | .false. | ||
| logical, | public | :: | has_triangular_arrows | = | .false. | ||
| character(len=1), | public, | allocatable | :: | canvas(:,:) | |||
| character(len=:), | public, | allocatable | :: | title_text | |||
| character(len=:), | public, | allocatable | :: | xlabel_text | |||
| character(len=:), | public, | allocatable | :: | ylabel_text | |||
| logical, | public | :: | title_set | = | .false. | ||
| type(text_element_t), | public, | allocatable | :: | text_elements(:) | |||
| integer, | public | :: | num_text_elements | = | 0 | ||
| real(kind=wp), | public | :: | current_r | ||||
| real(kind=wp), | public | :: | current_g | ||||
| real(kind=wp), | public | :: | current_b | ||||
| integer, | public | :: | plot_width | = | 80 | ||
| integer, | public | :: | plot_height | = | 24 | ||
| character(len=96), | public, | allocatable | :: | legend_lines(:) | |||
| integer, | public | :: | num_legend_lines | = | 0 | ||
| logical, | public | :: | capturing_legend | = | .false. | ||
| real(kind=wp), | public | :: | stored_y_min | = | 0.0_wp | ||
| real(kind=wp), | public | :: | stored_y_max | = | 0.0_wp | ||
| logical, | public | :: | has_stored_y_range | = | .false. | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x1 | |||
| real(kind=wp), | intent(in) | :: | y1 | |||
| real(kind=wp), | intent(in) | :: | x2 | |||
| real(kind=wp), | intent(in) | :: | y2 | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | r | |||
| real(kind=wp), | intent(in) | :: | g | |||
| real(kind=wp), | intent(in) | :: | b | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x | |||
| real(kind=wp), | intent(in) | :: | y | |||
| character(len=*), | intent(in) | :: | text | 
Set line width for ASCII context (no-op as ASCII uses fixed character width)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | width | 
Set line style for ASCII context (no-op as ASCII uses fixed characters)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | style | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | filename | 
Explicitly set title for ASCII backend
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | title | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x | |||
| real(kind=wp), | intent(in) | :: | y | |||
| character(len=*), | intent(in) | :: | style | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | edge_r | |||
| real(kind=wp), | intent(in) | :: | edge_g | |||
| real(kind=wp), | intent(in) | :: | edge_b | |||
| real(kind=wp), | intent(in) | :: | face_r | |||
| real(kind=wp), | intent(in) | :: | face_g | |||
| real(kind=wp), | intent(in) | :: | face_b | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | edge_r | |||
| real(kind=wp), | intent(in) | :: | edge_g | |||
| real(kind=wp), | intent(in) | :: | edge_b | |||
| real(kind=wp), | intent(in) | :: | edge_alpha | |||
| real(kind=wp), | intent(in) | :: | face_r | |||
| real(kind=wp), | intent(in) | :: | face_g | |||
| real(kind=wp), | intent(in) | :: | face_b | |||
| real(kind=wp), | intent(in) | :: | face_alpha | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x_grid(:) | |||
| real(kind=wp), | intent(in) | :: | y_grid(:) | |||
| real(kind=wp), | intent(in) | :: | z_grid(:,:) | |||
| real(kind=wp), | intent(in) | :: | z_min | |||
| real(kind=wp), | intent(in) | :: | z_max | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x | |||
| real(kind=wp), | intent(in) | :: | y | |||
| real(kind=wp), | intent(in) | :: | dx | |||
| real(kind=wp), | intent(in) | :: | dy | |||
| real(kind=wp), | intent(in) | :: | size | |||
| character(len=*), | intent(in) | :: | style | 
New polymorphic methods to eliminate SELECT TYPE
Get the complete ASCII canvas as a string
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | 
Get width scaling factor for coordinate transformation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | 
Get height scaling factor for coordinate transformation
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | 
Fill quadrilateral using character mapping based on current color
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x_quad(4) | |||
| real(kind=wp), | intent(in) | :: | y_quad(4) | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| type(legend_t), | intent(in) | :: | legend | |||
| real(kind=wp), | intent(in) | :: | legend_x | |||
| real(kind=wp), | intent(in) | :: | legend_y | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | |||
| type(legend_t), | intent(in) | :: | legend | |||
| real(kind=wp), | intent(out) | :: | legend_width | |||
| real(kind=wp), | intent(out) | :: | legend_height | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | 
Calculate ASCII-specific legend position using character coordinates
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | |||
| type(legend_t), | intent(in) | :: | legend | |||
| real(kind=wp), | intent(out) | :: | x | |||
| real(kind=wp), | intent(out) | :: | y | 
Extract RGB data from ASCII backend (not supported - dummy data)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| real(kind=wp), | intent(out) | :: | rgb_data(width,height,3) | 
Get PNG data from ASCII backend (not supported)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | width | |||
| integer, | intent(in) | :: | height | |||
| integer(kind=1), | intent(out), | allocatable | :: | png_data(:) | ||
| integer, | intent(out) | :: | status | 
Prepare 3D data for ASCII backend (no-op - ASCII doesn't use 3D data)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| type(plot_data_t), | intent(in) | :: | plots(:) | 
Render Y-axis label for ASCII backend (no-op - handled elsewhere)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | ylabel | 
Draw axes and labels for ASCII backend
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | xscale | |||
| character(len=*), | intent(in) | :: | yscale | |||
| real(kind=wp), | intent(in) | :: | symlog_threshold | |||
| real(kind=wp), | intent(in) | :: | x_min | |||
| real(kind=wp), | intent(in) | :: | x_max | |||
| real(kind=wp), | intent(in) | :: | y_min | |||
| real(kind=wp), | intent(in) | :: | y_max | |||
| character(len=:), | intent(in), | optional, | allocatable | :: | title | |
| character(len=:), | intent(in), | optional, | allocatable | :: | xlabel | |
| character(len=:), | intent(in), | optional, | allocatable | :: | ylabel | |
| real(kind=wp), | intent(in), | optional | :: | z_min | ||
| real(kind=wp), | intent(in), | optional | :: | z_max | ||
| logical, | intent(in) | :: | has_3d_plots | 
Save current coordinate system
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(in) | :: | this | |||
| real(kind=wp), | intent(out) | :: | x_min | |||
| real(kind=wp), | intent(out) | :: | x_max | |||
| real(kind=wp), | intent(out) | :: | y_min | |||
| real(kind=wp), | intent(out) | :: | y_max | 
Set coordinate system
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| real(kind=wp), | intent(in) | :: | x_min | |||
| real(kind=wp), | intent(in) | :: | x_max | |||
| real(kind=wp), | intent(in) | :: | y_min | |||
| real(kind=wp), | intent(in) | :: | y_max | 
Render axes for ASCII context (stub implementation)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in), | optional | :: | title_text | ||
| character(len=*), | intent(in), | optional | :: | xlabel_text | ||
| character(len=*), | intent(in), | optional | :: | ylabel_text | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in), | optional | :: | header | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | label | |||
| character(len=*), | intent(in), | optional | :: | value_text | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | 
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ascii_context), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | label | |||
| character(len=*), | intent(in) | :: | value_text |