Skip to content

Releases: vmagnin/forcolormap

ForColormap 0.9.0

11 Mar 16:23
56504b4
Compare
Choose a tag to compare

Added

  • Development:

  • Documentation:

    • A FORD documentation with a CI workflow, generating https://vmagnin.github.io/forcolormap/
    • example/colormaps_list.f90 is creating the colormaps_list/COLORMAPS_LIST_*.md files using the Colormaps_info class.
      • A colormaps_list/ForColormap.pdf manual listing all the available colormaps.
      • A link toward the page ForColormap Collection Categories was added in the README.md to help users choose a colormap.
    • A gallery/ directory with screenshots of simulations using ForColormap.
    • A README.md file in each subdirectory describing the files inside.
    • A logo directory with SVG files by @alozada.
  • New modules:

    • The src/colormaps_info.f90 module contains information about colormaps, that can be printed or written in the terminal or to a .md file. Information can be filtered based on 8 parameters and printed in 4 different ways.
      • example/info.f90
      • COLORMAPS_LIST.md: generated by the module.
    • A src/forcolormap_utils.f90 module with the subroutine test_colormap().
    • A colormap_parameters module.
    • A miscellaneous_colormaps module.
  • New routines:

    • A colorbar() type-bound procedure to write a PPM file with the colorbar of a colormap.
    • A reverse() method to reverse a colormap.
      • A reverse boolean option was added to the methods set, create, and load to reverse a colormap.
      • An example/demo_reverse.f90 example.
    • A shift() method to apply a circular shift to a colormap (left is +, right is -).
      • example/modify.f90 demonstrates how you can modify a colormap with methods like shift(), in concrete cases.
    • Methods create_lagrange() and create_bezier() in src/colormap_class.f90 to create a colormap from continuous interpolation of control colors.
      • example/create.f90 demonstrates creating a custom colormap using methods like create_lagrange() and create_bezier().
    • An extract() type-bound procedure to the Colormap type to extract colors from a colormap. The extracted number should be within the range [2, levels].
      • example/extract.f90
    • A private check() method in the Colormap class. It checks the validity of the colormap and its parameters, prints warnings, and fixes problems if necessary.
    • Two private functions: scale_real_real and scale_real_int.
  • New colormaps:

    • The "magma", "inferno","plasma", "viridis" matplotlib colormaps in a matplotlib_colormaps module.
    • The discrete colormaps of the Scientific Colour Maps collection, thanks to the scripts/gpl_to_lut.f90 program.
    • A black_body colormap (miscellaneous).
  • A gtk-fortran example using ForColormap: https://github.com/vmagnin/gtk-fortran-extra/tree/main/reaction_diffusion

Changed

  • In example/demo.f90 and example/demo_reverse.f90, the discrete colormap created from an array is now a colormap designed by @alozada resembling the color changes in red cabbage (containing Anthocyanins) with pH.
  • Subroutine test_colormap(): the encoding argument is now optional (binary by default).
  • The colormap inverted_rainbow was renamed inv_rainbow.
  • Renamed get_current() to get_name().
  • src/colormap_class.f90: private statement is now the default.
  • For writing PPM files, the project ForImage by @gha3mi is now used as a fpm dependency. The related example must now be launched with fpm run --example example1 and the ForColormap demo by fpm run --example demo.
  • Code refactoring.

Removed

  • The naive "grey" colormap: you should use "grayC" instead.
  • The "inverted_grey" colormap which can now be obtained from "grayC" with the reverse=.true. option.
  • scripts/cp_lut_files.sh since its functionality is now included in the scripts/gpl_to_lut.f90 program.