Color type definitions and constants for matplotlib-compatible color support
Provides: - Unified color type with RGBA support - Named color constants (CSS4 + tab: names) - Single letter color mappings - Utility functions for color validation
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | parameter | :: | NUM_NAMED_COLORS | = | 158 | |
| character(len=20), | public, | parameter | :: | named_color_names(NUM_NAMED_COLORS) | = | ['red ', 'green ', 'blue ', 'cyan ', 'magenta ', 'yellow ', 'black ', 'white ', 'gray ', 'orange ', 'purple ', 'brown ', 'pink ', 'olive ', 'navy ', 'lime ', 'teal ', 'silver ', 'maroon ', 'indigo ', 'aliceblue ', 'antiquewhite ', 'aqua ', 'aquamarine ', 'azure ', 'beige ', 'bisque ', 'blanchedalmond ', 'blueviolet ', 'burlywood ', 'cadetblue ', 'chartreuse ', 'chocolate ', 'coral ', 'cornflowerblue ', 'cornsilk ', 'crimson ', 'darkblue ', 'darkcyan ', 'darkgoldenrod ', 'darkgray ', 'darkgreen ', 'darkgrey ', 'darkkhaki ', 'darkmagenta ', 'darkolivegreen ', 'darkorange ', 'darkorchid ', 'darkred ', 'darksalmon ', 'darkseagreen ', 'darkslateblue ', 'darkslategray ', 'darkslategrey ', 'darkturquoise ', 'darkviolet ', 'deeppink ', 'deepskyblue ', 'dimgray ', 'dimgrey ', 'dodgerblue ', 'firebrick ', 'floralwhite ', 'forestgreen ', 'fuchsia ', 'gainsboro ', 'ghostwhite ', 'gold ', 'goldenrod ', 'greenyellow ', 'grey ', 'honeydew ', 'hotpink ', 'indianred ', 'ivory ', 'khaki ', 'lavender ', 'lavenderblush ', 'lawngreen ', 'lemonchiffon ', 'lightblue ', 'lightcoral ', 'lightcyan ', 'lightgoldenrodyellow', 'lightgray ', 'lightgreen ', 'lightgrey ', 'lightpink ', 'lightsalmon ', 'lightseagreen ', 'lightskyblue ', 'lightslategray ', 'lightslategrey ', 'lightsteelblue ', 'lightyellow ', 'limegreen ', 'linen ', 'mediumaquamarine ', 'mediumblue ', 'mediumorchid ', 'mediumpurple ', 'mediumseagreen ', 'mediumslateblue ', 'mediumspringgreen ', 'mediumturquoise ', 'mediumvioletred ', 'midnightblue ', 'mintcream ', 'mistyrose ', 'moccasin ', 'navajowhite ', 'oldlace ', 'olivedrab ', 'orangered ', 'orchid ', 'palegoldenrod ', 'palegreen ', 'paleturquoise ', 'palevioletred ', 'papayawhip ', 'peachpuff ', 'peru ', 'plum ', 'powderblue ', 'rebeccapurple ', 'rosybrown ', 'royalblue ', 'saddlebrown ', 'salmon ', 'sandybrown ', 'seagreen ', 'seashell ', 'sienna ', 'skyblue ', 'slateblue ', 'slategray ', 'slategrey ', 'snow ', 'springgreen ', 'steelblue ', 'tan ', 'thistle ', 'tomato ', 'turquoise ', 'violet ', 'wheat ', 'whitesmoke ', 'yellowgreen ', 'tab:blue ', 'tab:orange ', 'tab:green ', 'tab:red ', 'tab:purple ', 'tab:brown ', 'tab:pink ', 'tab:gray ', 'tab:olive ', 'tab:cyan '] | |
| real(kind=wp), | public, | parameter | :: | named_color_values(3,NUM_NAMED_COLORS) | = | reshape([255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 128.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 255.0_wp/255.0_wp, 165.0_wp/255.0_wp, 0.0_wp/255.0_wp, 128.0_wp/255.0_wp, 0.0_wp/255.0_wp, 128.0_wp/255.0_wp, 165.0_wp/255.0_wp, 42.0_wp/255.0_wp, 42.0_wp/255.0_wp, 255.0_wp/255.0_wp, 192.0_wp/255.0_wp, 203.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 128.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 192.0_wp/255.0_wp, 192.0_wp/255.0_wp, 192.0_wp/255.0_wp, 128.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 75.0_wp/255.0_wp, 0.0_wp/255.0_wp, 130.0_wp/255.0_wp, 240.0_wp/255.0_wp, 248.0_wp/255.0_wp, 255.0_wp/255.0_wp, 250.0_wp/255.0_wp, 235.0_wp/255.0_wp, 215.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 127.0_wp/255.0_wp, 255.0_wp/255.0_wp, 212.0_wp/255.0_wp, 240.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 245.0_wp/255.0_wp, 245.0_wp/255.0_wp, 220.0_wp/255.0_wp, 255.0_wp/255.0_wp, 228.0_wp/255.0_wp, 196.0_wp/255.0_wp, 255.0_wp/255.0_wp, 235.0_wp/255.0_wp, 205.0_wp/255.0_wp, 138.0_wp/255.0_wp, 43.0_wp/255.0_wp, 226.0_wp/255.0_wp, 222.0_wp/255.0_wp, 184.0_wp/255.0_wp, 135.0_wp/255.0_wp, 95.0_wp/255.0_wp, 158.0_wp/255.0_wp, 160.0_wp/255.0_wp, 127.0_wp/255.0_wp, 255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 210.0_wp/255.0_wp, 105.0_wp/255.0_wp, 30.0_wp/255.0_wp, 255.0_wp/255.0_wp, 127.0_wp/255.0_wp, 80.0_wp/255.0_wp, 100.0_wp/255.0_wp, 149.0_wp/255.0_wp, 237.0_wp/255.0_wp, 255.0_wp/255.0_wp, 248.0_wp/255.0_wp, 220.0_wp/255.0_wp, 220.0_wp/255.0_wp, 20.0_wp/255.0_wp, 60.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 139.0_wp/255.0_wp, 0.0_wp/255.0_wp, 139.0_wp/255.0_wp, 139.0_wp/255.0_wp, 184.0_wp/255.0_wp, 134.0_wp/255.0_wp, 11.0_wp/255.0_wp, 169.0_wp/255.0_wp, 169.0_wp/255.0_wp, 169.0_wp/255.0_wp, 0.0_wp/255.0_wp, 100.0_wp/255.0_wp, 0.0_wp/255.0_wp, 169.0_wp/255.0_wp, 169.0_wp/255.0_wp, 169.0_wp/255.0_wp, 189.0_wp/255.0_wp, 183.0_wp/255.0_wp, 107.0_wp/255.0_wp, 139.0_wp/255.0_wp, 0.0_wp/255.0_wp, 139.0_wp/255.0_wp, 85.0_wp/255.0_wp, 107.0_wp/255.0_wp, 47.0_wp/255.0_wp, 255.0_wp/255.0_wp, 140.0_wp/255.0_wp, 0.0_wp/255.0_wp, 153.0_wp/255.0_wp, 50.0_wp/255.0_wp, 204.0_wp/255.0_wp, 139.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 233.0_wp/255.0_wp, 150.0_wp/255.0_wp, 122.0_wp/255.0_wp, 143.0_wp/255.0_wp, 188.0_wp/255.0_wp, 143.0_wp/255.0_wp, 72.0_wp/255.0_wp, 61.0_wp/255.0_wp, 139.0_wp/255.0_wp, 47.0_wp/255.0_wp, 79.0_wp/255.0_wp, 79.0_wp/255.0_wp, 47.0_wp/255.0_wp, 79.0_wp/255.0_wp, 79.0_wp/255.0_wp, 0.0_wp/255.0_wp, 206.0_wp/255.0_wp, 209.0_wp/255.0_wp, 148.0_wp/255.0_wp, 0.0_wp/255.0_wp, 211.0_wp/255.0_wp, 255.0_wp/255.0_wp, 20.0_wp/255.0_wp, 147.0_wp/255.0_wp, 0.0_wp/255.0_wp, 191.0_wp/255.0_wp, 255.0_wp/255.0_wp, 105.0_wp/255.0_wp, 105.0_wp/255.0_wp, 105.0_wp/255.0_wp, 105.0_wp/255.0_wp, 105.0_wp/255.0_wp, 105.0_wp/255.0_wp, 30.0_wp/255.0_wp, 144.0_wp/255.0_wp, 255.0_wp/255.0_wp, 178.0_wp/255.0_wp, 34.0_wp/255.0_wp, 34.0_wp/255.0_wp, 255.0_wp/255.0_wp, 250.0_wp/255.0_wp, 240.0_wp/255.0_wp, 34.0_wp/255.0_wp, 139.0_wp/255.0_wp, 34.0_wp/255.0_wp, 255.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 220.0_wp/255.0_wp, 220.0_wp/255.0_wp, 220.0_wp/255.0_wp, 248.0_wp/255.0_wp, 248.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 215.0_wp/255.0_wp, 0.0_wp/255.0_wp, 218.0_wp/255.0_wp, 165.0_wp/255.0_wp, 32.0_wp/255.0_wp, 173.0_wp/255.0_wp, 255.0_wp/255.0_wp, 47.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 240.0_wp/255.0_wp, 255.0_wp/255.0_wp, 240.0_wp/255.0_wp, 255.0_wp/255.0_wp, 105.0_wp/255.0_wp, 180.0_wp/255.0_wp, 205.0_wp/255.0_wp, 92.0_wp/255.0_wp, 92.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 240.0_wp/255.0_wp, 240.0_wp/255.0_wp, 230.0_wp/255.0_wp, 140.0_wp/255.0_wp, 230.0_wp/255.0_wp, 230.0_wp/255.0_wp, 250.0_wp/255.0_wp, 255.0_wp/255.0_wp, 240.0_wp/255.0_wp, 245.0_wp/255.0_wp, 124.0_wp/255.0_wp, 252.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 250.0_wp/255.0_wp, 205.0_wp/255.0_wp, 173.0_wp/255.0_wp, 216.0_wp/255.0_wp, 230.0_wp/255.0_wp, 240.0_wp/255.0_wp, 128.0_wp/255.0_wp, 128.0_wp/255.0_wp, 224.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 250.0_wp/255.0_wp, 250.0_wp/255.0_wp, 210.0_wp/255.0_wp, 211.0_wp/255.0_wp, 211.0_wp/255.0_wp, 211.0_wp/255.0_wp, 144.0_wp/255.0_wp, 238.0_wp/255.0_wp, 144.0_wp/255.0_wp, 211.0_wp/255.0_wp, 211.0_wp/255.0_wp, 211.0_wp/255.0_wp, 255.0_wp/255.0_wp, 182.0_wp/255.0_wp, 193.0_wp/255.0_wp, 255.0_wp/255.0_wp, 160.0_wp/255.0_wp, 122.0_wp/255.0_wp, 32.0_wp/255.0_wp, 178.0_wp/255.0_wp, 170.0_wp/255.0_wp, 135.0_wp/255.0_wp, 206.0_wp/255.0_wp, 250.0_wp/255.0_wp, 119.0_wp/255.0_wp, 136.0_wp/255.0_wp, 153.0_wp/255.0_wp, 119.0_wp/255.0_wp, 136.0_wp/255.0_wp, 153.0_wp/255.0_wp, 176.0_wp/255.0_wp, 196.0_wp/255.0_wp, 222.0_wp/255.0_wp, 255.0_wp/255.0_wp, 255.0_wp/255.0_wp, 224.0_wp/255.0_wp, 50.0_wp/255.0_wp, 205.0_wp/255.0_wp, 50.0_wp/255.0_wp, 250.0_wp/255.0_wp, 240.0_wp/255.0_wp, 230.0_wp/255.0_wp, 102.0_wp/255.0_wp, 205.0_wp/255.0_wp, 170.0_wp/255.0_wp, 0.0_wp/255.0_wp, 0.0_wp/255.0_wp, 205.0_wp/255.0_wp, 186.0_wp/255.0_wp, 85.0_wp/255.0_wp, 211.0_wp/255.0_wp, 147.0_wp/255.0_wp, 112.0_wp/255.0_wp, 219.0_wp/255.0_wp, 60.0_wp/255.0_wp, 179.0_wp/255.0_wp, 113.0_wp/255.0_wp, 123.0_wp/255.0_wp, 104.0_wp/255.0_wp, 238.0_wp/255.0_wp, 0.0_wp/255.0_wp, 250.0_wp/255.0_wp, 154.0_wp/255.0_wp, 72.0_wp/255.0_wp, 209.0_wp/255.0_wp, 204.0_wp/255.0_wp, 199.0_wp/255.0_wp, 21.0_wp/255.0_wp, 133.0_wp/255.0_wp, 25.0_wp/255.0_wp, 25.0_wp/255.0_wp, 112.0_wp/255.0_wp, 245.0_wp/255.0_wp, 255.0_wp/255.0_wp, 250.0_wp/255.0_wp, 255.0_wp/255.0_wp, 228.0_wp/255.0_wp, 225.0_wp/255.0_wp, 255.0_wp/255.0_wp, 228.0_wp/255.0_wp, 181.0_wp/255.0_wp, 255.0_wp/255.0_wp, 222.0_wp/255.0_wp, 173.0_wp/255.0_wp, 253.0_wp/255.0_wp, 245.0_wp/255.0_wp, 230.0_wp/255.0_wp, 107.0_wp/255.0_wp, 142.0_wp/255.0_wp, 35.0_wp/255.0_wp, 255.0_wp/255.0_wp, 69.0_wp/255.0_wp, 0.0_wp/255.0_wp, 218.0_wp/255.0_wp, 112.0_wp/255.0_wp, 214.0_wp/255.0_wp, 238.0_wp/255.0_wp, 232.0_wp/255.0_wp, 170.0_wp/255.0_wp, 152.0_wp/255.0_wp, 251.0_wp/255.0_wp, 152.0_wp/255.0_wp, 175.0_wp/255.0_wp, 238.0_wp/255.0_wp, 238.0_wp/255.0_wp, 219.0_wp/255.0_wp, 112.0_wp/255.0_wp, 147.0_wp/255.0_wp, 255.0_wp/255.0_wp, 239.0_wp/255.0_wp, 213.0_wp/255.0_wp, 255.0_wp/255.0_wp, 218.0_wp/255.0_wp, 185.0_wp/255.0_wp, 205.0_wp/255.0_wp, 133.0_wp/255.0_wp, 63.0_wp/255.0_wp, 221.0_wp/255.0_wp, 160.0_wp/255.0_wp, 221.0_wp/255.0_wp, 176.0_wp/255.0_wp, 224.0_wp/255.0_wp, 230.0_wp/255.0_wp, 102.0_wp/255.0_wp, 51.0_wp/255.0_wp, 153.0_wp/255.0_wp, 188.0_wp/255.0_wp, 143.0_wp/255.0_wp, 143.0_wp/255.0_wp, 65.0_wp/255.0_wp, 105.0_wp/255.0_wp, 225.0_wp/255.0_wp, 139.0_wp/255.0_wp, 69.0_wp/255.0_wp, 19.0_wp/255.0_wp, 250.0_wp/255.0_wp, 128.0_wp/255.0_wp, 114.0_wp/255.0_wp, 244.0_wp/255.0_wp, 164.0_wp/255.0_wp, 96.0_wp/255.0_wp, 46.0_wp/255.0_wp, 139.0_wp/255.0_wp, 87.0_wp/255.0_wp, 255.0_wp/255.0_wp, 245.0_wp/255.0_wp, 238.0_wp/255.0_wp, 160.0_wp/255.0_wp, 82.0_wp/255.0_wp, 45.0_wp/255.0_wp, 135.0_wp/255.0_wp, 206.0_wp/255.0_wp, 235.0_wp/255.0_wp, 106.0_wp/255.0_wp, 90.0_wp/255.0_wp, 205.0_wp/255.0_wp, 112.0_wp/255.0_wp, 128.0_wp/255.0_wp, 144.0_wp/255.0_wp, 112.0_wp/255.0_wp, 128.0_wp/255.0_wp, 144.0_wp/255.0_wp, 255.0_wp/255.0_wp, 250.0_wp/255.0_wp, 250.0_wp/255.0_wp, 0.0_wp/255.0_wp, 255.0_wp/255.0_wp, 127.0_wp/255.0_wp, 70.0_wp/255.0_wp, 130.0_wp/255.0_wp, 180.0_wp/255.0_wp, 210.0_wp/255.0_wp, 180.0_wp/255.0_wp, 140.0_wp/255.0_wp, 216.0_wp/255.0_wp, 191.0_wp/255.0_wp, 216.0_wp/255.0_wp, 255.0_wp/255.0_wp, 99.0_wp/255.0_wp, 71.0_wp/255.0_wp, 64.0_wp/255.0_wp, 224.0_wp/255.0_wp, 208.0_wp/255.0_wp, 238.0_wp/255.0_wp, 130.0_wp/255.0_wp, 238.0_wp/255.0_wp, 245.0_wp/255.0_wp, 222.0_wp/255.0_wp, 179.0_wp/255.0_wp, 245.0_wp/255.0_wp, 245.0_wp/255.0_wp, 245.0_wp/255.0_wp, 154.0_wp/255.0_wp, 205.0_wp/255.0_wp, 50.0_wp/255.0_wp, 31.0_wp/255.0_wp, 119.0_wp/255.0_wp, 180.0_wp/255.0_wp, 255.0_wp/255.0_wp, 127.0_wp/255.0_wp, 14.0_wp/255.0_wp, 44.0_wp/255.0_wp, 160.0_wp/255.0_wp, 44.0_wp/255.0_wp, 214.0_wp/255.0_wp, 39.0_wp/255.0_wp, 40.0_wp/255.0_wp, 148.0_wp/255.0_wp, 103.0_wp/255.0_wp, 189.0_wp/255.0_wp, 140.0_wp/255.0_wp, 86.0_wp/255.0_wp, 75.0_wp/255.0_wp, 227.0_wp/255.0_wp, 119.0_wp/255.0_wp, 194.0_wp/255.0_wp, 127.0_wp/255.0_wp, 127.0_wp/255.0_wp, 127.0_wp/255.0_wp, 188.0_wp/255.0_wp, 189.0_wp/255.0_wp, 34.0_wp/255.0_wp, 23.0_wp/255.0_wp, 190.0_wp/255.0_wp, 207.0_wp/255.0_wp], [3, NUM_NAMED_COLORS]) | |
| character(len=1), | public, | parameter | :: | single_letters(8) | = | ['r', 'g', 'b', 'c', 'm', 'y', 'k', 'w'] | |
| integer, | public, | parameter | :: | letter_to_named(8) | = | [1, 2, 3, 4, 5, 6, 7, 8] |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public | :: | r | = | 0.0_wp | ||
| real(kind=wp), | public | :: | g | = | 0.0_wp | ||
| real(kind=wp), | public | :: | b | = | 0.0_wp | ||
| real(kind=wp), | public | :: | a | = | 1.0_wp | ||
| logical, | public | :: | valid | = | .false. |
Clamp value to [0,1] range
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | value |
Convert string to lowercase in-place
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=:), | intent(inout), | allocatable | :: | str |
Convert single character to lowercase
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=1), | intent(inout) | :: | char |