Shared utilities for streamplot arrow placement
Convert matplotlib-style grid index to data coordinate
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | grid_index | |||
| real(kind=wp), | intent(in) | :: | grid_values(:) | 
Validate arrow size and style inputs (matplotlib compatible)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | optional | :: | arrowsize_opt | ||
| character(len=*), | intent(in), | optional | :: | arrowstyle_opt | ||
| real(kind=wp), | intent(out) | :: | arrow_size_val | |||
| character(len=10), | intent(out) | :: | arrow_style_val | |||
| logical, | intent(out) | :: | has_error | 
Compute arrow metadata for streamlines based on trajectory geometry
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real, | intent(in) | :: | trajectories(:,:,:) | |||
| integer, | intent(in) | :: | n_trajectories | |||
| integer, | intent(in) | :: | trajectory_lengths(:) | |||
| real(kind=wp), | intent(in) | :: | x_grid(:) | |||
| real(kind=wp), | intent(in) | :: | y_grid(:) | |||
| real(kind=wp), | intent(in) | :: | arrow_size | |||
| character(len=*), | intent(in) | :: | arrow_style | |||
| type(arrow_data_t), | intent(out), | allocatable | :: | arrows(:) | 
Replace figure state stream arrows and manage rendered flag
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(figure_state_t), | intent(inout) | :: | state | |||
| type(arrow_data_t), | intent(inout), | allocatable | :: | arrows(:) |