pure subroutine initialize_colors(colors)
type(color), intent(out), dimension(:), allocatable :: colors
allocate(colors(14))
call colors(1)%set( name='red', r=255_ik, g=0_ik, b=0_ik)
call colors(2)%set( name='green', r=0_ik, g=128_ik, b=0_ik)
call colors(3)%set( name='blue', r=0_ik, g=0_ik, b=255_ik)
call colors(4)%set( name='yellow', r=255_ik, g=255_ik, b=0_ik)
call colors(5)%set( name='cyan', r=0_ik, g=255_ik, b=255_ik)
call colors(6)%set( name='magenta', r=255_ik, g=0_ik, b=255_ik)
call colors(7)%set( name='black', r=0_ik, g=0_ik, b=0_ik)
call colors(8)%set( name='white', r=255_ik, g=255_ik, b=255_ik)
call colors(9)%set( name='gray', r=128_ik, g=128_ik, b=128_ik)
call colors(10)%set(name='brown', r=165_ik, g=42_ik, b=42_ik)
call colors(11)%set(name='orange', r=255_ik, g=165_ik, b=0_ik)
call colors(12)%set(name='gold', r=255_ik, g=215_ik, b=0_ik)
call colors(13)%set(name='pink', r=255_ik, g=192_ik, b=203_ik)
call colors(14)%set(name='violet', r=138_ik, g=43_ik, b=226_ik)
call colors(1:14)%convert('rgb2all')
end subroutine initialize_colors