Key-Value parser in FORTRAN

Parser for key-value pairs that can be grouped into named sections; the sections can be nested inside other sections. An example of valid input is as follows:


! comment

   version =  15

    algorithm = 1
    some_params = (1.0, 3.0)

        cut = 10.0
    end ewald
  end forces

      input = 'in'
      output = 'out'
  end files

end root

There is one key-value (kv) pair ("version") and two sections ("forces" and "files") in the "root" section of the example input shown above; each of the sub-sections holds more kv pairs; the "forces" section includes also another sub-section ("ewald"); and so on. Values can be of integer, real, string or list type. The latter can hold instances of either type, including lists [e.g., "(1, 'a', ('g', 5.0), 3.0)"].