[cod-tools] 01/04: Imported Upstream version 2.1

Andrius Merkys merkys-guest at moszumanska.debian.org
Fri Oct 27 13:27:11 UTC 2017


This is an automated email from the git hooks/post-receive script.

merkys-guest pushed a commit to branch master
in repository cod-tools.

commit 9e67676a74387aea2a233e9eda494a9ea5a889a3
Author: Andrius Merkys <andrius.merkys at gmail.com>
Date:   Fri Oct 27 15:56:17 2017 +0300

    Imported Upstream version 2.1
---
 .version                                           |    2 +-
 CHANGELOG                                          |  104 ++
 Makeconf                                           |    6 +-
 Makelocal-install                                  |    8 +-
 Makelocal-manpages                                 |   13 +-
 data/AtomProperties/bin/atom_properties_merge      |    2 +-
 data/AtomProperties/bin/compare_properties         |    2 +-
 data/AtomProperties/parts/core/BlueObelisk/core    |    2 +-
 .../covalent_radii/Cordero2008/covalent_radii      |    2 +-
 .../Pyykk\303\2662009/covalent_radii"              |    2 +-
 .../AtomProperties/parts/valence/wikipedia/valence |    2 +-
 .../parts/vdw_radii/Alvarez2012/vdw_radii          |    2 +-
 data/AtomProperties/parts/vdw_radii/LANL/vdw_radii |    2 +-
 data/AtomProperties/sources/Alvarez2012/input.yaml |    2 +-
 .../sources/BlueObelisk/atom_properties_BO         |    2 +-
 data/AtomProperties/sources/Cordero2008/input.yaml |    2 +-
 data/AtomProperties/sources/LANL/extract_info      |    2 +-
 data/AtomProperties/sources/LANL/input.yaml        |    2 +-
 .../sources/Pyykk\303\2662009/input.yaml"          |    2 +-
 .../sources/wikipedia/oxidation_states             |    2 +-
 data/provisional-dictionaries/cif_oqmd.dic         |    2 +-
 data/replacement-values/replacement_values.lst     |  230 +++
 doc/CODDictionary.xml                              |    2 +-
 doc/IUCr/cifguide.pdf                              |  Bin 312734 -> 0 bytes
 doc/IUCr/cifguide.pdf.url                          |    1 +
 makefiles/Makeconfig-subdirs-example               |    2 +-
 makefiles/Makefile-backbone                        |    2 +-
 makefiles/Makefile-perl-multiscript-tests          |   10 +-
 makefiles/Makefile-run_coms                        |    2 +-
 makefiles/Makefile-subdirs                         |    2 +-
 makefiles/Makelocal-YAPP-module                    |    2 +-
 makefiles/Makelocal-benchmark                      |    2 +-
 makefiles/Makelocal-unit-test                      |    2 +-
 scripts/cif-to-utf8                                |    2 +-
 scripts/cif2cod                                    |  130 +-
 scripts/cif2csv                                    |    6 +-
 scripts/cif2json                                   |    8 +-
 scripts/cif2rdf                                    |   10 +-
 scripts/cif2ref                                    |    6 +-
 scripts/cif2xyz                                    |    6 +-
 scripts/cif_CODify                                 |    2 +-
 scripts/cif_Fcalc                                  |    6 +-
 scripts/cif_adjust_journal_name_volume             |    6 +-
 scripts/cif_bounding_box                           |    6 +-
 scripts/cif_cell_contents                          |    8 +-
 scripts/cif_classify                               |    6 +-
 scripts/cif_cod_check                              |  814 ++++++----
 scripts/cif_cod_deposit                            |    2 +-
 scripts/cif_cod_numbers                            |    6 +-
 scripts/cif_correct_tags                           |   52 +-
 scripts/cif_create_AMCSD_pressure_temp_tags        |    6 +-
 scripts/cif_dictionary_tags                        |    6 +-
 scripts/cif_diff                                   |    8 +-
 scripts/cif_distances                              |   39 +-
 scripts/cif_estimate_Z                             |    6 +-
 scripts/cif_eval_numbers                           |    6 +-
 scripts/cif_fillcell                               |    8 +-
 scripts/cif_filter                                 |   36 +-
 scripts/cif_find_duplicates                        |    9 +-
 scripts/cif_find_symmetry                          |   12 +-
 scripts/cif_fix_values                             |    8 +-
 scripts/cif_hkl_COD_number                         |    6 +-
 scripts/cif_hkl_check                              |    6 +-
 scripts/cif_mark_disorder                          |    8 +-
 scripts/cif_merge                                  |   18 +-
 scripts/cif_molecule                               |  404 +----
 scripts/cif_mpod_v1_to_v2                          |    6 +-
 scripts/cif_mpod_v1_to_v3                          |    6 +-
 scripts/cif_mpod_v2_to_v1                          |    6 +-
 scripts/cif_mpod_v3_to_v1                          |    6 +-
 scripts/cif_overlay                                |    6 +-
 scripts/cif_p1                                     |  353 +----
 scripts/cif_parse                                  |    6 +-
 scripts/cif_parse_old_star                         |    2 +-
 scripts/cif_printout                               |    8 +-
 scripts/cif_printout_Python                        |    2 +-
 scripts/cif_reduce_Niggli                          |    6 +-
 scripts/cif_reduce_cell                            |    6 +-
 scripts/cif_reformat_AMCSD_author_names            |    6 +-
 scripts/cif_reformat_pubmed_author_names           |    6 +-
 scripts/cif_reformat_uppercase_author_names        |    6 +-
 scripts/cif_select                                 |    6 +-
 scripts/cif_set_value                              |    8 +-
 scripts/cif_sort_atoms                             |  176 +++
 scripts/cif_split                                  |   23 +-
 scripts/cif_split_primitive                        |    2 +-
 scripts/cif_symop_apply                            |    6 +-
 scripts/cif_tags_in_list                           |    6 +-
 scripts/cif_tcod_tree                              |   41 +-
 scripts/cif_validate                               |  156 +-
 scripts/cif_values                                 |    6 +-
 scripts/cod-tools-version.in                       |    8 +-
 scripts/cod2rdf                                    |    6 +-
 scripts/cod_fetch                                  |    2 +-
 scripts/cod_predeposition_check                    |   11 +-
 scripts/codcif2sdf                                 |    2 +-
 scripts/fetch_cif_dict                             |    2 +-
 scripts/find_numbers                               |    2 +-
 scripts/formula_sum                                |    2 +-
 scripts/json2cif                                   |    8 +-
 scripts/molcif2sdf                                 |    2 +-
 scripts/msg_parse                                  |   14 +-
 scripts/oqmd2cif                                   |    2 +-
 scripts/sdf_add_cod_data                           |    2 +-
 scripts/ssg3d                                      |    2 +-
 scripts/ssg_symop_canonical                        |    2 +-
 scripts/ssg_symop_check                            |    2 +-
 scripts/ssg_symop_matrices                         |    2 +-
 scripts/ssg_symop_string                           |    2 +-
 scripts/symop_build_spacegroup                     |    2 +-
 scripts/utf8-to-cif                                |    2 +-
 src/components/codcif/Makefile                     |    2 +-
 src/components/codcif/cif.c                        |    2 +-
 src/components/codcif/cif.h                        |    2 +-
 src/components/codcif/cif2_grammar.y               |    2 +-
 src/components/codcif/cif2_grammar_y.h             |    2 +-
 src/components/codcif/cif2_lexer.c                 |    6 +-
 src/components/codcif/cif2_lexer.h                 |    2 +-
 src/components/codcif/cif_compiler.c               |    9 +-
 src/components/codcif/cif_compiler.h               |    2 +-
 src/components/codcif/cif_grammar.y                |    2 +-
 src/components/codcif/cif_grammar_flex.c           |    2 +-
 src/components/codcif/cif_grammar_flex.h           |    2 +-
 src/components/codcif/cif_grammar_y.h              |    2 +-
 src/components/codcif/cif_lexer.c                  |   12 +-
 src/components/codcif/cif_lexer.h                  |    2 +-
 src/components/codcif/cif_options.c                |    2 +-
 src/components/codcif/cif_options.h                |    2 +-
 src/components/codcif/ciflist.c                    |    2 +-
 src/components/codcif/ciflist.h                    |    2 +-
 src/components/codcif/cifmessage.c                 |    2 +-
 src/components/codcif/cifmessage.h                 |    2 +-
 src/components/codcif/ciftable.c                   |    2 +-
 src/components/codcif/ciftable.h                   |    2 +-
 src/components/codcif/cifvalue.c                   |    2 +-
 src/components/codcif/cifvalue.h                   |    2 +-
 src/components/codcif/common.c                     |    2 +-
 src/components/codcif/common.h                     |    2 +-
 src/components/codcif/datablock.c                  |    2 +-
 src/components/codcif/datablock.h                  |    2 +-
 src/components/codcif/inputs/1004001-disorder.cif  |    2 +-
 .../codcif/inputs/1508696-long-text-field.cif      |    2 +-
 src/components/codcif/inputs/2000000.cif           |    2 +-
 src/components/codcif/inputs/4067640.cif           |    2 +-
 src/components/codcif/inputs/4318422.cif           |    2 +-
 src/components/codcif/inputs/4319975.cif           |    2 +-
 src/components/codcif/inputs/7052868.cif           |    2 +-
 src/components/codcif/inputs/9007991.cif           |    2 +-
 src/components/codcif/outputs/cifparse_019.out     |    1 +
 src/components/codcif/outputs/cifparse_020.out     |    1 +
 src/components/codcif/outputs/cifparse_053.out     |    1 +
 src/components/codcif/programs/cif_list_tags.c     |   41 +-
 src/components/codcif/programs/cifparse.c          |    4 +-
 src/components/codcif/programs/cifvalues.c         |    4 +-
 src/components/codcif/tests/cifparse_107.inp       |    2 +-
 src/components/codcif/tests/cifparse_108.inp       |    2 +-
 src/components/codcif/version.hin                  |    2 +-
 src/components/codcif/yy.c                         |    2 +-
 .../pycodcif/tests/outputs/cif_parser_test_071.out |    2 +
 .../pycodcif/tests/outputs/cif_parser_test_107.out |    1 +
 .../pycodcif/tests/scripts/cif_parser_test         |    2 +-
 src/database-schemas/cif2cod.sql                   |    2 +-
 src/externals/cexceptions/Makefile                 |    2 +-
 src/externals/cexceptions/allocx.c                 |    2 +-
 src/externals/cexceptions/allocx.h                 |    2 +-
 src/externals/cexceptions/cexceptions.c            |    2 +-
 src/externals/cexceptions/cexceptions.h            |    2 +-
 src/externals/cexceptions/cxprintf.c               |    2 +-
 src/externals/cexceptions/cxprintf.h               |    2 +-
 src/externals/cexceptions/stdiox.c                 |    2 +-
 src/externals/cexceptions/stdiox.h                 |    2 +-
 src/externals/cexceptions/stringx.c                |    2 +-
 src/externals/cexceptions/stringx.h                |    2 +-
 src/externals/cexceptions/tests/programs/fopenx.c  |    2 +-
 .../cexceptions/tests/programs/tcreallocx.c        |    2 +-
 .../cexceptions/tests/programs/tstrdupx.c          |    2 +-
 src/externals/getoptions/Makefile                  |    2 +-
 src/externals/getoptions/getoptions.c              |    2 +-
 src/externals/getoptions/getoptions.h              |    2 +-
 src/externals/getoptions/tests/programs/topt.c     |    2 +-
 src/lib/perl5/COD/Algebra.pm                       |    2 +-
 src/lib/perl5/COD/Algebra/JacobiEigen.pm           |    2 +-
 src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm     |    2 +-
 src/lib/perl5/COD/Algebra/Vector.pm                |    2 +-
 src/lib/perl5/COD/AtomBricks.pm                    |    2 +-
 src/lib/perl5/COD/AtomNeighbours.pm                |   13 +-
 src/lib/perl5/COD/AuthorNames.pm                   |    2 +-
 src/lib/perl5/COD/CIF/Data.pm                      |    2 +-
 src/lib/perl5/COD/CIF/Data/AtomList.pm             |    9 +-
 src/lib/perl5/COD/CIF/Data/CIF2COD.pm              |    2 +-
 src/lib/perl5/COD/CIF/Data/CODFlags.pm             |    2 +-
 src/lib/perl5/COD/CIF/Data/CODNumbers.pm           |    2 +-
 .../perl5/COD/CIF/Data/CODPredepositionCheck.pm    |  114 +-
 src/lib/perl5/COD/CIF/Data/CellContents.pm         |   25 +-
 src/lib/perl5/COD/CIF/Data/Classifier.pm           |  157 +-
 src/lib/perl5/COD/CIF/Data/Diff.pm                 |    2 +-
 src/lib/perl5/COD/CIF/Data/EstimateZ.pm            |    2 +-
 .../perl5/COD/CIF/Data/ExcludeFromStatistics.pm    |    2 +-
 src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm    |  405 ++++-
 src/lib/perl5/COD/CIF/JSON.pm                      |    2 +-
 src/lib/perl5/COD/CIF/Parser.pm                    |    8 +-
 .../Bison/tests/outputs/cif_parser_test_071.out    |    2 +
 .../Bison/tests/outputs/cif_parser_test_107.out    |    1 +
 .../CIF/Parser/Bison/tests/scripts/cif_parser_test |    6 +-
 .../tests/shtests/multiline_text_field_001.sh      |    2 +-
 .../Parser/Bison/tests/shtests/precisions_001.sh   |    2 +-
 .../CIF/Parser/Bison/tests/shtests/unicode_001.sh  |    2 +-
 src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp          |   15 +-
 .../inputs/cif2-unicode-deeply-nested-numeric.cif  |    2 +-
 .../tests/inputs/cif2-unicode-deeply-nested.cif    |    2 +-
 .../Yapp/tests/inputs/cif2-unicode-multiblock.cif  |    2 +-
 .../Yapp/tests/inputs/cif2-unicode-save-frames.inp |    2 +-
 .../Yapp/tests/inputs/cif2-unicode-simple.inp      |    2 +-
 .../tests/inputs/complex_structure_precisions.cif  |    2 +-
 .../Yapp/tests/inputs/loops_with_precisions.cif    |    2 +-
 .../tests/inputs/nested_structure_precisions.cif   |    2 +-
 .../tests/inputs/save_frame_with_precisions.cif    |    2 +-
 .../CIF/Parser/Yapp/tests/scripts/cif_parser_test  |    6 +-
 .../COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh  |    2 +-
 .../COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh  |    2 +-
 .../Parser/Yapp/tests/shtests/err_no_data_01.sh    |    2 +-
 .../Parser/Yapp/tests/shtests/err_no_data_02.sh    |    2 +-
 .../Parser/Yapp/tests/shtests/err_no_data_03.sh    |    2 +-
 .../Parser/Yapp/tests/shtests/error_messages.sh    |    6 +-
 .../Parser/Yapp/tests/shtests/file_not_defined.sh  |    2 +-
 .../Yapp/tests/shtests/float_mis-increase_lexer.sh |    2 +-
 .../CIF/Parser/Yapp/tests/shtests/global_errors.sh |    2 +-
 .../CIF/Parser/Yapp/tests/shtests/local_tags.sh    |    2 +-
 .../COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh  |    2 +-
 .../Parser/Yapp/tests/shtests/loop_misparsing.sh   |    2 +-
 .../tests/shtests/missing_closing_dq_string.sh     |    2 +-
 .../tests/shtests/missing_closing_sq_string.sh     |    2 +-
 .../CIF/Parser/Yapp/tests/shtests/save_block.sh    |    2 +-
 .../COD/CIF/Parser/Yapp/tests/shtests/simple.sh    |    2 +-
 .../tests/shtests/standard_uncertainty_handling.sh |    2 +-
 .../Parser/Yapp/tests/shtests/text_field_001.sh    |    2 +-
 .../Parser/Yapp/tests/shtests/unquoted_string.sh   |    2 +-
 .../tests/shtests/unquoted_string_with_brackets.sh |    2 +-
 .../tests/shtests/unquoted_string_wo_brackets.sh   |    2 +-
 src/lib/perl5/COD/CIF/Tags/AMCSD.pm                |    2 +-
 src/lib/perl5/COD/CIF/Tags/COD.pm                  |    2 +-
 src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm       |    2 +-
 src/lib/perl5/COD/CIF/Tags/DFT.pm                  |    2 +-
 src/lib/perl5/COD/CIF/Tags/DictTags.pm             |    2 +-
 src/lib/perl5/COD/CIF/Tags/Excluded.pm             |    2 +-
 src/lib/perl5/COD/CIF/Tags/Manage.pm               |   37 +-
 src/lib/perl5/COD/CIF/Tags/Print.pm                |   47 +-
 src/lib/perl5/COD/CIF/Tags/TCOD.pm                 |    2 +-
 src/lib/perl5/COD/CIF/Unicode2CIF.pm               |    2 +-
 src/lib/perl5/COD/Cell.pm                          |    2 +-
 src/lib/perl5/COD/Cell/Conventional/deWG91.pm      |    2 +-
 src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm        |    2 +-
 src/lib/perl5/COD/Cell/Niggli/KG76.pm              |    2 +-
 src/lib/perl5/COD/CromerMann.pm                    |    2 +-
 src/lib/perl5/COD/ErrorHandler.pm                  |   10 +-
 src/lib/perl5/COD/Escape.pm                        |    2 +-
 src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp   |    2 +-
 .../Parser/AdHoc/tests/scripts/formula_parser_test |    2 +-
 src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp     |    2 +-
 .../Parser/IUCr/tests/scripts/formula_parser_test  |    2 +-
 src/lib/perl5/COD/Formulae/Print.pm                |    2 +-
 src/lib/perl5/COD/Fractional.pm                    |    2 +-
 src/lib/perl5/COD/MorganFingerprints.pm            |    2 +-
 src/lib/perl5/COD/Overlays/Kabsch.pm               |    2 +-
 src/lib/perl5/COD/Overlays/Kearsley.pm             |    2 +-
 src/lib/perl5/COD/Overlays/Theobald.pm             |    2 +-
 src/lib/perl5/COD/Precision.pm                     |    2 +-
 src/lib/perl5/COD/RDF.pm                           |    2 +-
 src/lib/perl5/COD/SOptions.pm                      |    2 +-
 src/lib/perl5/COD/SUsage.pm                        |    2 +-
 src/lib/perl5/COD/Serialise.pm                     |    2 +-
 src/lib/perl5/COD/Spacegroups/Builder.pm           |    2 +-
 src/lib/perl5/COD/Spacegroups/Cosets.pm            |    2 +-
 src/lib/perl5/COD/Spacegroups/Lookup.pm            |    2 +-
 src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm       |    2 +-
 src/lib/perl5/COD/Spacegroups/Lookup/COD.pm        |    2 +-
 src/lib/perl5/COD/Spacegroups/Names.pm             |    2 +-
 src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm     |    2 +-
 src/lib/perl5/COD/Spacegroups/Symop/Parse.pm       |   19 +-
 src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm    |    2 +-
 src/lib/perl5/COD/ToolsVersion.pmin                |    2 +-
 src/lib/perl5/COD/UserMessage.pm                   |   24 +-
 tests/cases/cif2cod_047.opt                        |    1 +
 tests/cases/cif_cod_check_112.inp                  |    1 +
 tests/cases/cif_cod_check_112.opt                  |    1 +
 tests/cases/cif_cod_check_112.tst                  |    2 +
 tests/cases/cif_cod_check_113.inp                  |    1 +
 tests/cases/cif_cod_check_113.tst                  |    3 +
 tests/cases/cif_filter_043.opt                     |    2 +-
 tests/cases/cif_filter_045.opt                     |    2 +-
 tests/cases/cif_filter_046.opt                     |    2 +-
 tests/cases/cif_filter_181.inp                     |    1 +
 tests/cases/cif_filter_181.opt                     |    1 +
 tests/cases/cif_merge_007.opt                      |    1 +
 tests/cases/cif_sort_atoms_001.inp                 |    1 +
 tests/cases/cif_sort_atoms_002.inp                 |    1 +
 tests/cases/cif_sort_atoms_002.opt                 |    1 +
 tests/cases/cif_sort_atoms_003.inp                 |    1 +
 tests/cases/cif_sort_atoms_003.opt                 |    1 +
 tests/cases/cif_split_004.inp                      |    1 +
 tests/cases/cif_split_004.opt                      |    1 +
 tests/cases/cif_tcod_tree_004.inp                  |    1 +
 tests/cases/cif_tcod_tree_004.opt                  |    1 +
 tests/cases/cif_validate_039.inp                   |    1 +
 tests/cases/cif_validate_039.opt                   |    1 +
 tests/cases/cod_predeposition_check_033.chk        |    1 +
 tests/inputs/10000001.cif                          |    2 +-
 tests/inputs/1000002-test-hall.cif                 |    2 +-
 tests/inputs/1000002-test-hm.cif                   |    2 +-
 tests/inputs/1000002-test-hm2.cif                  |    2 +-
 tests/inputs/1000002-test-symop.cif                |    2 +-
 tests/inputs/1000023.cif                           |    2 +-
 tests/inputs/1000026-MgB2.cif                      |    2 +-
 tests/inputs/1000035.cif                           |    2 +-
 tests/inputs/1000039.cif                           |    2 +-
 tests/inputs/1000054.cif                           |    2 +-
 tests/inputs/1000055-unrecognised-spacegroup.cif   |    2 +-
 tests/inputs/1000125-cell-diff.cif                 |    2 +-
 tests/inputs/1000451.cif                           |    2 +-
 tests/inputs/1001012-no-cell.cif                   |    2 +-
 tests/inputs/1001627-spacegroup-A-1.cif            |    2 +-
 tests/inputs/1004001-disorder.cif                  |    2 +-
 tests/inputs/1004001.cif                           |    2 +-
 tests/inputs/1004008-90-dot.cif                    |    2 +-
 tests/inputs/1008449.cif                           |    2 +-
 tests/inputs/1010050-zero-sigmas.cif               |    2 +-
 tests/inputs/1010800-no-spcgrp-info.cif            |    2 +-
 tests/inputs/1011060-graphite-atom-label.cif       |    2 +-
 tests/inputs/1011060-graphite-atom-type-symbol.cif |    2 +-
 tests/inputs/1011060-graphite-err.cif              |    2 +-
 tests/inputs/1011060-graphite.cif                  |    2 +-
 .../inputs/1100107-spacegroup-with-underscore.cif  |    2 +-
 tests/inputs/1100709-uqstring-brackets.cif         |    2 +-
 tests/inputs/1100910-simple-fractions.cif          |    2 +-
 .../inputs/1100914-incorrect-weighting-scheme.cif  |    2 +-
 tests/inputs/1502949.cif                           |    2 +-
 tests/inputs/1516136.cif                           |    2 +-
 tests/inputs/2000000-cif-special-values.cif        |    2 +-
 tests/inputs/2000000_e_kelvins.cif                 |    2 +-
 tests/inputs/2000000_e_temperature.cif             |    2 +-
 tests/inputs/20000097.cif                          |    2 +-
 tests/inputs/2000056.cif                           |    2 +-
 tests/inputs/2000080-molecule.cif                  |    2 +-
 tests/inputs/2000135.cif                           |    2 +-
 tests/inputs/2000318-r91933.cif                    |    2 +-
 tests/inputs/2000373-merge-limits.cif              |    2 +-
 tests/inputs/2000373-modified-merge-limits.cif     |    2 +-
 tests/inputs/2000488-reset-limits.cif              |    2 +-
 tests/inputs/2000507.cif                           |    2 +-
 tests/inputs/2000583.cif                           |    2 +-
 tests/inputs/2000724.cif                           |    2 +-
 tests/inputs/2000728-atom-type-questionmarks.cif   |    2 +-
 tests/inputs/2001207-abs-corr-with-biblio.cif      |    2 +-
 tests/inputs/2001253-not-numeric-limits.cif        |    2 +-
 tests/inputs/2001460.cif                           |    2 +-
 .../inputs/2001495-incorrect-weighting-scheme.cif  |    2 +-
 tests/inputs/2001811-googness-of-fit.cif           |    2 +-
 tests/inputs/2001811-with-T.cif                    |    2 +-
 tests/inputs/2001811_new_line.cif                  |    2 +-
 .../inputs/2002857-cif_molecule-deep-recursion.cif |    2 +-
 tests/inputs/2003003.cif                           |    2 +-
 tests/inputs/2003005.cif                           |    2 +-
 tests/inputs/2003076-spacegroup-C1.cif             |    2 +-
 tests/inputs/2003526-r-factor-with-esd.cif         |    2 +-
 tests/inputs/2003757-formula-C12_B_Cl_F10.cif      |    2 +-
 tests/inputs/2003896-undefined-goodness-fit.cif    |    2 +-
 tests/inputs/2004198-no-cell-angles.cif            |    2 +-
 tests/inputs/2004325-cell-questionmark.cif         |    2 +-
 tests/inputs/2004650.cif                           |    2 +-
 tests/inputs/2005372-atom-name-with-spaces.cif     |    2 +-
 tests/inputs/2006132.cif                           |    2 +-
 tests/inputs/2007300.cif                           |    2 +-
 tests/inputs/2008009-set1.cif                      |    2 +-
 tests/inputs/2009306-xyz-simple-fract.cif          |    2 +-
 tests/inputs/2009397-corrected-symops.cif          |    2 +-
 tests/inputs/2009397-syntax-error.cif              |    2 +-
 tests/inputs/2009397.cif                           |    2 +-
 tests/inputs/2009480.cif                           |    2 +-
 tests/inputs/2009901.cif                           |    2 +-
 tests/inputs/2010359.cif                           |    2 +-
 tests/inputs/2010442-Uiso-value-bug.cif            |    2 +-
 tests/inputs/2010787.cif                           |    2 +-
 tests/inputs/2011406-xy-simple-fract.cif           |    2 +-
 tests/inputs/2014244.cif                           |    2 +-
 tests/inputs/2015717-long-title.cif                |    2 +-
 tests/inputs/2016470-long-title.cif                |    2 +-
 tests/inputs/2019572.cif                           |    2 +-
 tests/inputs/2100348-benzene-dist-test.cif         |    2 +-
 tests/inputs/2100428-superspacegroup.cif           |    2 +-
 tests/inputs/2100438-cell-vol.cif                  |    2 +-
 tests/inputs/2100831-incomplete-unit-cell-info.cif |    2 +-
 tests/inputs/2101499-diamond.cif                   |    2 +-
 tests/inputs/2101923-value-with-precision.cif      |    2 +-
 tests/inputs/2103187-misaligned-loop.cif           |    2 +-
 tests/inputs/2103514-with-P-and-T.cif              |    2 +-
 tests/inputs/2103654-head.cif                      |    2 +-
 tests/inputs/2103700.cif                           |    2 +-
 tests/inputs/2103766.cif                           |    2 +-
 tests/inputs/2103867.cif                           |    2 +-
 tests/inputs/2103919.cif                           |    2 +-
 tests/inputs/2103956.cif                           |    2 +-
 tests/inputs/2104634-new-symop-tags-no-SG.cif      |    2 +-
 tests/inputs/2105506-superspacegroup.cif           |    2 +-
 tests/inputs/2105936-strange-centering.cif         |    2 +-
 tests/inputs/2201353-cell-vol.cif                  |    2 +-
 tests/inputs/2202108.cif                           |    2 +-
 tests/inputs/2203315.cif                           |    2 +-
 tests/inputs/2204100.cif                           |    2 +-
 tests/inputs/2205051_cif_molecule.cif              |    2 +-
 tests/inputs/2205053-molecule.cif                  |    2 +-
 tests/inputs/2208311-zero-occupancies.cif          |    2 +-
 tests/inputs/2208504.cif                           |    2 +-
 tests/inputs/2209560-cell-vol.cif                  |    2 +-
 tests/inputs/2217081-cell-vol.cif                  |    2 +-
 tests/inputs/2217757.cif                           |    2 +-
 tests/inputs/2219444.cif                           |    2 +-
 tests/inputs/2222274.cif                           |    2 +-
 tests/inputs/2224635.cif                           |    2 +-
 tests/inputs/2224874.cif                           |    2 +-
 tests/inputs/2228759-multiple-diacritics.cif       |    2 +-
 tests/inputs/2231955.cif                           |    2 +-
 tests/inputs/2238212-only-doi.cif                  |    2 +-
 tests/inputs/2238212.cif                           |    2 +-
 tests/inputs/2300214-new-sg-name-H-M.cif           |    2 +-
 tests/inputs/2300214-new-sg-name-Hall.cif          |    2 +-
 tests/inputs/4000911-high-precision-cell.cif       |    2 +-
 tests/inputs/4001780.cif                           |    2 +-
 tests/inputs/4021421-non-dict-tags-in-loop.cif     |    2 +-
 tests/inputs/4024741.cif                           |    2 +-
 tests/inputs/4024913-with-new-symop-tags.cif       |    2 +-
 tests/inputs/4063196-short-H-M.cif                 |    2 +-
 tests/inputs/4063260-wrong-formula-sum.cif         |    2 +-
 tests/inputs/4101385.cif                           |    2 +-
 tests/inputs/4101585-truncated-page-last.cif       |    2 +-
 tests/inputs/4105625.cif                           |    2 +-
 tests/inputs/4300013.cif                           |    2 +-
 tests/inputs/4300015.cif                           |    2 +-
 tests/inputs/4300056.cif                           |    2 +-
 tests/inputs/4300081.cif                           |    2 +-
 tests/inputs/4301885-I12slash1-spacegroup.cif      |    2 +-
 tests/inputs/4302333-Ortho-and-missing-braces.cif  |    2 +-
 tests/inputs/4302587-symetry.cif                   |    2 +-
 tests/inputs/4303187-double-underscore.cif         |    2 +-
 tests/inputs/4303187-multiple-underscores.cif      |    2 +-
 tests/inputs/4308312-audit-dict-name.cif           |    2 +-
 tests/inputs/4310545-temperature-tag.cif           |    2 +-
 tests/inputs/4320780-negative-value.cif            |    2 +-
 tests/inputs/4334605.cif                           |    2 +-
 tests/inputs/4503694.cif                           |    2 +-
 tests/inputs/5000332.cif                           |    2 +-
 tests/inputs/6000001-without-cordinates.cif        |    2 +-
 tests/inputs/7000165-disorder.cif                  |    2 +-
 tests/inputs/7004184-decomp-celsius.cif            |    2 +-
 tests/inputs/7011014-occupancy-is-a-dot.cif        |    2 +-
 tests/inputs/7050234-non-ascii-text-field.cif      |    2 +-
 .../inputs/7052819-thermal-hist-with-newlines.cif  |    2 +-
 tests/inputs/7101147.cif                           |    2 +-
 tests/inputs/7101937-degrees-celsius.cif           |    2 +-
 tests/inputs/7105218-complex-author-name.cif       |    2 +-
 .../7105250-oriental-name-capitalisation.cif       |    2 +-
 tests/inputs/7105573-no-Z.cif                      |    2 +-
 tests/inputs/7106028-temerature-not-important.cif  |    2 +-
 tests/inputs/7200679-spacegroup-P4.cif             |    2 +-
 tests/inputs/7201670-limits-with-precision.cif     |    2 +-
 tests/inputs/8000003.cif                           |    2 +-
 tests/inputs/8000008-mixed-case-tags.cif           |    2 +-
 tests/inputs/8100877-bump.cif                      |    2 +-
 tests/inputs/8102326.cif                           |    2 +-
 tests/inputs/9000020.cif                           |    2 +-
 tests/inputs/9000133-annealed.cif                  |    2 +-
 tests/inputs/9000579-annealing.cif                 |    2 +-
 tests/inputs/9001201-then-quenched.cif             |    2 +-
 tests/inputs/9001205-then-quenched.cif             |    2 +-
 tests/inputs/9001907-broken-unit-cell.cif          |    2 +-
 tests/inputs/9001922-long-formula.cif              |    2 +-
 tests/inputs/9003333-nonquenchable.cif             |    2 +-
 tests/inputs/9003354.cif                           |    2 +-
 tests/inputs/9003733-Annealed.cif                  |    2 +-
 tests/inputs/9003869-long-title.cif                |    2 +-
 tests/inputs/9005205-Quenched.cif                  |    2 +-
 tests/inputs/9005728.cif                           |    2 +-
 tests/inputs/9007346-Annealing.cif                 |    2 +-
 tests/inputs/9007872-one-funny-word-title.cif      |    2 +-
 tests/inputs/9007874-strange-H-names-no-types.cif  |    2 +-
 tests/inputs/9007874-strange-H-names.cif           |    2 +-
 tests/inputs/9008098.cif                           |    2 +-
 tests/inputs/9008564-diamond.cif                   |    2 +-
 tests/inputs/9010219-synthesized.cif               |    2 +-
 tests/inputs/9010340-with-P-value.cif              |    2 +-
 tests/inputs/9010753-C-D-bond.cif                  |   99 +-
 tests/inputs/9011575-diamond.cif                   |    2 +-
 tests/inputs/9012705.cif                           |    2 +-
 tests/inputs/9012939-with-T-in-deg-C.cif           |    2 +-
 tests/inputs/9013186-pressure-hist.cif             |    2 +-
 tests/inputs/9013187-pressure-hist.cif             |    2 +-
 tests/inputs/9013191-pressure-hist.cif             |    2 +-
 tests/inputs/9013273-Pressure.cif                  |    2 +-
 .../cifs-with-errors/2009397-syntax-error.cif      |    2 +-
 tests/inputs/cifs-with-errors/2009397.cif          |    2 +-
 tests/inputs/close-cells/cod/9006017.cif           |    2 +-
 tests/inputs/close-cells/cod/9006022.cif           |    2 +-
 tests/inputs/close-cells/cod/9006038.cif           |    2 +-
 tests/inputs/close-cells/cod/9006039.cif           |    2 +-
 tests/inputs/close-cells/cod/9006040.cif           |    2 +-
 tests/inputs/close-cells/cod/9006041.cif           |    2 +-
 tests/inputs/cod-different-contents/1011335.cif    |    2 +-
 tests/inputs/cod-different-contents/9011403.cif    |    2 +-
 tests/inputs/cod-similar-angles/9001833.cif        |    2 +-
 tests/inputs/cod-similar-angles/9001838.cif        |    2 +-
 .../cod-with-errors/2009397-syntax-error.cif       |    2 +-
 tests/inputs/cod-with-errors/2009397.cif           |    2 +-
 tests/inputs/cod1/9002543.cif                      |    2 +-
 tests/inputs/cod1/9002544.cif                      |    2 +-
 tests/inputs/cod1/9002545.cif                      |    2 +-
 tests/inputs/cod1/9002546.cif                      |    2 +-
 tests/inputs/cod1/9002547.cif                      |    2 +-
 tests/inputs/cod1/9002548.cif                      |    2 +-
 tests/inputs/cod1/9002549.cif                      |    2 +-
 tests/inputs/cod1/9002550.cif                      |    2 +-
 tests/inputs/cod1/9002551.cif                      |    2 +-
 tests/inputs/cod2/9002543.cif                      |    2 +-
 tests/inputs/cod2/9002544.cif                      |    2 +-
 tests/inputs/cod2/9002545.cif                      |    2 +-
 tests/inputs/cod2/9002546.cif                      |    2 +-
 tests/inputs/cod2/9002547.cif                      |    2 +-
 tests/inputs/cod2/9002548.cif                      |    2 +-
 tests/inputs/cod2/9002549.cif                      |    2 +-
 tests/inputs/cod2/9002550.cif                      |    2 +-
 tests/inputs/cod2/9002551.cif                      |    2 +-
 tests/inputs/malformed_symop_new_sym_tag.cif       |   12 +
 tests/inputs/merge_7b.cif                          |    5 +
 tests/inputs/new_symop_tag.cif                     |   12 +
 tests/inputs/sample-history/cod/9005952.cif        |    2 +-
 tests/inputs/sample-history/cod/9005953.cif        |    2 +-
 tests/inputs/sample-history/cod/9005954.cif        |    2 +-
 tests/inputs/unparsable-formulae1/1100062.cif      |    2 +-
 tests/inputs/unparsable-formulae1/1100811.cif      |    2 +-
 tests/inputs/unparsable-formulae1/2010785.cif      |    2 +-
 tests/inputs/unparsable-formulae2/1100062.cif      |    2 +-
 tests/inputs/unparsable-formulae2/1100811.cif      |    2 +-
 tests/inputs/unparsable-formulae2/2010785.cif      |    2 +-
 tests/outputs/cif2cod_047.out                      |    1 +
 tests/outputs/cif_classify_002.out                 |    2 +-
 tests/outputs/cif_cod_check_008.out                |    3 +-
 tests/outputs/cif_cod_check_009.out                |    3 +-
 tests/outputs/cif_cod_check_010.out                |    3 +-
 tests/outputs/cif_cod_check_012.out                |    5 +-
 tests/outputs/cif_cod_check_013.out                |    5 +-
 tests/outputs/cif_cod_check_015.out                |    3 +-
 tests/outputs/cif_cod_check_018.out                |    4 +-
 tests/outputs/cif_cod_check_019.out                |    1 +
 tests/outputs/cif_cod_check_020.out                |    4 +-
 tests/outputs/cif_cod_check_023.out                |    2 +-
 tests/outputs/cif_cod_check_025.out                |    3 +-
 tests/outputs/cif_cod_check_026.out                |    3 +-
 tests/outputs/cif_cod_check_050.out                |    3 +-
 tests/outputs/cif_cod_check_051.out                |    4 +-
 tests/outputs/cif_cod_check_056.out                |    3 +-
 tests/outputs/cif_cod_check_063.out                |    3 +-
 tests/outputs/cif_cod_check_072.out                |    3 +-
 tests/outputs/cif_cod_check_082.out                |    3 +-
 tests/outputs/cif_cod_check_083.out                |    3 +-
 tests/outputs/cif_cod_check_084.out                |    3 +-
 tests/outputs/cif_cod_check_085.out                |    3 +-
 tests/outputs/cif_cod_check_086.out                |    3 +-
 tests/outputs/cif_cod_check_087.out                |    3 +-
 tests/outputs/cif_cod_check_088.out                |    3 +-
 tests/outputs/cif_cod_check_089.out                |   12 +-
 tests/outputs/cif_cod_check_090.out                |    8 +-
 tests/outputs/cif_cod_check_091.out                |    8 +-
 tests/outputs/cif_cod_check_092.out                |    8 +-
 tests/outputs/cif_cod_check_093.out                |    8 +-
 tests/outputs/cif_cod_check_094.out                |    8 +-
 tests/outputs/cif_cod_check_095.out                |    6 +-
 tests/outputs/cif_cod_check_096.out                |    8 +-
 tests/outputs/cif_cod_check_097.out                |    6 +-
 tests/outputs/cif_cod_check_098.out                |    7 +-
 tests/outputs/cif_cod_check_099.out                |    1 +
 tests/outputs/cif_cod_check_102.out                |    3 +-
 tests/outputs/cif_cod_check_103.out                |    8 +-
 tests/outputs/cif_cod_check_104.out                |    6 +-
 tests/outputs/cif_cod_check_105.out                |    3 +-
 tests/outputs/cif_cod_check_108.out                |    2 +-
 tests/outputs/cif_cod_check_109.out                |    4 +-
 tests/outputs/cif_cod_check_110.out                |   10 +-
 tests/outputs/cif_cod_check_112.out                |    2 +
 tests/outputs/cif_cod_check_113.out                |    3 +
 tests/outputs/cif_correct_tags_005.out             |    2 +
 tests/outputs/cif_distances_024.out                |    3 +-
 tests/outputs/cif_filter_136.out                   |    2 +
 tests/outputs/cif_filter_137.out                   |    2 +
 tests/outputs/cif_filter_181.out                   |   69 +
 tests/outputs/cif_find_symmetry_001.out            |   24 +-
 tests/outputs/cif_find_symmetry_002.out            |   12 +-
 tests/outputs/cif_find_symmetry_003.out            |   96 +-
 tests/outputs/cif_find_symmetry_004.out            |    6 +-
 tests/outputs/cif_find_symmetry_008.out            |   20 +-
 tests/outputs/cif_find_symmetry_010.out            |    6 +-
 tests/outputs/cif_find_symmetry_011.out            |   36 +-
 tests/outputs/cif_find_symmetry_012.out            |   24 +-
 tests/outputs/cif_find_symmetry_013.out            |   12 +-
 tests/outputs/cif_fix_values_051.out               |    2 +
 tests/outputs/cif_merge_007.out                    |   17 +
 tests/outputs/cif_molecule_003.out                 |    2 +
 tests/outputs/cif_molecule_004.out                 |   12 +-
 tests/outputs/cif_molecule_005.out                 |   12 +-
 tests/outputs/cif_molecule_007.out                 |   12 +-
 tests/outputs/cif_molecule_008.out                 |   46 +-
 tests/outputs/cif_molecule_009.out                 |    4 +-
 tests/outputs/cif_molecule_016.out                 |    4 +-
 tests/outputs/cif_molecule_020.out                 |    2 +
 tests/outputs/cif_molecule_023.out                 |    2 +
 tests/outputs/cif_molecule_024.out                 |   51 +-
 tests/outputs/cif_molecule_026.out                 |   46 +-
 tests/outputs/cif_molecule_028.out                 |    8 +-
 tests/outputs/cif_molecule_029.out                 |    2 +
 tests/outputs/cif_molecule_030.out                 |    8 +
 tests/outputs/cif_molecule_031.out                 |    8 +
 tests/outputs/cif_molecule_032.out                 |    8 +
 tests/outputs/cif_molecule_035.out                 |    2 +
 tests/outputs/cif_molecule_036.out                 |    2 +
 tests/outputs/cif_molecule_047.out                 |    2 +
 tests/outputs/cif_molecule_048.out                 |    2 +
 tests/outputs/cif_molecule_056.out                 |    2 +
 tests/outputs/cif_molecule_059.out                 |    2 +
 tests/outputs/cif_molecule_080.out                 |    6 +
 tests/outputs/cif_molecule_085.out                 |    2 +
 tests/outputs/cif_molecule_086.out                 |    2 +
 tests/outputs/cif_molecule_092.out                 |    2 +
 tests/outputs/cif_p1_001.out                       |   30 +-
 tests/outputs/cif_p1_004.out                       |    2 +
 tests/outputs/cif_p1_005.out                       |    2 +
 tests/outputs/cif_p1_006.out                       |    2 +
 tests/outputs/cif_p1_007.out                       |    2 +
 tests/outputs/cif_p1_008.out                       |   56 +-
 tests/outputs/cif_sort_atoms_001.out               |  421 +++++
 tests/outputs/cif_sort_atoms_002.out               |  421 +++++
 tests/outputs/cif_sort_atoms_003.out               |  421 +++++
 tests/outputs/cif_split_004.out                    | 1671 ++++++++++++++++++++
 tests/outputs/cif_tcod_tree_004.out                |   69 +
 tests/outputs/cif_validate_003.out                 |    8 +-
 tests/outputs/cif_validate_004.out                 |    8 +-
 tests/outputs/cif_validate_005.out                 |    8 +-
 tests/outputs/cif_validate_007.out                 |    2 +-
 tests/outputs/cif_validate_008.out                 |    2 +-
 tests/outputs/cif_validate_015.out                 |    8 +-
 tests/outputs/cif_validate_016.out                 |    8 +-
 tests/outputs/cif_validate_018.out                 |    8 +-
 tests/outputs/cif_validate_020.out                 |    2 +-
 tests/outputs/cif_validate_021.out                 |    2 +-
 tests/outputs/cif_validate_022.out                 |    2 +-
 tests/outputs/cif_validate_024.out                 |    8 +-
 tests/outputs/cif_validate_025.out                 |    8 +-
 tests/outputs/cif_validate_026.out                 |    8 +-
 tests/outputs/cif_validate_027.out                 |    4 +-
 tests/outputs/cif_validate_029.out                 |    2 +-
 tests/outputs/cif_validate_030.out                 |    6 +-
 tests/outputs/cif_validate_031.out                 |    6 +-
 tests/outputs/cif_validate_032.out                 |    6 +-
 tests/outputs/cif_validate_039.out                 |    4 +
 tests/outputs/cod_predeposition_check_004.out      |    2 +-
 tests/outputs/cod_predeposition_check_009.out      |    6 +-
 tests/outputs/cod_predeposition_check_010.out      |    6 +-
 tests/outputs/cod_predeposition_check_011.out      |    6 +-
 tests/outputs/cod_predeposition_check_012.out      |    6 +-
 tests/outputs/cod_predeposition_check_016.out      |    2 +-
 tests/outputs/cod_predeposition_check_018.out      |    7 +-
 tests/outputs/cod_predeposition_check_019.out      |    2 +-
 tests/outputs/cod_predeposition_check_020.out      |  200 +--
 tests/outputs/cod_predeposition_check_021.out      |    3 +-
 tests/outputs/cod_predeposition_check_023.out      |    5 +-
 tests/outputs/cod_predeposition_check_024.out      |    2 +-
 tests/outputs/cod_predeposition_check_028.out      |    2 +-
 tests/outputs/cod_predeposition_check_029.out      |    2 +-
 tests/outputs/cod_predeposition_check_030.out      |    2 +-
 tests/shoutputs/check_option_descriptions.out      |    2 +-
 tests/shoutputs/cif_print_loop_001.out             |    9 +
 tests/shoutputs/cif_print_loop_002.out             |   16 +
 tests/shoutputs/cif_split_002.out                  |    6 +
 tests/shoutputs/cif_tcod_tree_007.out              |  109 ++
 tests/shoutputs/neighbour_list_from_mol_002.out    |  181 +++
 tests/shtests/check_spacegroups_001.sh             |    2 +-
 tests/shtests/check_spacegroups_002.sh             |    2 +-
 tests/shtests/cif_disorder_groups_001.sh           |    2 +-
 tests/shtests/cif_disorder_groups_002.sh           |    2 +-
 tests/shtests/cif_disorder_groups_003.sh           |    2 +-
 tests/shtests/cif_disorder_groups_004.sh           |    2 +-
 tests/shtests/cif_disorder_groups_005.sh           |    2 +-
 tests/shtests/cif_disorder_groups_006.sh           |    2 +-
 tests/shtests/cif_disorder_groups_007.sh           |    2 +-
 tests/shtests/cif_print_loop_001.sh                |   42 +
 tests/shtests/cif_print_loop_002.sh                |   48 +
 tests/shtests/cif_split_primitive_001.sh           |    2 +-
 tests/shtests/cif_split_primitive_002.sh           |    2 +-
 tests/shtests/cif_split_primitive_003.sh           |    2 +-
 tests/shtests/cif_split_primitive_004.sh           |    2 +-
 tests/shtests/cif_split_primitive_005.sh           |    2 +-
 tests/shtests/cif_split_primitive_006.sh           |    2 +-
 tests/shtests/cif_split_primitive_007.sh           |    2 +-
 tests/shtests/cif_split_primitive_008.sh           |    2 +-
 tests/shtests/cif_split_primitive_009.sh           |    2 +-
 tests/shtests/cif_split_primitive_010.sh           |    2 +-
 tests/shtests/cif_tcod_tree_007.sh                 |   30 +
 tests/shtests/neighbour_list_from_mol_002.chk      |    7 +
 tests/shtests/neighbour_list_from_mol_002.sh       |   21 +
 tests/shtests/symop_algebra_001.sh                 |    2 +-
 tests/shtests/symop_algebra_002.sh                 |    2 +-
 tests/shtests/symop_algebra_003.sh                 |    2 +-
 tests/shtests/symop_algebra_004.sh                 |    2 +-
 tools/check_option_descriptions                    |    2 +-
 tools/check_symop_canonicality                     |    2 +-
 tools/duplicate_space_groups                       |    2 +-
 tools/help2man                                     |   40 +-
 tools/mkperldepend                                 |    2 +-
 714 files changed, 6946 insertions(+), 2775 deletions(-)

diff --git a/.version b/.version
index f5d8ed4..940663a 100644
--- a/.version
+++ b/.version
@@ -1,3 +1,3 @@
 # Semantic version of cod-tools
 # http://semver.org/
-2.0
+2.1
diff --git a/CHANGELOG b/CHANGELOG
index 3c1d638..bf4b70d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,107 @@
+cod-tools (2.1)
+
+  * Added:
+    - cif_sort_atoms: a script to order atoms by given method.
+    - cif_filter: command line options --original-filename-tag and
+      --original-data-block-tag.
+    - cif_validate: displaying a warning upon validation against DDLm
+      conformant dictionaries.
+    - cif_cod_check: raising a warning about the space group symmetry
+      operation list not being provided in the input file when the
+      --check-symmetry-operators option is enabled.
+    - cif_split: command line option --do-not-split-global-data-block.
+    - COD::CIF::Data::SymmetryGenerator: adding functions:
+     - chemical_formula_sum
+     - symop_apply
+     - symop_register_applied_symop
+     - symops_apply_modulo1
+     - translate_atom
+     - translation
+     - trim_polymer
+    - COD::CIF::Tags::Manage: adding function rename_tags().
+    - cif_tcod_tree: command line option --no-outputs.
+  * Changed:
+    - cif_find_symmetry: outputting symmetry operators in a canonical
+      form.
+    - cif_validate:
+      - updated the help message.
+      - updated the error message related to unrecognised data names.
+      - renamed several subroutines and changed their interfaces in
+        preparation for the introduction of the DDLm validator. The
+        subroutine 'check_against_range' was renamed to 'is_in_range',
+        'check_against_range_numb' to 'is_in_range_numeric' and
+        'check_against_range_char' to 'is_in_range_char'.
+    - cif_find_duplicates: removed the unused import of the
+      COD::CIF::Data::CellContents.
+    - COD::Spacegroups::Symop::Parse: removed the warning messages
+      from the is_symop_parsable() subroutine.
+    - cif_cod_check: updated the warning messages dealing with
+      symmetry operations.
+    - Homogenising symmetry generation code in cif_molecule, cif_p1
+      and COD::CIF::Data::Classifier::get_atoms(), reusing code from
+      COD::CIF::Data::SymmetryGenerator and COD::CIF::Data::AtomList
+      as much as possible.
+    - cif_tcod_tree: adding AiiDA commands to load AiiDA database
+      dump.
+  * Fixed:
+    - Removing the 'svn:keywords' svn property from test input CIF
+      files.
+    - cif_filter: adding name of database code data item to the list
+      of data block tags.
+    - cif_merge: truncating loop tags after having them overwritten
+      with less values.
+    - cif_cod_check:
+      - correcting some warning messages to no longer contain the
+        script name and line number where they were raised.
+      - correcting the way the overall number of error messages is
+        reported.
+      - updated the check_symmetry_operators() and
+        'check_space_group_info() subroutines to also consider the
+        values of the _space_group_symop_operation_xyz data item.
+    - cod_predeposition_check:
+      - adding a full stop to the end of error messages raised by
+        die().
+    - COD::CIF::Data::CODPredepositionCheck: adding newlines to the
+      end of error messages raised by die() to remove the
+      automatically added script name and line number of the context
+      they were raised in.
+    - replacing deprecated usage of 'find ... -perm +1' by equivalent
+      construction 'find ... -executable' in the installation routine.
+    - COD::ErrorHandler: changed all instances of the 'errlevel' hash
+      key to 'err_level' in order to homogenize the hash structure
+      across different modules.
+    - COD::UserMessage: changed the keys of parsed error messages hash
+      in order to homogenize the hash structure across different Perl
+      modules. The 'errlevel' key was changed to 'err_level', 'line'
+      to 'line_no', 'column' to 'column_no' and 'datablock' to
+      'add_pos'.
+    - codcif and COD::CIF::Parser::Bison: detecting unallowed symbols
+      in CIF 1.1 comments.
+    - COD::AtomNeighbours: making neighbour_list_from_chemistry_mol()
+      treat only aromatic atoms with three or more covalent neighbours
+      as planar.
+    - cif_molecule: symmetry operators other than identity are not
+      applied to symmetry-independent disordered sites, identified by
+      negative values of '_atom_site_disorder_group'.
+    - COD::CIF::Parser: removing duplicated space in error message
+      concerning unknown parser options.
+    - codcif: initial byte sequence 0xFEFF was detected as CIF v2.0
+      byte order mark instead of U+FEFF, which is the correct byte
+      order mark.
+    - COD::CIF::Data::AtomList: value of _cod_molecule_atom_transl_id
+      was not read by set_cod_molecule_atom_fields().
+    - COD::CIF::Tags::Manage: properly removing renamed data items by
+      rename_tags().
+    - Generating manpages for C scripts from src/components/codcif/.
+    - cif_list_tags: implementing --help command line option.
+    - Removing temporary directories of failed Shell test cases.
+    - COD::CIF::Tags::Print:
+      - Modifying the way malformed loops are handled by the print_loop()
+        subroutine. From now on a warning message will be output and
+        unknown ('?') values will be printed instead of the missing ones.
+      - Preventing outputting of empty loops: printing a line of question
+        marks, issuing a warning.
+
 cod-tools (2.0)
 
   * Added:
diff --git a/Makeconf b/Makeconf
index f61912c..ed556dc 100644
--- a/Makeconf
+++ b/Makeconf
@@ -1,8 +1,8 @@
 #--*- Makefile -*--------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5424 $
-#$Date: 2017-06-06 16:20:13 +0300 (Tue, 06 Jun 2017) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/Makeconf $
+#$Revision: 5420 $
+#$Date: 2017-06-06 15:34:07 +0300 (Tue, 06 Jun 2017) $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/Makeconf $
 #------------------------------------------------------------------------------
 
 CWD := ${shell pwd}
diff --git a/Makelocal-install b/Makelocal-install
index 2ac3fd7..4330fdf 100644
--- a/Makelocal-install
+++ b/Makelocal-install
@@ -1,8 +1,8 @@
 #--*- Makefile -*--------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5372 $
-#$Date: 2017-05-30 11:24:11 +0300 (Tue, 30 May 2017) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/Makelocal-install $
+#$Revision: 5450 $
+#$Date: 2017-06-23 09:07:31 +0300 (Fri, 23 Jun 2017) $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/Makelocal-install $
 #------------------------------------------------------------------------------
 
 vendorarch = $(shell perl -le 'use Config; my $$p = $$Config{vendorarch}; $$p =~ s/^\/usr//; print $$p')
@@ -82,7 +82,7 @@ install-libcodcif:
 	test -d ${PREFIX}/bin || mkdir -p ${PREFIX}/bin
 	install --mode 644 ${LIBCODCIF_A} ${CEXCEPTIONS_A} ${GETOPTIONS_A} ${LIBCODCIF_A_DEST}
 	install --mode 644 ${LIBCODCIF_H} ${CEXCEPTIONS_H} ${GETOPTIONS_H} ${LIBCODCIF_INC_DEST}
-	find src/components/codcif -maxdepth 1 -type f -perm +1 \
+	find src/components/codcif -maxdepth 1 -type f -executable \
 		| xargs -i install {} ${PREFIX}/bin
 
 install-pycodcif:
diff --git a/Makelocal-manpages b/Makelocal-manpages
index 8b478f2..adc6f71 100644
--- a/Makelocal-manpages
+++ b/Makelocal-manpages
@@ -1,13 +1,15 @@
 #--*- Makefile -*--------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5424 $
-#$Date: 2017-06-06 16:20:13 +0300 (Tue, 06 Jun 2017) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/Makelocal-manpages $
+#$Revision: 5551 $
+#$Date: 2017-09-28 10:32:51 +0300 (Thu, 28 Sep 2017) $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/Makelocal-manpages $
 #------------------------------------------------------------------------------
 
 MAN_DIR = doc/man
+C_PROGRAM_EXE_FILE_BASES = ${notdir ${C_PROGRAM_EXE_FILES}}
 MAN_FILES = ${CODTOOLS_SCRIPTS:scripts/%=${MAN_DIR}/%.1} \
-            ${MAN_DIR}/cif_printout_Python.1
+            ${MAN_DIR}/cif_printout_Python.1 \
+            ${C_PROGRAM_EXE_FILE_BASES:%=${MAN_DIR}/%.1}
 
 BUGS_EMAIL = cod-bugs at ibt.lt
 
@@ -18,6 +20,9 @@ all: man
 ${MAN_DIR}/%.1: scripts/%
 	-tools/help2man $< --bugs-email ${BUGS_EMAIL} > $@
 
+${MAN_DIR}/%.1: src/components/codcif/%
+	-$< --help | tools/help2man --stdin --name $* --bugs-email ${BUGS_EMAIL} > $@
+
 clean-man:
 	rm -f ${MAN_FILES}
 
diff --git a/data/AtomProperties/bin/atom_properties_merge b/data/AtomProperties/bin/atom_properties_merge
index 5f2db8f..3bb610c 100755
--- a/data/AtomProperties/bin/atom_properties_merge
+++ b/data/AtomProperties/bin/atom_properties_merge
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-10-06 11:26:38 +0300 (Thu, 06 Oct 2016) $ 
 #$Rev: 4730 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/bin/atom_properties_merge $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/bin/atom_properties_merge $
 #------------------------------------------------------------------------------
 #*
 #  Merges several yaml format files containing atom information into a
diff --git a/data/AtomProperties/bin/compare_properties b/data/AtomProperties/bin/compare_properties
index a73481b..43f0a59 100755
--- a/data/AtomProperties/bin/compare_properties
+++ b/data/AtomProperties/bin/compare_properties
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-06-20 00:17:04 +0300 (Mon, 20 Jun 2016) $
 #$Rev: 4671 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/bin/compare_properties $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/bin/compare_properties $
 #------------------------------------------------------------------------------
 #*
 # Compares selected atom property between two yaml format files containing 
diff --git a/data/AtomProperties/parts/core/BlueObelisk/core b/data/AtomProperties/parts/core/BlueObelisk/core
index 5652545..29c0c5a 100755
--- a/data/AtomProperties/parts/core/BlueObelisk/core
+++ b/data/AtomProperties/parts/core/BlueObelisk/core
@@ -4,7 +4,7 @@
 #$Author: antanas $
 #$Date: 2014-10-16 16:11:20 +0300 (Thu, 16 Oct 2014) $ 
 #$Rev: 2903 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/parts/core/BlueObelisk/core $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/parts/core/BlueObelisk/core $
 #------------------------------------------------------------------------------
 #*
 # Filters core atom information (atomic number, mass, ect.) from a yaml file. 
diff --git a/data/AtomProperties/parts/covalent_radii/Cordero2008/covalent_radii b/data/AtomProperties/parts/covalent_radii/Cordero2008/covalent_radii
index 334f961..af7001f 100755
--- a/data/AtomProperties/parts/covalent_radii/Cordero2008/covalent_radii
+++ b/data/AtomProperties/parts/covalent_radii/Cordero2008/covalent_radii
@@ -4,7 +4,7 @@
 #$Author: antanas $
 #$Date: 2014-07-07 15:52:55 +0300 (Mon, 07 Jul 2014) $ 
 #$Rev: 2755 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/parts/covalent_radii/Cordero2008/covalent_radii $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/parts/covalent_radii/Cordero2008/covalent_radii $
 #------------------------------------------------------------------------------
 #*
 # Filters covalent radii information from a yaml file. Outputs filtered data 
diff --git "a/data/AtomProperties/parts/covalent_radii/Pyykk\303\2662009/covalent_radii" "b/data/AtomProperties/parts/covalent_radii/Pyykk\303\2662009/covalent_radii"
index 46bb73e..ad1acd8 100755
--- "a/data/AtomProperties/parts/covalent_radii/Pyykk\303\2662009/covalent_radii"
+++ "b/data/AtomProperties/parts/covalent_radii/Pyykk\303\2662009/covalent_radii"
@@ -4,7 +4,7 @@
 #$Author: antanas $
 #$Date: 2016-10-05 17:21:30 +0300 (Wed, 05 Oct 2016) $ 
 #$Rev: 4718 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/parts/covalent_radii/Pyykk%C3%B62009/covalent_radii $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/parts/covalent_radii/Pyykk%C3%B62009/covalent_radii $
 #------------------------------------------------------------------------------
 #*
 # Filters covalent radii information from a yaml file. Outputs filtered data 
diff --git a/data/AtomProperties/parts/valence/wikipedia/valence b/data/AtomProperties/parts/valence/wikipedia/valence
index 9ab7786..54e7cea 100755
--- a/data/AtomProperties/parts/valence/wikipedia/valence
+++ b/data/AtomProperties/parts/valence/wikipedia/valence
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-10-05 15:25:45 +0300 (Wed, 05 Oct 2016) $
 #$Rev: 4716 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/parts/valence/wikipedia/valence $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/parts/valence/wikipedia/valence $
 #------------------------------------------------------------------------------
 #*
 # Extracts atom valence information and outputs it in YAML format.
diff --git a/data/AtomProperties/parts/vdw_radii/Alvarez2012/vdw_radii b/data/AtomProperties/parts/vdw_radii/Alvarez2012/vdw_radii
index c50aea4..ea49bf6 100755
--- a/data/AtomProperties/parts/vdw_radii/Alvarez2012/vdw_radii
+++ b/data/AtomProperties/parts/vdw_radii/Alvarez2012/vdw_radii
@@ -4,7 +4,7 @@
 #$Author: antanas $
 #$Date: 2014-08-26 14:24:15 +0300 (Tue, 26 Aug 2014) $ 
 #$Rev: 2812 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/parts/vdw_radii/Alvarez2012/vdw_radii $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/parts/vdw_radii/Alvarez2012/vdw_radii $
 #------------------------------------------------------------------------------
 #*
 # Filters van der Waals radii information from a yaml file. Outputs filtered 
diff --git a/data/AtomProperties/parts/vdw_radii/LANL/vdw_radii b/data/AtomProperties/parts/vdw_radii/LANL/vdw_radii
index 0ff9b5e..72b55a8 100755
--- a/data/AtomProperties/parts/vdw_radii/LANL/vdw_radii
+++ b/data/AtomProperties/parts/vdw_radii/LANL/vdw_radii
@@ -4,7 +4,7 @@
 #$Author: antanas $
 #$Date: 2014-07-07 17:32:46 +0300 (Mon, 07 Jul 2014) $ 
 #$Rev: 2761 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/parts/vdw_radii/LANL/vdw_radii $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/parts/vdw_radii/LANL/vdw_radii $
 #------------------------------------------------------------------------------
 #*
 # Filters van der Waals radii information from a yaml file. Outputs filtered 
diff --git a/data/AtomProperties/sources/Alvarez2012/input.yaml b/data/AtomProperties/sources/Alvarez2012/input.yaml
index 8bdc8bb..2bbb894 100644
--- a/data/AtomProperties/sources/Alvarez2012/input.yaml
+++ b/data/AtomProperties/sources/Alvarez2012/input.yaml
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2016-10-05 18:06:36 +0300 (Wed, 05 Oct 2016) $ 
 #$Rev: 4720 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/Alvarez2012/input.yaml $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/Alvarez2012/input.yaml $
 #------------------------------------------------------------------------------
 #*
 # Data for this dataset was extracted from paper 
diff --git a/data/AtomProperties/sources/BlueObelisk/atom_properties_BO b/data/AtomProperties/sources/BlueObelisk/atom_properties_BO
index 4323fa8..97dc370 100755
--- a/data/AtomProperties/sources/BlueObelisk/atom_properties_BO
+++ b/data/AtomProperties/sources/BlueObelisk/atom_properties_BO
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-06-20 00:17:04 +0300 (Mon, 20 Jun 2016) $
 #$Rev: 4671 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/BlueObelisk/atom_properties_BO $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/BlueObelisk/atom_properties_BO $
 #------------------------------------------------------------------------------
 #*
 # Extracts atom information from Blue Obelisk xml file  and outputs it in
diff --git a/data/AtomProperties/sources/Cordero2008/input.yaml b/data/AtomProperties/sources/Cordero2008/input.yaml
index 72bf67f..9c7cec0 100644
--- a/data/AtomProperties/sources/Cordero2008/input.yaml
+++ b/data/AtomProperties/sources/Cordero2008/input.yaml
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2014-10-15 17:29:32 +0300 (Wed, 15 Oct 2014) $ 
 #$Rev: 2887 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/Cordero2008/input.yaml $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/Cordero2008/input.yaml $
 #------------------------------------------------------------------------------
 #*
 # Data for this dataset was extrated from paper "Covalent radii revisited",
diff --git a/data/AtomProperties/sources/LANL/extract_info b/data/AtomProperties/sources/LANL/extract_info
index 1aae920..92ec120 100755
--- a/data/AtomProperties/sources/LANL/extract_info
+++ b/data/AtomProperties/sources/LANL/extract_info
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-06-20 00:17:04 +0300 (Mon, 20 Jun 2016) $
 #$Rev: 4671 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/LANL/extract_info $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/LANL/extract_info $
 #------------------------------------------------------------------------------
 #*
 # Downloads and parses atom information from Los Alamos National Lab website.
diff --git a/data/AtomProperties/sources/LANL/input.yaml b/data/AtomProperties/sources/LANL/input.yaml
index 9445451..42b2883 100644
--- a/data/AtomProperties/sources/LANL/input.yaml
+++ b/data/AtomProperties/sources/LANL/input.yaml
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2014-10-15 18:36:40 +0300 (Wed, 15 Oct 2014) $
 #$Rev: 2897 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/LANL/input.yaml $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/LANL/input.yaml $
 #------------------------------------------------------------------------------
 #*
 # Data for this dataset was extrated from Los Alamos National Lab website,
diff --git "a/data/AtomProperties/sources/Pyykk\303\2662009/input.yaml" "b/data/AtomProperties/sources/Pyykk\303\2662009/input.yaml"
index 68a1f7a..f0cff50 100644
--- "a/data/AtomProperties/sources/Pyykk\303\2662009/input.yaml"
+++ "b/data/AtomProperties/sources/Pyykk\303\2662009/input.yaml"
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2014-10-15 17:33:17 +0300 (Wed, 15 Oct 2014) $ 
 #$Rev: 2889 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/Pyykk%C3%B62009/input.yaml $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/Pyykk%C3%B62009/input.yaml $
 #------------------------------------------------------------------------------
 #*
 # Data for this dataset was extrated 
diff --git a/data/AtomProperties/sources/wikipedia/oxidation_states b/data/AtomProperties/sources/wikipedia/oxidation_states
index 42f7cc5..77f11d4 100755
--- a/data/AtomProperties/sources/wikipedia/oxidation_states
+++ b/data/AtomProperties/sources/wikipedia/oxidation_states
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-10-05 15:25:45 +0300 (Wed, 05 Oct 2016) $
 #$Rev: 4716 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/AtomProperties/sources/wikipedia/oxidation_states $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/AtomProperties/sources/wikipedia/oxidation_states $
 #------------------------------------------------------------------------------
 #*
 # Extracts atom charge and common charge information and outputs it in YAML
diff --git a/data/provisional-dictionaries/cif_oqmd.dic b/data/provisional-dictionaries/cif_oqmd.dic
index 9fcc2ef..26311c4 100644
--- a/data/provisional-dictionaries/cif_oqmd.dic
+++ b/data/provisional-dictionaries/cif_oqmd.dic
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2016-10-06 09:50:41 +0300 (Thu, 06 Oct 2016) $
 #$Revision: 4725 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/data/provisional-dictionaries/cif_oqmd.dic $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/data/provisional-dictionaries/cif_oqmd.dic $
 #------------------------------------------------------------------------------
 # This file is designated by the COD Advisory board into Public Domain.
 #------------------------------------------------------------------------------
diff --git a/data/replacement-values/replacement_values.lst b/data/replacement-values/replacement_values.lst
new file mode 100644
index 0000000..95d8f53
--- /dev/null
+++ b/data/replacement-values/replacement_values.lst
@@ -0,0 +1,230 @@
+#
+# _tag      _incorrect_value        _correct_value
+#
+_atom_site_adp_type                 uij             Uani
+_atom_site_adp_type                 bij             Bani
+_atom_site_adp_type                 uisi            Uiso
+_atom_site_thermal_displace_type    uij             Uani
+_atom_site_thermal_displace_type    bij             Bani
+_exptl_absorpt_correction_type      spherical       sphere
+_exptl_absorpt_correction_type      psi-scans       psi-scan
+_exptl_absorpt_correction_type      \\y\x{20}scan       psi-scan
+_exptl_absorpt_correction_type    psi\x{20}scans    psi-scan
+_exptl_absorpt_correction_type    \\y\x{20}scans    psi-scan
+_exptl_absorpt_correction_type    \\y-scan    psi-scan
+_exptl_absorpt_correction_type    Psi-scans    psi-scan
+_exptl_absorpt_correction_type      no              none
+_exptl_absorpt_correction_type      multi-scans     multi-scan
+_exptl_absorpt_correction_type    multi-scan\'    multi-scan
+_exptl_absorpt_correction_type    Multi-scans    multi-scan
+_exptl_absorpt_correction_type      cylindrical     cylinder
+_exptl_absorpt_correction_type      mumerical       numerical
+_exptl_absorpt_correction_type      empirique       empirical
+_refine_ls_hydrogen_treatment    const    constr
+_refine_ls_hydrogen_treatment    constr.    constr
+_refine_ls_hydrogen_treatment    contr    constr
+_refine_ls_hydrogen_treatment    constra    constr
+_refine_ls_hydrogen_treatment    constrained    constr
+_atom_sites_solution_secondary    diffmap    difmap
+_atom_sites_solution_secondary    difference\x{20}Fourier\x{20}synthesis    difmap
+_atom_sites_solution_secondary    Difference\x{20}Fourier\x{20}map    difmap
+_atom_sites_solution_secondary    Patterson    difmap
+_atom_sites_solution_secondary    patterson    difmap
+_atom_sites_solution_hydrogens    geometrically\x{20}placed    geom
+_atom_sites_solution_hydrogens    Geometric    geom
+_atom_sites_solution_hydrogens    geometric    geom
+_atom_sites_solution_hydrogens    placed\x{20}geometrically    geom
+_atom_sites_solution_hydrogens    Geometric\x{20}positions    geom
+_geom_bond_publ_flag                yee             yes
+_geom_bond_publ_flag                yea             yes
+_geom_bond_publ_flag                yse             yes
+_geom_bond_publ_flag                ues             yes
+_geom_bond_publ_flag                nos             no
+_geom_bond_publ_flag                n0              no
+_geom_bond_publ_flag                non             no
+_geom_bond_publ_flag                noB             no
+_geom_angle_publ_flag               n0              no
+_geom_angle_publ_flag               nno             no
+_geom_angle_publ_flag               ye              yes
+_geom_angle_publ_flag               es              yes
+_geom_angle_publ_flag               yee             yes
+_symmetry_cell_setting  cibic   cubic
+_symmetry_cell_setting  cube    cubic
+_symmetry_cell_setting  cubic\x{20}i cubic
+_symmetry_cell_setting              orthorombic     orthorhombic
+_symmetry_cell_setting              orthorrombic    orthorhombic
+_symmetry_cell_setting              orthprhombic    orthorhombic
+_symmetry_cell_setting              orthrhombic     orthorhombic
+_symmetry_cell_setting              ortho\.          orthorhombic
+_symmetry_cell_setting  octhorhombic    orthorhombic
+_symmetry_cell_setting  orhorhombic     orthorhombic
+_symmetry_cell_setting  orhthorhombic   orthorhombic
+_symmetry_cell_setting  orhtorhombic    orthorhombic
+_symmetry_cell_setting  orithorhombic   orthorhombic
+_symmetry_cell_setting  orthhombic      orthorhombic
+_symmetry_cell_setting  orthirhombic    orthorhombic
+_symmetry_cell_setting  orthodrombic    orthorhombic
+#_symmetry_cell_setting  orthogonal      orthorhombic
+_symmetry_cell_setting  orthohombic     orthorhombic
+_symmetry_cell_setting  orthohrombic    orthorhombic
+_symmetry_cell_setting  orthombic       orthorhombic
+#_symmetry_cell_setting  orthorgonal     orthorhombic
+_symmetry_cell_setting  orthorhmbic     orthorhombic
+_symmetry_cell_setting  orthorhmobic    orthorhombic
+_symmetry_cell_setting  orthorho,bic    orthorhombic
+_symmetry_cell_setting  orthorhobic     orthorhombic
+_symmetry_cell_setting  orthorhobmic    orthorhombic
+_symmetry_cell_setting  orthorhombhic   orthorhombic
+_symmetry_cell_setting  orthorhombicic  orthorhombic
+_symmetry_cell_setting  \.orthorhombic\'  orthorhombic
+_symmetry_cell_setting  orthorhombic,   orthorhombic
+#_symmetry_cell_setting  orthorhombic\?   orthorhombic
+_symmetry_cell_setting  orthorhombic\'   orthorhombic
+##_symmetry_cell_setting  orthorhombic    orthorhombic
+_symmetry_cell_setting  orthorhombic\x{20}p  orthorhombic
+_symmetry_cell_setting  orthorhombicp   orthorhombic
+_symmetry_cell_setting  orthorhomboc    orthorhombic
+_symmetry_cell_setting  orthorhomibic   orthorhombic
+_symmetry_cell_setting  orthorhomic     orthorhombic
+_symmetry_cell_setting  orthorhonbic    orthorhombic
+_symmetry_cell_setting  orthormbic      orthorhombic
+_symmetry_cell_setting  orthornombic    orthorhombic
+_symmetry_cell_setting  orthorohmbic    orthorhombic
+_symmetry_cell_setting  orthor          orthorhombic
+_symmetry_cell_setting  orthorrhombic   orthorhombic
+_symmetry_cell_setting  orthorthombic   orthorhombic
+_symmetry_cell_setting  orthrohmbic     orthorhombic
+_symmetry_cell_setting  orthrohombic    orthorhombic
+_symmetry_cell_setting  orthrombic      orthorhombic
+_symmetry_cell_setting  orthromobic     orthorhombic
+_symmetry_cell_setting  ortorhombic     orthorhombic
+_symmetry_cell_setting  ortorombic      orthorhombic
+_symmetry_cell_setting  othorhombic     orthorhombic
+_symmetry_cell_setting  othorommbic     orthorhombic
+_symmetry_cell_setting  rthorhombic     orthorhombic
+_symmetry_cell_setting              tetragonalic    tetragonal
+_symmetry_cell_setting              retragonal      tetragonal
+_symmetry_cell_setting  	teragonal       tetragonal
+_symmetry_cell_setting  	tertragonal     tetragonal
+#_symmetry_cell_setting  	teternal        tetragonal
+_symmetry_cell_setting  	tetraganol      tetragonal
+_symmetry_cell_setting  	tetragnal       tetragonal
+##_symmetry_cell_setting  	tetragonal      tetragonal
+_symmetry_cell_setting  	tetragona       tetragonal
+_symmetry_cell_setting  	tetragonol      tetragonal
+#_symmetry_cell_setting  	tetrahedral     tetragonal
+_symmetry_cell_setting  	tetrahonal      tetragonal
+_symmetry_cell_setting  	tetratonal      tetragonal
+_symmetry_cell_setting  	tetrgonal       tetragonal
+_symmetry_cell_setting  	tetrogonal      tetragonal
+_symmetry_cell_setting              mpnoclinic      monoclinic
+_symmetry_cell_setting              monclinic       monoclinic
+_symmetry_cell_setting              mmnoclinic      monoclinic
+_symmetry_cell_setting              monoclinc       monoclinic
+_symmetry_cell_setting              mmonoclinic     monoclinic
+_symmetry_cell_setting              monoclini       monoclinic
+_symmetry_cell_setting              momoclinic      monoclinic
+_symmetry_cell_setting              monolic         monoclinic
+_symmetry_cell_setting              moniclinic      monoclinic
+_symmetry_cell_setting              monocline       monoclinic
+_symmetry_cell_setting  m7onoclinic     monoclinic
+_symmetry_cell_setting  mnoclinic       monoclinic
+_symmetry_cell_setting  monclinic\x{20}c     monoclinic
+_symmetry_cell_setting  mono9clinic     monoclinic
+_symmetry_cell_setting  monocclinic     monoclinic
+_symmetry_cell_setting  monocinic       monoclinic
+_symmetry_cell_setting  monoclcinic     monoclinic
+_symmetry_cell_setting  monoclic        monoclinic
+_symmetry_cell_setting  monoclicnic     monoclinic
+_symmetry_cell_setting  monocliic       monoclinic
+_symmetry_cell_setting  monocliknic     monoclinic
+_symmetry_cell_setting  monocli         monoclinic
+_symmetry_cell_setting  monoclincic     monoclinic
+_symmetry_cell_setting  monoclinic1     monoclinic
+_symmetry_cell_setting  monoclinic\x{20}c    monoclinic
+_symmetry_cell_setting  monoclinicc     monoclinic
+_symmetry_cell_setting  monoclinici     monoclinic
+_symmetry_cell_setting  \'monoclinic\'    monoclinic
+_symmetry_cell_setting  monocl;inic     monoclinic
+#_symmetry_cell_setting  monoclinic\?     monoclinic
+_symmetry_cell_setting  monoclinic\/     monoclinic
+_symmetry_cell_setting  monoclinic\'     monoclinic
+##_symmetry_cell_setting  monoclinic      monoclinic
+_symmetry_cell_setting  monoclinicmonoclinic    monoclinic
+_symmetry_cell_setting  monoclinic\x{20}p    monoclinic
+_symmetry_cell_setting  monocliniic     monoclinic
+_symmetry_cell_setting  monoclininc     monoclinic
+_symmetry_cell_setting  monoclinin      monoclinic
+_symmetry_cell_setting  monoclinique    monoclinic
+_symmetry_cell_setting  monoclin        monoclinic
+_symmetry_cell_setting  monoclinnic     monoclinic
+_symmetry_cell_setting  monoclinoc      monoclinic
+_symmetry_cell_setting  monocl          monoclinic
+_symmetry_cell_setting  monoclnic       monoclinic
+_symmetry_cell_setting  monoclonic      monoclinic
+_symmetry_cell_setting  monocrinic      monoclinic
+_symmetry_cell_setting  monoiclinic     monoclinic
+_symmetry_cell_setting  monoklinic      monoclinic
+_symmetry_cell_setting  monoklin        monoclinic
+_symmetry_cell_setting  monolcinic      monoclinic
+_symmetry_cell_setting  monolinic       monoclinic
+_symmetry_cell_setting  monomclinic     monoclinic
+_symmetry_cell_setting  mononclinic     monoclinic
+_symmetry_cell_setting  mononlinic      monoclinic
+_symmetry_cell_setting  monooclinic     monoclinic
+_symmetry_cell_setting  nonoclinic      monoclinic
+_symmetry_cell_setting  onoclinic       monoclinic
+_symmetry_cell_setting              trclinic        triclinic
+_symmetry_cell_setting              riclinic        triclinic
+_symmetry_cell_setting              triclnic        triclinic
+_symmetry_cell_setting              \`triclinic\`     triclinic
+_symmetry_cell_setting  ticlinic        triclinic
+_symmetry_cell_setting  trcilinic       triclinic
+_symmetry_cell_setting  tricilinic      triclinic
+_symmetry_cell_setting  tricinic        triclinic
+_symmetry_cell_setting  tricinlic       triclinic
+_symmetry_cell_setting  triclicnic      triclinic
+_symmetry_cell_setting  triclic         triclinic
+_symmetry_cell_setting  triclinci       triclinic
+_symmetry_cell_setting  triclinc        triclinic
+#_symmetry_cell_setting  triclinic\?      triclinic
+_symmetry_cell_setting  triclinic\'      triclinic
+##_symmetry_cell_setting  triclinic       triclinic
+_symmetry_cell_setting  tricliniic      triclinic
+_symmetry_cell_setting  triclinilic     triclinic
+_symmetry_cell_setting  triclini        triclinic
+_symmetry_cell_setting  tricliniuc      triclinic
+_symmetry_cell_setting  triclin         triclinic
+_symmetry_cell_setting  tricrinic       triclinic
+_symmetry_cell_setting  triklin         triclinic
+_symmetry_cell_setting  trilinic        triclinic
+_symmetry_cell_setting  trinclinic      triclinic
+_symmetry_cell_setting  ttriclinic      triclinic
+_symmetry_cell_setting  riclinic\'       triclinic
+_symmetry_cell_setting              hexahongal      hexagonal
+_symmetry_cell_setting              hexgonal        hexagonal
+_symmetry_cell_setting  haxagonal       hexagonal
+_symmetry_cell_setting  hexaganol       hexagonal
+##_symmetry_cell_setting  hexagonal       hexagonal
+_symmetry_cell_setting  hexagon hexagonal
+_symmetry_cell_setting  hexxagonal      hexagonal
+_symmetry_cell_setting              trigonsl        trigonal
+_symmetry_cell_setting  triginal        trigonal
+_symmetry_cell_setting  trigonalh       trigonal
+#_symmetry_cell_setting  trigonal\?       trigonal
+##_symmetry_cell_setting  trigonal        trigonal
+_symmetry_cell_setting  trigona trigonal
+_symmetry_cell_setting              rhomboedral     rhombohedral
+_symmetry_cell_setting  rhombahedral    rhombohedral
+_symmetry_cell_setting  rhombhedral     rhombohedral
+##_symmetry_cell_setting  rhombohedral    rhombohedral
+_symmetry_cell_setting  rhombohedric    rhombohedral
+_symmetry_cell_setting  rhomboheral     rhombohedral
+_symmetry_cell_setting  rombohedral     rhombohedral
+_symmetry_cell_setting  rombohedric     rhombohedral
+_symmetry_cell_setting  thombohedral    rhombohedral
+_atom_sites_solution_primary        isomorph        isomor
+_atom_sites_solution_hydrogens      dfimap          difmap
+_diffrn_radiation_probe             x-rays          x-ray
+_refine_ls_matrix_type              full-matrix     full
+_refine_ls_matrix_type              full_matrix     full
diff --git a/doc/CODDictionary.xml b/doc/CODDictionary.xml
index f12307b..cfe49f5 100644
--- a/doc/CODDictionary.xml
+++ b/doc/CODDictionary.xml
@@ -9,7 +9,7 @@ and open the template in the editor.
     <SVNDate>$Date: 2017-03-16 17:23:26 +0200 (Thu, 16 Mar 2017) $</SVNDate>
     <SVNAuthor>$Author: antanas $</SVNAuthor>
     <SVNURL>
-      $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/doc/CODDictionary.xml $
+      $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/doc/CODDictionary.xml $
     </SVNURL>
     <SVNId>
       $Id: CODDictionary.xml 5075 2017-03-16 15:23:26Z antanas $
diff --git a/doc/IUCr/cifguide.pdf b/doc/IUCr/cifguide.pdf
deleted file mode 100644
index acf1227..0000000
Binary files a/doc/IUCr/cifguide.pdf and /dev/null differ
diff --git a/doc/IUCr/cifguide.pdf.url b/doc/IUCr/cifguide.pdf.url
new file mode 100644
index 0000000..fa53af2
--- /dev/null
+++ b/doc/IUCr/cifguide.pdf.url
@@ -0,0 +1 @@
+https://www.iucr.org/__data/assets/pdf_file/0019/22618/cifguide.pdf
diff --git a/makefiles/Makeconfig-subdirs-example b/makefiles/Makeconfig-subdirs-example
index 79d79f7..386ecad 100644
--- a/makefiles/Makeconfig-subdirs-example
+++ b/makefiles/Makeconfig-subdirs-example
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Revision: 4632 $
 #$Date: 2016-05-02 16:15:40 +0300 (Mon, 02 May 2016) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makeconfig-subdirs-example $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makeconfig-subdirs-example $
 #------------------------------------------------------------------------------
 #*
 # A Makefile configuration to declare directories that must be visited
diff --git a/makefiles/Makefile-backbone b/makefiles/Makefile-backbone
index fd06268..abb14f2 100644
--- a/makefiles/Makefile-backbone
+++ b/makefiles/Makefile-backbone
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Revision: 4632 $
 #$Date: 2016-05-02 16:15:40 +0300 (Mon, 02 May 2016) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makefile-backbone $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makefile-backbone $
 #------------------------------------------------------------------------------
 
 MAKECONF_FILES = ${filter-out %~, ${wildcard Makeconf*}}
diff --git a/makefiles/Makefile-perl-multiscript-tests b/makefiles/Makefile-perl-multiscript-tests
index aa4f2cd..cd9bc52 100644
--- a/makefiles/Makefile-perl-multiscript-tests
+++ b/makefiles/Makefile-perl-multiscript-tests
@@ -1,8 +1,8 @@
 #---*- Makefile -*-------------------------------------------------------------
-#$Author: andrius $
-#$Revision: 5424 $
-#$Date: 2017-06-06 16:20:13 +0300 (Tue, 06 Jun 2017) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makefile-perl-multiscript-tests $
+#$Author: antanas $
+#$Revision: 5510 $
+#$Date: 2017-09-04 17:23:19 +0300 (Mon, 04 Sep 2017) $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makefile-perl-multiscript-tests $
 #------------------------------------------------------------------------------
 
 MAKECONF_FILES = ${filter-out %~, ${wildcard Makeconf*}}
@@ -157,7 +157,7 @@ perl -pe 's/Id: [-\w]+ \d+ [-\d]+ [:\dZ]+ \w+/Id: <script_name> <revision_nr> <d
 | perl -pe 's,at [-\.\/\w\d]+ line \d+\.?,at <script_name> line <line_no>.,' \
 | perl -pe 's/(U|u)se of uninitialized value [^\s]+ in/$$1se of uninitialized value in/g' \
 | perl -pe 's/(Use of uninitialized value in pattern match \(m\/\/\) at )([a-zA-Z0-9\-\/]+)\/([a-zA-Z0-9\-\.]+) line \d+, <([^>])+> line \d+/$$1$$3 line <line_no>/g' \
-| perl -pe 's/(unknown MySQL server host .*?)(\(\d*\))\.?$$/$$1(<error code>)./' \
+| perl -pe 's/(unknown MySQL server host .*?)(\(-?\d*\))\.?$$/$$1(<error code>)./' \
 | perl -pe 's/OpenBabel\d+.*/OpenBabel9999999999D/' \
 | perl -pe 's/(_cod_hold_until_date .* )(\d{4}-\d{2}-\d{2})/$$1<date>/' \
 | perl -pe 's/^(CIF\s+_journal_year\s+)\d{4}/$$1<year>/' \
diff --git a/makefiles/Makefile-run_coms b/makefiles/Makefile-run_coms
index 4151bf1..b627168 100644
--- a/makefiles/Makefile-run_coms
+++ b/makefiles/Makefile-run_coms
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Revision: 4632 $
 #$Date: 2016-05-02 16:15:40 +0300 (Mon, 02 May 2016) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makefile-run_coms $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makefile-run_coms $
 #------------------------------------------------------------------------------
 
 COMS   = ${wildcard *.com}
diff --git a/makefiles/Makefile-subdirs b/makefiles/Makefile-subdirs
index 6df7202..1931e10 100644
--- a/makefiles/Makefile-subdirs
+++ b/makefiles/Makefile-subdirs
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Revision: 4632 $
 #$Date: 2016-05-02 16:15:40 +0300 (Mon, 02 May 2016) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makefile-subdirs $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makefile-subdirs $
 #------------------------------------------------------------------------------
 
 MAKECONF_FILES = ${filter-out %~, ${wildcard Makeconf*}}
diff --git a/makefiles/Makelocal-YAPP-module b/makefiles/Makelocal-YAPP-module
index f920434..7f0b9b5 100644
--- a/makefiles/Makelocal-YAPP-module
+++ b/makefiles/Makelocal-YAPP-module
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-07-07 13:44:39 +0300 (Thu, 07 Jul 2016) $
 #$Revision: 4683 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makelocal-YAPP-module $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makelocal-YAPP-module $
 #------------------------------------------------------------------------------
 #*
 #  Builds a Perl module from a Yapp grammar file.
diff --git a/makefiles/Makelocal-benchmark b/makefiles/Makelocal-benchmark
index a0a5dd0..d3636cd 100644
--- a/makefiles/Makelocal-benchmark
+++ b/makefiles/Makelocal-benchmark
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-04 19:30:25 +0200 (Wed, 04 Nov 2015) $
 #$Revision: 4195 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makelocal-benchmark $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makelocal-benchmark $
 #------------------------------------------------------------------------------
 #*
 #  Benchmarks a script.
diff --git a/makefiles/Makelocal-unit-test b/makefiles/Makelocal-unit-test
index 228a9c0..b860764 100644
--- a/makefiles/Makelocal-unit-test
+++ b/makefiles/Makelocal-unit-test
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2017-03-01 16:34:01 +0200 (Wed, 01 Mar 2017) $
 #$Revision: 4996 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/makefiles/Makelocal-unit-test $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/makefiles/Makelocal-unit-test $
 #------------------------------------------------------------------------------
 #*
 #  Runs unit tests for an individual module. Requires test driver script(s).
diff --git a/scripts/cif-to-utf8 b/scripts/cif-to-utf8
index 591612d..4e5b47d 100755
--- a/scripts/cif-to-utf8
+++ b/scripts/cif-to-utf8
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif-to-utf8 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif-to-utf8 $
 #------------------------------------------------------------------------------
 #*
 #* Convert CIF escape sequences into Unicode characters.
diff --git a/scripts/cif2cod b/scripts/cif2cod
index 5998fa9..2e46bcd 100755
--- a/scripts/cif2cod
+++ b/scripts/cif2cod
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif2cod $
+#$Author: antanas $
+#$Date: 2017-08-31 15:32:18 +0300 (Thu, 31 Aug 2017) $
+#$Revision: 5507 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif2cod $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file, prepare a COD database table entry from it.
@@ -36,7 +36,7 @@ my $include_keywords_with_undefined_values = 0;
 my $user_columns; # User specified list of columns to be printed
 my $schema; # XML schema of data table for validation
 
-my $use_parser = "c";
+my $use_parser = 'c';
 my $input_format = 'cif';
 my $die_on_errors   = 1;
 my $die_on_warnings = 0;
@@ -159,83 +159,83 @@ my %options;
 #*                     Output version information and exit.
 #**
 @ARGV = getOptions(
-    "-C,--cod-number" => \$options{cod_number},
+    '-C,--cod-number' => \$options{cod_number},
 
-    "-h,--print-header"       => sub { $print_header = 1 },
-    "-h-,--dont-print-header" => sub { $print_header = 0 },
-    "--no-print-header"       => sub { $print_header = 0 },
+    '-h,--print-header'       => sub { $print_header = 1 },
+    '-h-,--dont-print-header' => sub { $print_header = 0 },
+    '--no-print-header'       => sub { $print_header = 0 },
 
-    "-k,--keywords"   => sub { $print_keywords = 1 },
+    '-k,--keywords'   => sub { $print_keywords = 1 },
 
-    "--include-keywords-with-undefined-values"
+    '--include-keywords-with-undefined-values'
         => sub { $include_keywords_with_undefined_values = 1 },
-    "--exclude-keywords-with-undefined-values"
+    '--exclude-keywords-with-undefined-values'
         => sub { $include_keywords_with_undefined_values = 1 },
 
-    "--use-attached-hydrogens" => sub { $options{use_attached_hydrogens} = 1 },
-    "--dont-use-attached-hydrogens" => sub { $options{use_attached_hydrogens} = 0 },
-    "--no-use-attached-hydrogens" => sub { $options{use_attached_hydrogens} = 0 },
-    "--ignore-attached-hydrogens" => sub { $options{use_attached_hydrogens} = 0 },
+    '--use-attached-hydrogens' => sub { $options{use_attached_hydrogens} = 1 },
+    '--dont-use-attached-hydrogens' => sub { $options{use_attached_hydrogens} = 0 },
+    '--no-use-attached-hydrogens' => sub { $options{use_attached_hydrogens} = 0 },
+    '--ignore-attached-hydrogens' => sub { $options{use_attached_hydrogens} = 0 },
 
-    "--require-only-doi"
+    '--require-only-doi'
         => sub{ $options{require_only_doi} = 1 },
-    "--require-full-bibliography"
+    '--require-full-bibliography'
         => sub{ $options{require_only_doi} = 0 },
 
-    "--reformat-space-group" =>
+    '--reformat-space-group' =>
             sub { $options{reformat_space_group} = 1; },
-    "--dont-reformat-space-group" =>
+    '--dont-reformat-space-group' =>
             sub { $options{reformat_space_group} = 0; },
-    "--leave-space-group" =>
+    '--leave-space-group' =>
             sub { $options{reformat_space_group} = 0; },
 
-    "--columns" => \$user_columns,
+    '--columns' => \$user_columns,
 
-    "--use-datablocks-without-coordinates"
+    '--use-datablocks-without-coordinates'
         => sub{ $options{use_datablocks_without_coord} = 1 },
-    "--use-all-datablocks"
+    '--use-all-datablocks'
         => sub{ $options{use_datablocks_without_coord} = 1 },
 
-    "--do-not-use-datablocks-without-coordinates"
+    '--do-not-use-datablocks-without-coordinates'
         => sub{ $options{use_datablocks_without_coord} = 0 },
-    "--dont-use-datablocks-without-coordinates"
+    '--dont-use-datablocks-without-coordinates'
         => sub{ $options{use_datablocks_without_coord} = 0 },
-    "--no-use-datablocks-without-coordinates"
+    '--no-use-datablocks-without-coordinates'
         => sub{ $options{use_datablocks_without_coord} = 0 },
-    "--skip-datablocks-without-coordinates"
+    '--skip-datablocks-without-coordinates'
         => sub{ $options{use_datablocks_without_coord} = 0 },
 
-    "--validate-by-schema" => sub {
+    '--validate-by-schema' => sub {
         $schema = get_field_datatypes( get_value() ) },
 
-    "-c,--always-continue"              => sub { $die_on_errors   = 0;
+    '-c,--always-continue'              => sub { $die_on_errors   = 0;
                                                  $die_on_warnings = 0;
                                                  $die_on_notes    = 0 },
-    "-c-,--always-die"                  => sub { $die_on_errors   = 1;
+    '-c-,--always-die'                  => sub { $die_on_errors   = 1;
                                                  $die_on_warnings = 1;
                                                  $die_on_notes    = 1 },
 
-    "--continue-on-errors"          => sub { $die_on_errors = 0 },
-    "--dont-continue-on-errors"     => sub { $die_on_errors = 1 },
-    "--die-on-errors"               => sub { $die_on_errors = 1 },
-    "--do-not-continue-on-errors"   => sub { $die_on_errors = 1 },
-    "--no-continue-on-errors"       => sub { $die_on_errors = 1 },
-    "--exit-on-errors"              => sub { $die_on_errors = 1 },
+    '--continue-on-errors'          => sub { $die_on_errors = 0 },
+    '--dont-continue-on-errors'     => sub { $die_on_errors = 1 },
+    '--die-on-errors'               => sub { $die_on_errors = 1 },
+    '--do-not-continue-on-errors'   => sub { $die_on_errors = 1 },
+    '--no-continue-on-errors'       => sub { $die_on_errors = 1 },
+    '--exit-on-errors'              => sub { $die_on_errors = 1 },
 
-    "--continue-on-warnings" => sub { $die_on_warnings = 0 },
-    "--die-on-warnings"      => sub { $die_on_warnings = 1 },
+    '--continue-on-warnings' => sub { $die_on_warnings = 0 },
+    '--die-on-warnings'      => sub { $die_on_warnings = 1 },
 
-    "--continue-on-notes"    => sub { $die_on_notes = 0 },
-    "--die-on-notes"         => sub { $die_on_notes = 1 },
+    '--continue-on-notes'    => sub { $die_on_notes = 0 },
+    '--die-on-notes'         => sub { $die_on_notes = 1 },
 
-    "--use-perl-parser"       => sub{ $use_parser = "perl" },
-    "--use-c-parser"          => sub{ $use_parser = "c" },
+    '--use-perl-parser'       => sub{ $use_parser = 'perl' },
+    '--use-c-parser'          => sub{ $use_parser = 'c' },
 
-    "--cif-input"  => sub { $input_format = 'cif' },
-    "--json-input" => sub { $input_format = 'json' },
+    '--cif-input'  => sub { $input_format = 'cif' },
+    '--json-input' => sub { $input_format = 'json' },
 
-    "--options"       => sub { options; exit },
-    "--help,--usage"  => sub { usage; exit },
+    '--options'       => sub { options; exit },
+    '--help,--usage'  => sub { usage; exit },
     '--version'      => sub { print 'cod-tools version ',
                               $COD::ToolsVersion::Version, "\n";
                               exit }
@@ -254,26 +254,26 @@ if( $input_format eq 'json' ) {
 my @print_columns;
 
 if( defined $user_columns ) {
-    @print_columns = map { split m/[ ]/, $_ } split m/,/, $user_columns;
+    @print_columns = map { split ' ', $_ } split m/,/, $user_columns;
 } else {
     @print_columns = @COD::CIF::Data::CIF2COD::new_data_fields;
 }
 
-binmode( STDOUT, ":encoding(UTF-8)" );
-binmode( STDERR, ":encoding(UTF-8)" );
+binmode( STDOUT, ':encoding(UTF-8)' );
+binmode( STDERR, ':encoding(UTF-8)' );
 
 if( $print_header ) {
     local $\ = "\n";
     if( $print_keywords ) {
-        local $, = " ";
+        local $, = ' ';
         print @print_columns;
     } else {
-        local $, = ";";
+        local $, = ';';
         print @print_columns;
     }
 }
 
- at ARGV = ( "-" ) unless @ARGV;
+ at ARGV = ( '-' ) unless @ARGV;
 
 my $first = 1;
 
@@ -287,7 +287,7 @@ for my $filename (@ARGV) {
     canonicalize_all_names( $data );
 
     my @extracted;
-    foreach my $dataset (@$data) {
+    foreach my $dataset (@{$data}) {
 
         my $dataname = 'data_' . $dataset->{name};
 
@@ -317,7 +317,7 @@ for my $filename (@ARGV) {
     }
 
     for my $data (@extracted) {
-        my %data = %$data;
+        my %data = %{$data};
 
         # Print out the collected data fields:
         my @data_fields = @COD::CIF::Data::CIF2COD::default_data_fields;
@@ -327,12 +327,12 @@ for my $filename (@ARGV) {
         if( $print_keywords ) {
             print "\n" unless $first;
             $first = 0;
-            my $separator = " ";
+            my $separator = ' ';
             for my $key (@data_fields) {
                 my $value = $data{$key};
                 if( defined $value ) {
                     # Remove trailing dot from numbers:
-                    $value =~ s/^\s*(\d+)\.\s*$/$1/;
+                    $value =~ s/^\s*(\d+)[.]\s*$/$1/;
                     print $key . $separator . $value . "\n";
                 } elsif ( $include_keywords_with_undefined_values &&
                           $key ne '' ) {
@@ -340,22 +340,22 @@ for my $filename (@ARGV) {
                 }
             }
         } else {
-            my $separator = "";
+            my $separator = '';
             for my $key (@data_fields) {
                 my $value = $data{$key};
                 if( defined $value ) {
                     # Remove trailing dot from numbers:
-                    $value =~ s/^\s*(\d+)\.\s*$/$1/;
-                    if( $key ne "text" ) {
+                    $value =~ s/^\s*(\d+)[.]\s*$/$1/;
+                    if( $key ne 'text' ) {
                         $value =~ s/\\/\\\\/g;
                         $value =~ s/"/\\"/g;
                     }
-                    $value = "\"" . $value . "\"";
+                    $value = '"' . $value . '"';
                 } else {
-                    $value = "NULL";
+                    $value = 'NULL';
                 }
                 print $separator, $value;
-                $separator = ";";
+                $separator = ';';
             }
             print "\n";
         }
@@ -372,7 +372,7 @@ sub get_field_datatypes
         err_level => 'WARNING',
     };
     if( !exists $xml->{'xsi:schemaLocation'} ||
-        $xml->{'xsi:schemaLocation'} !~ m|^http://(www.)?crystallography.net/xml/schema/codsql/codsql_v\d+\.\d+\.xsd\s| ) {
+        $xml->{'xsi:schemaLocation'} !~ m|^http://(?:www.)?crystallography.net/xml/schema/codsql/codsql_v\d+[.]\d+[.]xsd\s| ) {
         $msg_template->{message} =
             'XML document is not derived from codsql.xsd';
         report_message( $msg_template );
@@ -390,5 +390,5 @@ sub get_field_datatypes
         return;
     }
     return { map { $_ => $fields->{$_}{SQLDataType} }
-                  keys %$fields };
+                  keys %{$fields} };
 }
diff --git a/scripts/cif2csv b/scripts/cif2csv
index 9de2f45..85fa8d0 100755
--- a/scripts/cif2csv
+++ b/scripts/cif2csv
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif2csv $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif2csv $
 #------------------------------------------------------------------------------
 #*
 #* CIF to CSV converter.
diff --git a/scripts/cif2json b/scripts/cif2json
index 8c8645a..4e38039 100755
--- a/scripts/cif2json
+++ b/scripts/cif2json
@@ -4,10 +4,10 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif2json $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Id: cif2json 5379 2017-05-30 12:20:10Z andrius $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif2json $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Id: cif2json 5376 2017-05-30 11:51:03Z andrius $
 #------------------------------------------------------------------------------
 #*
 #* Parse CIF file and print out the structure generated by CIF parser.
diff --git a/scripts/cif2rdf b/scripts/cif2rdf
index 5f9d9f9..0f0e3a1 100755
--- a/scripts/cif2rdf
+++ b/scripts/cif2rdf
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif2rdf $
+#$Author: antanas $
+#$Date: 2017-08-31 15:44:41 +0300 (Thu, 31 Aug 2017) $
+#$Revision: 5508 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif2rdf $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file and describe it's properties in RDF format.
@@ -322,7 +322,7 @@ my $die_on_error_level = {
 my @print_columns;
 
 if( defined $user_columns ) {
-    @print_columns = map { split m/[ ]/, $_ } split m/,/, $user_columns;
+    @print_columns = map { split ' ', $_ } split m/,/, $user_columns;
 } else {
     @print_columns = @COD::CIF::Data::CIF2COD::new_data_fields;
 }
diff --git a/scripts/cif2ref b/scripts/cif2ref
index 474e887..9658ed2 100755
--- a/scripts/cif2ref
+++ b/scripts/cif2ref
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif2ref $
+#$Date: 2017-05-30 14:58:12 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5377 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif2ref $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file and print out the essential information in the COD
diff --git a/scripts/cif2xyz b/scripts/cif2xyz
index 63ea880..ccd57b8 100755
--- a/scripts/cif2xyz
+++ b/scripts/cif2xyz
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif2xyz $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif2xyz $
 #------------------------------------------------------------------------------
 #*
 #* Read CIF files and print atom coordinates in XYZ format.
diff --git a/scripts/cif_CODify b/scripts/cif_CODify
index 9c89989..c8af084 100755
--- a/scripts/cif_CODify
+++ b/scripts/cif_CODify
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_CODify $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_CODify $
 #------------------------------------------------------------------------------
 #*
 #* Extract essential data from the input CIF file and format it
diff --git a/scripts/cif_Fcalc b/scripts/cif_Fcalc
index 23ca7ba..61188da 100755
--- a/scripts/cif_Fcalc
+++ b/scripts/cif_Fcalc
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_Fcalc $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_Fcalc $
 #------------------------------------------------------------------------------
 #*
 #* Compute the structure factors from CIF files.
diff --git a/scripts/cif_adjust_journal_name_volume b/scripts/cif_adjust_journal_name_volume
index abddb82..6e6bf18 100755
--- a/scripts/cif_adjust_journal_name_volume
+++ b/scripts/cif_adjust_journal_name_volume
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_adjust_journal_name_volume $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_adjust_journal_name_volume $
 #------------------------------------------------------------------------------
 #*
 #* If journal volume starts with a letter, add this letter to the
diff --git a/scripts/cif_bounding_box b/scripts/cif_bounding_box
index 880fe36..be7bb5b 100755
--- a/scripts/cif_bounding_box
+++ b/scripts/cif_bounding_box
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_bounding_box $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_bounding_box $
 #------------------------------------------------------------------------------
 #*
 #* Transform non-crystal CIF file (missing cell parameters and symmetry
diff --git a/scripts/cif_cell_contents b/scripts/cif_cell_contents
index 1716b0c..d1e2a7d 100755
--- a/scripts/cif_cell_contents
+++ b/scripts/cif_cell_contents
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_cell_contents $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_cell_contents $
 #------------------------------------------------------------------------------
 #*
 #* Calculate cell contents from atom coordinates and symmetry information.
@@ -147,7 +147,7 @@ my $print_datablock_name = 0;
                                  exit }
 );
 
-my $Id = '$Id: cif_cell_contents 5379 2017-05-30 12:20:10Z andrius $';
+my $Id = '$Id: cif_cell_contents 5376 2017-05-30 11:51:03Z andrius $';
 
 @ARGV = ( "-" ) unless @ARGV;
 
diff --git a/scripts/cif_classify b/scripts/cif_classify
index 61d0fe4..88a1bf4 100755
--- a/scripts/cif_classify
+++ b/scripts/cif_classify
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_classify $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_classify $
 #------------------------------------------------------------------------------
 #*
 #* Classify a CIF structure -- find out if it is organic compound,
diff --git a/scripts/cif_cod_check b/scripts/cif_cod_check
index a7c3cbd..1976949 100755
--- a/scripts/cif_cod_check
+++ b/scripts/cif_cod_check
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: antanas $
-#$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
-#$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_cod_check $
+#$Date: 2017-10-03 02:05:00 +0300 (Tue, 03 Oct 2017) $
+#$Revision: 5565 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_cod_check $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file, check if certain data values match COD
@@ -47,7 +47,7 @@ my $require_only_doi = 0;
 my $check_authors = 1;
 my $check_chemical_formula_sum = 1;
 my $check_space_group_info = 1;
-my $check_symmetry_operators = 1;
+my $check_symmetry_operations = 1;
 my $check_space_group_constraints = 1;
 my $check_limits = 1;
 my $use_precisions = 1;
@@ -67,7 +67,7 @@ sub dont_check_any
     $check_authors = 0;
     $check_chemical_formula_sum = 0;
     $check_space_group_info = 0;
-    $check_symmetry_operators = 0;
+    $check_symmetry_operations = 0;
     $check_space_group_constraints = 0;
     $check_limits = 0;
     $check_temperature_factors = 0;
@@ -85,7 +85,7 @@ sub check_all
     $check_authors = 1;
     $check_chemical_formula_sum = 1;
     $check_space_group_info = 1;
-    $check_symmetry_operators = 1;
+    $check_symmetry_operations = 1;
     $check_space_group_constraints = 1;
     $check_limits = 1;
     $check_temperature_factors = 1;
@@ -102,11 +102,11 @@ my $reportFile = '-';
 
 #===================================================================#
 #
-# The structure of the default table of the limits 
+# The structure of the default table of the limits
 # that uses '--check-limits' option is:
 #
 # { _tag_name -> [ [$begin,$end] , [$begin,$end] , [$begin,$end] ] }
-# 
+#
 # The array [$begin,$end] is the range of the limits.
 #
 #===================================================================#
@@ -313,17 +313,17 @@ my $input_format = 'cif';
 
     '--check-symmetry-operators,' .
     '--check-operators'
-        => sub{ $check_symmetry_operators = 1 },
+        => sub{ $check_symmetry_operations = 1 },
     '--check-only-symmetry-operators,' .
     '--check-only-operators'
-        => sub{ dont_check_any(); $check_symmetry_operators = 1 },
+        => sub{ dont_check_any(); $check_symmetry_operations = 1 },
     '--dont-check-symmetry-operators,' .
     '--no-check-symmetry-operators,' .
     '--do-not-check-symmetry-operators,' .
     '--dont-check-operators,' .
     '--no-check-operators,' .
     '--do-not-check-operators'
-        => sub{ $check_symmetry_operators = 0 },
+        => sub{ $check_symmetry_operations = 0 },
 
     '--check-constraints-on-unit-cell,' .
     '--check-unit-cell'
@@ -341,14 +341,14 @@ my $input_format = 'cif';
 
     '--check-symmetry' => sub{
         $check_space_group_info = 1;
-        $check_symmetry_operators = 1;
+        $check_symmetry_operations = 1;
         $check_space_group_constraints = 1;
     },
 
     '--check-only-symmetry' => sub{
         dont_check_any();
         $check_space_group_info = 1;
-        $check_symmetry_operators = 1;
+        $check_symmetry_operations = 1;
         $check_space_group_constraints = 1;
     },
 
@@ -441,7 +441,7 @@ my $input_format = 'cif';
 
     '--use-perl-parser' => sub{ $use_parser = 'perl' },
     '--use-c-parser'    => sub{ $use_parser = 'c' },
-    
+
     '--cif-input'   => sub { $input_format = 'cif' },
     '--json-input'  => sub { $input_format = 'json' },
 
@@ -540,38 +540,37 @@ for my $filename (@ARGV) {
                                        'NOTE'    => 0,
                                      } ) };
 
-        # Variables to hold errors returned from a single function (f)
-        my ($f_notes, $f_warnings, $f_errors);
-
-        $warnings += check_data( $dataset );
-        $warnings += check_bibliography( $dataset )
+        my @messages;
+        push @messages, @{check_data( $dataset )};
+        push @messages, @{check_bibliography( $dataset )}
             if $check_bibliography;
-        $warnings += check_authors( $dataset )
+        push @messages, @{check_authors( $dataset )}
             if $check_authors;
-        $warnings += check_chemical_formula_sum( $dataset )
+        push @messages, @{check_chemical_formula_sum( $dataset )}
             if $check_chemical_formula_sum;
-        $warnings += check_space_group_info( $dataset )
+        push @messages, @{check_space_group_info( $dataset )}
             if $check_space_group_info;
-        $warnings += check_symmetry_operators( $dataset )
-            if $check_symmetry_operators;
-        $warnings += check_space_group_constraints( $dataset )
+        push @messages, @{check_symmetry_operations( $dataset )}
+            if $check_symmetry_operations;
+        push @messages, @{check_space_group_constraints( $dataset )}
             if $check_space_group_constraints;
-        if ( $check_limits ) {
-            ($f_notes, $f_warnings, $f_errors) = check_limits( $dataset );
-            $notes    += $f_notes;
-            $warnings += $f_warnings;
-            $errors   += $f_errors;
-        };
-        $warnings += check_temperature_factors( $dataset )
+        push @messages, @{check_limits( $dataset )}
+            if $check_limits;
+        push @messages, @{check_temperature_factors( $dataset )}
             if $check_temperature_factors;
-        $warnings += check_simultaneous_presence( $dataset )
+        push @messages, @{check_simultaneous_presence( $dataset )}
             if $check_simultaneous_presence;
-        $warnings += check_embedded_file_integrity( $dataset )
+        push @messages, @{check_embedded_file_integrity( $dataset )}
             if $check_embedded_file_integrity;
-        $warnings += check_z( $dataset )
+        push @messages, @{check_z( $dataset )}
             if $check_z;
-        $warnings += check_disorder( $dataset )
+        push @messages, @{check_disorder( $dataset )}
             if $check_disorder;
+
+        foreach (@messages) { warn $_ . "\n"; };
+        $notes    += scalar(grep {/^NOTE,/}    @messages);
+        $warnings += scalar(grep {/^WARNING,/} @messages);
+        $errors   += scalar(grep {/^ERROR,/}   @messages);
     }
 
     eval {
@@ -585,10 +584,11 @@ for my $filename (@ARGV) {
                                        'NOTE'    => 0
                                      } ) };
 
-        my ($f_notes, $f_warnings, $f_errors) = check_pdcif_relations( $data );
-        $notes    += $f_notes;
-        $warnings += $f_warnings;
-        $errors   += $f_errors;
+        my @messages = @{check_pdcif_relations( $data )};
+        foreach (@messages) { warn $_ . "\n"; };
+        $notes    += scalar(grep {/^NOTE,/}    @messages);
+        $warnings += scalar(grep {/^WARNING,/} @messages);
+        $errors   += scalar(grep {/^ERROR,/}   @messages);
     };
 
     my %message_count = (
@@ -617,91 +617,93 @@ for my $filename (@ARGV) {
 sub check_data
 {
     my ($dataset) = @_;
+    my @messages;
 
-    if( !defined $dataset->{values} ) {
-        warn 'WARNING, no data blocks found -- program will now exit' . "\n";
-        return 1;
-    } else {
-        return 0;
+    if (!defined $dataset->{values}) {
+        push @messages, 'WARNING, no data blocks found -- program will now exit';
     }
+
+    return \@messages;
 }
 
 sub check_bibliography
 {
     my ($dataset) = @_;
+    my @messages;
 
     if( !defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
 
-    my $warnings = 0;
     my $values = $dataset->{values};
-
     if( $require_only_doi &&
         defined $values->{_journal_paper_doi} ) {
-        return 0;
+        return \@messages;
     }
 
     if( !defined $values->{_journal_name_full} ) {
-        warn 'WARNING, _journal_name_full is undefined' . "\n";
-        $warnings++;
+        push @messages, 'WARNING, _journal_name_full is undefined';
     }
     if( !defined $values->{_publ_section_title} ) {
-        warn 'WARNING, _publ_section_title is undefined' . "\n";
-        $warnings++;
+        push @messages, 'WARNING, _publ_section_title is undefined';
     }
     if( !defined $values->{_journal_year} &&
         !defined $values->{_journal_volume} ) {
-        warn 'WARNING, neither _journal_year nor _journal_volume is defined' . "\n";
-        $warnings++;
+        push @messages, 'WARNING, neither _journal_year nor _journal_volume is defined';
     }
     if( !defined $values->{_journal_page_first} &&
         !defined $values->{_journal_article_reference} ) {
-        warn 'WARNING, neither _journal_page_first nor '
-           . '_journal_article_reference is defined' . "\n";
-        $warnings++;
+        push @messages, 'WARNING, neither _journal_page_first nor '
+                      . '_journal_article_reference is defined';
     }
-    return $warnings;
+    return \@messages;
 }
 
 sub check_authors
 {
     my ($dataset) = @_;
+    my @messages;
 
     if( !defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
 
     my $values = $dataset->{values};
 
     if( !defined $values->{_publ_author_name} ) {
-        warn 'WARNING, _publ_author_name is undefined' . "\n";
-        return 1;
+        push @messages, 'WARNING, _publ_author_name is undefined';
+        return \@messages;
     }
 
-    my $warnings = 0;
     for my $author (@{$values->{_publ_author_name}}) {
-        my $parsed_name =
-            parse_author_name( cif2unicode( $author ), 1 );
+        my $parsed_name;
+        eval {
+            local $SIG{__WARN__} = sub {
+                my $warning = $_[0];
+                $warning =~ s/\n$//;
+                push @messages, $warning;
+            };
+            $parsed_name = parse_author_name( cif2unicode( $author ), 1 );
+        };
         next if !exists $parsed_name->{unparsed};
-        $warnings++;
         if( ! $name_syntax_explained ) {
-            warn 'NOTE, names should be written as \'First von Last\', '
-               . '\'von Last, First\', or \'von Last, Jr, First\' '
-               . '(mind the case!)' . "\n";
+            push @messages, 'NOTE, names should be written as \'First von Last\', '
+                           . '\'von Last, First\', or \'von Last, Jr, First\' '
+                           . '(mind the case!)';
             $name_syntax_explained = 1;
         }
     }
 
-    return $warnings;
+    return \@messages;
 }
 
 sub check_chemical_formula_sum
 {
     my ($dataset) = @_;
+    my @messages;
 
     if( !defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
 
     my $formula = $dataset->{values}{_chemical_formula_sum}[0];
@@ -709,187 +711,330 @@ sub check_chemical_formula_sum
     my $formula_component = '[a-zA-Z]{1,2}[0-9.]*';
 
     if( !defined $formula ) {
-        warn 'WARNING, no _chemical_formula_sum' . "\n";
-        return 1;
+        push @messages, 'WARNING, no _chemical_formula_sum';
     } elsif( $formula !~
              /^\s*(?:$formula_component\s+)*(?:$formula_component)\s*$/ ) {
-        warn "WARNING, chemical formula '$formula' could not be parsed" . "\n";
-        return 1;
-    } else {
-        return 0;
+        push @messages, "WARNING, chemical formula '$formula' could not be parsed";
     }
+
+    return \@messages;
 }
 
 sub check_space_group_info
 {
     my ($dataset) = @_;
+    my @messages;
 
     if( !defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
 
-    my $symops = $dataset->{values}{_symmetry_equiv_pos_as_xyz};
     my $values = $dataset->{values};
 
-    my @space_group_tags = qw (
-        _symmetry_space_group_name_H-M
-        _symmetry_space_group_name_Hall
-        _symmetry_Int_Tables_number
-        _space_group_name_H-M_alt
-        _space_group.name_H-M_full
-        _space_group_name_Hall
-        _space_group_ssg_name
-        _space_group_ssg_name_IT
-        _space_group_ssg_name_WJJ
-    );
-
-    my $warnings = 0;
-    my $space_group_found;
-    my $space_group;
-
-    for my $sg_tag (@space_group_tags) {
-        if( exists $values->{$sg_tag} ) {
-            $space_group = $values->{$sg_tag}[0];
-            my $no_spaces = $space_group;
-            $no_spaces =~ s/\s//g;
-            $no_spaces =~ s/[\(\)~]//g;
-            if( $sg_tag =~ /H-M/ ) {
-                if( defined $space_group &&
-                    !exists $space_groups{$space_group} &&
-                    !exists $space_groups{$no_spaces} ) {
-                    warn "WARNING, unrecognised space group '$space_group'" . "\n";
-                    $warnings++;
-                } else {
-                    $space_group_found =
-                        (exists $space_groups{$space_group} )
-                              ? $space_groups{$space_group}
-                              : $space_groups{$no_spaces};
-                }
+    my $sg_info = get_sg_info($values);
+
+    my $declared_sg_name;
+    my $resolved_sg_name;
+    for my $sg_name_type ( qw( hermann_mauguin ) ) {
+        if( defined $sg_info->{$sg_name_type} && !defined $resolved_sg_name ) {
+            $declared_sg_name = $sg_info->{$sg_name_type};
+            my $cleaned_sg_name = $declared_sg_name;
+            $cleaned_sg_name =~ s/\s//g;
+            $cleaned_sg_name =~ s/[()~]//g;
+
+            if( exists $space_groups{$declared_sg_name} ) {
+                $resolved_sg_name = $space_groups{$declared_sg_name};
+            } elsif( exists $space_groups{$cleaned_sg_name} ) {
+                $resolved_sg_name = $space_groups{$cleaned_sg_name};
+            } else {
+                push @messages, 'WARNING, unrecognised space group ' .
+                                "'$declared_sg_name'";
             }
-            last
         }
     }
-    if( !defined $space_group ) {
-        if( !defined $symops ) {
-            warn 'WARNING, no symmetry information found' . "\n";
+
+    if( !defined $sg_info->{'hall'} &&
+        !defined $sg_info->{'hermann_mauguin'} &&
+        !defined $sg_info->{'number'} &&
+        !defined $sg_info->{'ssg_name'} &&
+        !defined $sg_info->{'ssg_name_IT'} &&
+        !defined $sg_info->{'ssg_name_WJJ'} ) {
+        if( defined $sg_info->{'symops'} ||
+            defined $sg_info->{'ssg_symops'} ) {
+            push @messages, 'WARNING, no space group symbol found';
         } else {
-            warn 'WARNING, no space group symbol found' . "\n";
+            push @messages, 'WARNING, no symmetry information found';
         }
-        $warnings++;
     }
 
-    my %symops_cannonical;
+    my $symops = $sg_info->{'symops'};
     if( defined $symops ) {
-        my %duplicate_symops;
-        for my $symop (@{$symops}) {
-            my $cannonical_symop =
-                symop_string_canonical_form( $symop );
-            if( !exists $duplicate_symops{$cannonical_symop} ) {
-                $duplicate_symops{$cannonical_symop} = [];
-            }
-            push( @{$duplicate_symops{$cannonical_symop}}, $symop );
+        push @messages, @{check_symop_uniqueness($symops)};
+        if ( defined $resolved_sg_name ) {
+            push @messages,
+                 @{ check_symop_list( $symops, 'hermann_mauguin',
+                                      $resolved_sg_name ) };
         }
-        for my $cannonical_symop (sort keys %duplicate_symops) {
-            $symops_cannonical{$cannonical_symop} =
-                $duplicate_symops{$cannonical_symop}[0];
-            if( @{ $duplicate_symops{$cannonical_symop} } > 1 ) {
-                warn "NOTE, symmetry operator '$cannonical_symop' is repeated "
-                     . scalar( @{ $duplicate_symops{$cannonical_symop} } )
-                     . ' times (as '
-                     . join( ', ', map { "'$_'" }
-                             @{ $duplicate_symops{$cannonical_symop} } )
-                     . ') in symmetry operator list' . "\n";
-                $warnings++;
+    }
+
+    return \@messages;
+}
+
+##
+# Constructs a structure containing symmetry information using only the data
+# present in the data block.
+# @param $values
+#       The 'values' hash extracted from the CIF structure returned by the
+#       CIF::COD::Parser.
+# @return $sg_info
+#       A structure containing the symmetry information present in the data
+#       block. Example of the returned data structure:
+#
+#       $sg_info = {
+#           'hermann_mauguin' => 'P -1',
+#           'hall'            => '-P 1',
+#           'number'          => 2,
+#           'symop_ids'       =>
+#                       [
+#                         1
+#                         2
+#                       ],
+#           'symops' =>
+#                       [
+#                          'x, y, z',
+#                          '-x, -y, -z'
+#                       ];
+#       }
+#
+# The following fields can be potentially defined in the structure:
+#
+#       'hall'
+#                           Space group symbol in Hall notation.
+#       'hermann_mauguin'
+#                           Space group symbol in Hermann-Mauguin notation.
+#       'number'
+#                           Space group number defined in the International
+#                           Tables for Crystallography, Vol. A.
+#       'symop_ids'
+#                           Array of symmetry operation identifiers.
+#       'symops'
+#                           Array of parsable strings giving the symmetry
+#                           operations of the space group in algebraic form.
+#       'ssg_name'
+#                           Superspace-group symbol conforming to an
+#                           alternative definition from that given in
+#                           the 'ssg_name_IT' and 'ssg_name_WJJ' fields.
+#       'ssg_name_IT'
+#                           Superspace group symbol as given in International
+#                           Tables for Crystallography, Vol. C.
+#       'ssg_name_WJJ'
+#                           Superspace-group symbol as given by de Wolff,
+#                           Janssen & Janner (1981).
+#       'ssg_symop_ids'
+#                           Array of superspace group symmetry operation
+#                           identifiers.
+#       'ssg_symops'
+#                           Array of parsable strings giving the symmetry
+#                           operations of the superspace group in algebraic
+#                           form.
+##
+sub get_sg_info
+{
+    my ($values) = @_;
+
+    my $sg_data_names = {
+        'hall' => [
+                    '_space_group_name_Hall',
+                    '_symmetry_space_group_name_Hall'
+                  ],
+        'hermann_mauguin' => [
+                    '_space_group_name_H-M_alt',
+                    '_symmetry_space_group_name_H-M',
+                    '_space_group.name_H-M_full'
+                  ],
+        'number' => [
+                    '_space_group_IT_number',
+                    '_symmetry_Int_Tables_number'
+                  ],
+        'symop_ids' => [
+                    '_space_group_symop_id',
+                    '_symmetry_equiv_pos_site_id'
+                  ],
+        'symops' => [
+                    '_space_group_symop_operation_xyz',
+                    '_symmetry_equiv_pos_as_xyz'
+                  ],
+        'ssg_name' => [
+                    '_space_group_ssg_name'
+                  ],
+        'ssg_name_IT' => [
+                    '_space_group_ssg_name_IT'
+                  ],
+        'ssg_name_WJJ' => [
+                    '_space_group_ssg_name_WJJ'
+                  ],
+        'ssg_symop_ids' => [
+                    '_space_group_symop_ssg_id'
+                  ],
+        'ssg_symops' => [
+                    '_space_group_symop_ssg_operation_algebraic'
+                  ]
+    };
+
+    my %looped_sg_info_types = map { $_ => $_ }
+        qw( symop_ids symops ssg_symop_ids ssg_symops );
+
+    my %sg_info;
+    for my $info_type ( keys %{$sg_data_names} ) {
+        foreach ( @{$sg_data_names->{$info_type}} ) {
+            if ( exists $values->{$_} ) {
+                $sg_info{$info_type} = $values->{$_};
+                if ( !exists $looped_sg_info_types{$info_type} ) {
+                    $sg_info{$info_type} = $sg_info{$info_type}[0];
+                }
+                last;
             }
         }
     }
 
-    if( defined $symops && defined $space_group_found ) {
-        my $space_group_info = lookup_space_group( 'hermann_mauguin',
-                                                   $space_group_found );
-        if( defined $space_group_info ) {
-            my %sg_symops_cannonical =
-                map { symop_string_canonical_form( $_ ) => $_ }
-                @{ $space_group_info->{symops} };
-
-            my @missing_symops;
-            for my $s (sort keys %sg_symops_cannonical) {
-                next if exists $symops_cannonical{$s};
-                push( @missing_symops, $s );
-            }
-            if( @missing_symops > 0 ) {
-                my $single = (@missing_symops == 1);
-                warn 'NOTE, symmetry operator'
-                     . (!$single ? 's ' : ' ')
-                     . join( ', ', map { "'$_'" } @missing_symops )
-                     . ' ' . ($single ? 'is' : 'are')
-                     . ' missing, although required by '
-                     . "the space group '$space_group_found'" . "\n";
-                $warnings++;
-            }
+    return \%sg_info;
+}
 
-            my @excess_symops;
-            for my $s (sort keys %symops_cannonical) {
-                next if exists $sg_symops_cannonical{$s};
-                push( @excess_symops, $symops_cannonical{$s} );
-            }
-            if( @excess_symops > 0 ) {
-                my $single = (@excess_symops == 1);
-                warn 'NOTE, symmetry operator'
-                    . (!$single ? 's ' : ' ')
-                    . join( ', ', map { "'$_'" } @excess_symops )
-                    . ' ' . ($single ? 'is' : 'are')
-                    . ' found, although not required by '
-                    . "the space group '$space_group_found'" . "\n";
-                $warnings++;
+##
+# Checks the provided symmetry operation list for repetitions of the same
+# symmetry operations in different form.
+# @param $symops
+#       Reference to an array of symmetry operations.
+# @return $messages
+#       Reference to an array of audit messages.
+##
+sub check_symop_uniqueness
+{
+    my ( $symops ) = @_;
+
+    my @messages;
+
+    my %duplicate_symops;
+    for my $symop (@{$symops}) {
+        my $cannonical_symop =
+            symop_string_canonical_form( $symop );
+        push @{$duplicate_symops{$cannonical_symop}}, $symop;
+    }
+    for my $cannonical_symop (sort keys %duplicate_symops) {
+        if( @{ $duplicate_symops{$cannonical_symop} } > 1 ) {
+            push @messages,
+                 "NOTE, symmetry operation '$cannonical_symop' is repeated "
+                . scalar( @{ $duplicate_symops{$cannonical_symop} } )
+                . ' times (as '
+                . join( ', ', map { "'$_'" }
+                    @{ $duplicate_symops{$cannonical_symop} } )
+                . ') in symmetry operation list';
             }
+    }
+
+    return \@messages;
+}
+
+##
+# Checks if the provided symmetry operation list matches the one extrapolated
+# from the provided space group information.
+# @param $symops
+#       Reference to an array of symmetry operations.
+# @param $sg_info_type
+#       Type of space group identifier that should be used to look up
+#       the expeceted symmetry operation list. See the description of the
+#       'lookup_space_group' subroutine for the list of supported space
+#       group identifiers.
+# @param $sg_info_value
+#       The value of the space group identifier given in the $sg_info_type
+#       parameter.
+# @return $messages
+#       Reference to an array of audit messages.
+##
+sub check_symop_list
+{
+    my ($symops, $sg_info_type, $sg_info_value) = @_;
+
+    my @messages;
+
+    my $space_group_info = lookup_space_group( $sg_info_type, $sg_info_value );
+    if( defined $space_group_info ) {
+        my %declared_symops =
+            map { symop_string_canonical_form( $_ ) => $_ } @{$symops};
+        my %expected_symops =
+            map { symop_string_canonical_form( $_ ) => $_ }
+                @{$space_group_info->{'symops'}};
+
+        my @missing_symops = grep { !exists $declared_symops{$_} }
+                                sort keys %expected_symops;
+        if( @missing_symops > 0 ) {
+            my $single = (@missing_symops == 1);
+            push @messages, 'NOTE, symmetry operation'
+                . (!$single ? 's ' : ' ')
+                . join( ', ', map { "'$_'" } @missing_symops )
+                . ' ' . ($single ? 'is' : 'are')
+                . ' missing, although required by '
+                . "the space group '$sg_info_value'";
+        }
+
+        my @excess_symops = grep { !exists $expected_symops{$_} }
+                                sort keys %declared_symops;
+        if( @excess_symops > 0 ) {
+            my $single = (@excess_symops == 1);
+            push @messages, 'NOTE, symmetry operation'
+                 . (!$single ? 's ' : ' ')
+                 . join( ', ', map { "'$_'" } @excess_symops )
+                 . ' ' . ($single ? 'is' : 'are')
+                 . ' found, although not required by '
+                 . "the space group '$sg_info_value'";
         }
     }
 
-    return $warnings;
+    return \@messages;
 }
 
 sub check_temperature_factors
 {
     my($dataset) = @_;
+    my @messages;
 
     if( !defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
 
     my $values = $dataset->{values};
-    my $warnings = 0;
 
     if( tag_is_empty( $dataset, '_journal_year' ) ) {
-        return 0;
+        return \@messages;
     }
     if( $values->{_journal_year}[0] <=
         $max_year_temperature_factors_optional ) {
-        return 0;
+        return \@messages;
     }
 
     if( !tag_is_empty($dataset,'_atom_site_B_iso_or_equiv') ||
         !tag_is_empty($dataset,'_atom_site_U_iso_or_equiv') ) {
-        return 0;
+        return \@messages;
     }
     foreach my $indexes ( '11', '12', '13', '22', '23', '33' ) {
         if( !tag_is_empty($dataset,
             '_atom_site_aniso_B_' . $indexes) ||
             !tag_is_empty($dataset,
             '_atom_site_aniso_U_' . $indexes) ) {
-            return 0;
+            return \@messages;
         }
     }
-    warn 'WARNING, structure is published after '
+    push @messages, 'WARNING, structure is published after '
        . "$max_year_temperature_factors_optional, but does not contain "
-       . 'temperature factors' . "\n";
-    $warnings++;
-    return $warnings;
+       . 'temperature factors';
+
+    return \@messages;
 }
 
 sub check_pdcif_relations
 {
     my ($data) = @_;
+    my @messages;
 
     my $overall_info_datablock;
     my $overall_info_datablock_count = 0;
@@ -908,16 +1053,15 @@ sub check_pdcif_relations
         if( exists $datablock->{_pd_block_id} ) {
             my $datablock_pd_id = $datablock->{_pd_block_id}[0];
             if( exists $pd_ids->{$datablock_pd_id} ) {
-                warn 'ERROR, two or more data blocks with _pd_block_id '
+                push @messages, 'ERROR, two or more data blocks with _pd_block_id '
                    . "'$datablock_pd_id' were found -- "
-                   . '_pd_block_id must be unique for each data block' . "\n";
-                $errors++;
+                   . '_pd_block_id must be unique for each data block';
             } else {
                 $pd_ids->{$datablock_pd_id} = $i;
                 if( exists $datablock->{_atom_site_label} ) {
-                    push( @phases, $i );
+                    push @phases, $i;
                 } elsif( ( grep { /^_refln_index_.$/ } keys %{$datablock} ) > 0 ) {
-                    push( @diffractograms, $i );
+                    push @diffractograms, $i;
                 }
             }
         }
@@ -930,14 +1074,13 @@ sub check_pdcif_relations
         }
     }
 
-    return ($notes, $warnings, $errors) if @phases + @diffractograms == 0;
+    return (\@messages) if @phases + @diffractograms == 0;
 
     if( $overall_info_datablock_count > 1 ) {
-        warn "NOTE, $overall_info_datablock_count data blocks having both "
+        push @messages,
+             "NOTE, $overall_info_datablock_count data blocks having both "
            . '_pd_phase_block_id and _pd_block_diffractogram_id were found -- '
-           . 'taking the first occurrence as the overall information '
-           . 'data block' . "\n";
-        $notes++;
+           . 'taking the first occurrence as the overall information data block';
     }
 
     # Checking whether all powder diffraction IDs from the overall
@@ -952,20 +1095,20 @@ sub check_pdcif_relations
 
         for my $phase_id (@{$overall_data->{_pd_phase_block_id}}) {
             if( !exists $pd_ids->{$phase_id} ) {
-                warn "ERROR, phase data block with _pd_block_id '$phase_id'"
+                push @messages,
+                     "ERROR, phase data block with _pd_block_id '$phase_id'"
                    . 'is listed in the _pd_phase_block_id loop of the '
                    . "overall information data block '$overall_dataname', "
-                   . 'but does not exist' . "\n";
-                $errors++;
+                   . 'but does not exist';
             }
         }
         for my $diffractogram_id (@{$overall_data->{_pd_block_diffractogram_id}}) {
             if( !exists $pd_ids->{$diffractogram_id} ) {
-                warn 'ERROR, diffractogram data block with _pd_block_id '
+                push @messages,
+                     'ERROR, diffractogram data block with _pd_block_id '
                    . "'$diffractogram_id' listed in the "
                    . '_pd_block_diffractogram_id loop of the overall '
-                   . "data block '$overall_dataname', but does not exist" . "\n";
-                $errors++;
+                   . "data block '$overall_dataname', but does not exist";
             }
         }
         for my $phase_nr (@phases) {
@@ -973,10 +1116,10 @@ sub check_pdcif_relations
             my $phase_data = $phase_block->{values};
             if( ( grep { $_ eq $phase_data->{_pd_block_id}[0] }
                          @{$overall_data->{_pd_phase_block_id}} ) == 0 ) {
-                warn 'ERROR, phase data block \'data_' . $phase_block->{name}
+                push @messages,
+                     'ERROR, phase data block \'data_' . $phase_block->{name}
                    . '\' is not listed in _pd_phase_block_id loop of the '
-                   . "overall information data block '$overall_dataname'" . "\n";
-                $errors++;
+                   . "overall information data block '$overall_dataname'";
             }
         }
         for my $diffractogram_nr (@diffractograms) {
@@ -984,11 +1127,11 @@ sub check_pdcif_relations
             my $diffractogram_data = $diffractogram_block->{values};
             if( ( grep { $_ eq $diffractogram_data->{_pd_block_id}[0] }
                          @{$overall_data->{_pd_block_diffractogram_id}} ) == 0 ) {
-                warn 'ERROR, diffractogram data block \'data_'
+                push @messages,
+                      'ERROR, diffractogram data block \'data_'
                     . $diffractogram_block->{name} . '\' is not listed in '
                     . '_pd_block_diffractogram_id loop of the overall '
-                    . "information data block '$overall_dataname'" . "\n";
-                $errors++;
+                    . "information data block '$overall_dataname'";
             }
         }
     }
@@ -1003,17 +1146,17 @@ sub check_pdcif_relations
         my $phase_data = $phase_block->{values};
         my $phase_dataname = 'data_' . $phase_block->{name};
         if( !exists $phase_data->{_pd_block_diffractogram_id} ) {
-            warn "ERROR, phase data block '$phase_dataname' does not "
-               . 'contain a diffractogram list' . "\n";
-            $errors++;
+            push @messages,
+                 "ERROR, phase data block '$phase_dataname' does not "
+               . 'contain a diffractogram list';
             next;
         }
         for my $diffractogram_id (@{$phase_data->{_pd_block_diffractogram_id}}) {
             if( !exists $pd_ids->{$diffractogram_id} ) {
-                warn 'ERROR, diffractogram data block with _pd_block_id '
+                push @messages,
+                     'ERROR, diffractogram data block with _pd_block_id '
                    . "'$diffractogram_id' is listed in the phase data block "
-                   . "'$phase_dataname', but does not exist" . "\n";
-                $errors++;
+                   . "'$phase_dataname', but does not exist";
                 next;
             }
             my $diffractogram_nr = $pd_ids->{$diffractogram_id};
@@ -1021,18 +1164,18 @@ sub check_pdcif_relations
             my $diffractogram_data = $diffractogram_block->{values};
             my $diffractogram_dataname = 'data_' . $diffractogram_block->{name};
             if( !exists $diffractogram_data->{_pd_phase_block_id} ) {
-                warn "ERROR, diffractogram data block '$diffractogram_dataname' "
-                   . 'does not contain a phase list' . "\n";
-                $errors++;
+                push @messages,
+                     "ERROR, diffractogram data block '$diffractogram_dataname' "
+                   . 'does not contain a phase list';
                 next;
             }
             my $found = 0;
             for my $phase_id (@{$diffractogram_data->{_pd_phase_block_id}}) {
                 if( !exists $pd_ids->{$phase_id} ) {
-                    warn 'ERROR, phase data block with _pd_block_id '
+                    push @messages,
+                         'ERROR, phase data block with _pd_block_id '
                        . "'$phase_id' is listed in the difractogram data block "
-                       . "'$diffractogram_dataname', but does not exist" ."\n";
-                    $errors++;
+                       . "'$diffractogram_dataname', but does not exist";
                 }
                 if( $pd_ids->{$phase_id} == $phase_nr ) {
                     $found = 1;
@@ -1040,12 +1183,12 @@ sub check_pdcif_relations
                 }
             }
             if( !$found ) {
-                # If diffractogram data block does not contain a backlink 
+                # If diffractogram data block does not contain a backlink
                 # to the phase block, we assume that the backlink is:
-                warn 'WARNING, value \'' . $phase_data->{_pd_block_id}[0] . '\' '
+                push @messages,
+                     'WARNING, value \'' . $phase_data->{_pd_block_id}[0] . '\' '
                    . 'seems to be missing in the _pd_phase_block_id list of '
-                   . "the difractogram data block '$diffractogram_dataname'" . "\n";
-                $warnings++;
+                   . "the difractogram data block '$diffractogram_dataname'";
             }
         }
     }
@@ -1055,17 +1198,17 @@ sub check_pdcif_relations
         my $diffractogram_data = $diffractogram_block->{values};
         my $diffractogram_dataname = 'data_' . $diffractogram_block->{name};
         if( !exists $diffractogram_data->{_pd_phase_block_id} ) {
-            warn "ERROR, diffractogram data block '$diffractogram_dataname' " .
-                 'does not contain a phase list' . "\n";
-            $errors++;
+            push @messages,
+                 "ERROR, diffractogram data block '$diffractogram_dataname' " .
+                 'does not contain a phase list';
             next;
         }
         for my $phase_id (@{$diffractogram_data->{_pd_phase_block_id}}) {
             if( !exists $pd_ids->{$phase_id} ) {
-                warn "ERROR, phase data block with _pd_block_id '$phase_id' "
+                push @messages,
+                     "ERROR, phase data block with _pd_block_id '$phase_id' "
                    . 'is listed in the difractogram data block '
-                   . "'$diffractogram_dataname', but does not exist" . "\n";
-                $errors++;
+                   . "'$diffractogram_dataname', but does not exist";
                 next;
             }
             my $phase_nr = $pd_ids->{$phase_id};
@@ -1073,19 +1216,18 @@ sub check_pdcif_relations
             my $phase_data = $phase_block->{values};
             my $phase_dataname = 'data_' . $phase_block->{name};
             if( !exists $phase_data->{_pd_block_diffractogram_id} ) {
-                warn "ERROR, phase data block '$phase_dataname' "
-                   . 'does not contain a diffractogram list' . "\n";
-                $errors++;
+                push @messages,
+                     "ERROR, phase data block '$phase_dataname' "
+                   . 'does not contain a diffractogram list';
                 next;
             }
             my $found = 0;
             for my $diffractogram_id (@{$phase_data->{_pd_block_diffractogram_id}}) {
                 if( !exists $pd_ids->{$diffractogram_id} ) {
-                    warn 'ERROR, diffractogram data block with _pd_block_id '
+                    push @messages,
+                         'ERROR, diffractogram data block with _pd_block_id '
                        . "'$diffractogram_id' is listed in the phase data block "
-                       . "'$phase_dataname', but does not exist" . "\n";
-                    $errors++;
-
+                       . "'$phase_dataname', but does not exist";
                 }
                 if( $pd_ids->{$diffractogram_id} == $diffractogram_nr ) {
                     $found = 1;
@@ -1093,21 +1235,21 @@ sub check_pdcif_relations
                 }
             }
             if( !$found ) {
-                # If phase data block does not contain a backlink to the 
+                # If phase data block does not contain a backlink to the
                 # diffractogram, we are not sure if it is omitted or added:
-                warn 'ERROR, value \'' . $diffractogram_data->{_pd_block_id}[0]
+                push @messages,
+                     'ERROR, value \'' . $diffractogram_data->{_pd_block_id}[0]
                    . '\' seems to be missing in _pd_block_diffractogram_id '
-                   . "list of the phase data block '$phase_dataname'" . "\n";
-                $errors++;
+                   . "list of the phase data block '$phase_dataname'";
             }
         }
     }
 
-    return ($notes, $warnings, $errors);
+    return \@messages;
 }
 
 #===============================================================#
-# Gets symmetry operators if they are not directly represented in the CIF file.
+# Gets symmetry operations if they are not directly represented in the CIF file.
 
 # Accepts
 #     option - an option, for example, 'hall'
@@ -1158,29 +1300,25 @@ sub lookup_space_group
 sub get_space_group_descriptions
 {
     my ($dataset) = @_;
+    my @messages;
 
     my $values = $dataset->{values};
 
     my $sym_data;
-    my $warnings = 0;
 
-    if( exists $values->{'_space_group_name_Hall'} &&
-        not defined $sym_data ) {
+    if( exists $values->{'_space_group_name_Hall'} ) {
         my $hall = $values->{'_space_group_name_Hall'}[0];
         $sym_data = lookup_space_group('hall', $hall);
 
         if( !defined $sym_data ) {
-            warn "WARNING, incorrect _space_group_name_Hall '$hall'" . "\n";
-            $warnings++;
+            push @messages, "WARNING, incorrect _space_group_name_Hall '$hall'";
         }
-    } elsif( exists $values->{'_symmetry_space_group_name_Hall'} &&
-        not defined $sym_data ) {
+    } elsif( exists $values->{'_symmetry_space_group_name_Hall'} ) {
         my $hall = $values->{'_symmetry_space_group_name_Hall'}[0];
         $sym_data = lookup_space_group('hall', $hall);
 
         if( !defined $sym_data ) {
-            warn "WARNING, incorrect _symmetry_space_group_name_Hall '$hall'" ."\n";
-            $warnings++;
+            push @messages, "WARNING, incorrect _symmetry_space_group_name_Hall '$hall'";
         }
     }
 
@@ -1192,8 +1330,7 @@ sub get_space_group_descriptions
             unless defined $sym_data;
 
         if( !defined $sym_data ) {
-            warn "WARNING, incorrect _space_group_name_H-M_alt '$h_m'" . "\n";
-            $warnings++;
+            push @messages, "WARNING, incorrect _space_group_name_H-M_alt '$h_m'";
         }
     } elsif(exists $values->{'_symmetry_space_group_name_H-M'} &&
             not defined $sym_data) {
@@ -1203,13 +1340,12 @@ sub get_space_group_descriptions
             unless defined $sym_data;
 
         if( !defined $sym_data ) {
-            warn "WARNING, incorrect _symmetry_space_group_name_H-M '$h_m'" . "\n";
-            $warnings++;
+            push @messages, "WARNING, incorrect _symmetry_space_group_name_H-M '$h_m'";
         }
     }
 
     if(not defined $sym_data) {
-        if( $warnings == 0 ) {
+        if( scalar(@messages) == 0 ) {
             my @space_group_tags = qw (
                 _space_group_symop_ssg_id
                 _space_group_symop_ssg_operation_algebraic
@@ -1219,15 +1355,14 @@ sub get_space_group_descriptions
             );
             for my $sg_tag (@space_group_tags) {
                 if( exists $dataset->{values}{$sg_tag} ) {
-                    return (undef, 0);
+                    return ( undef, \@messages );
                 }
             }
-            warn 'WARNING, no space group symbol to check cell constraints' . "\n";
-            $warnings = 1;
+            push @messages, 'WARNING, no space group symbol to check cell constraints';
         }
     }
 
-    return ( $sym_data, $warnings );
+    return ( $sym_data, \@messages );
 }
 
 sub get_unit_cell_sigmas($)
@@ -1303,22 +1438,24 @@ sub regularize_cell($$$$)
 sub check_space_group_constraints
 {
     my ( $dataset ) = @_;
+    my @messages;
 
     if( !defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
 
-    my ( $space_group_descr, $warnings ) =
+    my ( $space_group_descr, $sg_messages ) =
         get_space_group_descriptions( $dataset );
+    push @messages, @{$sg_messages};
 
     if( !defined $space_group_descr ) {
-        return $warnings;
+        return \@messages;
     }
 
     if( !exists $space_group_descr->{constraints} ) {
-        warn 'WARNING, could not find constraints for space group '.
-             "'$space_group_descr->{universal_h_m}'" . "\n";
-        return $warnings + 1;
+        push @messages, 'WARNING, could not find constraints for space group '.
+                        "'$space_group_descr->{universal_h_m}'";
+        return \@messages;
     }
 
     my $constraints = $space_group_descr->{'constraints'};
@@ -1346,9 +1483,9 @@ sub check_space_group_constraints
 
         if( !eval $constraints ) {
             local $" = ' ';
-            warn "WARNING, unit cell '@cell' does not satisfy " .
-                 "constraints '$constraints'" . "\n";
-            return $warnings + 1;
+            push @messages, "WARNING, unit cell '@cell' does not satisfy " .
+                            "constraints '$constraints'";
+            return \@messages;
         }
 
         do {
@@ -1357,24 +1494,35 @@ sub check_space_group_constraints
                . "IS FINE with constraints '$constraints'!" . "\n";
         } if 0;
     };
-    return $warnings;
+    return \@messages;
 }
 
-sub check_symmetry_operators
+sub check_symmetry_operations
 {
     my ($dataset) = @_;
+    my @messages;
 
-    return 0 if !defined $dataset->{values};
+    return \@messages if !defined $dataset->{values};
 
-    my $symops = $dataset->{values}{_symmetry_equiv_pos_as_xyz};
+    my $symops;
+    if ( defined $dataset->{values}{'_space_group_symop_operation_xyz'} ) {
+        $symops = $dataset->{values}{'_space_group_symop_operation_xyz'}
+    } elsif ( defined $dataset->{values}{'_symmetry_equiv_pos_as_xyz'} ) {
+        $symops = $dataset->{values}{'_symmetry_equiv_pos_as_xyz'}
+    } else {
+        push @messages, 'WARNING, the space group symmetry operation list was not provided';
+    }
 
-    return 0 if !defined $symops;
+    return \@messages if !defined $symops;
 
     foreach (@{$symops}) {
-        return 1 if ( !is_symop_parsable($_) );
+        if ( !is_symop_parsable($_) ) {
+            push @messages, "WARNING, symmetry operation '$_' could not be parsed";
+            return \@messages;
+        }
     }
 
-    return 0;
+    return \@messages;
 }
 
 sub parser_reporter
@@ -1397,12 +1545,10 @@ sub parser_reporter
 
 sub check_limits {
     my ($dataset) = @_;
-    my $notes    = 0;
-    my $warnings = 0;
-    my $errors   = 0;
+    my @messages;
 
     if(! defined $dataset->{values} ) {
-        return 0;
+        return \@messages;
     }
     my @report_names = qw( ERROR WARNING NOTE );
     my $numeric = '([+-]?(\d+(\.\d*)?|\.\d+))';
@@ -1414,34 +1560,27 @@ sub check_limits {
         my $value = $values->{$tag}[0];
         next if $value =~ /^(\.|\?)$/;
         if( $value !~ /^([+-]?(?:\d+(?:\.\d*)?|\.\d+))\(?(\d*)\)?$/ ) {
-            warn "ERROR, data item '$tag' value '$value' is not numeric" . "\n";
-            $errors++;
+            push @messages, "ERROR, data item '$tag' value '$value' is not numeric";
             next;
         } else {
             my $number = $1;
             my $precision = $2;
             if( ($tag =~ /_w?R_factor_/) && ( $precision ) ) {
-                warn "WARNING, data item '$tag' value is '$value', but it "
-                   . 'should be numeric and without precision (s.u. value)' . "\n";
-                $warnings++;
+                push @messages, "WARNING, data item '$tag' value is '$value', "
+                   . 'but it should be numeric and without precision (s.u. value)';
                 next;
             }
             if( $number < 0 ) {
-                warn "WARNING, data item '$tag' value '$value' should "
-                   . 'be in range [0.0, +inf)' . "\n";
-                $warnings++;
+                push @messages, "WARNING, data item '$tag' value '$value' should "
+                   . 'be in range [0.0, +inf)';
                 next;
             }
             if(! defined $limits_table->{$tag}[0][1] ) {
                 foreach my $i( 0..$#{ $limits_table->{$tag} } ) {
                     my $limit = @{ $limits_table->{$tag}->[$i]}[0];
                     if( $number > $limit ) {
-                        warn "$report_names[$i], data item '$tag' value "
-                           . "'$value' is > $limit" . "\n";
-                        # $i is @report_names index
-                        $errors++   if $i == 0;
-                        $warnings++ if $i == 1;
-                        $notes++    if $i == 2;
+                        push @messages, "$report_names[$i], data item '$tag' "
+                                      . "value '$value' is > $limit";
                         last;
                     }
                 }
@@ -1450,19 +1589,16 @@ sub check_limits {
                     my $begin = @{ $limits_table->{$tag}->[$i]}[0];
                     my $end = @{ $limits_table->{$tag}->[$i]}[1];
                     if( ($number < $begin) || ($number > $end) ) {
-                        warn "$report_names[$i], data item '$tag' value '$value' "
-                           . "lies outside the range [$begin, $end]" . "\n";
-                        # $i is @report_names index
-                        $errors++   if $i == 0;
-                        $warnings++ if $i == 1;
-                        $notes++    if $i == 2;
+                        push @messages, "$report_names[$i], data item '$tag' "
+                                      . "value '$value' lies outside the range "
+                                      . "[$begin, $end]";
                         last;
                     }
                 }
             }
         }
     }
-    return ($notes, $warnings, $errors);
+    return (\@messages);
 }
 
 # Check whether specified tags are all simultaneously persent. This
@@ -1472,7 +1608,7 @@ sub check_limits {
 sub check_simultaneous_presence
 {
     my( $dataset ) = @_;
-    my $warnings = 0;
+    my @messages;
 
     my @tag_lists = (
         [ qw( _atom_site_fract_x _atom_site_fract_y _atom_site_fract_z ) ],
@@ -1566,15 +1702,16 @@ sub check_simultaneous_presence
         );
 
     for my $tag_list (@tag_lists) {
-        $warnings += check_all_tags_present( $dataset, $tag_list );
+        push @messages, @{check_all_tags_present( $dataset, $tag_list )};
     }
 
-    return $warnings;
+    return \@messages;
 }
 
 sub check_all_tags_present
 {
     my( $dataset, $tag_list ) = @_;
+    my @messages;
     my ( %tags_present, %tags_absent );
 
     for my $tag (@{$tag_list}) {
@@ -1591,20 +1728,19 @@ sub check_all_tags_present
         my @tags_absent = sort {$a cmp $b} keys %tags_absent;
         my $tag = $tags_present[0];
 
-        warn "WARNING, data item '$tag' is present, but data item"
+        push @messages, "WARNING, data item '$tag' is present, but data item"
             . ( int(@tags_absent) > 1 ? 's' : '' ) . ' ['
             . join( ', ', map { "'$_'" } @tags_absent ) . '] '
-            . ( int(@tags_absent) > 1 ? 'are' : 'is' ) . ' absent' . "\n";
-        return 1;
-    } else {
-        return 0;
+            . ( int(@tags_absent) > 1 ? 'are' : 'is' ) . ' absent';
     }
+
+    return \@messages;
 }
 
 sub check_embedded_file_integrity
 {
     my ($dataset) = @_;
-    my $warnings = 0;
+    my @messages;
     my $values = $dataset->{values};
 
     my $encodings;
@@ -1612,8 +1748,7 @@ sub check_embedded_file_integrity
         $encodings = get_content_encodings( $dataset );
     };
     if( $@ ) {
-        warn $@;
-        $warnings++;
+        push @messages, $@;
     }
 
     for my $i (0..$#{$values->{_tcod_file_contents}}) {
@@ -1636,9 +1771,9 @@ sub check_embedded_file_integrity
                 !exists $encodings->{$encoding} ) {
                 if( $encoding && $encodings &&
                     !exists $encodings->{$encoding} ) {
-                    warn "WARNING, content encoding stack '$encoding' is not "
-                       . 'described -- trying to guess' . "\n";
-                    $warnings++;
+                    push @messages,
+                         "WARNING, content encoding stack '$encoding' is not "
+                       . 'described -- trying to guess';
                 }
                 # Perform a default decoding, try to guess the encoding
                 # layer type from the encoding ID
@@ -1650,53 +1785,58 @@ sub check_embedded_file_integrity
             }
         };
         if( $@ ) {
-            warn "WARNING, could not decode contents for file '$path' -- "
-               . "$@; will not decode contents\n";
-            $warnings++;
+            push @messages,
+                 "WARNING, could not decode contents for file '$path' -- "
+               . "$@; will not decode contents";
             $content = $values->{_tcod_file_contents}[$i];
         }
 
         if( $md5sum ) {
             if( md5_hex( $content ) ne $md5sum ) {
-                warn "WARNING, MD5 checksums of the original '$path' "
-                   . "and decoded files are different\n";
-                $warnings++;
+                push @messages,
+                     "WARNING, MD5 checksums of the original '$path' "
+                   . 'and decoded files are different';
             }
         }
         if( $sha1sum ) {
             if( sha1_hex( $content ) ne $sha1sum ) {
-                warn "WARNING, SHA1 checksums of the original '$path' "
-                   . "and decoded files are different\n";
-                $warnings++;
+                push @messages,
+                     "WARNING, SHA1 checksums of the original '$path' "
+                   . 'and decoded files are different';
             }
         }
     }
-    return $warnings;
+    return \@messages;
 }
 
 sub check_z
 {
     my ($dataset) = @_;
-    my $warnings = 0;
+    my @messages;
 
-    return $warnings if !tag_is_empty( $dataset, '_cell_formula_units_Z' );
+    return \@messages if !tag_is_empty( $dataset, '_cell_formula_units_Z' );
 
     eval {
         cif_estimate_z( $dataset );
     };
     if( $@ ) {
         $@ =~ s/^([A-Z]+),\s*//;
-        warn "WARNING, $@";
-        $warnings++;
+        $@ =~ s/\n$//;
+        push @messages, "WARNING, $@";
     }
 
-    return $warnings;
+    return \@messages;
 }
 
 sub check_disorder
 {
     my( $dataset ) = @_;
-    return 0 if !exists $dataset->{values}{_atom_site_disorder_group};
+    my @messages;
+    my $notes = 0;
+
+    if ( !exists $dataset->{values}{_atom_site_disorder_group} ) {
+        return \@messages;
+    }
 
     my $assemblies = {};
     for my $i (0..$#{$dataset->{values}{_atom_site_disorder_group}}) {
@@ -1715,18 +1855,20 @@ sub check_disorder
     delete $assemblies->{'.'}{'.'};
 
     if( exists $dataset->{values}{_atom_site_disorder_assembly} ) {
-        for my $assembly (sort keys %$assemblies) {
+        for my $assembly (sort keys %{$assemblies}) {
             my @counts = map { $assemblies->{$assembly}{$_} }
                              sort keys %{$assemblies->{$assembly}};
             my %counts = map { $_ => 1 } @counts;
             if( scalar( keys %counts ) > 1 ) {
-                warn 'NOTE, atom count in groups of disorder assembly ' .
+                push @messages,
+                     'NOTE, atom count in groups of disorder assembly ' .
                      "'$assembly' are different: " .
                      join( ', ', map { "$assemblies->{$assembly}{$_} ('$_')" }
                                      sort keys %{$assemblies->{$assembly}} );
+                $notes++;
             }
         }
     }
 
-    return 0;
+    return \@messages;
 }
diff --git a/scripts/cif_cod_deposit b/scripts/cif_cod_deposit
index 35fb29f..818f7a9 100755
--- a/scripts/cif_cod_deposit
+++ b/scripts/cif_cod_deposit
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_cod_deposit $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_cod_deposit $
 #------------------------------------------------------------------------------
 #*
 #* Deposit CIFs into COD database using CGI deposition interface.
diff --git a/scripts/cif_cod_numbers b/scripts/cif_cod_numbers
index 7ca4a41..b517f38 100755
--- a/scripts/cif_cod_numbers
+++ b/scripts/cif_cod_numbers
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_cod_numbers $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_cod_numbers $
 #------------------------------------------------------------------------------
 #*
 #* Find COD numbers for the CIF files in given directories of file lists.
diff --git a/scripts/cif_correct_tags b/scripts/cif_correct_tags
index af18b7a..6bec90b 100755
--- a/scripts/cif_correct_tags
+++ b/scripts/cif_correct_tags
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_correct_tags $
+#$Author: antanas $
+#$Date: 2017-07-23 01:42:26 +0300 (Sun, 23 Jul 2017) $ 
+#$Revision: 5483 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_correct_tags $
 #------------------------------------------------------------------------------
 #*
 #* Corrects misspelt tags in a CIF file and outputs made changes into the
@@ -35,7 +35,7 @@ use COD::ErrorHandler qw( process_warnings
 use COD::ToolsVersion;
 
 my $keep_tag_order = 0;
-my $Id = '$Id: cif_correct_tags 5379 2017-05-30 12:20:10Z andrius $';
+my $Id = '$Id: cif_correct_tags 5483 2017-07-22 22:42:26Z antanas $';
 my $replacement_list;
 my $use_parser = 'c';
 my $input_format = 'cif';
@@ -255,25 +255,29 @@ for my $filename (@ARGV) {
         }
         insert_report_to_comments ($dataset,\@insert_reports);
     }
-    
-    if( $output_format ne 'cif' && $output_format ne 'json' ) {
-        error( $0, undef, undef,
-               "unknown output format: $output_format", undef );
-        die;
-    }
 
-    for my $dataset (@$data) {
-        if( $output_format eq 'cif' ) {
-            print_cif( $dataset, {
-                exclude_misspelled_tags => 0,
-                preserve_loop_order => 1,
-                fold_long_fields => 0,
-                dictionary_tags => \%dictionary_tags,
-                dictionary_tag_list => \@dictionary_tags,
-                keep_tag_order => $keep_tag_order,
-            } );
-        } elsif( $output_format eq 'json' ) {
-            print cif2json( $dataset );
+    eval {
+        for my $dataset (@$data) {
+            if( $output_format eq 'cif' ) {
+                print_cif( $dataset, {
+                    exclude_misspelled_tags => 0,
+                    preserve_loop_order => 1,
+                    fold_long_fields => 0,
+                    dictionary_tags => \%dictionary_tags,
+                    dictionary_tag_list => \@dictionary_tags,
+                    keep_tag_order => $keep_tag_order,
+                } );
+            } elsif( $output_format eq 'json' ) {
+                print cif2json( $dataset );
+            } else {
+                die "ERROR, unknown output format '$output_format'\n";
+            }
         }
-    }
+    };
+    if ($@) {
+        process_errors( {
+          'message'       => $@,
+          'program'       => $0,
+        }, $die_on_error_level->{'ERROR'} )
+    };
 }
diff --git a/scripts/cif_create_AMCSD_pressure_temp_tags b/scripts/cif_create_AMCSD_pressure_temp_tags
index 11e6567..a642aa6 100755
--- a/scripts/cif_create_AMCSD_pressure_temp_tags
+++ b/scripts/cif_create_AMCSD_pressure_temp_tags
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_create_AMCSD_pressure_temp_tags $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_create_AMCSD_pressure_temp_tags $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file, determine pressure and temperature tag values from
diff --git a/scripts/cif_dictionary_tags b/scripts/cif_dictionary_tags
index 3b60bad..4dce18f 100755
--- a/scripts/cif_dictionary_tags
+++ b/scripts/cif_dictionary_tags
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_dictionary_tags $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_dictionary_tags $
 #------------------------------------------------------------------------------
 #*
 #* Generate a list of all tags in a CIF dictionary.
diff --git a/scripts/cif_diff b/scripts/cif_diff
index c025611..2d7be54 100755
--- a/scripts/cif_diff
+++ b/scripts/cif_diff
@@ -4,10 +4,10 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_diff $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Id: cif_diff 5379 2017-05-30 12:20:10Z andrius $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_diff $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Id: cif_diff 5376 2017-05-30 11:51:03Z andrius $
 #------------------------------------------------------------------------------
 #*
 #* Parse two CIF files and compare their content
diff --git a/scripts/cif_distances b/scripts/cif_distances
index bb841c6..4a406bf 100755
--- a/scripts/cif_distances
+++ b/scripts/cif_distances
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Rev: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_distances $
+#$Date: 2017-09-28 16:46:20 +0300 (Thu, 28 Sep 2017) $
+#$Rev: 5554 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_distances $
 #------------------------------------------------------------------------------
 #*
 #* Calculates minimal distance between atoms read from a CIF file.
@@ -225,6 +225,17 @@ foreach my $filename ( @ARGV ) {
     }
 
     eval {
+      # Extract symmetry operators
+      my $symop_strings = get_symmetry_operators( $dataset );
+
+      # Create a list of symmetry operators:
+      my $symop_list = { symops => [ map { symop_from_string($_) } @$symop_strings ],
+                         symop_ids => {} };
+      for (my $i = 0; $i < @{$symop_strings}; $i++) {
+          $symop_list->{symop_ids}
+                       {symop_string_canonical_form($symop_strings->[$i])} = $i;
+      }
+
       # Extract atoms and order them alphabetically by type and label
       my $atoms;
       eval {
@@ -234,6 +245,7 @@ foreach my $filename ( @ARGV ) {
                           'exclude_dummy_coordinates'    => 1,
                           'uniquify_atom_names'          => $uniquify_atoms,
                           'uniquify_atoms'               => $uniquify_atoms,
+                          'symop_list'                   => $symop_list,
                           'atom_properties' => \%COD::AtomProperties::atoms } );
       };
       if ( $@ ) {
@@ -251,7 +263,7 @@ foreach my $filename ( @ARGV ) {
       # operator modulus 1.
       my ( $sym_atoms, $symop_count );
       eval {
-          ( $sym_atoms, $symop_count ) = symops_apply( $dataset, $atoms );
+          ( $sym_atoms, $symop_count ) = symops_apply( $atoms, $symop_strings );
       };
       if ( $@ ) {
           $@ =~ s/ERROR, //;
@@ -349,37 +361,34 @@ sub resolve_chemical_type
 ##
 # Generates symmetrical atoms from the given original atoms and symmetry
 # operators.
-# @param $sym_data
-#       Reference to an array containing symmetry operators in string format.
 # @param $atoms
 #       Reference to an array of original atoms.
+# @param $symop_strings
+#       Reference to an array of symmetry operator strings.
 #  @return
 #       Reference to an array containing atoms generated by applying symmetry
 #       operators. Each atom hash is given a new field 'symop_string'.
 ##
 sub symops_apply
 {
-    my ( $dataset, $atoms ) = @_;
-
-    # Extract symmetry operators
-    my $symop_strings = get_symmetry_operators( $dataset );
+    my ( $atoms, $symop_strings ) = @_;
 
     # Transform symmetry operators into canonical from
-    @{$symop_strings} = map { symop_string_canonical_form( $_ ) }
-                                                           @{$symop_strings};
+    my @symop_strings = map { symop_string_canonical_form( $_ ) }
+                            @{$symop_strings};
 
     # Compute symmetry operator matrices
-    my @symop = map { symop_from_string( $_ ) } @{$symop_strings};
+    my @symop = map { symop_from_string( $_ ) } @symop_strings;
 
     my $sym_atoms = symop_generate_atoms( \@symop, $atoms, $atoms->[0]{'f2o'} );
 
     # Adds applied symmetry operator to the atom property hash
     my $i = 0;
     foreach ( @{$sym_atoms} ) {
-        $_->{'symop_string'} = @{$symop_strings}[$i];
+        $_->{'symop_string'} = $symop_strings[$i];
         $_->{'symop_id'} = $i + 1;
         $_->{'unity_matrix_applied'} = symop_is_unity( $symop[$i] );
-        $i = ( $i + 1 ) % @{$symop_strings};
+        $i = ( $i + 1 ) % @symop_strings;
     }
 
     return $sym_atoms, scalar @symop;
diff --git a/scripts/cif_estimate_Z b/scripts/cif_estimate_Z
index e560c02..fbd2c3d 100755
--- a/scripts/cif_estimate_Z
+++ b/scripts/cif_estimate_Z
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_estimate_Z $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_estimate_Z $
 #------------------------------------------------------------------------------
 #*
 #* Calculate Z value (i.e. the number of "chemical fomula units" in
diff --git a/scripts/cif_eval_numbers b/scripts/cif_eval_numbers
index 9c01917..ffb1a1b 100755
--- a/scripts/cif_eval_numbers
+++ b/scripts/cif_eval_numbers
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_eval_numbers $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_eval_numbers $
 #------------------------------------------------------------------------------
 #*
 #* Read a CIF file and convert those number values that are written as
diff --git a/scripts/cif_fillcell b/scripts/cif_fillcell
index 47e415c..a9624ce 100755
--- a/scripts/cif_fillcell
+++ b/scripts/cif_fillcell
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_fillcell $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_fillcell $
 #------------------------------------------------------------------------------
 #*
 #* Generates symmetric atoms from a CIF file.
@@ -30,7 +30,7 @@ use COD::ErrorHandler qw( process_warnings
                           process_parser_messages );
 use COD::ToolsVersion;
 
-my $Id = '$Id: cif_fillcell 5379 2017-05-30 12:20:10Z andrius $';
+my $Id = '$Id: cif_fillcell 5376 2017-05-30 11:51:03Z andrius $';
 my $use_parser = 'c';
 my $die_on_errors    = 1;
 my $die_on_warnings  = 0;
diff --git a/scripts/cif_filter b/scripts/cif_filter
index c813814..60a98ab 100755
--- a/scripts/cif_filter
+++ b/scripts/cif_filter
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-06-05 19:09:10 +0300 (Mon, 05 Jun 2017) $
-#$Revision: 5418 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_filter $
+#$Author: antanas $
+#$Date: 2017-07-19 13:31:25 +0300 (Wed, 19 Jul 2017) $
+#$Revision: 5470 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_filter $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file and print out essential data values in the CIF
@@ -94,6 +94,8 @@ my $update_database_code = 1; # Specifies whether to update
                               # _cod_database_code tag value upon
                               # renumbering.
 my $database_code_tag = '_cod_database_code'; # Tag for database code.
+my $original_filename_tag = '_cod_data_source_file';
+my $original_datablock_tag = '_cod_data_source_block';
 
 my $extra_tag_file;
 my $original_filename;
@@ -335,6 +337,12 @@ my %spacegroups = map {
 #*                     Do not rename data blocks (default). Enabling this option
 #*                     sets the '-S' option to default value.
 #*
+#*   --original-filename-tag _cod_data_source_file
+#*   --original-data-block-tag _cod_data_source_block
+#*                     Use the provided tags to record original filename/data
+#*                     block name (default '_cod_data_source_file' and
+#*                     '_cod_data_source_block').
+#*
 #*   --database-code-tag _cod_database_code
 #*                     Use the provided tag while adding or updating the
 #*                     database code upon renaming the data blocks
@@ -483,6 +491,9 @@ my %spacegroups = map {
     '--record-original-filename'      => sub { $record_original_filename = 1; },
     '--dont-record-original-filename' => sub { $record_original_filename = 0; },
 
+    '--original-filename-tag'   => \$original_filename_tag,
+    '--original-data-block-tag' => \$original_datablock_tag,
+
     '--update-database-code'          => sub { $update_database_code = 1; },
     '--dont-update-database-code'     => sub { $update_database_code = 0; },
 
@@ -1088,8 +1099,8 @@ for my $filename (@ARGV) {
                 } else {
                     $basename = '?';
                 }
-                set_tag( $dataset, '_cod_data_source_file', $basename );
-                set_tag( $dataset, '_cod_data_source_block', $dataset->{name} );
+                set_tag( $dataset, $original_filename_tag, $basename );
+                set_tag( $dataset, $original_datablock_tag, $dataset->{name} );
             }
 
             # Clean up the resulting CIF data structure:
@@ -1183,8 +1194,16 @@ for my $filename (@ARGV) {
                 }
 
                 if( @symops ) {
+                    # TODO: an almost identical check is implemented in the
+                    # cif_cod_check module. In the future it might be worth
+                    # refactoring this functionality into a separate module
                     my $symops_parsable = 1;
-                    $symops_parsable *= is_symop_parsable( $_ ) for @symops;
+                    foreach (@symops) {
+                        if ( !is_symop_parsable($_) ) {
+                            warn "WARNING, symmetry operator '$_' could not be parsed\n";
+                            $symops_parsable = 0;
+                        }
+                    }
 
                     if( $symops_parsable ) {
                         my $key = make_symop_key( \@symops );
@@ -1370,8 +1389,7 @@ for my $filename (@ARGV) {
             if( defined $data_block_nr ) {
                 $dataset->{name} = sprintf $datablock_format, $data_block_nr;
                 if( $update_database_code ) {
-                    $dataset->{values}{$database_code_tag}[0] =
-                        $dataset->{name};
+                    set_tag( $dataset, $database_code_tag, $dataset->{name} );
                 }
                 $data_block_nr ++;
             }
diff --git a/scripts/cif_find_duplicates b/scripts/cif_find_duplicates
index 8294031..bc5f11f 100755
--- a/scripts/cif_find_duplicates
+++ b/scripts/cif_find_duplicates
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_find_duplicates $
+#$Author: antanas $
+#$Date: 2017-07-17 18:58:17 +0300 (Mon, 17 Jul 2017) $
+#$Revision: 5463 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_find_duplicates $
 #------------------------------------------------------------------------------
 #*
 #* Find COD numbers for the .cif files in given directories of file lists.
@@ -21,7 +21,6 @@ use File::Basename qw( basename );
 use COD::CIF::Parser qw( parse_cif );
 use COD::Formulae::Parser::AdHoc;
 use COD::CIF::Data::CODNumbers qw( cif_fill_data entries_are_the_same );
-use COD::CIF::Data::CellContents qw( cif_cell_contents );
 use COD::CIF::Tags::CanonicalNames qw( canonicalize_all_names );
 use COD::SOptions qw( getOptions );
 use COD::SUsage qw( usage options );
diff --git a/scripts/cif_find_symmetry b/scripts/cif_find_symmetry
index 54d7dd7..90f1bf4 100755
--- a/scripts/cif_find_symmetry
+++ b/scripts/cif_find_symmetry
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_find_symmetry $
+#$Author: antanas $
+#$Date: 2017-05-31 13:13:22 +0300 (Wed, 31 May 2017) $
+#$Revision: 5387 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_find_symmetry $
 #------------------------------------------------------------------------------
 #*
 #* Find the symmetry of the atoms in the unit cell of a CIF crystal
@@ -42,7 +42,7 @@ use COD::Spacegroups::Symop::Algebra qw( flush_zeros_in_symop
                                          symop_det
                                          symop_mul
                                          symop_transpose );
-use COD::Spacegroups::Symop::Parse qw( string_from_symop );
+use COD::Spacegroups::Symop::Parse qw( string_from_symop_reduced );
 use COD::SOptions qw( getOptions get_value );
 use COD::SPGLib qw( get_sym_dataset );
 use COD::SUsage qw( usage options );
@@ -305,7 +305,7 @@ sub find_symmetry_spglib
                       [ 1..@{$sym->{symops}} ] );
         set_loop_tag( $dataset, '_space_group_symop_operation_xyz',
                       '_space_group_symop_id',
-                      [ map { string_from_symop( $_ ) }
+                      [ map { string_from_symop_reduced( $_ ) }
                         map { flush_zeros_in_symop( $_ ) }
                             @{$sym->{symops}} ] );
 
diff --git a/scripts/cif_fix_values b/scripts/cif_fix_values
index 151d8bc..d2e1115 100755
--- a/scripts/cif_fix_values
+++ b/scripts/cif_fix_values
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_fix_values $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_fix_values $
 #------------------------------------------------------------------------------
 #*
 #* Corrects various CIF file values and outputs the made changes into the 
@@ -42,7 +42,7 @@ use COD::ErrorHandler qw(process_warnings process_errors
                          process_parser_messages report_message);
 use COD::ToolsVersion;
 
-my $Id = '$Id: cif_fix_values 5379 2017-05-30 12:20:10Z andrius $';
+my $Id = '$Id: cif_fix_values 5376 2017-05-30 11:51:03Z andrius $';
 my $keep_tag_order = 0;
 
 my $fix_misspelled_values = 1;
diff --git a/scripts/cif_hkl_COD_number b/scripts/cif_hkl_COD_number
index ae45a40..5cf981e 100755
--- a/scripts/cif_hkl_COD_number
+++ b/scripts/cif_hkl_COD_number
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-05 19:09:10 +0300 (Mon, 05 Jun 2017) $ 
-#$Revision: 5418 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_hkl_COD_number $
+#$Date: 2017-06-05 18:48:50 +0300 (Mon, 05 Jun 2017) $ 
+#$Revision: 5416 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_hkl_COD_number $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file and print out the essential information in the COD
diff --git a/scripts/cif_hkl_check b/scripts/cif_hkl_check
index 3a094b4..526c373 100755
--- a/scripts/cif_hkl_check
+++ b/scripts/cif_hkl_check
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_hkl_check $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_hkl_check $
 #------------------------------------------------------------------------------
 #*
 #* Check the correspondence between CIF and diffraction data files, taking
diff --git a/scripts/cif_mark_disorder b/scripts/cif_mark_disorder
index 2106215..82f51bf 100755
--- a/scripts/cif_mark_disorder
+++ b/scripts/cif_mark_disorder
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-05 19:09:10 +0300 (Mon, 05 Jun 2017) $
-#$Revision: 5418 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_mark_disorder $
+#$Date: 2017-06-05 18:48:50 +0300 (Mon, 05 Jun 2017) $
+#$Revision: 5416 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_mark_disorder $
 #------------------------------------------------------------------------------
 #*
 #* Marks disorder in CIF files judging by distance and occupancy.
@@ -36,7 +36,7 @@ use COD::ErrorHandler qw( process_warnings
 use COD::ToolsVersion;
 use List::Util qw( sum );
 
-my $Id = '$Id: cif_mark_disorder 5418 2017-06-05 16:09:10Z andrius $';
+my $Id = '$Id: cif_mark_disorder 5416 2017-06-05 15:48:50Z andrius $';
 
 my $same_site_distance_sensitivity = 0.000001;
 my $same_site_occupancy_sensitivity = 0.01;
diff --git a/scripts/cif_merge b/scripts/cif_merge
index 98dd4d7..e4d5c00 100755
--- a/scripts/cif_merge
+++ b/scripts/cif_merge
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_merge $
+#$Date: 2017-06-28 17:20:57 +0300 (Wed, 28 Jun 2017) $ 
+#$Revision: 5452 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_merge $
 #------------------------------------------------------------------------------
 #*
 #* Merge data values in identical data blocks of multiple CIFs. Unique
@@ -23,6 +23,7 @@ use strict;
 use warnings;
 use COD::CIF::Parser qw( parse_cif );
 use COD::CIF::Tags::CanonicalNames qw( canonicalize_all_names );
+use COD::CIF::Tags::Manage qw( set_loop_tag set_tag );
 use COD::CIF::Tags::Print qw( print_cif );
 use COD::SOptions qw( getOptions );
 use COD::SUsage qw( usage options );
@@ -204,11 +205,12 @@ for my $filename (@ARGV) {
                         }
                     } elsif( defined $override_tags{lc($tag)} ||
                              $override_all ) {
-                        for( my $i = 0;
-                             $i <= $#{$old_datablock->{values}{$tag}};
-                             $i ++ ) {
-                            $old_datablock->{values}{$tag}[$i] =
-                                $new_datablock->{values}{$tag}[$i];
+                        if( defined $old_datablock->{inloop}{$tag} ) {
+                            set_loop_tag( $old_datablock, $tag, undef,
+                                          $new_datablock->{values}{$tag} );
+                        } else {
+                            set_tag( $old_datablock, $tag,
+                                     $new_datablock->{values}{$tag}[0] )
                         }
                     } elsif( !values_are_equal( $old_datablock->{values}{$tag},
                                            $new_datablock->{values}{$tag} )) {
diff --git a/scripts/cif_molecule b/scripts/cif_molecule
index 6a248e7..a312bbf 100755
--- a/scripts/cif_molecule
+++ b/scripts/cif_molecule
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-05 19:09:10 +0300 (Mon, 05 Jun 2017) $
-#$Revision: 5418 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_molecule $
+#$Date: 2017-09-28 16:46:20 +0300 (Thu, 28 Sep 2017) $
+#$Revision: 5554 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_molecule $
 #------------------------------------------------------------------------------
 #*
 #* Restores molecules from a CIF file.
@@ -69,21 +69,26 @@ use COD::CIF::Data::AtomList qw( atom_array_from_cif
                                  dump_atoms_as_cif );
 use COD::CIF::Data::SymmetryGenerator qw( apply_shifts
                                           atoms_coincide
+                                          chemical_formula_sum
+                                          symop_apply
+                                          symops_apply_modulo1
                                           test_bond
-                                          test_bump );
+                                          test_bump
+                                          translate_atom
+                                          translation
+                                          trim_polymer );
 use COD::CIF::Parser qw( parse_cif );
 use COD::CIF::Tags::CanonicalNames qw( canonicalize_all_names );
-use COD::CIF::Tags::Manage qw( set_tag );
+use COD::CIF::Tags::Manage qw( rename_tags );
 use COD::CIF::Tags::Print qw( print_cif print_value
                               print_single_tag_and_value );
 use COD::ErrorHandler qw( process_errors process_warnings
                           process_parser_messages report_message );
-use COD::Formulae::Print qw( sprint_formula );
 use COD::MorganFingerprints qw( make_morgan_fingerprint );
 use COD::Spacegroups::Builder;
 use COD::Spacegroups::Symop::Algebra qw( symop_mul symop_invert
                                          symop_is_unity symop_vector_mul
-                                         symop_modulo_1 flush_zeros_in_symop );
+                                         symop_modulo_1 );
 use COD::Spacegroups::Symop::Parse qw( symop_from_string
                                        string_from_symop
                                        symop_string_canonical_form
@@ -94,7 +99,7 @@ use COD::ToolsVersion;
 
 no warnings 'recursion';
 
-my $Id = '$Id: cif_molecule 5418 2017-06-05 16:09:10Z andrius $';
+my $Id = '$Id: cif_molecule 5554 2017-09-28 13:46:20Z andrius $';
 
 my $debug;
 my $symdebug;
@@ -124,11 +129,6 @@ my $bump_distance_factor = 0.75;
 my $ignore_bumps = 0; # detect and warn about close atom "bumps"
                       # but do not stop processing.
 
-# A distance between two atoms when they are considered to be
-# instances of the same atom on a special position:
-
-my $special_position_cutoff = 0.01;
-
 # A span, in +/- unit cells, in which polymeric molecules (repeating
 # units) will be constructed:
 
@@ -1153,264 +1153,6 @@ sub get_symops
     return;
 }
 
-#==============================================================#
-# Finds translation center of mass and center of mass modulo 1 information.
-
-# Accepts two arrays of coordinates_fract.
-
-# Returns an array of differences between coordinates_fract.
-
-sub translation
-{
-    my ($coords, $coords_modulo_1) = @_;
-
-    my @translation;
-    for(my $i = 0; $i < @{$coords}; $i++)
-    {
-        push(@translation, ${$coords}[$i] - ${$coords_modulo_1}[$i]);
-    }
-
-    return \@translation;
-}
-
-#==============================================================#
-# Translates an atom according a given translation.
-#
-# Accepts an atom description and a translation.
-#
-# Returns a translated atom.
-
-sub translate_atom
-{
-    my($atom, $translation) = @_;
-
-    my $new_atom = copy_atom( $atom );
-    my @new_atom_xyz;
-
-    push( @new_atom_xyz, $atom->{"coordinates_fract"}[0] +
-          ${$translation}[0] );
-    push( @new_atom_xyz, $atom->{"coordinates_fract"}[1] +
-          ${$translation}[1] );
-    push( @new_atom_xyz, $atom->{"coordinates_fract"}[2] +
-          ${$translation}[2] );
-
-    $new_atom->{"coordinates_fract"} = \@new_atom_xyz;
-    $new_atom->{coordinates_ortho} =
-        symop_vector_mul( $atom->{f2o}, \@new_atom_xyz );
-
-    $new_atom->{translation} = [
-        $new_atom_xyz[0] - modulo_1($new_atom_xyz[0]),
-        $new_atom_xyz[1] - modulo_1($new_atom_xyz[1]),
-        $new_atom_xyz[2] - modulo_1($new_atom_xyz[2]),
-    ];
-
-    $new_atom->{translation_id} =
-        ($new_atom->{translation}[0]+5).
-        ($new_atom->{translation}[1]+5).
-        ($new_atom->{translation}[2]+5);
-
-    if( defined $new_atom->{unity_matrix_applied} &&
-        $new_atom->{unity_matrix_applied} &&
-        $new_atom->{translation}[0] == 0 &&
-        $new_atom->{translation}[1] == 0 &&
-        $new_atom->{translation}[2] == 0 ) {
-        $new_atom->{name} = $new_atom->{site_label};
-    } else {
-        $new_atom->{name} =
-            $new_atom->{site_label} . "_" .
-            $new_atom->{symop_id} . "_" .
-            $new_atom->{translation_id};
-    }
-
-    return $new_atom;
-}
-
-#===============================================================#
-# Finds a molecule chemical formula sum.
-
-# Accepts an array of atoms:
-# $atom =      {name=>"C1_2",
-#               chemical_type=>"C",
-#               coordinates_fract=>[1.0, 1.0, 1.0],
-#               unity_matrix_applied=>1}
-
-# Returns a string with chemical formula sum.
-
-sub chemical_formula_sum
-{
-    my ($atoms, $Z) = @_;
-
-    $Z = 1 unless defined $Z;
-
-    my %chemical_types;
-
-    foreach my $atom (@{$atoms})
-    {
-        my $chemical_type = $atom->{chemical_type};
-        next if $chemical_type eq '.';
-        if(defined $chemical_types{$chemical_type})
-        {
-            $chemical_types{$chemical_type} = ++$chemical_types{$chemical_type};
-        }
-        else
-        {
-            $chemical_types{$chemical_type} = 1;
-        }
-    }
-
-    for my $chemical_type (keys %chemical_types) {
-        $chemical_types{$chemical_type} /= $Z;
-    }
-
-    my $formula_sum = sprint_formula( \%chemical_types );
-    $formula_sum =~ s/\s$//;
-
-    return $formula_sum;
-}
-
-#===============================================================#
-# Applies symmetry operator to a given atom.
-
-# The symop_apply_modulo1 subroutine accepts a reference to a hash
-# $atom_info = {name=>"C1_2",
-#               site_label=>"C1"
-#               chemical_type=>"C",
-#               coordinates_fract=>[1.0, 1.0, 1.0],
-#               unity_matrix_applied=>1} and
-# a reference to an array - symmetry operator
-# my $symop = [
-#     [ r11 r12 r13 t1 ]
-#     [ r21 r22 r23 t1 ]
-#     [ r31 r32 r33 t1 ]
-#     [   0   0   0  1 ]
-# ],
-# Returns an above-mentioned hash.
-#
-sub symop_apply_modulo1
-{
-    my($atom_info, $symop) = @_;
-
-    my $new_atom_info = copy_atom($atom_info);
-
-    my $atom_xyz = $atom_info->{"coordinates_fract"};
-
-    my @new_atom_xyz =
-        map { modulo_1($_) }
-            @{ symop_vector_mul( $symop, $atom_xyz ) };
-
-    $new_atom_info->{coordinates_fract} = \@new_atom_xyz;
-
-    return symop_register_applied_symop( $new_atom_info, $symop );
-}
-
-#===============================================================#
-# Applies symmetry operator to a given atom, without applying a
-# modulo_1 shift.
-#
-
-# The symop_apply_NO_modulo_1 subroutine accepts a reference to a hash:
-
-# $atom_info = {site_label=>"C1",
-#               name=>"C1_2",
-#               chemical_type=>"C",
-#               coordinates_fract=>[1.0, 1.0, 1.0],
-#               unity_matrix_applied=>1} 
-
-# and a reference to an array - symmetry operator
-
-# my $symop = [
-#     [ r11 r12 r13 t1 ]
-#     [ r21 r22 r23 t1 ]
-#     [ r31 r32 r33 t1 ]
-#     [   0   0   0  1 ]
-# ],
-
-# Returns an above-mentioned hash.
-
-# The difference from the symop_apply_modulo1() subroutine is that it does not
-# apply the mod1 shift.
-
-sub symop_apply_NO_modulo_1
-{
-    my($atom_info, $symop) = @_;
-
-    my $new_atom_info = copy_atom($atom_info);
-
-    my $atom_xyz = $atom_info->{"coordinates_fract"};
-
-    my $new_atom_xyz = symop_vector_mul( $symop, $atom_xyz );
-
-    $new_atom_info->{"coordinates_fract"} = $new_atom_xyz;
-
-    return symop_register_applied_symop( $new_atom_info, $symop );
-}
-
-sub symop_register_applied_symop
-{
-    my($new_atom_info, $symop) = @_;
-
-    my $symop_now = symop_mul( $new_atom_info->{symop}, $symop );
-    my $symop_string =
-        symop_string_canonical_form(
-            string_from_symop(
-                flush_zeros_in_symop(
-                    symop_modulo_1( $symop_now ) ) ) );
-
-    $new_atom_info->{"symop"} = $symop_now;
-    $new_atom_info->{"symop_id"} =
-        $new_atom_info->{symop_list}
-                        {symop_ids}
-                        {$symop_string} + 1;
-    $new_atom_info->{"unity_matrix_applied"} =
-        symop_is_unity( $symop_now );
-
-    delete $new_atom_info->{site_symop};
-
-    my $atom_xyz = $new_atom_info->{"coordinates_fract"};
-
-    $new_atom_info->{"coordinates_ortho"} =
-        symop_vector_mul( $new_atom_info->{f2o}, $atom_xyz );
-
-    my @translation = (
-        int($atom_xyz->[0] - modulo_1($atom_xyz->[0])),
-        int($atom_xyz->[1] - modulo_1($atom_xyz->[1])),
-        int($atom_xyz->[2] - modulo_1($atom_xyz->[2])),
-    );
-    $new_atom_info->{"translation"} =
-        \@translation;
-    $new_atom_info->{"translation_id"} =
-        (5+$translation[0]) . (5+$translation[1]) . (5+$translation[2]);
-
-    if( $new_atom_info->{"unity_matrix_applied"} ) {
-        ## die unless $new_atom_info->{"translation_id"} eq "555";
-        $new_atom_info->{"name"} = $new_atom_info->{"site_label"};
-    } else {
-        $new_atom_info->{"name"} =
-            $new_atom_info->{"site_label"} . "_" .
-            $new_atom_info->{"symop_id"} . "_" .
-            $new_atom_info->{"translation_id"};
-    }
-
-    if( $expand_to_p1 ) {
-        if( $new_atom_info->{"unity_matrix_applied"} ) {
-            $new_atom_info->{"cell_label"} = $new_atom_info->{"site_label"};
-        } else {
-            $new_atom_info->{"cell_label"} =
-                $new_atom_info->{"site_label"} . "_" .
-                $new_atom_info->{"symop_id"};
-        }
-    } else {
-        $new_atom_info->{"cell_label"} = $new_atom_info->{"site_label"};
-    }
-
-    do {
-        use COD::Serialise qw( serialiseRef );
-        serialiseRef( { atom => $new_atom_info, symop => $symop } );
-    } if 0;
-
-    return $new_atom_info;
-}
-
 #===============================================================#
 # Applies symmetry operator to all atoms in a givel list.
 #
@@ -1447,7 +1189,9 @@ sub symop_apply_to_atoms
 
     my @sym_atoms = ();
     for my $atom (@$atom_list) {
-        push( @sym_atoms, symop_apply_NO_modulo_1( $atom, $symop ));
+        push( @sym_atoms,
+            symop_apply( $atom, $symop,
+                         { append_symop_to_label => $expand_to_p1 } ) );
     }
 
     return \@sym_atoms;
@@ -1461,7 +1205,9 @@ sub symgen_atom($$)
 {
     my ( $atom, $sym_operators ) = @_;
 
-    my $sym_atoms = symops_apply_modulo1( $atom, $sym_operators );
+    my( $sym_atoms ) = symops_apply_modulo1( $atom, $sym_operators,
+                                             { append_symop_to_label =>
+                                               $expand_to_p1 } );
 
     if( $sym_atoms && 
         ( @{$sym_atoms} == 0 ||
@@ -1489,68 +1235,6 @@ sub symgen_atom($$)
 }
 
 #===============================================================#
-# Generate symmetry equivalents of an atom, evaluate atom's
-# multiplicity and multiplicity ratio. Exclude atoms mapping to the
-# original one.
-
-sub symops_apply_modulo1
-{
-    my ( $atom, $sym_operators ) = @_;
-
-    my @sym_atoms;
-    my @symops_mapping_to_self;
-    my $gp_multiplicity = int(@$sym_operators);
-
-    my $multiplicity_ratio = 1;
-
-    do {
-        use COD::Serialise qw( serialiseRef );
-        serialiseRef( $sym_operators );
-    } if 0;
-
-    for my $symop ( @{$sym_operators} ) {
-        my $new_atom = symop_apply_modulo1( $atom, $symop );
-        if( !symop_is_unity( $symop ) &&
-            atoms_coincide( $atom, $new_atom, $atom->{f2o} )) {
-            push( @symops_mapping_to_self, $symop );
-            $multiplicity_ratio ++;
-        } else {
-            push( @sym_atoms, $new_atom );
-        }
-    }
-
-    ## print ">>> $gp_multiplicity / $multiplicity_ratio\n";
-
-    if( $gp_multiplicity % $multiplicity_ratio ) {
-        die "ERROR, multiplicity ratio $multiplicity_ratio does not divide "
-          . "multiplicity of a general position $gp_multiplicity -- "
-          . "this can not be\n";
-    }
-
-    my $multiplicity = $gp_multiplicity / $multiplicity_ratio;
-
-    # Update the original atom structure:
-    $atom->{multiplicity} = $multiplicity;
-    $atom->{multiplicity_ratio} = $multiplicity_ratio;
-
-    # Update all symmetry-generated atoms (including ones that were
-    # generated using the unity matrix):
-    for my $atom (@sym_atoms) {
-        $atom->{multiplicity} = $multiplicity;
-        $atom->{multiplicity_ratio} = $multiplicity_ratio;
-
-        my $atom_symop = $atom->{symop};
-        my $inv_atom_symop = symop_invert( $atom_symop );
-        $atom->{site_symops} = [
-            map { symop_mul( $atom_symop, symop_mul( $_, $inv_atom_symop )) }
-            @symops_mapping_to_self
-        ];
-    }
-
-    return \@sym_atoms;
-}
-
-#===============================================================#
 # Generate symmetry equivalents of all atoms from a list, exclude
 # duplicates on special positions. Check the multiplicity values
 # provided in the original file.
@@ -1599,56 +1283,6 @@ sub symgen_all_atoms($$)
 }
 
 #===============================================================#
-# Renames CIF data tags so that they are not confused with the
-# original ones.
-
-# Accepts a dataset hash produced by COD::CIF::Parser, a list of tags to be
-# renamed, and a prefix to be appended
-
-# Returns a hash with renamed data tags
-
-sub rename_tags($$$)
-{
-    my ($dataset, $tags2rename, $prefix ) = @_;
-
-    my $values = $dataset->{values};
-    my %renamed_tags = ();
-
-    for my $tag (@$tags2rename) {
-        if( exists $values->{$tag} &&
-            !defined $dataset->{inloop}{$tag} ) {
-            my $new_tag = $prefix . $tag;
-            my $value = $values->{$tag}[0];
-            set_tag( $dataset, $new_tag, $value );
-            $renamed_tags{$new_tag} = $tag;
-        }
-    }
-    return wantarray ? %renamed_tags : \%renamed_tags;
-}
-
-#===============================================================#
-# Trim a polymer -- remove atoms outside of the specified polymer
-# span:
-
-sub trim_polymer
-{
-    my ($atoms, $max_polymer_span) = @_;
-
-    my @trimmed_atoms;
-
-    for my $atom (@$atoms) {
-        if( abs($atom->{translation}[0]) <= $max_polymer_span &&
-            abs($atom->{translation}[1]) <= $max_polymer_span &&
-            abs($atom->{translation}[2]) <= $max_polymer_span ) {
-            push( @trimmed_atoms, $atom );
-        }
-    }
-
-    return \@trimmed_atoms;
-}
-
-
-#===============================================================#
 # Prints molecule to the CIF file.
 
 # Accepts a hash
diff --git a/scripts/cif_mpod_v1_to_v2 b/scripts/cif_mpod_v1_to_v2
index 057fae7..430e299 100755
--- a/scripts/cif_mpod_v1_to_v2
+++ b/scripts/cif_mpod_v1_to_v2
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_mpod_v1_to_v2 $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_mpod_v1_to_v2 $
 #------------------------------------------------------------------------------
 #*
 #* Convert MPOD structures from MPOD dictionary V1 to MPOD dict. V2 based
diff --git a/scripts/cif_mpod_v1_to_v3 b/scripts/cif_mpod_v1_to_v3
index 3879f10..5fc7bb2 100755
--- a/scripts/cif_mpod_v1_to_v3
+++ b/scripts/cif_mpod_v1_to_v3
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_mpod_v1_to_v3 $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_mpod_v1_to_v3 $
 #------------------------------------------------------------------------------
 #*
 #* Convert MPOD structures from MPOD dictionary V1 to MPOD dict. V3 based
diff --git a/scripts/cif_mpod_v2_to_v1 b/scripts/cif_mpod_v2_to_v1
index 4211b27..8208c76 100755
--- a/scripts/cif_mpod_v2_to_v1
+++ b/scripts/cif_mpod_v2_to_v1
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_mpod_v2_to_v1 $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_mpod_v2_to_v1 $
 #------------------------------------------------------------------------------
 #*
 #* Convert MPOD structures from MPOD dictionary V2 to MPOD dict. V1 based
diff --git a/scripts/cif_mpod_v3_to_v1 b/scripts/cif_mpod_v3_to_v1
index 64348fc..1009472 100755
--- a/scripts/cif_mpod_v3_to_v1
+++ b/scripts/cif_mpod_v3_to_v1
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_mpod_v3_to_v1 $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_mpod_v3_to_v1 $
 #------------------------------------------------------------------------------
 #*
 #* Convert MPOD structures from MPOD dictionary V1 to MPOD dict. V3 based
diff --git a/scripts/cif_overlay b/scripts/cif_overlay
index 17551a6..5b24035 100755
--- a/scripts/cif_overlay
+++ b/scripts/cif_overlay
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_overlay $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_overlay $
 #------------------------------------------------------------------------------
 #*
 #* Overlay atoms from each pair of CIFs given on the command line.
diff --git a/scripts/cif_p1 b/scripts/cif_p1
index 325ed56..d7e8da3 100755
--- a/scripts/cif_p1
+++ b/scripts/cif_p1
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_p1 $
+#$Date: 2017-09-28 16:46:20 +0300 (Thu, 28 Sep 2017) $ 
+#$Revision: 5554 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_p1 $
 #------------------------------------------------------------------------------
 #*
 #* Expand atoms in CIF to the P1 space group, preserving molecules
@@ -24,24 +24,33 @@ use COD::AtomBricks qw( build_bricks get_atom_index get_search_span );
 use COD::AtomNeighbours qw( get_max_covalent_radius );
 use COD::AtomProperties;
 use COD::CIF::Parser qw( parse_cif );
-use COD::Formulae::Print qw( sprint_formula );
-use COD::Spacegroups::Symop::Algebra qw( symop_is_unity symop_vector_mul );
-use COD::Spacegroups::Symop::Parse qw( symop_from_string
+use COD::Spacegroups::Symop::Algebra qw( symop_is_unity
+                                         symop_invert
+                                         symop_mul
+                                         symop_vector_mul );
+use COD::Spacegroups::Symop::Parse qw( modulo_1
                                        string_from_symop
-                                       modulo_1 );
+                                       symop_from_string
+                                       symop_string_canonical_form );
 use COD::Algebra::Vector qw( distance );
 use COD::CIF::Data qw( get_cell get_symmetry_operators );
 use COD::CIF::Data::AtomList qw( atom_array_from_cif
                                  atom_groups
-                                 copy_atom
                                  dump_atoms_as_cif );
 use COD::CIF::Data::SymmetryGenerator qw( apply_shifts
                                           atoms_coincide
+                                          chemical_formula_sum
+                                          symops_apply_modulo1
                                           test_bond
-                                          test_bump );
+                                          test_bump
+                                          translate_atom
+                                          translation
+                                          trim_polymer );
 use COD::CIF::Tags::CanonicalNames qw( canonicalize_all_names );
-use COD::CIF::Tags::Manage qw( set_tag );
-use COD::CIF::Tags::Print qw( print_cif print_single_tag_and_value print_value );
+use COD::CIF::Tags::Manage qw( rename_tags );
+use COD::CIF::Tags::Print qw( print_cif
+                              print_single_tag_and_value
+                              print_value );
 use COD::SOptions qw( getOptions );
 use COD::SUsage qw( usage options );
 use COD::ErrorHandler qw( process_warnings process_errors
@@ -50,7 +59,7 @@ use COD::ToolsVersion;
 
 no warnings 'recursion';
 
-my $Id = '$Id: cif_p1 5379 2017-05-30 12:20:10Z andrius $';
+my $Id = '$Id: cif_p1 5554 2017-09-28 13:46:20Z andrius $';
 
 my $use_parser = "c";
 
@@ -91,11 +100,6 @@ my $bump_distance_factor = 0.75;
 my $ignore_bumps = 1; # detect and warn about close atom "bumps"
                       # but do not stop processing.
 
-# A distance between two atoms when they are considered to be
-# instances of the same atom on a special position:
-
-my $special_position_cutoff = 0.01;
-
 # A span, in +/- unit cells, in which polymeric molecules (repeating
 # units) will be constructed:
 
@@ -385,12 +389,26 @@ for my $filename (@ARGV) {
                                      } ) };
 
         eval {
-            # Build an atom array from the CIF data structure:
-            my $atoms = atom_array_from_cif( $datablock, $cif_atom_list_options );
-
             my $symop_strings = get_symmetry_operators( $datablock );
             my @symops = map { symop_from_string($_) } @{$symop_strings};
 
+            # Parse symmetry operators:
+            my @sym_operators = map { symop_from_string($_) } @{$symop_strings};
+
+            # Create a list of symmetry operators:
+            my $symop_list = { symops => [ map { symop_from_string($_) } @$symop_strings ],
+                               symop_ids => {} };
+            for (my $i = 0; $i < @{$symop_strings}; $i++)
+            {
+                $symop_list->{symop_ids}
+                             {symop_string_canonical_form($symop_strings->[$i])} = $i;
+            }
+
+            $cif_atom_list_options->{symop_list} = $symop_list;
+
+            # Build an atom array from the CIF data structure:
+            my $atoms = atom_array_from_cif( $datablock, $cif_atom_list_options );
+
             my $unit_cell_atoms =
                 symops_apply_to_atoms_modulo1( \@symops, $atoms );
 
@@ -516,246 +534,6 @@ for my $filename (@ARGV) {
 exit 0;
 
 #===============================================================#
-# Generate symmetry equivalents of an atom, evaluate atom's
-# multiplicity and multiplicity ratio
-
-sub symops_apply_modulo1
-{
-    my ( $atom, $sym_operators ) = @_;
-
-    my @sym_atoms;
-    my @symops_mapping_to_self;
-    my $gp_multiplicity = int(@$sym_operators);
-
-    my $multiplicity_ratio = 1;
-
-    do {
-        use COD::Serialise qw( serialiseRef );
-        serialiseRef( $sym_operators );
-    } if 0;
-
-    my $n = 1;
-
-    for my $symop ( @{$sym_operators} ) {
-        my $new_atom = symop_apply_modulo1( $atom, $symop, $n++ );
-        if( !symop_is_unity( $symop ) &&
-            atoms_coincide( $atom, $new_atom, $atom->{f2o} )) {
-            push( @symops_mapping_to_self, $symop );
-            $multiplicity_ratio ++;
-        } else {
-            push( @sym_atoms, $new_atom );
-        }
-    }
-
-    ## print ">>> $gp_multiplicity / $multiplicity_ratio\n";
-
-    if( $gp_multiplicity % $multiplicity_ratio ) {
-        die( "Multiplicity ratio $multiplicity_ratio does not divide " .
-             "multiplicity of a general position $gp_multiplicity" .
-             "-- this can not be." );
-    }
-
-    my $multiplicity = $gp_multiplicity / $multiplicity_ratio;
-
-    for my $atom (@sym_atoms) {
-        $atom->{multiplicity} = $multiplicity;
-        $atom->{multiplicity_ratio} = $multiplicity_ratio;
-        $atom->{site_symops} = \@symops_mapping_to_self;
-    }
-
-    return ( \@sym_atoms, $multiplicity, $multiplicity_ratio );
-}
-
-#==============================================================#
-# Finds translation center of mass and center of mass modulo 1 information.
-
-# Accepts two arrays of coordinates_fract.
-
-# Returns an array of differences between coordinates_fract.
-
-sub translation
-{
-    my ($coords, $coords_modulo_1) = @_;
-
-    my @translation;
-    for(my $i = 0; $i < @{$coords}; $i++) {
-        push(@translation, ${$coords}[$i] - ${$coords_modulo_1}[$i]);
-    }
-
-    return \@translation;
-}
-
-#==============================================================#
-# Translates an atom according a given translation.
-#
-# Accepts an atom description and a translation.
-#
-# Returns a translated atom.
-
-sub translate_atom
-{
-    my($atom, $translation) = @_;
-
-    my $new_atom = copy_atom( $atom );
-    my @new_atom_xyz;
-
-    push( @new_atom_xyz, $atom->{'coordinates_fract'}[0] +
-          ${$translation}[0] );
-    push( @new_atom_xyz, $atom->{'coordinates_fract'}[1] +
-          ${$translation}[1] );
-    push( @new_atom_xyz, $atom->{'coordinates_fract'}[2] +
-          ${$translation}[2] );
-
-    $new_atom->{'coordinates_fract'} = \@new_atom_xyz;
-    $new_atom->{coordinates_ortho} =
-        symop_vector_mul( $atom->{f2o}, \@new_atom_xyz );
-
-    $new_atom->{translation} = [
-        $new_atom_xyz[0] - modulo_1($new_atom_xyz[0]),
-        $new_atom_xyz[1] - modulo_1($new_atom_xyz[1]),
-        $new_atom_xyz[2] - modulo_1($new_atom_xyz[2]),
-    ];
-
-    $new_atom->{translation_id} =
-        ($new_atom->{translation}[0]+5).
-        ($new_atom->{translation}[1]+5).
-        ($new_atom->{translation}[2]+5);
-
-    if( defined $new_atom->{unity_matrix_applied} &&
-                $new_atom->{unity_matrix_applied} &&
-                $new_atom->{translation}[0] == 0 &&
-                $new_atom->{translation}[1] == 0 &&
-                $new_atom->{translation}[2] == 0 ) {
-        $new_atom->{name} = $new_atom->{site_label};
-    } else {
-        $new_atom->{name} =
-            $new_atom->{site_label} . "_" .
-            $new_atom->{symop_id} . "_" .
-            $new_atom->{translation_id};
-    }
-
-    return $new_atom;
-}
-
-#===============================================================#
-# Finds a molecule chemical formula sum.
-
-# Accepts an array of atoms:
-# $atom =      {name=>"C1_2",
-#               chemical_type=>"C",
-#               coordinates_fract=>[1.0, 1.0, 1.0],
-#               unity_matrix_applied=>1}
-
-# Returns a string with chemical formula sum.
-
-sub chemical_formula_sum
-{
-    my ($atoms, $Z) = @_;
-
-    $Z = 1 unless defined $Z;
-
-    my %chemical_types;
-
-    foreach my $atom (@{$atoms}) {
-        my $chemical_type = $atom->{chemical_type};
-        if(defined $chemical_types{$chemical_type}) {
-            $chemical_types{$chemical_type} = ++$chemical_types{$chemical_type};
-        } else {
-            $chemical_types{$chemical_type} = 1;
-        }
-    }
-
-    for my $chemical_type (keys %chemical_types) {
-        $chemical_types{$chemical_type} /= $Z;
-    }
-
-    my $formula_sum = sprint_formula( \%chemical_types );
-    $formula_sum =~ s/\s$//;
-
-    return $formula_sum;
-}
-
-#===============================================================#
-# Applies symmetry operator to a given atom.
-
-# The symop_apply_modulo1 subroutine accepts a reference to a hash
-# $atom_info -- as above, and a refernce to an array - symmetry
-# operator:
-
-# my $symop = [
-#     [ r11 r12 r13 t1 ]
-#     [ r21 r22 r23 t2 ]
-#     [ r31 r32 r33 t3 ]
-#     [   0   0   0  1 ]
-# ],
-
-# Returns an above-mentioned hash.
-
-sub symop_apply_modulo1
-{
-    my($atom, $symop, $symop_id) = @_;
-
-    my $new_atom = copy_atom( $atom );
-
-    my $atom_xyz = $atom->{coordinates_fract};
-
-    my @new_atom_xyz =
-        map { modulo_1($_) }
-            @{ symop_vector_mul( $symop, $atom_xyz ) };
-
-    $new_atom->{coordinates_fract} = \@new_atom_xyz;
-    $new_atom->{coordinates_ortho} =
-        symop_vector_mul( $atom->{f2o}, \@new_atom_xyz );
-
-    return symop_register_applied_symop( $new_atom, $symop, $symop_id );
-}
-
-sub symop_register_applied_symop
-{
-    my($new_atom_info, $symop, $symop_id) = @_;
-
-    $new_atom_info->{symop} = $symop;
-    $new_atom_info->{symop_id} = $symop_id;
-    $new_atom_info->{unity_matrix_applied} = symop_is_unity($symop);
-
-    my $atom_xyz = $new_atom_info->{coordinates_fract};
-    my @translation = (
-        int($atom_xyz->[0] - modulo_1($atom_xyz->[0])),
-        int($atom_xyz->[1] - modulo_1($atom_xyz->[1])),
-        int($atom_xyz->[2] - modulo_1($atom_xyz->[2])),
-    );
-    $new_atom_info->{translation} =
-        \@translation;
-    $new_atom_info->{translation_id} =
-        (5+$translation[0]) . (5+$translation[1]) . (5+$translation[2]);
-
-    if( $new_atom_info->{unity_matrix_applied} &&
-        $new_atom_info->{translation_id} eq "555" ) {
-        $new_atom_info->{name} = $new_atom_info->{site_label};
-    } else {
-        $new_atom_info->{name} =
-            $new_atom_info->{site_label} . "_" .
-            $new_atom_info->{symop_id} . "_" .
-            $new_atom_info->{translation_id};
-    }
-
-    if( $new_atom_info->{"unity_matrix_applied"} ) {
-        $new_atom_info->{"cell_label"} = $new_atom_info->{"site_label"};
-    } else {
-        $new_atom_info->{"cell_label"} =
-            $new_atom_info->{"site_label"} . "_" .
-            $new_atom_info->{"symop_id"};
-    }
-
-    do {
-        use COD::Serialise qw( serialiseRef );
-        serialiseRef( { atom => $new_atom_info, symop => $symop } );
-    } if 0;
-
-    return $new_atom_info;
-}
-
-#===============================================================#
 # Generate symmetry equivalents of an atom, exclude duplicates
 # on special positions
 
@@ -764,7 +542,8 @@ sub symops_apply_to_atom_modulo1($$)
     my ( $atom, $sym_operators ) = @_;
 
     my( $sym_atoms, $multiplicity, $multiplicity_ratio ) =
-        symops_apply_modulo1( $atom, $sym_operators, $atom->{f2o} );
+        symops_apply_modulo1( $atom, $sym_operators,
+                              { append_symop_to_label => 1 } );
 
     if( $multiplicity_ratio == 1 ) {
         return @$sym_atoms;
@@ -1716,7 +1495,8 @@ sub print_molecule
             foreach my $symop ( @{$atom->{"site_symops"}} ) {
                 print_value( $atom->{name} );
                 print " ";
-                print_value( string_from_symop( $symop ) );
+                print_value( symop_string_canonical_form(
+                                string_from_symop( $symop ) ) );
                 print "\n";
             }
         }
@@ -1744,52 +1524,3 @@ sub print_molecule
 
     return;
 }
-
-#===============================================================#
-# Renames CIF data tags so that they are not confused with the
-# original ones.
-
-# Accepts a dataset hash produced by COD::CIF::Parser, a list of tags to be
-# renamed, and a prefix to be appended
-
-# Returns a hash with renamed data tags
-
-sub rename_tags($$$)
-{
-    my ($dataset, $tags2rename, $prefix ) = @_;
-
-    my $values = $dataset->{values};
-    my %renamed_tags = ();
-
-    for my $tag (@$tags2rename) {
-        if( exists $values->{$tag} &&
-            !defined $dataset->{inloop}{$tag} ) {
-            my $new_tag = $prefix . $tag;
-            my $value = $values->{$tag}[0];
-            set_tag( $dataset, $new_tag, $value );
-            $renamed_tags{$new_tag} = $tag;
-        }
-    }
-    return wantarray ? %renamed_tags : \%renamed_tags;
-}
-
-#===============================================================#
-# Trim a polymer -- remove atoms outside of the specified polymer
-# span:
-
-sub trim_polymer
-{
-    my ($atoms, $max_polymer_span) = @_;
-
-    my @trimmed_atoms;
-
-    for my $atom (@$atoms) {
-        if( abs($atom->{translation}[0]) <= $max_polymer_span &&
-            abs($atom->{translation}[1]) <= $max_polymer_span &&
-            abs($atom->{translation}[2]) <= $max_polymer_span ) {
-            push( @trimmed_atoms, $atom );
-        }
-    }
-
-    return \@trimmed_atoms;
-}
diff --git a/scripts/cif_parse b/scripts/cif_parse
index 7cd3c6e..6234757 100755
--- a/scripts/cif_parse
+++ b/scripts/cif_parse
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_parse $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_parse $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file.
diff --git a/scripts/cif_parse_old_star b/scripts/cif_parse_old_star
index 7e11f4d..b9204c2 100755
--- a/scripts/cif_parse_old_star
+++ b/scripts/cif_parse_old_star
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_parse_old_star $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_parse_old_star $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file using the STAR::Parser.
diff --git a/scripts/cif_printout b/scripts/cif_printout
index fcad04e..f5726bd 100755
--- a/scripts/cif_printout
+++ b/scripts/cif_printout
@@ -4,10 +4,10 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_printout $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Id: cif_printout 5379 2017-05-30 12:20:10Z andrius $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_printout $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Id: cif_printout 5376 2017-05-30 11:51:03Z andrius $
 #------------------------------------------------------------------------------
 #*
 #* Parse CIF file and print out the structure generated by CIF parser.
diff --git a/scripts/cif_printout_Python b/scripts/cif_printout_Python
index 0f08068..d2898b8 100755
--- a/scripts/cif_printout_Python
+++ b/scripts/cif_printout_Python
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 #$Author: antanas $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_printout_Python $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_printout_Python $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Id: cif_printout_Python 5322 2017-05-24 17:10:55Z antanas $
 #------------------------------------------------------------------------------
diff --git a/scripts/cif_reduce_Niggli b/scripts/cif_reduce_Niggli
index 7422b8b..b739f56 100755
--- a/scripts/cif_reduce_Niggli
+++ b/scripts/cif_reduce_Niggli
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_reduce_Niggli $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_reduce_Niggli $
 #------------------------------------------------------------------------------
 #*
 #* Performs Niggli cell reduction of CIF files.
diff --git a/scripts/cif_reduce_cell b/scripts/cif_reduce_cell
index 53bc584..6300e4c 100755
--- a/scripts/cif_reduce_cell
+++ b/scripts/cif_reduce_cell
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_reduce_cell $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_reduce_cell $
 #------------------------------------------------------------------------------
 #*
 #* Performs reductions of the unit cell using different algorithms.
diff --git a/scripts/cif_reformat_AMCSD_author_names b/scripts/cif_reformat_AMCSD_author_names
index 55faab2..2396ffd 100755
--- a/scripts/cif_reformat_AMCSD_author_names
+++ b/scripts/cif_reformat_AMCSD_author_names
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_reformat_AMCSD_author_names $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_reformat_AMCSD_author_names $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file, reformat author names in AMCSD convention into COD format.
diff --git a/scripts/cif_reformat_pubmed_author_names b/scripts/cif_reformat_pubmed_author_names
index 337a0fb..e241abd 100755
--- a/scripts/cif_reformat_pubmed_author_names
+++ b/scripts/cif_reformat_pubmed_author_names
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_reformat_pubmed_author_names $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_reformat_pubmed_author_names $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file, reformat author names in PubMed convention into COD format.
diff --git a/scripts/cif_reformat_uppercase_author_names b/scripts/cif_reformat_uppercase_author_names
index ecefca3..dad778d 100755
--- a/scripts/cif_reformat_uppercase_author_names
+++ b/scripts/cif_reformat_uppercase_author_names
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_reformat_uppercase_author_names $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_reformat_uppercase_author_names $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF file, reformat author names in AMCSD convention into COD format.
diff --git a/scripts/cif_select b/scripts/cif_select
index 03a44d6..642dbf4 100755
--- a/scripts/cif_select
+++ b/scripts/cif_select
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_select $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_select $
 #------------------------------------------------------------------------------
 #*
 #* Read CIFs and print out selected tags with their values.
diff --git a/scripts/cif_set_value b/scripts/cif_set_value
index 311309e..db734db 100755
--- a/scripts/cif_set_value
+++ b/scripts/cif_set_value
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_set_value $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_set_value $
 #------------------------------------------------------------------------------
 #*
 #* Set specified CIF data items to the given values.
@@ -33,7 +33,7 @@ my $die_on_error_level = {
 
 my $use_parser = 'c';
 
-my $Id = '$Id: cif_set_value 5379 2017-05-30 12:20:10Z andrius $';
+my $Id = '$Id: cif_set_value 5376 2017-05-30 11:51:03Z andrius $';
 
 my $tag = "_atom_site_occupancy";
 my $value = 1.0;
diff --git a/scripts/cif_sort_atoms b/scripts/cif_sort_atoms
new file mode 100755
index 0000000..2824e97
--- /dev/null
+++ b/scripts/cif_sort_atoms
@@ -0,0 +1,176 @@
+#! /bin/sh
+#!perl -w # --*- Perl -*--
+eval 'exec perl -x $0 ${1+"$@"}'
+    if 0;
+#------------------------------------------------------------------------------
+#$Author: andrius $
+#$Date: 2017-10-26 09:52:53 +0300 (Thu, 26 Oct 2017) $
+#$Revision: 5665 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_sort_atoms $
+#------------------------------------------------------------------------------
+#*
+#* Sort atoms in a CIF file in given order.
+#*
+#* USAGE:
+#*    $0 --options input1.cif input*.cif
+#**
+
+use strict;
+use warnings;
+use File::Basename qw( basename );
+use COD::AtomProperties;
+use COD::CIF::Data::AtomList qw( extract_atom );
+use COD::CIF::Parser qw( parse_cif );
+use COD::CIF::Tags::CanonicalNames qw( canonicalize_all_names );
+use COD::CIF::Tags::Print qw( print_cif );
+use COD::ErrorHandler qw( process_errors process_warnings
+                          process_parser_messages report_message );
+use COD::SOptions qw( getOptions get_value );
+use COD::SUsage qw( usage options );
+use COD::ToolsVersion;
+
+my $order = \&get_lexicographic_order;
+my $direction = 1;
+
+my $use_parser = 'c';
+
+my $die_on_errors   = 0;
+my $die_on_warnings = 0;
+my $die_on_notes    = 0;
+my $die_on_error_level = {
+    ERROR   => $die_on_errors,
+    WARNING => $die_on_warnings,
+    NOTE    => $die_on_notes
+};
+
+#* OPTIONS:
+#*   -l, --lexicographic
+#*                     Sort by lexicographic order (default).
+#*   -Z, --atomic-number
+#*                     Sort by atomic number.
+#*
+#*   -r, --reverse
+#*                     Reverse the ordering.
+#*
+#*   --use-perl-parser
+#*                     Use Perl parser for CIF parsing.
+#*   --use-c-parser
+#*                     Use Perl & C parser for CIF parsing (default).
+#*
+#*   --help, --usage
+#*                     Output a short usage message (this message) and exit.
+#*   --version
+#*                     Output version information and exit.
+#**
+
+ at ARGV = getOptions(
+    '-l,--lexicographic' => sub { $order = \&get_lexicographic_order },
+    '-Z,--atomic-number' => sub { $order = \&get_atomic_order },
+
+    '-r,--reverse' => sub { $direction = -1 },
+
+    '--use-perl-parser' => sub{ $use_parser = 'perl' },
+    '--use-c-parser'    => sub{ $use_parser = 'c' },
+
+    '--options'      => sub { options; exit },
+    '--help,--usage' => sub { usage; exit },
+    '--version'         => sub { print 'cod-tools version ',
+                                 $COD::ToolsVersion::Version, "\n";
+                                 exit }
+);
+
+ at ARGV = ( '-' ) unless @ARGV;
+
+binmode STDOUT, ':encoding(UTF-8)';
+binmode STDERR, ':encoding(UTF-8)';
+
+for my $filename (@ARGV) {
+    my $options = { parser     => $use_parser,
+                    no_print   => 1 };
+
+    my( $data, $err_count, $messages ) = parse_cif( $filename, $options );
+    process_parser_messages( $messages, $die_on_error_level );
+
+    if( !@{$data} || !defined $data->[0] || !defined $data->[0]{name} ) {
+        report_message( {
+           'program'   => $0,
+           'filename'  => $filename,
+           'err_level' => 'WARNING',
+           'message'   => 'file seems to be empty'
+        }, 0 );
+        next;
+    }
+
+    canonicalize_all_names( $data );
+
+    for my $dataset (@$data) {
+        my $values = $dataset->{values};
+        my $dataname = 'data_' . $dataset->{name};
+
+        local $SIG{__WARN__} = sub {
+            process_warnings( {
+                'message'  => @_,
+                'program'  => $0,
+                'filename' => $filename,
+                'add_pos'  => $dataname
+            }, $die_on_error_level )
+        };
+
+        eval {
+            my @order = $order->( $values, $direction );
+            my $atom_loop = $dataset->{inloop}{_atom_site_label};
+            if( defined $atom_loop ) {
+                for my $tag (@{$dataset->{loops}[$atom_loop]}) {
+                    for my $key (qw( precisions types values )) {
+                        $dataset->{$key}{$tag} =
+                            [ @{$dataset->{$key}{$tag}}[@order] ];
+                    }
+                }
+            }
+
+            print_cif( $dataset,
+                       {
+                            preserve_loop_order => 1,
+                            keep_tag_order => 1
+                       } );
+        };
+        if ( $@ ) {
+            process_errors( {
+              'message'       => $@,
+              'program'       => $0,
+              'filename'      => $filename,
+              'add_pos'       => $dataname
+            }, $die_on_errors )
+        }
+    }
+}
+
+sub get_lexicographic_order
+{
+    my( $dataset, $direction ) = @_;
+    $direction = 1 unless defined $direction;
+
+    return sort { $direction *
+                  ($dataset->{_atom_site_label}[$a] cmp
+                   $dataset->{_atom_site_label}[$b]) }
+                0..$#{$dataset->{_atom_site_label}};
+}
+
+sub get_atomic_order
+{
+    my( $dataset, $direction ) = @_;
+    $direction = 1 unless defined $direction;
+
+    my $unity = [ [ 1, 0, 0, 0 ],
+                  [ 0, 1, 0, 0 ],
+                  [ 0, 0, 1, 0 ],
+                  [ 0, 0, 0, 1 ] ]; # fake f2o matrix
+    my @types = map { $_->{chemical_type} }
+                map { extract_atom( $dataset->{_atom_site_label}[$_],
+                                    $dataset, $_, $unity ) }
+                    0..$#{$dataset->{_atom_site_label}};
+    return sort { $direction *
+                  ($COD::AtomProperties::atoms{$types[$a]}{atomic_number} <=>
+                   $COD::AtomProperties::atoms{$types[$b]}{atomic_number}) }
+                0..$#{$dataset->{_atom_site_label}};
+}
diff --git a/scripts/cif_split b/scripts/cif_split
index 411ceb9..7da1efa 100755
--- a/scripts/cif_split
+++ b/scripts/cif_split
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #-----------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-05 19:09:10 +0300 (Mon, 05 Jun 2017) $ 
-#$Revision: 5418 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_split $
+#$Date: 2017-08-17 12:16:07 +0300 (Thu, 17 Aug 2017) $ 
+#$Revision: 5501 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_split $
 #------------------------------------------------------------------------
 #*
 #* Split CIF files into separate files with one data_ section each.
@@ -41,6 +41,7 @@ my $verbose = 1;
 my $output_dir = "";
 my $output_prefixed = 0;
 my $output_tar = 0;
+my $split_global = 1;
 my $cif_header_file;
 
 my $use_parser = "c";
@@ -62,6 +63,15 @@ my $output_format = 'cif';
 #*                     Prepend each of the output files with the comments
 #*                     from the beginning of the specified file.
 #*
+#*   --split-global-data-block
+#*                     Put the 'data_global' data block (if any) to each
+#*                     split file. Default option.
+#*   --do-not-split-global-data-block,
+#*   --dont-split-global-data-block,
+#*   --no-split-global-data-block
+#*                     Do not treat 'data_global' data block (if any) as
+#*                     special.
+#*
 #*   -v, --verbose
 #*                     Print names of the generated files to STDERR.
 #*   -q, --quiet
@@ -103,6 +113,11 @@ my $output_format = 'cif';
    "-v,--verbose"    => sub { $verbose = 1 },
    "-q,--quiet"      => sub { $verbose = 0 },
 
+    '--split-global-data-block'        => sub { $split_global = 1 },
+    '--do-not-split-global-data-block' => sub { $split_global = 0 },
+    '--dont-split-global-data-block'   => sub { $split_global = 0 },
+    '--no-split-global-data-block'     => sub { $split_global = 0 },
+
    "--use-perl-parser" => sub { $use_parser = "perl" },
    "--use-c-parser"    => sub { $use_parser = "c" },
 
@@ -187,7 +202,7 @@ for my $filename (@ARGV) {
                                        'add_pos'  => $dataname
                                      }, $die_on_error_level ) };
 
-        if( $dataset->{name} eq 'global' ) {
+        if( $split_global && $dataset->{name} eq 'global' ) {
             if( !$data_global ) {
                 $data_global = $dataset;
             } else {
diff --git a/scripts/cif_split_primitive b/scripts/cif_split_primitive
index b619eb4..e1f58e6 100755
--- a/scripts/cif_split_primitive
+++ b/scripts/cif_split_primitive
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_split_primitive $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_split_primitive $
 #------------------------------------------------------------------------
 #*
 #* Split CIF files into separate files with one data_ section each.
diff --git a/scripts/cif_symop_apply b/scripts/cif_symop_apply
index 2a9f51d..8f451af 100755
--- a/scripts/cif_symop_apply
+++ b/scripts/cif_symop_apply
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_symop_apply $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_symop_apply $
 #------------------------------------------------------------------------------
 #*
 #* Apply symmetry operator(s) to all atoms in a CIF.
diff --git a/scripts/cif_tags_in_list b/scripts/cif_tags_in_list
index 9f9bee9..20df663 100755
--- a/scripts/cif_tags_in_list
+++ b/scripts/cif_tags_in_list
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_tags_in_list $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_tags_in_list $
 #------------------------------------------------------------------------------
 #*
 #* Parse a CIF dictionary file and generate a list of tags
diff --git a/scripts/cif_tcod_tree b/scripts/cif_tcod_tree
index d2a7e91..a1229bf 100755
--- a/scripts/cif_tcod_tree
+++ b/scripts/cif_tcod_tree
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_tcod_tree $
+#$Date: 2017-10-05 14:28:27 +0300 (Thu, 05 Oct 2017) $ 
+#$Revision: 5572 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_tcod_tree $
 #------------------------------------------------------------------------------
 #*
 #* Prepares a calculation tree from descriptions in TCOD CIF file.
@@ -43,10 +43,15 @@ my $output_dir = '.';
 my $dry_run = 0;
 my $list = 0;
 
+my $extract_outputs = 1;
+
 #* OPTIONS:
 #*   -o, --output-dir out/
 #*                     Base path of the created tree.
 #*
+#*   --no-outputs
+#*                     Do not extract files of role 'output'.
+#*
 #*   --dry-run
 #*                     Do not create any folders and files, just extract
 #*                     the files and compare their checksums.
@@ -68,6 +73,8 @@ my $list = 0;
 @ARGV = getOptions(
     "-o,--output-dir" => \$output_dir,
 
+    "--no-outputs" => sub{ $extract_outputs = 0 },
+
     "--dry-run" => sub{ $dry_run = 1 },
 
     "-l,--list" => sub{ $list = 1 },
@@ -194,6 +201,10 @@ for my $filename (@ARGV) {
                     }
                 }
 
+				if( !$extract_outputs && $role && $role eq 'output' ) {
+					next;
+				}
+
                 if( !$dry_run ) {
                     open my $out, '>', "$output_dir/$path" or die 'ERROR, '
                         . 'could not open file ' . "'$output_dir/$path'"
@@ -209,29 +220,37 @@ for my $filename (@ARGV) {
                 print "$output_dir/$path\n" if $list;
             }
 
-            print "$output_dir/main.sh\n" if $list;
+            local $\ = "\n";
+            print "$output_dir/main.sh" if $list;
             if( !$dry_run ) {
                 my $main_exec_path = "$output_dir/main.sh";
                 open( my $main_fh, '>', $main_exec_path ) or die 'ERROR, '
                     . "could not open file '$main_exec_path' -- "
-                    . lcfirst($!) . "\n";
-                print $main_fh "#!/bin/bash\n\n";
+                    . lcfirst($!);
+                print $main_fh "#!/bin/bash\n";
+
+                if( exists $values->{_audit_creation_method} &&
+                    $values->{_audit_creation_method}[0] =~ /^aiida/i &&
+                    exists $created_dirs{aiida} ) {
+                    print $main_fh 'verdi import aiida';
+                }
 
                 for my $i (0..$#{$values->{_tcod_computation_step}}) {
                     my $env = $values->{_tcod_computation_environment}[$i];
                     my $command = $values->{_tcod_computation_command}[$i];
-                    print $main_fh "(\n";
+                    print $main_fh '(';
                     if( $env ) {
                         foreach ( split m/\n/, $env ) {
-                            print $main_fh "    $_\n";
+                            print $main_fh '    ' . $_;
                         };
-                        print $main_fh "\n";
+                        print $main_fh '';
                     }
-                    print $main_fh "    $command\n)\n";
+                    print $main_fh '    ' . $command;
+                    print $main_fh ')';
                 }
                 close $main_fh or die 'ERROR, '
                     . "could not close file '$main_exec_path' -- "
-                    . lcfirst($!) . "\n";;
+                    . lcfirst($!);
                 chmod( 0775, $main_exec_path );
             }
         }};
diff --git a/scripts/cif_validate b/scripts/cif_validate
index 276e1ca..6be57d2 100755
--- a/scripts/cif_validate
+++ b/scripts/cif_validate
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_validate $
+#$Author: antanas $
+#$Date: 2017-06-14 16:26:27 +0300 (Wed, 14 Jun 2017) $
+#$Revision: 5443 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_validate $
 #------------------------------------------------------------------------------
 #*
 #* Parse CIF file(s) and CIF dictionary(ies).
@@ -21,7 +21,7 @@ use warnings;
 use File::Basename qw( basename );
 use Scalar::Util qw( looks_like_number );
 use List::MoreUtils qw( uniq );
-use COD::CIF::Parser qw( parse_cif) ;
+use COD::CIF::Parser qw( parse_cif ) ;
 use COD::CIF::Tags::CanonicalNames qw( canonicalize_all_names );
 use COD::SOptions qw( getOptions get_value );
 use COD::SUsage qw( usage options );
@@ -45,9 +45,9 @@ my $die_on_notes    = 0;
 
 sub severity_name($);
 sub get_dict($);
-sub check_against_range($$$$);
-sub check_against_range_numb($$$);
-sub check_against_range_char($$);
+sub is_in_range($$);
+sub is_in_range_numeric($$);
+sub is_in_range_char($$);
 sub get_list_reference_tags($$);
 sub get_replacement_tags($$);
 sub check_list_link_parent($$$);
@@ -79,7 +79,7 @@ sub check_list_link_parent($$$);
 #*                     to denote locally used data items prior to the creation
 #*                     of cif_cod.dic. The default is to ignore these data items.
 #*   --no-report-local-tags, --ignore-local-tags
-#*                     Ignore data items having tags prefixed with '_[local]'.
+#*                     Ignore data items having tags prefixed with '_[local]'
 #*                     prefix. Default.
 #*   --ignore-case
 #*                     Ignore letter case while validating enumeration values.
@@ -87,7 +87,7 @@ sub check_list_link_parent($$$);
 #*                     restricted to values ('Uani', 'Uiso', 'Uovl', ...),
 #*                     value 'UANI' would still be treated as valid.
 #*   --respect-case, --case-sensitive, --dont-ignore-case
-#*                     Respect letter case while validating enumeration 
+#*                     Respect letter case while validating enumeration
 #*                     values. Default.
 #*   --report-deprecated
 #*                     Report data items that are marked as deprecated in the
@@ -189,14 +189,15 @@ if( @dict_files ) {
         my ( $data, $err_count, $messages ) = parse_cif( $dict, $options );
         process_parser_messages( $messages, $die_on_error_level );
 
+        local $SIG{__WARN__} = sub { process_warnings( {
+                                       'message'       => @_,
+                                       'program'       => $0,
+                                       'filename'      => $dict,
+                                     }, $die_on_error_level ) };
+
         $dict_tags{$dict} = get_dict( $data );
         if ( scalar( keys( %{$dict_tags{$dict}} ) ) == 0 ) {
-            report_message( {
-                'program'       => $0,
-                'filename'      => $dict,
-                'err_level'     => 'WARNING',
-                'message'       => 'no data item definitions found'
-            }, $die_on_warnings );
+            warn "no data item definitions found\n";
         }
         $tag_count += scalar( keys( %{$dict_tags{$dict}} ) );
     }
@@ -288,7 +289,7 @@ CIFFILEANAL: for my $filename ( @ARGV ) {
                 my $repl_tags = get_replacement_tags($dict_d, $lc_tag_analysed);
                 if( $report_deprecated && @{$repl_tags} != 0 ) {
                     warn "NOTE, data items '$tag_analysed' has been replaced by "
-                        . 'data item(-s) [' . join(', ', 
+                        . 'data item(-s) [' . join(', ',
                                              map {"'$_'"} @{$repl_tags}) . '] '
                         . "according to '$dict_f'" . "\n";
                 }
@@ -500,9 +501,12 @@ CIFFILEANAL: for my $filename ( @ARGV ) {
                         if( $dict_tag_values->{_type}[0] eq 'numb' ) {
                             $value_wo_su =~ s/\s*\(.*$//;
                         }
-                        if( check_against_range(
-                                $dict_tag_values->{_type}[0],
-                                $range, $value_wo_su, $sigma) <= 0 ) {
+                        if( is_in_range( $value_wo_su,
+                                { 'type'  => $dict_tag_values->{'_type'}[0],
+                                  'min'   => $range->{'min'},
+                                  'max'   => $range->{'max'},
+                                  'sigma' => $sigma
+                                } ) <= 0 ) {
                                 push @tag_value_notes,
                                      "data item '$tag_analysed' value " .
                                      "\"$value\" should be in range [" .
@@ -526,7 +530,8 @@ CIFFILEANAL: for my $filename ( @ARGV ) {
 
             if( !$defined ) {
                 push @tag_value_notes,
-                      "data item '$tag_analysed' was not found in dictionaries";
+                      "data item '$tag_analysed' was not found in the " .
+                      'provided dictionaries';
             }
         }
 
@@ -588,6 +593,11 @@ sub get_dict($)
     my $tags = {};
     my $datan = 0;
     while( $datan < @{$dict_f} ) {
+        if( exists $dict_f->[$datan]{values}{'_dictionary.ddl_conformance'} &&
+            $dict_f->[$datan]{values}{'_dictionary.ddl_conformance'}[0] =~ /^3\./ ) {
+            warn "dictionary is DDLm-compliant and can not be handled " .
+                 "in this version\n";
+        }
         if( exists $dict_f->[$datan]{save_blocks} ) {
             for my $saveblk ( @{$dict_f->[$datan]{save_blocks}} ) {
                 ## print ">>>> processing save block '$saveblk->{name}'\n";
@@ -643,66 +653,80 @@ sub get_replacement_tags($$)
 
 ##
 # Check value against range (defined in dictionary).
-# @param $type
-#       String, representing the type of value ('numb' or 'char').
-# @param $range
-#       Reference to range hash as $$range{min} and $$range{max}.
 # @param $value
-#       Value that must be checked.
-# @param $sigma
-#       Standard deviation to be used when comparing numbers.
+#       Value to be checked.
+# @param $param
+#       Parameter hash with the following keys:
+#         {
+#           'type'  => 'numb',
+#                String, representing the type of value ('numb' or 'char').
+#           'min'   => 0,
+#                The minimum range value.
+#           'max'   => 10,
+#                The maximum range value.
+#           'sigma  => 0.1
+#               Standard deviation to be used when comparing numeric values
+#               (3 sigma rule). If sigma is not provided, values are compared
+#               disregarding the standard deviation.
+#         }
 # @return
 #       -1 if no ranges were provided for the value;
 #        0 if the value is out of the provided range;
 #        1 if the value is in the provided range.
 ##
-sub check_against_range($$$$)
+sub is_in_range($$)
 {
-    my ($type, $range, $value, $sigma) = @_;
+    my ( $value, $param ) = @_;
 
-    if( !exists $range->{min} &&
-        !exists $range->{max} ) {
+    if( !exists $param->{'min'} &&
+        !exists $param->{'max'} ) {
         return -1;
     }
-    if( $type eq 'numb' ) {
-        return check_against_range_numb( $range, $value, $sigma );
+
+    if( $param->{'type'} eq 'numb' ) {
+        return is_in_range_numeric( $value, $param );
     } else {
-        return check_against_range_char( $range, $value );
+        return is_in_range_char( $value, $param );
     }
 }
 
 ##
-# Checks number value against range (defined in dictionary).
-# @param $range
-#       Reference to range hash as $$range{min} and $$range{max}.
+# Checks numeric value against an inclusive numeric range.
 # @param $value
-#       Value, that must be checked.
-# @param $sigma
-#       Standard deviation to be used when comparing numeric values
-#       (3 sigma rule). If sigma is set to 'undef', values are compared 
-#       disregarding standard deviation.
+#       Value to be checked.
+# @param $param
+#       Parameter hash with the following keys:
+#         {
+#           'min' - => 0,
+#                The minimum range value.
+#           'max'   => 10,
+#                The maximum range value.
+#           'sigma  => 0.1
+#               Standard deviation to be used when comparing numeric values
+#               (3 sigma rule). If sigma is not provided, values are compared
+#               disregarding the standard deviation.
+#         }
 # @return
 #        0 if the value is out of the provided range or is not a number
 #          at all;
 #        1 if the value is in the provided range.
 ##
-sub check_against_range_numb($$$)
+sub is_in_range_numeric($$)
 {
-    my ( $range, $value, $sigma ) = @_;
+    my ( $value, $param ) = @_;
+
+    my $min   = $param->{'min'};
+    my $max   = $param->{'max'};
+    my $sigma = $param->{'sigma'};
 
     if( ! looks_like_number($value) ) {
         return 0;
     }
 
-    my ($min,$max);
-
     if( defined $sigma ) {
-        $min = $range->{min} - 3 * $sigma if exists $range->{min};
-        $max = $range->{max} + 3 * $sigma if exists $range->{max};
-    } else {
-        $min = $range->{min} if exists $range->{min};
-        $max = $range->{max} if exists $range->{max};
-    }
+        $min = $min - 3 * $sigma if defined $min;
+        $max = $max + 3 * $sigma if defined $max;
+    };
 
     if(
         ( !defined $max || $value <= $max )
@@ -715,23 +739,29 @@ sub check_against_range_numb($$$)
 }
 
 ##
-# Check character value against range (defined in dictionary).
-# @param $range
-#       Reference to range hash as $$range{min} and $$range{max}.
+# Checks character value against an inclusive character range.
 # @param $value
-#       Value, that must be checked.
+#       Value to be checked.
+# @param $param
+#       Parameter hash with the following keys:
+#         {
+#           'min' - => a,
+#                The minimum range value.
+#           'max'   => c,
+#                The maximum range value.
+#         }
 # @return
-#       0 if the value is out of the provided range;
-#       1 if the value is in the provided range.
+#        0 if the value is out of the provided range;
+#        1 if the value is in the provided range.
 ##
-sub check_against_range_char($$)
+sub is_in_range_char($$)
 {
-    my ( $range, $value ) = @_;
+    my ( $value, $param ) = @_;
 
     if(
-        ( !exists $range->{max} || $value le $range->{max} )
+        ( !exists $param->{max} || $value le $param->{max} )
         &&
-        ( !exists $range->{min} || $value ge $range->{min} )
+        ( !exists $param->{min} || $value ge $param->{min} )
     ) {
         return 1;
     }
diff --git a/scripts/cif_values b/scripts/cif_values
index ffccc37..eecd45c 100755
--- a/scripts/cif_values
+++ b/scripts/cif_values
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cif_values $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cif_values $
 #------------------------------------------------------------------------------
 #*
 #* Read CIFs and print out requested tag values in a tabular form.
diff --git a/scripts/cod-tools-version.in b/scripts/cod-tools-version.in
index 4b3169e..f9aa168 100644
--- a/scripts/cod-tools-version.in
+++ b/scripts/cod-tools-version.in
@@ -1,9 +1,9 @@
 #! /bin/bash
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-31 14:24:36 +0300 (Wed, 31 May 2017) $ 
-#$Revision: 5388 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cod-tools-version.in $
+#$Author: antanas $
+#$Date: 2017-05-31 11:29:16 +0300 (Wed, 31 May 2017) $ 
+#$Revision: 5385 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cod-tools-version.in $
 #------------------------------------------------------------------------------
 #*
 #* Print the version of cod-tools package.
diff --git a/scripts/cod2rdf b/scripts/cod2rdf
index 3a1f8fe..e534104 100755
--- a/scripts/cod2rdf
+++ b/scripts/cod2rdf
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $ 
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cod2rdf $
+#$Date: 2017-05-30 14:58:12 +0300 (Tue, 30 May 2017) $ 
+#$Revision: 5377 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cod2rdf $
 #------------------------------------------------------------------------------
 #*
 #* Describe (in RDF format) properties of COD structures.
diff --git a/scripts/cod_fetch b/scripts/cod_fetch
index d4f5e86..90e51b4 100755
--- a/scripts/cod_fetch
+++ b/scripts/cod_fetch
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cod_fetch $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cod_fetch $
 #------------------------------------------------------------------------------
 #*
 #* Query COD server using the Perl DBD::mysql interface.
diff --git a/scripts/cod_predeposition_check b/scripts/cod_predeposition_check
index ddf8b73..86cbf39 100755
--- a/scripts/cod_predeposition_check
+++ b/scripts/cod_predeposition_check
@@ -3,10 +3,10 @@
 eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/cod_predeposition_check $
+#$Author: antanas $
+#$Date: 2017-07-20 13:13:16 +0300 (Thu, 20 Jul 2017) $
+#$Revision: 5477 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/cod_predeposition_check $
 #------------------------------------------------------------------------------
 #*
 #* Filter and check pairs of CIF and Fobs files for suitability for
@@ -241,6 +241,9 @@ for my $i (0.. at cif-1) {
                               $options );
     };
     if( $@ ) {
+        if ( $@ =~ /[^.]\n$/ ) {
+            $@ =~ s/\n$/.\n/
+        };
         print {*STDERR} $@;
     } else {
         if ( defined $cif ) { print map { "CIF $_\n" } split m/\n/, $cif };
diff --git a/scripts/codcif2sdf b/scripts/codcif2sdf
index 6b0c73d..5e6b9fd 100755
--- a/scripts/codcif2sdf
+++ b/scripts/codcif2sdf
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/codcif2sdf $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/codcif2sdf $
 #------------------------------------------------------------------------------
 #*
 #* A script to convert CIFs with crystal description (similar to those
diff --git a/scripts/fetch_cif_dict b/scripts/fetch_cif_dict
index cf7c7fb..c06097a 100755
--- a/scripts/fetch_cif_dict
+++ b/scripts/fetch_cif_dict
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/fetch_cif_dict $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/fetch_cif_dict $
 #$Id: fetch_cif_dict 5322 2017-05-24 17:10:55Z antanas $
 #------------------------------------------------------------------------------
 #*
diff --git a/scripts/find_numbers b/scripts/find_numbers
index 8a4bd99..fbf45cd 100755
--- a/scripts/find_numbers
+++ b/scripts/find_numbers
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/find_numbers $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/find_numbers $
 #------------------------------------------------------------------------------
 #*
 #* Find COD numbers for the .cif files in given directories of file lists.
diff --git a/scripts/formula_sum b/scripts/formula_sum
index f69f6db..4201ca8 100755
--- a/scripts/formula_sum
+++ b/scripts/formula_sum
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/formula_sum $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/formula_sum $
 #------------------------------------------------------------------------------
 #*
 #* Parse and print the chemical formula sum as described in the CIF
diff --git a/scripts/json2cif b/scripts/json2cif
index eb52083..4edcdd9 100755
--- a/scripts/json2cif
+++ b/scripts/json2cif
@@ -4,10 +4,10 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Revision: 5379 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/json2cif $
-#$Date: 2017-05-30 15:20:10 +0300 (Tue, 30 May 2017) $
-#$Id: json2cif 5379 2017-05-30 12:20:10Z andrius $
+#$Revision: 5376 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/json2cif $
+#$Date: 2017-05-30 14:51:03 +0300 (Tue, 30 May 2017) $
+#$Id: json2cif 5376 2017-05-30 11:51:03Z andrius $
 #------------------------------------------------------------------------------
 #*
 #* Parse JSON CIF and print out CIF.
diff --git a/scripts/molcif2sdf b/scripts/molcif2sdf
index 86eb544..4ca5808 100755
--- a/scripts/molcif2sdf
+++ b/scripts/molcif2sdf
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/molcif2sdf $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/molcif2sdf $
 #------------------------------------------------------------------------------
 #*
 #* A script to convert CIFs with multiple molecules (similar to those
diff --git a/scripts/msg_parse b/scripts/msg_parse
index e2184c7..7514b44 100755
--- a/scripts/msg_parse
+++ b/scripts/msg_parse
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: antanas $
-#$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/msg_parse $
-#$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
+#$Revision: 5467 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/msg_parse $
+#$Date: 2017-07-18 18:16:38 +0300 (Tue, 18 Jul 2017) $
 #$Id: cif_diff 3294 2015-04-22 10:12:45Z andrius $
 #------------------------------------------------------------------------------
 #*
@@ -27,10 +27,10 @@ my $ignore_comments = 0;
 my @dsv_print_order = ( qw(
                             program
                             filename
-                            line
-                            column
-                            datablock
-                            errlevel
+                            line_no
+                            column_no
+                            add_pos
+                            err_level
                             message
                         ) );
 my $print_options = {
diff --git a/scripts/oqmd2cif b/scripts/oqmd2cif
index d3c91ec..4eb6f43 100755
--- a/scripts/oqmd2cif
+++ b/scripts/oqmd2cif
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/oqmd2cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/oqmd2cif $
 #------------------------------------------------------------------------------
 #*
 #* Retrieve structures from the Open Quantum Materials Database and
diff --git a/scripts/sdf_add_cod_data b/scripts/sdf_add_cod_data
index 8c520b9..ff156c2 100755
--- a/scripts/sdf_add_cod_data
+++ b/scripts/sdf_add_cod_data
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/sdf_add_cod_data $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/sdf_add_cod_data $
 #------------------------------------------------------------------------------
 #*
 #* Append COD-specific meta-information to an SDF file in a format
diff --git a/scripts/ssg3d b/scripts/ssg3d
index 0228b6a..aef2e40 100755
--- a/scripts/ssg3d
+++ b/scripts/ssg3d
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/ssg3d $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/ssg3d $
 #------------------------------------------------------------------------------
 #*
 #* Build a three-dimensional space group from (N+1) dimensional
diff --git a/scripts/ssg_symop_canonical b/scripts/ssg_symop_canonical
index e8a622b..a825b7b 100755
--- a/scripts/ssg_symop_canonical
+++ b/scripts/ssg_symop_canonical
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/ssg_symop_canonical $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/ssg_symop_canonical $
 #------------------------------------------------------------------------------
 #*
 #* Canonicalise superspace group symmetry operator strings.
diff --git a/scripts/ssg_symop_check b/scripts/ssg_symop_check
index 75b983e..08a557d 100755
--- a/scripts/ssg_symop_check
+++ b/scripts/ssg_symop_check
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/ssg_symop_check $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/ssg_symop_check $
 #------------------------------------------------------------------------------
 #*
 #* Check superspace group symmetry operator syntax.
diff --git a/scripts/ssg_symop_matrices b/scripts/ssg_symop_matrices
index 2044b3c..5868dfe 100755
--- a/scripts/ssg_symop_matrices
+++ b/scripts/ssg_symop_matrices
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/ssg_symop_matrices $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/ssg_symop_matrices $
 #------------------------------------------------------------------------------
 #*
 #* Parse superspace group symmetry operators as described in the CIF
diff --git a/scripts/ssg_symop_string b/scripts/ssg_symop_string
index 20b90da..41a06ca 100755
--- a/scripts/ssg_symop_string
+++ b/scripts/ssg_symop_string
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/ssg_symop_string $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/ssg_symop_string $
 #------------------------------------------------------------------------------
 #*
 #* Determine superspace group symmetry operators from symmetry matrices.
diff --git a/scripts/symop_build_spacegroup b/scripts/symop_build_spacegroup
index d2e84b0..846fc4b 100755
--- a/scripts/symop_build_spacegroup
+++ b/scripts/symop_build_spacegroup
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/symop_build_spacegroup $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/symop_build_spacegroup $
 #------------------------------------------------------------------------------
 #*
 #* Determine a space group from a list of symmetry operators
diff --git a/scripts/utf8-to-cif b/scripts/utf8-to-cif
index 4866041..5d6f37f 100755
--- a/scripts/utf8-to-cif
+++ b/scripts/utf8-to-cif
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-24 20:10:55 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5322 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/scripts/utf8-to-cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/scripts/utf8-to-cif $
 #------------------------------------------------------------------------------
 #*
 #* Convert Unicode characters into CIF escape sequences.
diff --git a/src/components/codcif/Makefile b/src/components/codcif/Makefile
index 4352dd1..c5e64c2 100644
--- a/src/components/codcif/Makefile
+++ b/src/components/codcif/Makefile
@@ -2,7 +2,7 @@
 #$Author: saulius $
 #$Revision: 5246 $
 #$Date: 2017-05-10 20:30:16 +0300 (Wed, 10 May 2017) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/Makefile $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/Makefile $
 #------------------------------------------------------------------------------
 
 MAKECONF_FILES = ${filter-out %~, ${wildcard Makeconf*}}
diff --git a/src/components/codcif/cif.c b/src/components/codcif/cif.c
index 88be5f3..f48038f 100644
--- a/src/components/codcif/cif.c
+++ b/src/components/codcif/cif.c
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif.c $
 \*---------------------------------------------------------------------------*/
 
 /* representation of the CIF data for the CIF parser. */
diff --git a/src/components/codcif/cif.h b/src/components/codcif/cif.h
index cc71745..f540963 100644
--- a/src/components/codcif/cif.h
+++ b/src/components/codcif/cif.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF_H
diff --git a/src/components/codcif/cif2_grammar.y b/src/components/codcif/cif2_grammar.y
index fba2183..67a493b 100644
--- a/src/components/codcif/cif2_grammar.y
+++ b/src/components/codcif/cif2_grammar.y
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif2_grammar.y $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif2_grammar.y $
 \*-------------------------------------------------------------------------*/
 
 %{
diff --git a/src/components/codcif/cif2_grammar_y.h b/src/components/codcif/cif2_grammar_y.h
index bdba022..e1c7461 100644
--- a/src/components/codcif/cif2_grammar_y.h
+++ b/src/components/codcif/cif2_grammar_y.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif2_grammar_y.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif2_grammar_y.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF2_GRAMMAR_Y_H
diff --git a/src/components/codcif/cif2_lexer.c b/src/components/codcif/cif2_lexer.c
index 2e71ddf..db4b473 100644
--- a/src/components/codcif/cif2_lexer.c
+++ b/src/components/codcif/cif2_lexer.c
@@ -1,8 +1,8 @@
 /*---------------------------------------------------------------------------*\
 **$Author: andrius $
-**$Date: 2017-06-05 13:29:42 +0300 (Mon, 05 Jun 2017) $
-**$Revision: 5411 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif2_lexer.c $
+**$Date: 2017-06-02 11:20:51 +0300 (Fri, 02 Jun 2017) $
+**$Revision: 5405 $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif2_lexer.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/components/codcif/cif2_lexer.h b/src/components/codcif/cif2_lexer.h
index 5ca62fb..d22a44e 100644
--- a/src/components/codcif/cif2_lexer.h
+++ b/src/components/codcif/cif2_lexer.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif2_lexer.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif2_lexer.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF2_LEXER_H
diff --git a/src/components/codcif/cif_compiler.c b/src/components/codcif/cif_compiler.c
index 16b6b58..9edb0dc 100644
--- a/src/components/codcif/cif_compiler.c
+++ b/src/components/codcif/cif_compiler.c
@@ -1,8 +1,8 @@
 /*-------------------------------------------------------------------------*\
 * $Author: andrius $
-* $Date: 2017-04-26 14:50:59 +0300 (Wed, 26 Apr 2017) $ 
-* $Revision: 5220 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_compiler.c $
+* $Date: 2017-09-19 19:22:03 +0300 (Tue, 19 Sep 2017) $ 
+* $Revision: 5517 $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_compiler.c $
 \*-------------------------------------------------------------------------*/
 
 /* exports: */
@@ -507,7 +507,8 @@ CIF *new_cif_from_cif_file( char *filename, cif_option_t co, cexception_t *ex )
     }
 
     int ch = getc( in );
-    if( ch == 254 ) { /* U+FEFF detected */
+    if( ch == 239 ) { /* U+FEFF detected */
+        ch = getc( in );
         ch = getc( in );
         ch = getc( in );
     }
diff --git a/src/components/codcif/cif_compiler.h b/src/components/codcif/cif_compiler.h
index 6163635..5394b86 100644
--- a/src/components/codcif/cif_compiler.h
+++ b/src/components/codcif/cif_compiler.h
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_compiler.h $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_compiler.h $
 \*-------------------------------------------------------------------------*/
 
 #ifndef __CIF_COMPILER_H
diff --git a/src/components/codcif/cif_grammar.y b/src/components/codcif/cif_grammar.y
index dba37ff..6a5232c 100644
--- a/src/components/codcif/cif_grammar.y
+++ b/src/components/codcif/cif_grammar.y
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_grammar.y $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_grammar.y $
 \*-------------------------------------------------------------------------*/
 
 %{
diff --git a/src/components/codcif/cif_grammar_flex.c b/src/components/codcif/cif_grammar_flex.c
index 1bbec86..a9cd6f2 100644
--- a/src/components/codcif/cif_grammar_flex.c
+++ b/src/components/codcif/cif_grammar_flex.c
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2016-05-06 11:48:58 +0300 (Fri, 06 May 2016) $ 
 **$Revision: 4647 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_grammar_flex.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_grammar_flex.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/components/codcif/cif_grammar_flex.h b/src/components/codcif/cif_grammar_flex.h
index 7880fcd..8d7701c 100644
--- a/src/components/codcif/cif_grammar_flex.h
+++ b/src/components/codcif/cif_grammar_flex.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2016-05-06 11:48:58 +0300 (Fri, 06 May 2016) $ 
 **$Revision: 4647 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_grammar_flex.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_grammar_flex.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF_GRAMMAR_FLEX_H
diff --git a/src/components/codcif/cif_grammar_y.h b/src/components/codcif/cif_grammar_y.h
index cccd744..c94e966 100644
--- a/src/components/codcif/cif_grammar_y.h
+++ b/src/components/codcif/cif_grammar_y.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_grammar_y.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_grammar_y.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF_GRAMMAR_Y_H
diff --git a/src/components/codcif/cif_lexer.c b/src/components/codcif/cif_lexer.c
index fbaecff..21f8244 100644
--- a/src/components/codcif/cif_lexer.c
+++ b/src/components/codcif/cif_lexer.c
@@ -1,8 +1,8 @@
 /*---------------------------------------------------------------------------*\
 **$Author: andrius $
-**$Date: 2017-05-25 14:32:54 +0300 (Thu, 25 May 2017) $
-**$Revision: 5331 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_lexer.c $
+**$Date: 2017-08-04 15:35:04 +0300 (Fri, 04 Aug 2017) $
+**$Revision: 5490 $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_lexer.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
@@ -156,11 +156,17 @@ static int cif_lexer( FILE *in, cexception_t *ex )
                 putchar( ch );
             }
             /* skip comments: */
+            pos = current_pos;
             while( ch != EOF && ch != '\n' && ch != '\r' ) {
                 ch = getlinec( in, ex );
+                pos ++;
                 if( yy_flex_debug ) {
                     putchar( ch );
                 }
+                if( (ch < 32 && ch != 9 && ch != 10 && ch != 13) || ch >= 127 ) {
+                    yywarning_token( cif_cc, "unallowed symbol in CIF comment",
+                                     cif_flex_current_line_number(), pos, ex );
+                }
             }
             if( ch == '\r' ) {
                 /* check and process the DOS newlines: */
diff --git a/src/components/codcif/cif_lexer.h b/src/components/codcif/cif_lexer.h
index 6cfde08..688d695 100644
--- a/src/components/codcif/cif_lexer.h
+++ b/src/components/codcif/cif_lexer.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_lexer.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_lexer.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF_LEXER_H
diff --git a/src/components/codcif/cif_options.c b/src/components/codcif/cif_options.c
index 27d0b59..c0c73d7 100644
--- a/src/components/codcif/cif_options.c
+++ b/src/components/codcif/cif_options.c
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_options.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_options.c $
 \*---------------------------------------------------------------------------*/
 
 /* Implements managements and declarations of CIF options, that can be
diff --git a/src/components/codcif/cif_options.h b/src/components/codcif/cif_options.h
index 96ab1b5..707dbd5 100644
--- a/src/components/codcif/cif_options.h
+++ b/src/components/codcif/cif_options.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cif_options.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cif_options.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIF_OPTIONS_H
diff --git a/src/components/codcif/ciflist.c b/src/components/codcif/ciflist.c
index cfd3888..b0d4712 100644
--- a/src/components/codcif/ciflist.c
+++ b/src/components/codcif/ciflist.c
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/ciflist.c $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/ciflist.c $
 \*-------------------------------------------------------------------------*/
 
 #include <string.h>
diff --git a/src/components/codcif/ciflist.h b/src/components/codcif/ciflist.h
index 8f7e333..3fdcde2 100644
--- a/src/components/codcif/ciflist.h
+++ b/src/components/codcif/ciflist.h
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/ciflist.h $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/ciflist.h $
 \*-------------------------------------------------------------------------*/
 
 #ifndef __CIFLIST_H
diff --git a/src/components/codcif/cifmessage.c b/src/components/codcif/cifmessage.c
index e3ecb2b..c01202b 100644
--- a/src/components/codcif/cifmessage.c
+++ b/src/components/codcif/cifmessage.c
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2015-07-22 20:55:17 +0300 (Wed, 22 Jul 2015) $ 
 **$Revision: 3601 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cifmessage.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cifmessage.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/components/codcif/cifmessage.h b/src/components/codcif/cifmessage.h
index 41d3d08..90ff325 100644
--- a/src/components/codcif/cifmessage.h
+++ b/src/components/codcif/cifmessage.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2015-07-22 20:55:17 +0300 (Wed, 22 Jul 2015) $ 
 **$Revision: 3601 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cifmessage.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cifmessage.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CIFMESSAGE_H
diff --git a/src/components/codcif/ciftable.c b/src/components/codcif/ciftable.c
index d098f3b..3c47cf4 100644
--- a/src/components/codcif/ciftable.c
+++ b/src/components/codcif/ciftable.c
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/ciftable.c $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/ciftable.c $
 \*-------------------------------------------------------------------------*/
 
 #include <string.h>
diff --git a/src/components/codcif/ciftable.h b/src/components/codcif/ciftable.h
index 7e9c155..c144d06 100644
--- a/src/components/codcif/ciftable.h
+++ b/src/components/codcif/ciftable.h
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/ciftable.h $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/ciftable.h $
 \*-------------------------------------------------------------------------*/
 
 #ifndef __CIFTABLE_H
diff --git a/src/components/codcif/cifvalue.c b/src/components/codcif/cifvalue.c
index 5e5442a..134334e 100644
--- a/src/components/codcif/cifvalue.c
+++ b/src/components/codcif/cifvalue.c
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cifvalue.c $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cifvalue.c $
 \*-------------------------------------------------------------------------*/
 
 #include <cexceptions.h>
diff --git a/src/components/codcif/cifvalue.h b/src/components/codcif/cifvalue.h
index fed3e58..3dc44ae 100644
--- a/src/components/codcif/cifvalue.h
+++ b/src/components/codcif/cifvalue.h
@@ -2,7 +2,7 @@
 * $Author: andrius $
 * $Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 * $Revision: 5195 $
-* $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/cifvalue.h $
+* $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/cifvalue.h $
 \*-------------------------------------------------------------------------*/
 
 #ifndef __VALUE_H
diff --git a/src/components/codcif/common.c b/src/components/codcif/common.c
index e1c5f83..19c4035 100644
--- a/src/components/codcif/common.c
+++ b/src/components/codcif/common.c
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/common.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/common.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/components/codcif/common.h b/src/components/codcif/common.h
index fccb86b..54ad1a7 100644
--- a/src/components/codcif/common.h
+++ b/src/components/codcif/common.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/common.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/common.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __COMMON_H
diff --git a/src/components/codcif/datablock.c b/src/components/codcif/datablock.c
index 1685205..2098ddd 100644
--- a/src/components/codcif/datablock.c
+++ b/src/components/codcif/datablock.c
@@ -2,7 +2,7 @@
 **$Author: antanas $
 **$Date: 2017-05-18 16:06:28 +0300 (Thu, 18 May 2017) $ 
 **$Revision: 5275 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/datablock.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/datablock.c $
 \*---------------------------------------------------------------------------*/
 
 /* representation of the CIF data for the CIF parser. */
diff --git a/src/components/codcif/datablock.h b/src/components/codcif/datablock.h
index 3406d02..22ab141 100644
--- a/src/components/codcif/datablock.h
+++ b/src/components/codcif/datablock.h
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-04-12 13:39:05 +0300 (Wed, 12 Apr 2017) $ 
 **$Revision: 5195 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/datablock.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/datablock.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __DATABLOCK_H
diff --git a/src/components/codcif/inputs/1004001-disorder.cif b/src/components/codcif/inputs/1004001-disorder.cif
index aff2773..002fac9 100644
--- a/src/components/codcif/inputs/1004001-disorder.cif
+++ b/src/components/codcif/inputs/1004001-disorder.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/1004001-disorder.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/1004001-disorder.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/1508696-long-text-field.cif b/src/components/codcif/inputs/1508696-long-text-field.cif
index 70023d4..1688fe6 100644
--- a/src/components/codcif/inputs/1508696-long-text-field.cif
+++ b/src/components/codcif/inputs/1508696-long-text-field.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-03-04 09:20:18 +0200 (Tue, 04 Mar 2014) $
 #$Revision: 2500 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/1508696-long-text-field.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/1508696-long-text-field.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/2000000.cif b/src/components/codcif/inputs/2000000.cif
index 21c763a..6d56230 100644
--- a/src/components/codcif/inputs/2000000.cif
+++ b/src/components/codcif/inputs/2000000.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-03-28 13:13:36 +0300 (Wed, 28 Mar 2012) $
 #$Revision: 2010 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/2000000.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/2000000.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/4067640.cif b/src/components/codcif/inputs/4067640.cif
index ca00824..98a9c55 100644
--- a/src/components/codcif/inputs/4067640.cif
+++ b/src/components/codcif/inputs/4067640.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-03-28 13:13:36 +0300 (Wed, 28 Mar 2012) $
 #$Revision: 2010 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/4067640.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/4067640.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/4318422.cif b/src/components/codcif/inputs/4318422.cif
index 89fe232..db63add 100644
--- a/src/components/codcif/inputs/4318422.cif
+++ b/src/components/codcif/inputs/4318422.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-03-20 18:39:59 +0200 (Thu, 20 Mar 2014) $
 #$Revision: 2570 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/4318422.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/4318422.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/4319975.cif b/src/components/codcif/inputs/4319975.cif
index 26a668f..e379911 100644
--- a/src/components/codcif/inputs/4319975.cif
+++ b/src/components/codcif/inputs/4319975.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-03-28 13:13:36 +0300 (Wed, 28 Mar 2012) $
 #$Revision: 2010 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/4319975.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/4319975.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/7052868.cif b/src/components/codcif/inputs/7052868.cif
index 4095ebc..1b2cc73 100644
--- a/src/components/codcif/inputs/7052868.cif
+++ b/src/components/codcif/inputs/7052868.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-03-28 13:13:36 +0300 (Wed, 28 Mar 2012) $
 #$Revision: 2010 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/7052868.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/7052868.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/inputs/9007991.cif b/src/components/codcif/inputs/9007991.cif
index 00b1334..5a1c938 100644
--- a/src/components/codcif/inputs/9007991.cif
+++ b/src/components/codcif/inputs/9007991.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-03-31 19:33:47 +0300 (Sun, 31 Mar 2013) $
 #$Revision: 2171 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/inputs/9007991.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/inputs/9007991.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/src/components/codcif/outputs/cifparse_019.out b/src/components/codcif/outputs/cifparse_019.out
index 0bcbde4..d99b8dc 100644
--- a/src/components/codcif/outputs/cifparse_019.out
+++ b/src/components/codcif/outputs/cifparse_019.out
@@ -1 +1,2 @@
+./cifparse: tests/cifparse_019.inp(2,19): WARNING, unallowed symbol in CIF comment
 ./cifparse: file 'tests/cifparse_019.inp' OK
diff --git a/src/components/codcif/outputs/cifparse_020.out b/src/components/codcif/outputs/cifparse_020.out
index 4233857..25cdb60 100644
--- a/src/components/codcif/outputs/cifparse_020.out
+++ b/src/components/codcif/outputs/cifparse_020.out
@@ -1,3 +1,4 @@
+./cifparse: tests/cifparse_020.inp(2,19): WARNING, unallowed symbol in CIF comment
 data_I
 _chemical_name_common            'CrOTi Falzone'
 _chemical_name_systematic        ?
diff --git a/src/components/codcif/outputs/cifparse_053.out b/src/components/codcif/outputs/cifparse_053.out
index 0bc6d10..3d16c2f 100644
--- a/src/components/codcif/outputs/cifparse_053.out
+++ b/src/components/codcif/outputs/cifparse_053.out
@@ -1,2 +1,3 @@
+./cifparse: tests/cifparse_053.inp(2,19): WARNING, unallowed symbol in CIF comment
 ./cifparse: tests/cifparse_053.inp(38) data_I: ERROR, tag _database_code_depnum_ccdc_archive appears more than once
 ./cifparse: file 'tests/cifparse_053.inp' FAILED
diff --git a/src/components/codcif/programs/cif_list_tags.c b/src/components/codcif/programs/cif_list_tags.c
index 8fbc22b..ca19402 100644
--- a/src/components/codcif/programs/cif_list_tags.c
+++ b/src/components/codcif/programs/cif_list_tags.c
@@ -1,8 +1,8 @@
 /*---------------------------------------------------------------------------*\
 **$Author: andrius $
-**$Date: 2017-05-15 13:37:39 +0300 (Mon, 15 May 2017) $ 
-**$Revision: 5254 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/programs/cif_list_tags.c $
+**$Date: 2017-09-28 10:45:08 +0300 (Thu, 28 Sep 2017) $ 
+**$Revision: 5552 $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/programs/cif_list_tags.c $
 \*---------------------------------------------------------------------------*/
 
 /* uses: */
@@ -18,7 +18,39 @@
 #include <cxprintf.h>
 #include <version.h>
 
-static char *source_URL = "$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/programs/cif_list_tags.c $";
+static char *source_URL = "$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/programs/cif_list_tags.c $";
+
+static char *usage_text[2] = {
+
+"Parse CIF file(s) and output a list of CIF data items.\n",
+
+"Options:\n"
+
+"  -c, --compile-only\n"
+"      Only compile the CIF (check syntax). Prints out file name and\n"
+"      'OK' or 'FAILED' to STDOUT, along with error messages to STDERR\n\n"
+
+"  -q, --quiet                 Be quiet, only output error messages and data\n"
+
+"  -q-, --no-quiet, --verbose  Produce verbose output of the parsing "
+"process\n\n"
+
+"  --version  Print program version (SVN Id) and exit\n"
+
+"  --help     Print short usage message (this message) and exit\n"
+};
+
+static void usage( int argc, char *argv[], int *i, option_t *option,
+		   cexception_t * ex )
+{
+    puts( usage_text[0] );
+    puts( "Usage:" );
+    printf( "   %s --options < input.cif\n", argv[0] );
+    printf( "   %s --options input.cif\n", argv[0] );
+    printf( "   %s --options input1.cif input2.cif inputs*.cif\n\n", argv[0] );
+    puts( usage_text[1] );
+    exit( 0 );
+};
 
 static void version( int argc, char *argv[], int *i, option_t *option,
                      cexception_t * ex )
@@ -38,6 +70,7 @@ static option_t options[] = {
   { "-q", "--quiet",        OT_BOOLEAN_FALSE, &verbose },
   { "-q-","--no-quiet",     OT_BOOLEAN_TRUE,  &verbose },
   { NULL, "--vebose",       OT_BOOLEAN_TRUE,  &verbose },
+  { NULL, "--help",         OT_FUNCTION, NULL, &usage },
   { NULL, "--version",      OT_FUNCTION, NULL, &version },
   { NULL }
 };
diff --git a/src/components/codcif/programs/cifparse.c b/src/components/codcif/programs/cifparse.c
index 418dbe3..9f901c1 100644
--- a/src/components/codcif/programs/cifparse.c
+++ b/src/components/codcif/programs/cifparse.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2017-05-10 20:30:16 +0300 (Wed, 10 May 2017) $ 
 **$Revision: 5246 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/programs/cifparse.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/programs/cifparse.c $
 \*---------------------------------------------------------------------------*/
 
 /* uses: */
@@ -21,7 +21,7 @@
 #include <ctype.h>
 #include <version.h>
 
-static char *source_URL = "$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/programs/cifparse.c $";
+static char *source_URL = "$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/programs/cifparse.c $";
 
 static char *usage_text[2] = {
 
diff --git a/src/components/codcif/programs/cifvalues.c b/src/components/codcif/programs/cifvalues.c
index aa584e4..6c62f76 100644
--- a/src/components/codcif/programs/cifvalues.c
+++ b/src/components/codcif/programs/cifvalues.c
@@ -2,7 +2,7 @@
 **$Author: andrius $
 **$Date: 2017-05-15 13:36:11 +0300 (Mon, 15 May 2017) $ 
 **$Revision: 5253 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/programs/cifvalues.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/programs/cifvalues.c $
 \*---------------------------------------------------------------------------*/
 
 /* uses: */
@@ -19,7 +19,7 @@
 #include <cxprintf.h>
 #include <version.h>
 
-static char *source_URL = "$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/programs/cifvalues.c $";
+static char *source_URL = "$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/programs/cifvalues.c $";
 
 static char *usage_text[2] = {
 
diff --git a/src/components/codcif/tests/cifparse_107.inp b/src/components/codcif/tests/cifparse_107.inp
index 6826f02..bd71ba5 100644
--- a/src/components/codcif/tests/cifparse_107.inp
+++ b/src/components/codcif/tests/cifparse_107.inp
@@ -1,2 +1,2 @@
-��#\#CIF_2.0
+#\#CIF_2.0
 data_empty
diff --git a/src/components/codcif/tests/cifparse_108.inp b/src/components/codcif/tests/cifparse_108.inp
index 6826f02..bd71ba5 100644
--- a/src/components/codcif/tests/cifparse_108.inp
+++ b/src/components/codcif/tests/cifparse_108.inp
@@ -1,2 +1,2 @@
-��#\#CIF_2.0
+#\#CIF_2.0
 data_empty
diff --git a/src/components/codcif/version.hin b/src/components/codcif/version.hin
index 551a3d9..0feb333 100644
--- a/src/components/codcif/version.hin
+++ b/src/components/codcif/version.hin
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2017-05-10 20:19:38 +0300 (Wed, 10 May 2017) $ 
 **$Revision: 5244 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/version.hin $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/version.hin $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __VERSION_H
diff --git a/src/components/codcif/yy.c b/src/components/codcif/yy.c
index 7ad5563..4cc653f 100644
--- a/src/components/codcif/yy.c
+++ b/src/components/codcif/yy.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2012-01-21 15:27:56 +0200 (Sat, 21 Jan 2012) $ 
 **$Revision: 1898 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/codcif/yy.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/codcif/yy.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/components/pycodcif/tests/outputs/cif_parser_test_071.out b/src/components/pycodcif/tests/outputs/cif_parser_test_071.out
index e69de29..125c12a 100644
--- a/src/components/pycodcif/tests/outputs/cif_parser_test_071.out
+++ b/src/components/pycodcif/tests/outputs/cif_parser_test_071.out
@@ -0,0 +1,2 @@
+tests/scripts/cif_parser_test: tests/cases/cif_parser_test_071.inp(2,19): WARNING, unallowed symbol in CIF comment.
+tests/scripts/cif_parser_test: tests/cases/cif_parser_test_071.inp(3,31): WARNING, unallowed symbol in CIF comment.
diff --git a/src/components/pycodcif/tests/outputs/cif_parser_test_107.out b/src/components/pycodcif/tests/outputs/cif_parser_test_107.out
index acb0f47..3dd422b 100644
--- a/src/components/pycodcif/tests/outputs/cif_parser_test_107.out
+++ b/src/components/pycodcif/tests/outputs/cif_parser_test_107.out
@@ -1,3 +1,4 @@
+tests/scripts/cif_parser_test: tests/cases/cif_parser_test_107.inp(2,19): WARNING, unallowed symbol in CIF comment.
 tests/scripts/cif_parser_test: tests/cases/cif_parser_test_107.inp(12,35) data_(5): ERROR, incorrect CIF syntax:
  _computing_molecular_graphics     'ORTEPII (Johnson, 1976) 
                                    ^
diff --git a/src/components/pycodcif/tests/scripts/cif_parser_test b/src/components/pycodcif/tests/scripts/cif_parser_test
index 06c5853..d9d0d4c 100755
--- a/src/components/pycodcif/tests/scripts/cif_parser_test
+++ b/src/components/pycodcif/tests/scripts/cif_parser_test
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 #$Author: andrius $
 #$Revision: 4850 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/components/pycodcif/tests/scripts/cif_parser_test $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/components/pycodcif/tests/scripts/cif_parser_test $
 #$Date: 2017-01-31 10:15:38 +0200 (Tue, 31 Jan 2017) $
 #$Id: cif_parser_test 4850 2017-01-31 08:15:38Z andrius $
 #------------------------------------------------------------------------------
diff --git a/src/database-schemas/cif2cod.sql b/src/database-schemas/cif2cod.sql
index 6bfcb7d..377e539 100644
--- a/src/database-schemas/cif2cod.sql
+++ b/src/database-schemas/cif2cod.sql
@@ -2,7 +2,7 @@
 --$Author: saulius $
 --$Date: 2015-03-31 13:02:04 +0300 (Tue, 31 Mar 2015) $ 
 --$Revision: 3161 $
---$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/database-schemas/cif2cod.sql $
+--$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/database-schemas/cif2cod.sql $
 --------------------------------------------------------------------------------
 --*
 --  Table schema for the COD SQL table 'data'.
diff --git a/src/externals/cexceptions/Makefile b/src/externals/cexceptions/Makefile
index 4bbf2f6..b0e3b0c 100644
--- a/src/externals/cexceptions/Makefile
+++ b/src/externals/cexceptions/Makefile
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Revision: 4775 $
 #$Date: 2016-11-17 10:45:18 +0200 (Thu, 17 Nov 2016) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/Makefile $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/Makefile $
 #------------------------------------------------------------------------------
 
 MAKECONF_FILES = $(sort \
diff --git a/src/externals/cexceptions/allocx.c b/src/externals/cexceptions/allocx.c
index 60c9405..34abfa8 100644
--- a/src/externals/cexceptions/allocx.c
+++ b/src/externals/cexceptions/allocx.c
@@ -2,7 +2,7 @@
 ** $Author: antanas $
 ** $Date: 2015-11-03 18:13:49 +0200 (Tue, 03 Nov 2015) $ 
 ** $Revision: 4180 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/allocx.c $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/allocx.c $
 \*---------------------------------------------------------------------------*/
 
 /* memory allocation functions that use cexception handling */
diff --git a/src/externals/cexceptions/allocx.h b/src/externals/cexceptions/allocx.h
index 436fd9d..46066c9 100644
--- a/src/externals/cexceptions/allocx.h
+++ b/src/externals/cexceptions/allocx.h
@@ -2,7 +2,7 @@
 ** $Author: saulius $
 ** $Date: 2015-04-05 11:51:47 +0300 (Sun, 05 Apr 2015) $
 ** $Revision: 3207 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/allocx.h $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/allocx.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __ALLOCX_H
diff --git a/src/externals/cexceptions/cexceptions.c b/src/externals/cexceptions/cexceptions.c
index bb81557..203bd4f 100644
--- a/src/externals/cexceptions/cexceptions.c
+++ b/src/externals/cexceptions/cexceptions.c
@@ -2,7 +2,7 @@
 ** $Author: saulius $
 ** $Date: 2015-07-21 17:39:27 +0300 (Tue, 21 Jul 2015) $ 
 ** $Revision: 3587 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/cexceptions.c $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/cexceptions.c $
 \*---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/src/externals/cexceptions/cexceptions.h b/src/externals/cexceptions/cexceptions.h
index 4ce3dca..3c5f9df 100644
--- a/src/externals/cexceptions/cexceptions.h
+++ b/src/externals/cexceptions/cexceptions.h
@@ -2,7 +2,7 @@
 ** $Author: saulius $
 ** $Date: 2015-07-21 17:39:27 +0300 (Tue, 21 Jul 2015) $ 
 ** $Revision: 3587 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/cexceptions.h $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/cexceptions.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef _CEXCEPTIONS_H
diff --git a/src/externals/cexceptions/cxprintf.c b/src/externals/cexceptions/cxprintf.c
index d078af0..333379f 100644
--- a/src/externals/cexceptions/cxprintf.c
+++ b/src/externals/cexceptions/cxprintf.c
@@ -2,7 +2,7 @@
 ** $Author: saulius $
 ** $Date: 2011-03-08 20:45:40 +0200 (Tue, 08 Mar 2011) $ 
 ** $Revision: 1590 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/cxprintf.c $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/cxprintf.c $
 \*---------------------------------------------------------------------------*/
 
 /* composing error message for the exception handling subsystem */
diff --git a/src/externals/cexceptions/cxprintf.h b/src/externals/cexceptions/cxprintf.h
index cf83708..06c5d96 100644
--- a/src/externals/cexceptions/cxprintf.h
+++ b/src/externals/cexceptions/cxprintf.h
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2011-03-08 20:45:40 +0200 (Tue, 08 Mar 2011) $ 
 **$Revision: 1590 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/cxprintf.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/cxprintf.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __CEX_REPORT_H
diff --git a/src/externals/cexceptions/stdiox.c b/src/externals/cexceptions/stdiox.c
index 282a373..4b9906d 100644
--- a/src/externals/cexceptions/stdiox.c
+++ b/src/externals/cexceptions/stdiox.c
@@ -2,7 +2,7 @@
 ** $Author: saulius $
 ** $Date: 2015-07-21 17:39:27 +0300 (Tue, 21 Jul 2015) $
 ** $Revision: 3587 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/stdiox.c $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/stdiox.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/externals/cexceptions/stdiox.h b/src/externals/cexceptions/stdiox.h
index 082d020..2f87fb7 100644
--- a/src/externals/cexceptions/stdiox.h
+++ b/src/externals/cexceptions/stdiox.h
@@ -2,7 +2,7 @@
 ** $Author: saulius $
 ** $Date: 2011-03-08 20:45:40 +0200 (Tue, 08 Mar 2011) $ 
 ** $Revision: 1590 $
-** $URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/stdiox.h $
+** $URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/stdiox.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef _STDIOX_H
diff --git a/src/externals/cexceptions/stringx.c b/src/externals/cexceptions/stringx.c
index 9bf9ec8..218a885 100644
--- a/src/externals/cexceptions/stringx.c
+++ b/src/externals/cexceptions/stringx.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 12:26:36 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3216 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/stringx.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/stringx.c $
 \*---------------------------------------------------------------------------*/
 
 /* exports: */
diff --git a/src/externals/cexceptions/stringx.h b/src/externals/cexceptions/stringx.h
index 27c2c3e..fbf6265 100644
--- a/src/externals/cexceptions/stringx.h
+++ b/src/externals/cexceptions/stringx.h
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 12:26:36 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3216 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/stringx.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/stringx.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __STRINGX_H
diff --git a/src/externals/cexceptions/tests/programs/fopenx.c b/src/externals/cexceptions/tests/programs/fopenx.c
index 2a31fd8..b7514b7 100644
--- a/src/externals/cexceptions/tests/programs/fopenx.c
+++ b/src/externals/cexceptions/tests/programs/fopenx.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-07-21 17:39:27 +0300 (Tue, 21 Jul 2015) $ 
 **$Revision: 3587 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/tests/programs/fopenx.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/tests/programs/fopenx.c $
 \*---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/src/externals/cexceptions/tests/programs/tcreallocx.c b/src/externals/cexceptions/tests/programs/tcreallocx.c
index 6c80c93..849cc01 100644
--- a/src/externals/cexceptions/tests/programs/tcreallocx.c
+++ b/src/externals/cexceptions/tests/programs/tcreallocx.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 11:51:47 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3207 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/tests/programs/tcreallocx.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/tests/programs/tcreallocx.c $
 \*---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/src/externals/cexceptions/tests/programs/tstrdupx.c b/src/externals/cexceptions/tests/programs/tstrdupx.c
index b46f6c4..771b72a 100644
--- a/src/externals/cexceptions/tests/programs/tstrdupx.c
+++ b/src/externals/cexceptions/tests/programs/tstrdupx.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 11:51:47 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3207 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/cexceptions/tests/programs/tstrdupx.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/cexceptions/tests/programs/tstrdupx.c $
 \*---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/src/externals/getoptions/Makefile b/src/externals/getoptions/Makefile
index 8c90844..529fd49 100644
--- a/src/externals/getoptions/Makefile
+++ b/src/externals/getoptions/Makefile
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Revision: 4775 $
 #$Date: 2016-11-17 10:45:18 +0200 (Thu, 17 Nov 2016) $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/getoptions/Makefile $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/getoptions/Makefile $
 #------------------------------------------------------------------------------
 
 MAKECONF_FILES = $(sort \
diff --git a/src/externals/getoptions/getoptions.c b/src/externals/getoptions/getoptions.c
index 67a9fda..d004028 100644
--- a/src/externals/getoptions/getoptions.c
+++ b/src/externals/getoptions/getoptions.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 13:10:12 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3219 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/getoptions/getoptions.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/getoptions/getoptions.c $
 \*---------------------------------------------------------------------------*/
 
 #include <stdio.h> /* import sprintf() */
diff --git a/src/externals/getoptions/getoptions.h b/src/externals/getoptions/getoptions.h
index 43cf2e6..653c83c 100644
--- a/src/externals/getoptions/getoptions.h
+++ b/src/externals/getoptions/getoptions.h
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 13:10:12 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3219 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/getoptions/getoptions.h $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/getoptions/getoptions.h $
 \*---------------------------------------------------------------------------*/
 
 #ifndef __GETOPTIONS_H
diff --git a/src/externals/getoptions/tests/programs/topt.c b/src/externals/getoptions/tests/programs/topt.c
index a1ca1b7..e94dfc8 100644
--- a/src/externals/getoptions/tests/programs/topt.c
+++ b/src/externals/getoptions/tests/programs/topt.c
@@ -2,7 +2,7 @@
 **$Author: saulius $
 **$Date: 2015-04-05 13:10:12 +0300 (Sun, 05 Apr 2015) $ 
 **$Revision: 3219 $
-**$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/externals/getoptions/tests/programs/topt.c $
+**$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/externals/getoptions/tests/programs/topt.c $
 \*---------------------------------------------------------------------------*/
 
 #include <stdio.h>
diff --git a/src/lib/perl5/COD/Algebra.pm b/src/lib/perl5/COD/Algebra.pm
index c8dec25..c6356fd 100644
--- a/src/lib/perl5/COD/Algebra.pm
+++ b/src/lib/perl5/COD/Algebra.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-01-26 13:14:35 +0200 (Tue, 26 Jan 2016) $
 #$Revision: 4561 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Algebra.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Algebra.pm $
 #-----------------------------------------------------------------------
 #*
 #  Contains generic algebraic subroutines.
diff --git a/src/lib/perl5/COD/Algebra/JacobiEigen.pm b/src/lib/perl5/COD/Algebra/JacobiEigen.pm
index 500c018..b2b5d84 100644
--- a/src/lib/perl5/COD/Algebra/JacobiEigen.pm
+++ b/src/lib/perl5/COD/Algebra/JacobiEigen.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-16 16:04:37 +0200 (Mon, 16 Nov 2015) $
 #$Revision: 4287 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Algebra/JacobiEigen.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Algebra/JacobiEigen.pm $
 #-----------------------------------------------------------------------
 # Find all eigenvalues and eigenvectors of a symmetric matrix 'a' of order n.
 # using the Jacobi method. Implemented as described in 
diff --git a/src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm b/src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm
index 8c67644..e343317 100644
--- a/src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm
+++ b/src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Algebra/JacobiEigenSimple.pm $
 #-----------------------------------------------------------------------
 # Find all eigenvalues and eigenvectors of a symmetric matrix a of order n.
 #-----------------------------------------------------------------------
diff --git a/src/lib/perl5/COD/Algebra/Vector.pm b/src/lib/perl5/COD/Algebra/Vector.pm
index 4a77358..16a2d79 100644
--- a/src/lib/perl5/COD/Algebra/Vector.pm
+++ b/src/lib/perl5/COD/Algebra/Vector.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2015-12-16 11:58:14 +0200 (Wed, 16 Dec 2015) $
 #$Revision: 4456 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Algebra/Vector.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Algebra/Vector.pm $
 #-----------------------------------------------------------------------
 #*
 # Basic symmetry operator algebra (addition, multiplication, etc.).
diff --git a/src/lib/perl5/COD/AtomBricks.pm b/src/lib/perl5/COD/AtomBricks.pm
index ce580d1..5474290 100644
--- a/src/lib/perl5/COD/AtomBricks.pm
+++ b/src/lib/perl5/COD/AtomBricks.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-08 10:28:29 +0200 (Sun, 08 Nov 2015) $ 
 #$Revision: 4227 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/AtomBricks.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/AtomBricks.pm $
 #------------------------------------------------------------------------
 #* 
 #  Prepare 3-D "bricks" (i.e. atoms indexed into integer-numbered
diff --git a/src/lib/perl5/COD/AtomNeighbours.pm b/src/lib/perl5/COD/AtomNeighbours.pm
index 5dd1d59..5a08930 100644
--- a/src/lib/perl5/COD/AtomNeighbours.pm
+++ b/src/lib/perl5/COD/AtomNeighbours.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2015-12-11 10:30:45 +0200 (Fri, 11 Dec 2015) $ 
-#$Revision: 4431 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/AtomNeighbours.pm $
+#$Date: 2017-08-24 16:28:18 +0300 (Thu, 24 Aug 2017) $ 
+#$Revision: 5505 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/AtomNeighbours.pm $
 #------------------------------------------------------------------------------
 #*
 #  Build a list of neighbours for each atom from an atom list.
@@ -298,8 +298,13 @@ sub neighbour_list_from_chemistry_mol
         $atom_info{"atom_site_occupancy"}   = 1;
         $atom_info{"attached_hydrogens"}    = $atom->implicit_hydrogens();
 
+        # Aromatic atoms are considered planar only if they have three
+        # or more neighbours, as any three points lie on the same
+        # plane.
         if( defined $atom->attr('smiles/aromatic') &&
-            $atom->attr('smiles/aromatic') == 1 ) {
+            $atom->attr('smiles/aromatic') == 1 &&
+            (scalar $atom->neighbors() +
+             $atom_info{"attached_hydrogens"}) >= 3 ) {
             $atom_info{"planarity"} = 0;
         }
 
diff --git a/src/lib/perl5/COD/AuthorNames.pm b/src/lib/perl5/COD/AuthorNames.pm
index 1c18e21..17b6c47 100644
--- a/src/lib/perl5/COD/AuthorNames.pm
+++ b/src/lib/perl5/COD/AuthorNames.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-11-25 12:57:58 +0200 (Fri, 25 Nov 2016) $ 
 #$Revision: 4780 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/AuthorNames.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/AuthorNames.pm $
 #------------------------------------------------------------------------------
 #*
 #  Subroutines for parsing and regularisation of author names.
diff --git a/src/lib/perl5/COD/CIF/Data.pm b/src/lib/perl5/COD/CIF/Data.pm
index 5bd2953..b29308b 100644
--- a/src/lib/perl5/COD/CIF/Data.pm
+++ b/src/lib/perl5/COD/CIF/Data.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2017-03-29 15:09:09 +0300 (Wed, 29 Mar 2017) $ 
 #$Revision: 5161 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data.pm $
 #------------------------------------------------------------------------------
 #*
 #  Common subroutines for extracting data/creating data structures from
diff --git a/src/lib/perl5/COD/CIF/Data/AtomList.pm b/src/lib/perl5/COD/CIF/Data/AtomList.pm
index 0535252..12e11f0 100644
--- a/src/lib/perl5/COD/CIF/Data/AtomList.pm
+++ b/src/lib/perl5/COD/CIF/Data/AtomList.pm
@@ -1,8 +1,8 @@
  #------------------------------------------------------------------------------
-#$Author: antanas $
-#$Date: 2017-02-27 09:56:23 +0200 (Mon, 27 Feb 2017) $ 
-#$Revision: 4976 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/AtomList.pm $
+#$Author: andrius $
+#$Date: 2017-09-20 10:18:58 +0300 (Wed, 20 Sep 2017) $ 
+#$Revision: 5518 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/AtomList.pm $
 #------------------------------------------------------------------------------
 #*
 #  Construct a common data structure, representing list of atoms in
@@ -788,6 +788,7 @@ sub set_cod_molecule_atom_fields
         '_cod_molecule_atom_mult'       => 'multiplicity',
         '_cod_molecule_atom_mult_ratio' => 'multiplicity_ratio',
         '_cod_molecule_atom_symop_id'   => 'symop_id',
+        '_cod_molecule_atom_transl_id'  => 'translation_id',
     );
 
     for my $tag (keys %to_copy_cod_molecule) {
diff --git a/src/lib/perl5/COD/CIF/Data/CIF2COD.pm b/src/lib/perl5/COD/CIF/Data/CIF2COD.pm
index 60e38fa..39ba359 100644
--- a/src/lib/perl5/COD/CIF/Data/CIF2COD.pm
+++ b/src/lib/perl5/COD/CIF/Data/CIF2COD.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2017-04-03 13:52:15 +0300 (Mon, 03 Apr 2017) $
 #$Revision: 5173 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/CIF2COD.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/CIF2COD.pm $
 #------------------------------------------------------------------------------
 #*
 #  Parse a CIF file, prepare a COD database table entry from it.
diff --git a/src/lib/perl5/COD/CIF/Data/CODFlags.pm b/src/lib/perl5/COD/CIF/Data/CODFlags.pm
index 92c7187..d53876c 100644
--- a/src/lib/perl5/COD/CIF/Data/CODFlags.pm
+++ b/src/lib/perl5/COD/CIF/Data/CODFlags.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-06-28 11:36:41 +0300 (Tue, 28 Jun 2016) $
 #$Revision: 4676 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/CODFlags.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/CODFlags.pm $
 #-----------------------------------------------------------------------
 # Test dataset on various criteria.
 #-----------------------------------------------------------------------
diff --git a/src/lib/perl5/COD/CIF/Data/CODNumbers.pm b/src/lib/perl5/COD/CIF/Data/CODNumbers.pm
index 77fbbb9..e6720f5 100644
--- a/src/lib/perl5/COD/CIF/Data/CODNumbers.pm
+++ b/src/lib/perl5/COD/CIF/Data/CODNumbers.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2017-02-20 16:27:39 +0200 (Mon, 20 Feb 2017) $
 #$Revision: 4955 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/CODNumbers.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/CODNumbers.pm $
 #------------------------------------------------------------------------------
 #*
 #  Find COD numbers of duplicate structures.
diff --git a/src/lib/perl5/COD/CIF/Data/CODPredepositionCheck.pm b/src/lib/perl5/COD/CIF/Data/CODPredepositionCheck.pm
index ba4a5ac..8208274 100644
--- a/src/lib/perl5/COD/CIF/Data/CODPredepositionCheck.pm
+++ b/src/lib/perl5/COD/CIF/Data/CODPredepositionCheck.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
 #$Author: antanas $
-#$Date: 2017-02-21 16:34:56 +0200 (Tue, 21 Feb 2017) $
-#$Revision: 4966 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/CODPredepositionCheck.pm $
+#$Date: 2017-07-20 13:13:16 +0300 (Thu, 20 Jul 2017) $
+#$Revision: 5477 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/CODPredepositionCheck.pm $
 #------------------------------------------------------------------------------
 #*
 #  Filter and check pairs of CIF and Fobs files for suitability for
@@ -124,7 +124,7 @@ sub filter_and_check
             next if $message =~ /file seems to be empty/;
             for( $message ) {
                 if( /tag .+ is not recognised/ ) {
-                    $parsed->{errlevel} = 'NOTE';
+                    $parsed->{err_level} = 'NOTE';
                     last;
                 }
                 if( /the dataname apparently had spaces in it - replaced/ ||
@@ -133,19 +133,19 @@ sub filter_and_check
                     /string with spaces without quotes/ ||
                     /(single|double)-quoted string is missing a closing quote -- fixed/ ||
                     /no data block heading .* found/ ) {
-                    $parsed->{errlevel} = 'NOTE';
-                    $parsed->{line} = undef;
-                    $parsed->{column} = undef;
+                    $parsed->{err_level} = 'NOTE';
+                    $parsed->{line_no} = undef;
+                    $parsed->{column_no} = undef;
                     last;
                 }
                 if( /stray CIF values at the beginning of the input file/ ) {
-                    $parsed->{errlevel} = 'WARNING';
+                    $parsed->{err_level} = 'WARNING';
                     last;
                 }
                 if( /end of file encountered while in text field starting in line/ ) {
-                    $parsed->{errlevel} = 'ERROR';
-                    $parsed->{line} = undef;
-                    $parsed->{column} = undef;
+                    $parsed->{err_level} = 'ERROR';
+                    $parsed->{line_no} = undef;
+                    $parsed->{column_no} = undef;
                     last;
                 }
                 if( /STOP_ symbol detected in line/ ||
@@ -153,29 +153,29 @@ sub filter_and_check
                     /syntax error/ ||
                     /wrong number of elements in the loop block/ ||
                     /tag .* appears more than once$/ ) {
-                    $parsed->{errlevel} = 'ERROR';
+                    $parsed->{err_level} = 'ERROR';
                     last;
                 }
-                if( !defined $parsed->{errlevel} ) {
-                    $parsed->{errlevel} = 'NOTE';
+                if( !defined $parsed->{err_level} ) {
+                    $parsed->{err_level} = 'NOTE';
                 }
             }
             print_message( $0,
                            $cif_filename,
-                           $parsed->{datablock},
-                           $parsed->{errlevel},
+                           $parsed->{add_pos},
+                           $parsed->{err_level},
                            $parsed->{message},
                            $parsed->{explanation},
-                           $parsed->{line},
-                           $parsed->{column} );
+                           $parsed->{line_no},
+                           $parsed->{column_no} );
         } elsif( /^[^:]+cif_filter: (.*)/ ) { # Ad-hoc parse for some messages
             print {*STDERR} "$0: $1";
         }
     }
 
     if( @{$filter_stdout} == 0 ) {
-        die "$0: $cif_filename: ERROR, file became empty after "
-          . 'filtering with cif_filter';
+        die "$0: $cif_filename: ERROR, file became empty after " .
+            "filtering with cif_filter\n";
     }
 
     my( $fix_values_stdout, $fix_values_stderr ) =
@@ -188,12 +188,12 @@ sub filter_and_check
                        /value '[^']*' must be one of the enumeration values/ ) {
                 print_message( $0,
                                $cif_filename,
-                               $parsed->{datablock},
+                               $parsed->{add_pos},
                                'NOTE',
                                $parsed->{message},
                                $parsed->{explanation},
-                               $parsed->{line},
-                               $parsed->{column} );
+                               $parsed->{line_no},
+                               $parsed->{column_no} );
             }
         }
     }
@@ -206,17 +206,17 @@ sub filter_and_check
         if( defined $parsed ) {
             print_message( $0,
                            $cif_filename,
-                           $parsed->{datablock},
+                           $parsed->{add_pos},
                            'NOTE',
                            $parsed->{message},
                            $parsed->{explanation},
-                           $parsed->{line},
-                           $parsed->{column} );
+                           $parsed->{line_no},
+                           $parsed->{column_no} );
         }
     }
     if ( @{$correct_stderr} > 0 ) {
         die 'cif_correct_tags encountered ' . @{$correct_stderr}
-          . ' warning(s)' ;
+          . ' warning(s)' . "\n" ;
     }
 
     if( !$options->{bypass_checks} ) {
@@ -247,24 +247,24 @@ sub filter_and_check
                               /neither _journal_page_first nor _journal_article_reference is defined/ ) ) {
                             next CCCMESSAGE;
                         }
-                        if( !defined $parsed->{errlevel} ) {
-                            $parsed->{errlevel} = 'WARNING';
+                        if( !defined $parsed->{err_level} ) {
+                            $parsed->{err_level} = 'WARNING';
                         }
 
-                        $warnings++ if $parsed->{errlevel} ne 'NOTE';
+                        $warnings++ if $parsed->{err_level} ne 'NOTE';
                     }
                     print_message( $0,
                                    $cif_filename,
-                                   $parsed->{datablock},
-                                   $parsed->{errlevel},
+                                   $parsed->{add_pos},
+                                   $parsed->{err_level},
                                    $parsed->{message},
                                    $parsed->{explanation},
-                                   $parsed->{line},
-                                   $parsed->{column} );
+                                   $parsed->{line_no},
+                                   $parsed->{column_no} );
                 }
             }
             if ( $warnings ) {
-                die "$0: cif_cod_check encountered $warnings warning(s)"
+                die "$0: cif_cod_check encountered $warnings warning(s)\n"
             };
         }
     }
@@ -583,7 +583,7 @@ sub filter_and_check
                           $db_conf->{port},
                           $db_conf->{user},
                           $db_conf->{password} );
-    die 'connection to database failed' if !$dbh;
+    die "connection to database failed\n" if !$dbh;
 
     my $database_hold_until;
     if( $options->{replace} ) {
@@ -670,20 +670,20 @@ sub filter_and_check
         my $parsed = parse_message( $_ );
         if( defined $parsed ) {
             next if $parsed->{message} =~ /tag .+ is not recognised/;
-            $parsed->{errlevel} = 'NOTE' if !defined $parsed->{errlevel};
+            $parsed->{err_level} = 'NOTE' if !defined $parsed->{err_level};
             print_message( $0,
                            $cif_filename,
-                           $parsed->{datablock},
-                           $parsed->{errlevel},
+                           $parsed->{add_pos},
+                           $parsed->{err_level},
                            $parsed->{message},
                            $parsed->{explanation},
-                           $parsed->{line},
-                           $parsed->{column} );
+                           $parsed->{line_no},
+                           $parsed->{column_no} );
         }
     }
     if( @{$filter_stdout} == 0 ) {
         die "$0: $cif_filename: ERROR, file became empty after "
-          . 'filtering with cif_filter';
+          . "filtering with cif_filter\n";
     }
     if( $hkl && !$is_pdcif ) {
         my $hkl_parameters = extract_cif_values(
@@ -834,8 +834,8 @@ sub run_command($@)
         if( ref $input eq '' ) {
             $input = [ $input ];
         } elsif( ref $input ne 'ARRAY' ) {
-            die( 'run_command() input is not a ' .
-                 'scalar or an array reference' );
+            die 'run_command() input is not a ' .
+                "scalar or an array reference\n";
         }
     } else {
         $input = [];
@@ -866,16 +866,16 @@ sub run_command($@)
                                        undef, $timeout );
 
         if( ! @list ) {
-            die( 'execution of external script \''
-               . $command->[0] . '\' was timed out' );
+            die 'execution of external script ' .
+                "'$command->[0]' was timed out" . "\n";
         }
 
         if( @{ $list[1] } > 0 ) {
             my $written =
                 syswrite( $stdin, $input_text, $input_rest, $stdin_pos );
             if( !defined $written ) {
-                die( 'syswrite() failed for external script ' .
-                     "'$command->[0]': $!" );
+                die 'syswrite() failed for external script ' .
+                    "'$command->[0]': $!" . "\n";
             }
             $stdin_pos += $written;
             $input_rest -= $written;
@@ -927,7 +927,7 @@ sub db_connect
               ($db_port ? ";$db_port" : '');
     my $dbh = DBI->connect( $dsn, $db_user, $db_pass );
     if( !$dbh ) {
-        die( 'could not connect to the database - ' . lcfirst( $DBI::errstr ));
+        die 'could not connect to the database - ' . lcfirst( $DBI::errstr ) . "\n";
     }
     if( $db_platform ne 'SQLite' ) {
         $dbh->do( 'SET CHARACTER SET utf8' );
@@ -1034,9 +1034,9 @@ sub select_COD_number_range($$)
                 #                "defaulting to range '$range' " .
                 #                '(other journals)' );
             } else {
-                die( 'could not assign COD number range ' .
+                die 'could not assign COD number range ' .
                      "for journal '$journal' and deposition type " .
-                     "'$deposition_type'" );
+                     "'$deposition_type'\n";
             }
         }
     }
@@ -1108,18 +1108,18 @@ sub extract_cif_values
             next if $parsed->{message} =~ /compiler could not recover from errors/;
             print_message( $0,
                $filename,
-               $parsed->{datablock},
-               ($parsed->{errlevel} ? $parsed->{errlevel} : 'WARNING'),
+               $parsed->{add_pos},
+               ($parsed->{err_level} ? $parsed->{err_level} : 'WARNING'),
                $parsed->{message},
                $parsed->{explanation},
-               $parsed->{line},
-               $parsed->{column} );
+               $parsed->{line_no},
+               $parsed->{column_no} );
         } else {
             print {*STDERR} $_;
         }
     }
     if ( @{$values_stderr} > 0 ) {
-        die "$0: cifvalues encountered " . @{$values_stderr} . ' warning(s)';
+        die "$0: cifvalues encountered " . @{$values_stderr} . " warning(s)\n";
     }
 
     my $data = [];
@@ -1258,7 +1258,7 @@ sub can_bypass_checks
             use Digest::SHA qw/ sha1_hex /;
             $client_password = Digest::SHA::sha1_hex( $client_password );
         } else {
-            die "unknown hashing algorithm '$algorithm'";
+            die "unknown hashing algorithm '$algorithm'\n";
         }
     }
     if( defined $client_password && $client_password eq $host_password ) {
diff --git a/src/lib/perl5/COD/CIF/Data/CellContents.pm b/src/lib/perl5/COD/CIF/Data/CellContents.pm
index 3188fe7..828f52a 100644
--- a/src/lib/perl5/COD/CIF/Data/CellContents.pm
+++ b/src/lib/perl5/COD/CIF/Data/CellContents.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
-#$Author: antanas $
-#$Date: 2017-05-18 14:55:38 +0300 (Thu, 18 May 2017) $ 
-#$Revision: 5274 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/CellContents.pm $
+#$Author: andrius $
+#$Date: 2017-09-28 16:46:20 +0300 (Thu, 28 Sep 2017) $ 
+#$Revision: 5554 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/CellContents.pm $
 #------------------------------------------------------------------------------
 #*
 #  Calculate unit cell contents from the atomic coordinates and
@@ -16,7 +16,8 @@ use strict;
 use warnings;
 use COD::AtomProperties;
 use COD::Fractional qw( symop_ortho_from_fract ) ;
-use COD::Spacegroups::Symop::Parse qw( symop_from_string );
+use COD::Spacegroups::Symop::Parse qw( symop_from_string
+                                       symop_string_canonical_form );
 use COD::Formulae::Print qw( sprint_formula );
 use COD::CIF::Data qw( get_cell get_symmetry_operators );
 use COD::CIF::Data::AtomList qw( atom_array_from_cif );
@@ -51,11 +52,20 @@ sub cif_cell_contents( $$@ )
 #   extracts symmetry operators
     my $sym_data = get_symmetry_operators( $dataset );
 
+    # Create a list of symmetry operators:
+    my $symop_list = { symops => [ map { symop_from_string($_) } @$sym_data ],
+                       symop_ids => {} };
+    for (my $i = 0; $i < @{$sym_data}; $i++) {
+        $symop_list->{symop_ids}
+                     {symop_string_canonical_form($sym_data->[$i])} = $i;
+    }
+
 #   extract atoms
     my $atoms = atom_array_from_cif( $dataset,
                                      { allow_unknown_chemical_types => 1,
                                        atom_properties =>
-                                            \%COD::AtomProperties::atoms } );
+                                            \%COD::AtomProperties::atoms,
+                                       symop_list => $symop_list } );
 
 #   compute symmetry operator matrices
     my @sym_operators = map { symop_from_string($_) } @{$sym_data};
@@ -63,7 +73,8 @@ sub cif_cell_contents( $$@ )
     ## serialiseRef( \@sym_operators );
 
     my $sym_atoms =
-        symop_generate_atoms( \@sym_operators, $atoms, $ortho_matrix );
+        symop_generate_atoms( \@sym_operators, $atoms, $ortho_matrix,
+                              { disregard_symmetry_independent_sites => 1 } );
 
     ## serialiseRef( $sym_atoms );
 
diff --git a/src/lib/perl5/COD/CIF/Data/Classifier.pm b/src/lib/perl5/COD/CIF/Data/Classifier.pm
index 9086fe2..3c7d47b 100644
--- a/src/lib/perl5/COD/CIF/Data/Classifier.pm
+++ b/src/lib/perl5/COD/CIF/Data/Classifier.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
-#$Author: antanas $
-#$Date: 2016-05-09 12:10:18 +0300 (Mon, 09 May 2016) $ 
-#$Revision: 1434 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/Classifier.pm $
+#$Author: andrius $
+#$Date: 2017-09-28 16:59:34 +0300 (Thu, 28 Sep 2017) $ 
+#$Revision: 5556 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/Classifier.pm $
 #------------------------------------------------------------------------------
 #*
 #  Classify a CIF structure -- find out if it is organic compound,
@@ -14,10 +14,13 @@ package COD::CIF::Data::Classifier;
 use strict;
 use warnings;
 use COD::CIF::Data qw( get_cell get_symmetry_operators );
+use COD::CIF::Data::AtomList qw( atom_array_from_cif );
 use COD::CIF::Data::SymmetryGenerator qw( symop_generate_atoms );
 use COD::Fractional qw( symop_ortho_from_fract );
 use COD::Spacegroups::Symop::Algebra qw( symop_vector_mul );
-use COD::Spacegroups::Symop::Parse qw( symop_from_string modulo_1 );
+use COD::Spacegroups::Symop::Parse qw( symop_from_string
+                                       modulo_1
+                                       symop_string_canonical_form );
 use COD::Algebra::Vector qw( distance
                              matrix_vector_mul
                              vdot
@@ -67,17 +70,26 @@ sub cif_has_C_bonds( $$$$ )
         $atom_properties->{"C"}{covalent_radius} * 2 +
         $bond_safety_margin;
 
-    my $atoms = get_atoms( $datablock, "_atom_site_label" );
+    my $symops = get_symmetry_operators( $datablock );
+
+    my @symop_matrices = map { symop_from_string($_) } @{$symops};
+
+    # Create a list of symmetry operators:
+    my $symop_list = { symops => [ map { symop_from_string($_) } @$symops ],
+                       symop_ids => {} };
+    for (my $i = 0; $i < @{$symops}; $i++) {
+        $symop_list->{symop_ids}
+                     {symop_string_canonical_form($symops->[$i])} = $i;
+    }
+
+    my $atoms = atom_array_from_cif( $datablock,
+                                     { symop_list => $symop_list } );
 
     ## print $datablock->{name}, " ", int(@$atoms), "\n";
 
     ## use COD::Serialise qw( serialiseRef );
     ## serialiseRef( $atoms );
 
-    my $symops = get_symmetry_operators( $datablock );
-
-    my @symop_matrices = map { symop_from_string($_) } @{$symops};
-
     ## use COD::Serialise qw( serialiseRef );
     ## serialiseRef( $symops );
 
@@ -103,7 +115,7 @@ sub cif_has_C_bonds( $$$$ )
 
     for my $i (0..$#$atoms) {
         my $atom1 = $atoms->[$i];
-        next unless $atom1->{atom_type} eq "C";
+        next unless $atom1->{chemical_type} eq "C";
 
         # First, let's try bonds with untranslated symmetry equivalent
         # atoms, since they are the most probable -- asymmetric units
@@ -112,8 +124,8 @@ sub cif_has_C_bonds( $$$$ )
         for my $j ($i+1..$#$sym_atoms) {
             my $atom2 = $sym_atoms->[$j];
             next unless
-                $atom2->{atom_type} eq "H" || 
-                $atom2->{atom_type} eq "C";
+                $atom2->{chemical_type} eq "H" || 
+                $atom2->{chemical_type} eq "C";
             next if
                 $atom1->{assembly} eq $atom2->{assembly} &&
                 $atom1->{group} ne $atom2->{group} &&
@@ -132,7 +144,7 @@ sub cif_has_C_bonds( $$$$ )
             ## print ">>> $interatomic_distance, $distance\n"
             ##     if abs($interatomic_distance - $distance) > 1E-6;
 
-            if( $atom2->{atom_type} eq "H" &&
+            if( $atom2->{chemical_type} eq "H" &&
                 $interatomic_distance < $C_H_covalent_distance ) {
                 ## print ">>> found C-H bond $interatomic_distance " .
                 ##     "$atom1->{atom_name}-$atom2->{atom_name}\n";
@@ -142,7 +154,7 @@ sub cif_has_C_bonds( $$$$ )
                 $flags{$has_C_H_bond_flag} = 1;
                 return keys %flags if int(keys %flags) >= 2;
             }
-            if( $atom2->{atom_type} eq "C" &&
+            if( $atom2->{chemical_type} eq "C" &&
                 $interatomic_distance < $C_C_covalent_distance ) {
                 ## print ">>> found C-C bond $interatomic_distance \n";
                 ## use COD::Serialise qw( serialiseRef );
@@ -157,8 +169,8 @@ sub cif_has_C_bonds( $$$$ )
         for my $j (0..$#$sym_atoms) {
             my $atom2 = $sym_atoms->[$j];
             next unless
-                $atom2->{atom_type} eq "H" || 
-                $atom2->{atom_type} eq "C";
+                $atom2->{chemical_type} eq "H" || 
+                $atom2->{chemical_type} eq "C";
             next if
                 $atom1->{assembly} eq $atom2->{assembly} &&
                 $atom1->{group} ne $atom2->{group} &&
@@ -177,7 +189,7 @@ sub cif_has_C_bonds( $$$$ )
 
                 next if $distance < $too_close_distance;
 
-                if( $atom2->{atom_type} eq "H" &&
+                if( $atom2->{chemical_type} eq "H" &&
                     $distance < $C_H_covalent_distance ) {
                     ## use COD::Serialise qw( serialiseRef );
                     ## serialiseRef( [ $atom1, $atom2, $interatomic_distance,
@@ -185,7 +197,7 @@ sub cif_has_C_bonds( $$$$ )
                     $flags{$has_C_H_bond_flag} = 1;
                     return keys %flags if int(keys %flags) >= 2;
                 }
-                if( $atom2->{atom_type} eq "C" &&
+                if( $atom2->{chemical_type} eq "C" &&
                     $distance < $C_C_covalent_distance ) {
                     ## use COD::Serialise qw( serialiseRef );
                     ## serialiseRef( [ $atom1, $atom2, $interatomic_distance,
@@ -200,113 +212,6 @@ sub cif_has_C_bonds( $$$$ )
     return keys %flags;
 }
 
-# ============================================================================ #
-# Gets atom descriptions, as used in this module, from a CIF data block.
-#
-# Returns an array of
-#
-#   $atom_info = {
-#                   atom_name => "C1_2",
-#                   atom_type => "C",
-#                   assembly  => "A", # "."
-#                   group     => "1", # "."
-#                   occupancy => 1.0,
-#                   cif_multiplicity  => 96,
-#                   coordinates_fract => [1.0, 1.0, 1.0],
-#                   coordinates_ortho => [1.0, 1.0, 1.0],
-#              }
-#
-
-sub get_atoms($$)
-{
-    my ( $dataset, $loop_tag ) = @_;
-
-    my $values = $dataset->{values};
-
-    my @unit_cell = get_cell( $values );
-
-    if( !@unit_cell || !defined $unit_cell[0] || @unit_cell < 6 ) {
-        return;
-    }
-
-    my $ortho_matrix = symop_ortho_from_fract( @unit_cell );
-
-    my @atoms;
-
-    for my $i ( 0 .. $#{$values->{$loop_tag}} ) {
-
-        my @fractional_coordinates_modulo_1 = 
-            map { s/\(\d+\)\s*$//; modulo_1($_) }
-            ( $values->{_atom_site_fract_x}[$i],
-              $values->{_atom_site_fract_y}[$i],
-              $values->{_atom_site_fract_z}[$i] );
-
-        my $atom = {
-            atom_name => $values->{$loop_tag}[$i],
-            atom_type => exists $values->{_atom_site_type_symbol} ?
-                $values->{_atom_site_type_symbol}[$i] : undef,
-            coordinates_fract => \@fractional_coordinates_modulo_1,
-        };
-
-        if( !defined $atom->{atom_type} || $atom->{atom_type} eq '?' ) {
-            if( length($atom->{atom_name}) < 2 ) {
-                $atom->{atom_type} = $atom->{atom_name};
-            } else {
-                my $tentative_type = substr( $atom->{atom_name}, 0, 2 );
-                my $lc_type = ucfirst( lc( $tentative_type ));
-
-                use COD::AtomProperties;
-                if( exists $COD::AtomProperties::atoms{$lc_type} ) {
-                    $atom->{atom_type} = $lc_type;
-                } else {
-                    $atom->{atom_type} = substr( $lc_type, 0, 1 );
-                }
-
-            }
-        }
-
-        if( $atom->{atom_type} =~ m/^([A-Za-z]{1,2})/ ) {
-            $atom->{atom_type} = ucfirst( lc( $1 ));
-        }
-
-        $atom->{coordinates_ortho} =
-            symop_vector_mul( $ortho_matrix, $atom->{coordinates_fract} );
-
-        if( defined $values->{_atom_site_occupancy} ) {
-            if( $values->{_atom_site_occupancy}[$i] ne '?' &&
-                $values->{_atom_site_occupancy}[$i] ne '.' ) {
-                $atom->{occupancy} = $values->{_atom_site_occupancy}[$i];
-                $atom->{occupancy} =~ s/\(\d+\)\s*$//;
-            } else {
-                $atom->{occupancy} = 1;
-            }
-        }
-
-        if( defined $values->{_atom_site_symmetry_multiplicity} &&
-            $values->{_atom_site_symmetry_multiplicity}[$i] ne '?' ) {
-            $atom->{cif_multiplicity} =
-                $values->{_atom_site_symmetry_multiplicity}[$i];
-        }
-
-        if( exists $values->{"_atom_site_disorder_assembly"}[$i]) {
-            $atom->{"assembly"} =
-                $values->{"_atom_site_disorder_assembly"}[$i];
-        } else {
-            $atom->{"assembly"} = ".";
-        }
-
-        if( exists $values->{"_atom_site_disorder_group"}[$i] ) {
-            $atom->{"group"} = $values->{"_atom_site_disorder_group"}[$i];
-        } else {
-            $atom->{"group"} = ".";
-        }
-
-        push( @atoms, $atom );
-    }
-
-    return \@atoms;
-}
-
 my $Pi = 4 * atan2(1,1);
 
 sub metric_tensor_from_cell
diff --git a/src/lib/perl5/COD/CIF/Data/Diff.pm b/src/lib/perl5/COD/CIF/Data/Diff.pm
index c089491..a35e9f8 100644
--- a/src/lib/perl5/COD/CIF/Data/Diff.pm
+++ b/src/lib/perl5/COD/CIF/Data/Diff.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2017-02-21 16:12:53 +0200 (Tue, 21 Feb 2017) $ 
 #$Revision: 4964 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/Diff.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/Diff.pm $
 #------------------------------------------------------------------------
 #* 
 #  CIF comparison functions that work on the internal
diff --git a/src/lib/perl5/COD/CIF/Data/EstimateZ.pm b/src/lib/perl5/COD/CIF/Data/EstimateZ.pm
index 9d256ce..28bdc76 100644
--- a/src/lib/perl5/COD/CIF/Data/EstimateZ.pm
+++ b/src/lib/perl5/COD/CIF/Data/EstimateZ.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-20 16:05:15 +0200 (Fri, 20 Nov 2015) $ 
 #$Revision: 4318 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/EstimateZ.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/EstimateZ.pm $
 #------------------------------------------------------------------------------
 #*
 #  Estimate Z-value using CIF-provided crystal density, cell volume
diff --git a/src/lib/perl5/COD/CIF/Data/ExcludeFromStatistics.pm b/src/lib/perl5/COD/CIF/Data/ExcludeFromStatistics.pm
index 222b044..8fdbac6 100644
--- a/src/lib/perl5/COD/CIF/Data/ExcludeFromStatistics.pm
+++ b/src/lib/perl5/COD/CIF/Data/ExcludeFromStatistics.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2016-05-09 12:10:18 +0300 (Mon, 09 May 2016) $
 #$Revision: 4652 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/ExcludeFromStatistics.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/ExcludeFromStatistics.pm $
 #-----------------------------------------------------------------------
 # Test dataset on various criteria to determine if it should be included in 
 # the statistics.
diff --git a/src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm b/src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm
index 8049f40..fcf36a4 100644
--- a/src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm
+++ b/src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
-#$Author: antanas $
-#$Date: 2016-06-26 02:49:40 +0300 (Sun, 26 Jun 2016) $ 
+#$Author: andrius $
+#$Date: 2017-09-28 16:46:20 +0300 (Thu, 28 Sep 2017) $ 
 #$Revision: 1551 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Data/SymmetryGenerator.pm $
 #------------------------------------------------------------------------------
 #*
 #  Calculate unit cell contents from the atomic coordinates and
@@ -14,20 +14,35 @@ package COD::CIF::Data::SymmetryGenerator;
 
 use strict;
 use warnings;
+use COD::Algebra::Vector qw( distance );
 use COD::CIF::Data::AtomList qw( copy_atom );
-use COD::Spacegroups::Symop::Algebra qw( symop_is_unity symop_vector_mul );
-use COD::Spacegroups::Symop::Parse qw( modulo_1 );
+use COD::Formulae::Print qw( sprint_formula );
+use COD::Spacegroups::Symop::Algebra qw( flush_zeros_in_symop
+                                         symop_invert
+                                         symop_is_unity
+                                         symop_modulo_1
+                                         symop_mul
+                                         symop_vector_mul );
+use COD::Spacegroups::Symop::Parse qw( modulo_1
+                                       string_from_symop
+                                       symop_string_canonical_form );
 use COD::Spacegroups::Names;
-use COD::Algebra::Vector qw( distance );
 
 require Exporter;
 our @ISA = qw( Exporter );
 our @EXPORT_OK = qw(
     apply_shifts
     atoms_coincide
+    chemical_formula_sum
+    symop_apply
     symop_generate_atoms
+    symop_register_applied_symop
+    symops_apply_modulo1
     test_bond
     test_bump
+    translate_atom
+    translation
+    trim_polymer
 );
 
 my $special_position_cutoff = 0.01; # Angstroems
@@ -40,37 +55,16 @@ my $special_position_cutoff = 0.01; # Angstroems
 
 sub apply_shifts($);
 sub atoms_coincide($$$);
-sub symop_generate_atoms($$$);
+sub chemical_formula_sum($@);
+sub symop_apply($$@);
+sub symop_generate_atoms($$$@);
+sub symop_register_applied_symop($$@);
+sub symops_apply_modulo1($$@);
 sub test_bond($$$$$);
 sub test_bump($$$$$$$);
-
-#===============================================================#
-
-sub symop_apply_to_atom_mod1($$$$)
-{
-    my ( $symop, $atom, $n, $f2o ) = @_;
-
-    my $new_atom = copy_atom( $atom );
-
-    if( $n != 0 ) {
-        $new_atom->{atom_name} .= "_" . $n;
-    }
-
-    if( $atom->{coordinates_fract}[0] ne "." and
-        $atom->{coordinates_fract}[1] ne "." and
-        $atom->{coordinates_fract}[2] ne "." ) {
-        my $new_coord = symop_vector_mul( $symop,
-                                          $atom->{coordinates_fract} );
-        $new_atom->{coordinates_fract} =
-            [ map { modulo_1($_) } @{$new_coord} ];
-        $new_atom->{coordinates_ortho} =
-            symop_vector_mul( $f2o, $new_atom->{coordinates_fract} );
-    }
-
-    ## serialiseRef( $new_atom );
-
-    return $new_atom;
-}
+sub translate_atom($$);
+sub translation($$);
+sub trim_polymer($$);
 
 #===============================================================#
 
@@ -113,57 +107,217 @@ sub atoms_coincide($$$)
 
 #===============================================================#
 
-sub symgen_atom($$$)
+sub symop_generate_atoms($$$@)
 {
-    my ( $sym_operators, $atom, $f2o ) = @_;
+    my ( $sym_operators, $atoms, $f2o, $options ) = @_;
+
+    $options = {} unless $options;
 
     my @sym_atoms;
 
-    my $gp_multiplicity = int(@$sym_operators);
-    my $multiplicity_ratio = 1;
+    for my $atom ( @{$atoms} ) {
+        my( $sym_atoms ) = symops_apply_modulo1( $atom, $sym_operators,
+                                                 $options );
+        push( @sym_atoms, @$sym_atoms );
+    }
+
+    return \@sym_atoms;
+}
+
+#===============================================================#
+# Applies symmetry operator to a given atom.
+
+# The symop_apply subroutine accepts a reference to a hash
+# $atom_info = {name=>"C1_2",
+#               site_label=>"C1"
+#               chemical_type=>"C",
+#               coordinates_fract=>[1.0, 1.0, 1.0],
+#               unity_matrix_applied=>1} and
+# a reference to an array - symmetry operator
+# my $symop = [
+#     [ r11 r12 r13 t1 ]
+#     [ r21 r22 r23 t1 ]
+#     [ r31 r32 r33 t1 ]
+#     [   0   0   0  1 ]
+# ],
+# Returns an above-mentioned hash.
+#
+sub symop_apply($$@)
+{
+    my( $atom_info, $symop, $options ) = @_;
+
+    $options = {} unless $options;
 
-    my $n = 1;
+    my $new_atom_info = copy_atom( $atom_info );
 
-    for my $symop ( @{$sym_operators} ) {
-        my $new_atom = symop_apply_to_atom_mod1( $symop, $atom, 0, $f2o );
-        if( !symop_is_unity( $symop ) &&
-            atoms_coincide( $atom, $new_atom, $f2o )) {
-            $multiplicity_ratio ++;
+    my $atom_xyz = $atom_info->{coordinates_fract};
+    if( $atom_xyz->[0] ne '.' &&
+        $atom_xyz->[1] ne '.' &&
+        $atom_xyz->[2] ne '.' ) {
+        my $new_atom_xyz = symop_vector_mul( $symop, $atom_xyz );
+
+        if( $options->{modulo_1} ) {
+            @$new_atom_xyz =
+                map { modulo_1($_) } @$new_atom_xyz;
         }
-        push( @sym_atoms, $new_atom );
+
+        $new_atom_info->{coordinates_fract} = $new_atom_xyz;
     }
 
-    ## print ">>> $gp_multiplicity / $multiplicity_ratio\n";
+    return symop_register_applied_symop( $new_atom_info,
+                                         $symop,
+                                         $options->{append_symop_to_label} );
+}
 
-    if( $gp_multiplicity % $multiplicity_ratio ) {
-        die "ERROR, multiplicity ratio '$multiplicity_ratio' does not divide "
-          . "multiplicity of a general position '$gp_multiplicity' -- "
-          . "this should not happen\n";
+#===============================================================#
+
+sub symop_register_applied_symop($$@)
+{
+    my( $new_atom_info, $symop, $append_symop_to_label ) = @_;
+
+    my $symop_now = symop_mul( $new_atom_info->{symop}, $symop );
+    my $symop_string =
+        symop_string_canonical_form(
+            string_from_symop(
+                flush_zeros_in_symop(
+                    symop_modulo_1( $symop_now ) ) ) );
+
+    $new_atom_info->{symop} = $symop_now;
+    $new_atom_info->{symop_id} =
+        $new_atom_info->{symop_list}
+                        {symop_ids}
+                        {$symop_string} + 1;
+    $new_atom_info->{unity_matrix_applied} =
+        symop_is_unity( $symop_now );
+
+    my $atom_xyz = $new_atom_info->{coordinates_fract};
+    if( $atom_xyz->[0] ne '.' &&
+        $atom_xyz->[1] ne '.' &&
+        $atom_xyz->[2] ne '.' ) {
+        $new_atom_info->{coordinates_ortho} =
+            symop_vector_mul( $new_atom_info->{f2o}, $atom_xyz );
+
+        my @translation = (
+            int($atom_xyz->[0] - modulo_1($atom_xyz->[0])),
+            int($atom_xyz->[1] - modulo_1($atom_xyz->[1])),
+            int($atom_xyz->[2] - modulo_1($atom_xyz->[2])),
+        );
+        $new_atom_info->{translation} =
+            \@translation;
+        $new_atom_info->{translation_id} =
+            (5+$translation[0]) . (5+$translation[1]) . (5+$translation[2]);
     }
 
-    my $multiplicity = $gp_multiplicity / $multiplicity_ratio;
+    if( $new_atom_info->{unity_matrix_applied} &&
+        $new_atom_info->{translation_id} eq "555" ) {
+        $new_atom_info->{name} = $new_atom_info->{site_label};
+    } else {
+        $new_atom_info->{name} =
+            $new_atom_info->{site_label} . "_" .
+            $new_atom_info->{symop_id} . "_" .
+            $new_atom_info->{translation_id};
+    }
 
-    for my $atom (@sym_atoms) {
-        $atom->{multiplicity} = $multiplicity;
-        $atom->{multiplicity_ratio} = $multiplicity_ratio;
+    $new_atom_info->{cell_label} = $new_atom_info->{site_label};
+    if( $append_symop_to_label && !$new_atom_info->{unity_matrix_applied} ) {
+        $new_atom_info->{cell_label} .= '_' . $new_atom_info->{symop_id};
     }
 
-    return @sym_atoms;
+    do {
+        use COD::Serialise qw( serialiseRef );
+        serialiseRef( { atom => $new_atom_info, symop => $symop } );
+    } if 0;
+
+    return $new_atom_info;
 }
 
 #===============================================================#
+# Generate symmetry equivalents of an atom, evaluate atom's
+# multiplicity and multiplicity ratio. Exclude atoms mapping to the
+# original one.
 
-sub symop_generate_atoms($$$)
+sub symops_apply_modulo1($$@)
 {
-    my ( $sym_operators, $atoms, $f2o ) = @_;
+    my ( $atom, $sym_operators, $options ) = @_;
+
+    $options = {} unless $options;
+
+    # Setting default option values
+    $options->{append_atoms_mapping_to_self} = 1
+        unless exists $options->{append_atoms_mapping_to_self};
 
     my @sym_atoms;
+    my @symops_mapping_to_self;
+    my $gp_multiplicity = int(@$sym_operators);
 
-    for my $atom ( @{$atoms} ) {
-        push( @sym_atoms, symgen_atom( $sym_operators, $atom, $f2o ));
+    my $multiplicity_ratio = 1;
+
+    do {
+        use COD::Serialise qw( serialiseRef );
+        serialiseRef( $sym_operators );
+    } if 0;
+
+    if( $options->{disregard_symmetry_independent_sites} ||
+        !exists $atom->{group} || $atom->{group} !~ /^-/ ) {
+        for my $symop ( @{$sym_operators} ) {
+            my $new_atom = symop_apply( $atom, $symop,
+                                        { modulo_1 => 1,
+                                          append_symop_to_label =>
+                                          $options->{append_symop_to_label} } );
+            if( !symop_is_unity( $symop ) &&
+                atoms_coincide( $atom, $new_atom, $atom->{f2o} )) {
+                push( @symops_mapping_to_self, $symop );
+                if( $options->{append_atoms_mapping_to_self} ) {
+                    push( @sym_atoms, $new_atom );
+                }
+                $multiplicity_ratio ++;
+            } else {
+                push( @sym_atoms, $new_atom );
+            }
+        }
+    } else {
+        # Symmetry operators are not applied for atoms that are
+        # disordered around special position.
+        my $new_atom = symop_apply( $atom,
+                        [ [ 1, 0, 0, 0 ],
+                          [ 0, 1, 0, 0 ],
+                          [ 0, 0, 1, 0 ],
+                          [ 0, 0, 0, 1 ] ],
+                        { modulo_1 => 1,
+                          append_symop_to_label =>
+                          $options->{append_symop_to_label} } );
+        push( @sym_atoms, $new_atom );
     }
 
-    return \@sym_atoms;
+    ## print ">>> $gp_multiplicity / $multiplicity_ratio\n";
+
+    if( $gp_multiplicity % $multiplicity_ratio ) {
+        die "ERROR, multiplicity ratio $multiplicity_ratio does not divide "
+          . "multiplicity of a general position $gp_multiplicity -- "
+          . "this can not be\n";
+    }
+
+    my $multiplicity = $gp_multiplicity / $multiplicity_ratio;
+
+    # Update the original atom structure:
+    $atom->{multiplicity} = $multiplicity;
+    $atom->{multiplicity_ratio} = $multiplicity_ratio;
+
+    # Update all symmetry-generated atoms (including ones that were
+    # generated using the unity matrix):
+    for my $atom (@sym_atoms) {
+        $atom->{multiplicity} = $multiplicity;
+        $atom->{multiplicity_ratio} = $multiplicity_ratio;
+
+        my $atom_symop = $atom->{symop};
+        my $inv_atom_symop = symop_invert( $atom_symop );
+        $atom->{site_symops} = [
+            map { symop_mul( $atom_symop, symop_mul( $_, $inv_atom_symop )) }
+            @symops_mapping_to_self
+        ];
+    }
+
+    return ( \@sym_atoms, $multiplicity, $multiplicity_ratio );
 }
 
 #===============================================================#
@@ -246,6 +400,77 @@ sub apply_shifts($)
     return \@shifted;
 }
 
+#==============================================================#
+# Translates an atom according a given translation.
+#
+# Accepts an atom description and a translation.
+#
+# Returns a translated atom.
+
+sub translate_atom($$)
+{
+    my($atom, $translation) = @_;
+
+    my $new_atom = copy_atom( $atom );
+    my @new_atom_xyz;
+
+    push( @new_atom_xyz, $atom->{'coordinates_fract'}[0] +
+          ${$translation}[0] );
+    push( @new_atom_xyz, $atom->{'coordinates_fract'}[1] +
+          ${$translation}[1] );
+    push( @new_atom_xyz, $atom->{'coordinates_fract'}[2] +
+          ${$translation}[2] );
+
+    $new_atom->{'coordinates_fract'} = \@new_atom_xyz;
+    $new_atom->{coordinates_ortho} =
+        symop_vector_mul( $atom->{f2o}, \@new_atom_xyz );
+
+    $new_atom->{translation} = [
+        $new_atom_xyz[0] - modulo_1($new_atom_xyz[0]),
+        $new_atom_xyz[1] - modulo_1($new_atom_xyz[1]),
+        $new_atom_xyz[2] - modulo_1($new_atom_xyz[2]),
+    ];
+
+    $new_atom->{translation_id} =
+        ($new_atom->{translation}[0]+5).
+        ($new_atom->{translation}[1]+5).
+        ($new_atom->{translation}[2]+5);
+
+    if( defined $new_atom->{unity_matrix_applied} &&
+                $new_atom->{unity_matrix_applied} &&
+                $new_atom->{translation}[0] == 0 &&
+                $new_atom->{translation}[1] == 0 &&
+                $new_atom->{translation}[2] == 0 ) {
+        $new_atom->{name} = $new_atom->{site_label};
+    } else {
+        $new_atom->{name} =
+            $new_atom->{site_label} . "_" .
+            $new_atom->{symop_id} . "_" .
+            $new_atom->{translation_id};
+    }
+
+    return $new_atom;
+}
+
+#==============================================================#
+# Finds translation center of mass and center of mass modulo 1 information.
+
+# Accepts two arrays of coordinates_fract.
+
+# Returns an array of differences between coordinates_fract.
+
+sub translation($$)
+{
+    my ($coords, $coords_modulo_1) = @_;
+
+    my @translation;
+    for( my $i = 0; $i < @{$coords}; $i++ ) {
+        push @translation, ${$coords}[$i] - ${$coords_modulo_1}[$i];
+    }
+
+    return \@translation;
+}
+
 #===============================================================#
 # Made a decision if a chemical bond exists.
 #
@@ -319,4 +544,62 @@ sub test_bump($$$$$$$)
     return 0;
 }
 
+#===============================================================#
+# Finds a molecule chemical formula sum.
+
+# Accepts an array of atoms:
+# $atom =      {name=>"C1_2",
+#               chemical_type=>"C",
+#               coordinates_fract=>[1.0, 1.0, 1.0],
+#               unity_matrix_applied=>1}
+
+# Returns a string with chemical formula sum.
+
+sub chemical_formula_sum($@)
+{
+    my ($atoms, $Z) = @_;
+
+    $Z = 1 unless defined $Z;
+
+    my %chemical_types;
+
+    foreach my $atom (@{$atoms}) {
+        my $chemical_type = $atom->{chemical_type};
+        next if $chemical_type eq '.';
+        $chemical_types{$chemical_type} = 0
+            if !defined $chemical_types{$chemical_type};
+        $chemical_types{$chemical_type}++
+    }
+
+    for my $chemical_type (keys %chemical_types) {
+        $chemical_types{$chemical_type} /= $Z;
+    }
+
+    my $formula_sum = sprint_formula( \%chemical_types );
+    $formula_sum =~ s/\s$//;
+
+    return $formula_sum;
+}
+
+#===============================================================#
+# Trim a polymer -- remove atoms outside of the specified polymer
+# span:
+
+sub trim_polymer($$)
+{
+    my ($atoms, $max_polymer_span) = @_;
+
+    my @trimmed_atoms;
+
+    for my $atom (@$atoms) {
+        if( abs($atom->{translation}[0]) <= $max_polymer_span &&
+            abs($atom->{translation}[1]) <= $max_polymer_span &&
+            abs($atom->{translation}[2]) <= $max_polymer_span ) {
+            push( @trimmed_atoms, $atom );
+        }
+    }
+
+    return \@trimmed_atoms;
+}
+
 1;
diff --git a/src/lib/perl5/COD/CIF/JSON.pm b/src/lib/perl5/COD/CIF/JSON.pm
index 71effb3..97cd2ec 100644
--- a/src/lib/perl5/COD/CIF/JSON.pm
+++ b/src/lib/perl5/COD/CIF/JSON.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2017-05-25 13:31:39 +0300 (Thu, 25 May 2017) $ 
 #$Revision: 5330 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/JSON.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/JSON.pm $
 #------------------------------------------------------------------------------
 #*
 #  Serializes and deserializes CIF data structures, generated by COD CIF
diff --git a/src/lib/perl5/COD/CIF/Parser.pm b/src/lib/perl5/COD/CIF/Parser.pm
index 88e9664..6769f2d 100644
--- a/src/lib/perl5/COD/CIF/Parser.pm
+++ b/src/lib/perl5/COD/CIF/Parser.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-01-27 16:18:46 +0200 (Fri, 27 Jan 2017) $ 
-#$Revision: 4827 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser.pm $
+#$Date: 2017-09-15 12:47:32 +0300 (Fri, 15 Sep 2017) $ 
+#$Revision: 5515 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser.pm $
 #------------------------------------------------------------------------------
 #*
 #  Subroutines that provide a functional interface to COD::CIF::Parser::Yapp
@@ -56,7 +56,7 @@ sub parse_cif
     ($options, $unrecognised) = check_options($options, $default_options);
     foreach ( @$unrecognised ) {
         warning($0, $filename, undef, "option '$_' is "
-              . "not supported  by the CIF parser", undef);
+              . "not supported by the CIF parser", undef);
     }
 
     my $parser;
diff --git a/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_071.out b/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_071.out
index e69de29..125c12a 100644
--- a/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_071.out
+++ b/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_071.out
@@ -0,0 +1,2 @@
+tests/scripts/cif_parser_test: tests/cases/cif_parser_test_071.inp(2,19): WARNING, unallowed symbol in CIF comment.
+tests/scripts/cif_parser_test: tests/cases/cif_parser_test_071.inp(3,31): WARNING, unallowed symbol in CIF comment.
diff --git a/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_107.out b/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_107.out
index acb0f47..3dd422b 100644
--- a/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_107.out
+++ b/src/lib/perl5/COD/CIF/Parser/Bison/tests/outputs/cif_parser_test_107.out
@@ -1,3 +1,4 @@
+tests/scripts/cif_parser_test: tests/cases/cif_parser_test_107.inp(2,19): WARNING, unallowed symbol in CIF comment.
 tests/scripts/cif_parser_test: tests/cases/cif_parser_test_107.inp(12,35) data_(5): ERROR, incorrect CIF syntax:
  _computing_molecular_graphics     'ORTEPII (Johnson, 1976) 
                                    ^
diff --git a/src/lib/perl5/COD/CIF/Parser/Bison/tests/scripts/cif_parser_test b/src/lib/perl5/COD/CIF/Parser/Bison/tests/scripts/cif_parser_test
index fbce343..9f9d1e0 100755
--- a/src/lib/perl5/COD/CIF/Parser/Bison/tests/scripts/cif_parser_test
+++ b/src/lib/perl5/COD/CIF/Parser/Bison/tests/scripts/cif_parser_test
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-01 20:24:53 +0300 (Thu, 01 Jun 2017) $ 
-#$Revision: 5402 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Bison/tests/scripts/cif_parser_test $
+#$Date: 2017-05-31 16:35:28 +0300 (Wed, 31 May 2017) $ 
+#$Revision: 5393 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Bison/tests/scripts/cif_parser_test $
 #------------------------------------------------------------------------------
 #*
 #  Test driver for COD::CIF::Parser::Bison.pm module.
diff --git a/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/multiline_text_field_001.sh b/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/multiline_text_field_001.sh
index ff434bf..a8b71da 100755
--- a/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/multiline_text_field_001.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/multiline_text_field_001.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-18 20:03:03 +0300 (Thu, 18 May 2017) $ 
 #$Revision: 5277 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/multiline_text_field_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/multiline_text_field_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/precisions_001.sh b/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/precisions_001.sh
index 8f3e0d5..9d50cf1 100755
--- a/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/precisions_001.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/precisions_001.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-18 20:03:03 +0300 (Thu, 18 May 2017) $ 
 #$Revision: 5277 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/precisions_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/precisions_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver used to check the way precision values are stored.
diff --git a/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/unicode_001.sh b/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/unicode_001.sh
index 56606b8..59f636c 100755
--- a/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/unicode_001.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/unicode_001.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-23 16:58:16 +0300 (Tue, 23 May 2017) $ 
 #$Revision: 5304 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/unicode_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Bison/tests/shtests/unicode_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver used to check the way precision values are stored.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp b/src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp
index 697057f..3515310 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp
@@ -1,8 +1,8 @@
 # --*-Perl-*----------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-01 20:24:53 +0300 (Thu, 01 Jun 2017) $
-#$Revision: 5402 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp $
+#$Date: 2017-08-04 16:15:07 +0300 (Fri, 04 Aug 2017) $
+#$Revision: 5491 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/Yapp.yp $
 # -------------------------------------------------------------- 
 #
 # parse.yp
@@ -22,7 +22,7 @@ use COD::UserMessage qw( sprint_message );
 
 $COD::CIF::Parser::Yapp::version = '1.0';
 
-my $SVNID = '$Id: Yapp.yp 5402 2017-06-01 17:24:53Z andrius $';
+my $SVNID = '$Id: Yapp.yp 5491 2017-08-04 13:15:07Z andrius $';
 
 # 0 - no debug
 # 1 - only YAPP output (type -> value)
@@ -712,7 +712,12 @@ sub _Lexer
     if( defined $parser->YYData->{INPUT} &&
         $parser->YYData->{INPUT} =~ s/^(\s*#.*)$//s )
     {
-        advance_token($parser, length($1), 1);
+        my $comment = $1;
+        if( $comment =~ /[\x{0}-\x{8}\x{b}-\x{c}\x{e}-\x{1f}\x{7f}-\x{ff}]/g ) {
+            $parser->YYData->{ERRMSG} = 'unallowed symbol in CIF comment';
+            $parser->_Warning();
+        }
+        advance_token($parser, length($comment), 1);
     }
 
     if( !defined $parser->YYData->{INPUT} ||
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested-numeric.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested-numeric.cif
index dcc91b2..7325f50 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested-numeric.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested-numeric.cif
@@ -3,7 +3,7 @@
 #$Author: andrius $
 #$Date: 2017-05-24 12:42:24 +0300 (Wed, 24 May 2017) $ 
 #$Revision: 5313 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested-numeric.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested-numeric.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way unicode characters are treated in deeply
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested.cif
index c13ee40..3d2d65c 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested.cif
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-23 16:58:16 +0300 (Tue, 23 May 2017) $ 
 #$Revision: 5304 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-deeply-nested.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way unicode characters are treated in deeply
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-multiblock.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-multiblock.cif
index ea0fca2..0b73161 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-multiblock.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-multiblock.cif
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-23 16:58:16 +0300 (Tue, 23 May 2017) $ 
 #$Revision: 5304 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-multiblock.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-multiblock.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way unicode characters are treated in files
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-save-frames.inp b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-save-frames.inp
index 8401545..90a8f9c 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-save-frames.inp
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-save-frames.inp
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-23 16:58:16 +0300 (Tue, 23 May 2017) $ 
 #$Revision: 5304 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-save-frames.inp $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-save-frames.inp $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way unicode characters are treated in save frames.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-simple.inp b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-simple.inp
index 9d54b11..7a7edf6 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-simple.inp
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-simple.inp
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-23 16:58:16 +0300 (Tue, 23 May 2017) $ 
 #$Revision: 5304 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-simple.inp $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/cif2-unicode-simple.inp $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way unicode characters are treated in simple
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/complex_structure_precisions.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/complex_structure_precisions.cif
index a76f88c..f4d4234 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/complex_structure_precisions.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/complex_structure_precisions.cif
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-18 20:10:31 +0300 (Thu, 18 May 2017) $ 
 #$Revision: 5279 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/complex_structure_precisions.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/complex_structure_precisions.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way SU values that reside in complex strucutures
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/loops_with_precisions.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/loops_with_precisions.cif
index bb6312a..1e7add3 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/loops_with_precisions.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/loops_with_precisions.cif
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-18 20:10:31 +0300 (Thu, 18 May 2017) $ 
 #$Revision: 5279 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/loops_with_precisions.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/loops_with_precisions.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way looped SU values are stored.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/nested_structure_precisions.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/nested_structure_precisions.cif
index 92dee33..abd2952 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/nested_structure_precisions.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/nested_structure_precisions.cif
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-18 20:10:31 +0300 (Thu, 18 May 2017) $ 
 #$Revision: 5279 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/nested_structure_precisions.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/nested_structure_precisions.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way SU values that reside in nested complex
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/save_frame_with_precisions.cif b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/save_frame_with_precisions.cif
index 53521ba..9932579 100644
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/save_frame_with_precisions.cif
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/save_frame_with_precisions.cif
@@ -3,7 +3,7 @@
 #$Author: antanas $
 #$Date: 2017-05-18 20:10:31 +0300 (Thu, 18 May 2017) $ 
 #$Revision: 5279 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/save_frame_with_precisions.cif $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/inputs/save_frame_with_precisions.cif $
 #------------------------------------------------------------------------------
 #*
 # Test case that showcases the way SU values that reside in save frames
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/scripts/cif_parser_test b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/scripts/cif_parser_test
index 9aa170a..953bbcc 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/scripts/cif_parser_test
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/scripts/cif_parser_test
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-01 20:24:53 +0300 (Thu, 01 Jun 2017) $ 
-#$Revision: 5402 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/scripts/cif_parser_test $
+#$Date: 2017-05-31 18:07:55 +0300 (Wed, 31 May 2017) $ 
+#$Revision: 5395 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/scripts/cif_parser_test $
 #------------------------------------------------------------------------------
 #*
 #  Test driver for COD::CIF::Parser::Yapp.pm module.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh
index e3fc4ca..a975520 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-20 21:27:55 +0300 (Mon, 20 Jul 2015) $ 
 #$Revision: 3563 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_01.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh
index c75babf..11565e6 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-20 21:27:55 +0300 (Mon, 20 Jul 2015) $ 
 #$Revision: 3563 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/empty_02.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_01.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_01.sh
index 17af94e..c2a0840 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_01.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_01.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-31 16:56:51 +0300 (Fri, 31 Jul 2015) $ 
 #$Revision: 3775 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_01.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_01.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_02.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_02.sh
index 7d501d9..a5f6cb0 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_02.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_02.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-31 16:56:51 +0300 (Fri, 31 Jul 2015) $ 
 #$Revision: 3775 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_02.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_02.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_03.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_03.sh
index 374b74b..dc34355 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_03.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_03.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-31 16:56:51 +0300 (Fri, 31 Jul 2015) $ 
 #$Revision: 3775 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_03.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/err_no_data_03.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/error_messages.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/error_messages.sh
index 250483f..25a7615 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/error_messages.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/error_messages.sh
@@ -4,9 +4,9 @@ eval 'exec perl -x $0 ${1+"$@"}'
     if 0;
 #------------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-06-01 20:24:53 +0300 (Thu, 01 Jun 2017) $ 
-#$Revision: 5402 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/error_messages.sh $
+#$Date: 2017-05-31 18:07:55 +0300 (Wed, 31 May 2017) $ 
+#$Revision: 5395 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/error_messages.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver for testing the way error messages are handled (printed out
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/file_not_defined.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/file_not_defined.sh
index d806662..5d16f7a 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/file_not_defined.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/file_not_defined.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/file_not_defined.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/file_not_defined.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/float_mis-increase_lexer.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/float_mis-increase_lexer.sh
index 0e3fb53..bfef8c4 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/float_mis-increase_lexer.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/float_mis-increase_lexer.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/float_mis-increase_lexer.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/float_mis-increase_lexer.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/global_errors.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/global_errors.sh
index 6356669..5d005f1 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/global_errors.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/global_errors.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/global_errors.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/global_errors.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/local_tags.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/local_tags.sh
index 7df1429..78ff943 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/local_tags.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/local_tags.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/local_tags.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/local_tags.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh
index d0d5004..607b537 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-20 21:27:55 +0300 (Mon, 20 Jul 2015) $ 
 #$Revision: 3563 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_misparsing.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_misparsing.sh
index 6fc6e32..957c155 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_misparsing.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_misparsing.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_misparsing.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/loop_misparsing.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_dq_string.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_dq_string.sh
index e6e19b6..e8fba43 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_dq_string.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_dq_string.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:07:43 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4403 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_dq_string.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_dq_string.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver for testsing how strings with a missing single closing
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_sq_string.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_sq_string.sh
index 80afe99..2225151 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_sq_string.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_sq_string.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:07:43 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4403 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_sq_string.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/missing_closing_sq_string.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver for testsing how strings with a missing single closing
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/save_block.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/save_block.sh
index 662c575..3ddd3a3 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/save_block.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/save_block.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/save_block.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/save_block.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/simple.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/simple.sh
index 7b2b28d..1ac69c9 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/simple.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/simple.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-20 21:27:55 +0300 (Mon, 20 Jul 2015) $ 
 #$Revision: 3563 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/simple.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/simple.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/standard_uncertainty_handling.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/standard_uncertainty_handling.sh
index 310be6a..a2579a3 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/standard_uncertainty_handling.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/standard_uncertainty_handling.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/standard_uncertainty_handling.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/standard_uncertainty_handling.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver for testing the way standard uncertainties (s.u.; also 
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/text_field_001.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/text_field_001.sh
index 2f776fa..28b677d 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/text_field_001.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/text_field_001.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-07-20 21:27:55 +0300 (Mon, 20 Jul 2015) $ 
 #$Revision: 3563 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/text_field_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/text_field_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string.sh
index 9d35334..709f26f 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_with_brackets.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_with_brackets.sh
index ac3da01..2867091 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_with_brackets.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_with_brackets.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_with_brackets.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_with_brackets.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_wo_brackets.sh b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_wo_brackets.sh
index b132271..5d3d5ea 100755
--- a/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_wo_brackets.sh
+++ b/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_wo_brackets.sh
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-12-07 17:14:00 +0200 (Mon, 07 Dec 2015) $ 
 #$Revision: 4404 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_wo_brackets.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Parser/Yapp/tests/shtests/unquoted_string_wo_brackets.sh $
 #------------------------------------------------------------------------------
 #*
 #  Perl test driver.
diff --git a/src/lib/perl5/COD/CIF/Tags/AMCSD.pm b/src/lib/perl5/COD/CIF/Tags/AMCSD.pm
index a90f54b..32d9efe 100644
--- a/src/lib/perl5/COD/CIF/Tags/AMCSD.pm
+++ b/src/lib/perl5/COD/CIF/Tags/AMCSD.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-08 10:28:29 +0200 (Sun, 08 Nov 2015) $ 
 #$Revision: 4227 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/AMCSD.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/AMCSD.pm $
 #------------------------------------------------------------------------
 #* 
 #  A list of CIF dictionary tags used in AMCSD database.
diff --git a/src/lib/perl5/COD/CIF/Tags/COD.pm b/src/lib/perl5/COD/CIF/Tags/COD.pm
index 95e910a..bd4ef05 100644
--- a/src/lib/perl5/COD/CIF/Tags/COD.pm
+++ b/src/lib/perl5/COD/CIF/Tags/COD.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-08 10:28:29 +0200 (Sun, 08 Nov 2015) $ 
 #$Revision: 4227 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/COD.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/COD.pm $
 #------------------------------------------------------------------------
 #* 
 #  A list of CIF dictionary tags.
diff --git a/src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm b/src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm
index 26709dc..2472348 100644
--- a/src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm
+++ b/src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2015-11-10 16:04:15 +0200 (Tue, 10 Nov 2015) $ 
 #$Revision: 4255 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/CanonicalNames.pm $
 #------------------------------------------------------------------------
 #* 
 #  CIF tag management functions that work on the internal
diff --git a/src/lib/perl5/COD/CIF/Tags/DFT.pm b/src/lib/perl5/COD/CIF/Tags/DFT.pm
index 46a0904..bcd56d8 100644
--- a/src/lib/perl5/COD/CIF/Tags/DFT.pm
+++ b/src/lib/perl5/COD/CIF/Tags/DFT.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-11-15 12:46:39 +0200 (Tue, 15 Nov 2016) $ 
 #$Revision: 4770 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/DFT.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/DFT.pm $
 #------------------------------------------------------------------------
 #* 
 #  A list of DFT CIF dictionary tags. Compiled from version 0.020 of
diff --git a/src/lib/perl5/COD/CIF/Tags/DictTags.pm b/src/lib/perl5/COD/CIF/Tags/DictTags.pm
index d57c8b0..afaa25e 100644
--- a/src/lib/perl5/COD/CIF/Tags/DictTags.pm
+++ b/src/lib/perl5/COD/CIF/Tags/DictTags.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-01-18 13:08:52 +0200 (Mon, 18 Jan 2016) $ 
 #$Revision: 4534 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/DictTags.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/DictTags.pm $
 #------------------------------------------------------------------------
 #* 
 #  A list of CIF dictionary tags.
diff --git a/src/lib/perl5/COD/CIF/Tags/Excluded.pm b/src/lib/perl5/COD/CIF/Tags/Excluded.pm
index 34dcdd1..153a13f 100644
--- a/src/lib/perl5/COD/CIF/Tags/Excluded.pm
+++ b/src/lib/perl5/COD/CIF/Tags/Excluded.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-08 10:28:29 +0200 (Sun, 08 Nov 2015) $ 
 #$Revision: 4227 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/Excluded.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/Excluded.pm $
 #------------------------------------------------------------------------
 #* 
 #  A list of CIF dictionary tags excluded from COD files.
diff --git a/src/lib/perl5/COD/CIF/Tags/Manage.pm b/src/lib/perl5/COD/CIF/Tags/Manage.pm
index e5d4fc4..e77be6e 100644
--- a/src/lib/perl5/COD/CIF/Tags/Manage.pm
+++ b/src/lib/perl5/COD/CIF/Tags/Manage.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2015-11-10 15:57:34 +0200 (Tue, 10 Nov 2015) $ 
-#$Revision: 4253 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/Manage.pm $
+#$Date: 2017-10-10 17:01:57 +0300 (Tue, 10 Oct 2017) $ 
+#$Revision: 5602 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/Manage.pm $
 #------------------------------------------------------------------------
 #* 
 #  CIF tag management functions that work on the internal
@@ -30,8 +30,11 @@ our @EXPORT_OK = qw(
     set_tag
     set_loop_tag
     rename_tag
+    rename_tags
 );
 
+sub rename_tags($$$);
+
 sub exclude_tag
 {
     my ($cif, $tag) = @_;
@@ -308,6 +311,34 @@ sub rename_tag
     }
 }
 
+#===============================================================#
+# Renames CIF data tags so that they are not confused with the
+# original ones.
+
+# Accepts a dataset hash produced by COD::CIF::Parser, a list of tags to be
+# renamed, and a prefix to be appended
+
+# Returns a hash with renamed data tags
+
+sub rename_tags($$$)
+{
+    my ( $dataset, $tags2rename, $prefix ) = @_;
+
+    my $values = $dataset->{values};
+    my %renamed_tags = ();
+
+    for my $tag (@$tags2rename) {
+        next if !exists $values->{$tag};
+        next if exists $dataset->{inloop}{$tag};
+
+        my $new_tag = $prefix . $tag;
+        rename_tag( $dataset, $tag, $new_tag );
+        $renamed_tags{$new_tag} = $tag;
+    }
+
+    return wantarray ? %renamed_tags : \%renamed_tags;
+}
+
 sub set_tag
 {
     my ( $cif, $tag, $value ) = @_;
diff --git a/src/lib/perl5/COD/CIF/Tags/Print.pm b/src/lib/perl5/COD/CIF/Tags/Print.pm
index d78c700..d6ab7a5 100644
--- a/src/lib/perl5/COD/CIF/Tags/Print.pm
+++ b/src/lib/perl5/COD/CIF/Tags/Print.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------
 #$Author: andrius $
-#$Date: 2017-04-25 10:33:08 +0300 (Tue, 25 Apr 2017) $ 
-#$Revision: 5215 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/Print.pm $
+#$Date: 2017-10-26 08:38:27 +0300 (Thu, 26 Oct 2017) $ 
+#$Revision: 5659 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/Print.pm $
 #------------------------------------------------------------------------
 #* 
 #  CIF tag management functions that work on the internal
@@ -187,14 +187,51 @@ sub print_loop
     my ($tag, $loop_nr, $tags, $fold_long_fields,
         $folding_width, $cif_version ) = @_;
 
+    my $values = $tags->{'values'};
     my @loop_tags = @{$tags->{loops}[$loop_nr]};
 
+    # Safeguard against a malformed looped structure
+    my $max_column_index = 0;
+    for ( my $i = 0; $i < @loop_tags; $i++ ) {
+        if ( @{$values->{$loop_tags[$max_column_index]}} <
+             @{$values->{$loop_tags[$i]}} ) {
+            $max_column_index = $i;
+        }
+    };
+    my $max_column_length = @{$values->{$loop_tags[$max_column_index]}};
+
+    # Check if all looped data item contain the same amount of values
+    for my $loop_tag (@loop_tags) {
+        my $diff = $max_column_length - @{$values->{$loop_tag}};
+        if ( $diff > 0 ) {
+            warn "WARNING, data item '$loop_tag' contains less values than " .
+                 "data item '$loop_tags[$max_column_index]' even though they " .
+                 "reside in the same loop -- $diff question mark symbols " .
+                 "('?') will be appended to the loop column '$loop_tag' " .
+                 'instead of the missing values' . "\n";
+            for (0..$diff) {
+                push @{$values->{$loop_tag}}, '?';
+            }
+        }
+    }
+
+    # Detect empty loops and attempt to fix them
+    if( $max_column_length == 0 ) {
+        local $" = "', '";
+        warn "WARNING, loop of data items '@loop_tags' does not contain any " .
+             "values -- a question mark symbol ('?') will be added as values " .
+             'for each data item' . "\n";
+        for my $loop_tag (@loop_tags) {
+            push @{$values->{$loop_tag}}, '?';
+        }
+    }
+
     print "loop_\n";
     for (@loop_tags) {
         print $_, "\n";
     }
 
-    my $val_array = $tags->{values}{$tag};
+    my $val_array = $values->{$loop_tags[$max_column_index]};
     my $last_val = $#{$val_array};
 
     my $line_prefix = "";
@@ -203,7 +240,7 @@ sub print_loop
         my $lines = "";
         my $line = $line_prefix;
         for my $loop_tag (@loop_tags) {
-            my $val = sprint_value( $tags->{values}{$loop_tag}[$i],
+            my $val = sprint_value( $values->{$loop_tag}[$i],
                                     $fold_long_fields,
                                     $folding_width, $cif_version );
             if( $val =~ /^\n;/ ) {
diff --git a/src/lib/perl5/COD/CIF/Tags/TCOD.pm b/src/lib/perl5/COD/CIF/Tags/TCOD.pm
index 3860b94..6e5d8bd 100644
--- a/src/lib/perl5/COD/CIF/Tags/TCOD.pm
+++ b/src/lib/perl5/COD/CIF/Tags/TCOD.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-11-15 12:46:39 +0200 (Tue, 15 Nov 2016) $ 
 #$Revision: 4770 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Tags/TCOD.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Tags/TCOD.pm $
 #------------------------------------------------------------------------
 #* 
 #  A list of TCOD CIF dictionary tags. Compiled from version 0.009 of
diff --git a/src/lib/perl5/COD/CIF/Unicode2CIF.pm b/src/lib/perl5/COD/CIF/Unicode2CIF.pm
index 8146995..47a8161 100644
--- a/src/lib/perl5/COD/CIF/Unicode2CIF.pm
+++ b/src/lib/perl5/COD/CIF/Unicode2CIF.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-03-14 16:16:57 +0200 (Mon, 14 Mar 2016) $ 
 #$Revision: 4604 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CIF/Unicode2CIF.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CIF/Unicode2CIF.pm $
 #------------------------------------------------------------------------
 
 package COD::CIF::Unicode2CIF;
diff --git a/src/lib/perl5/COD/Cell.pm b/src/lib/perl5/COD/Cell.pm
index fc24170..c97d7b3 100644
--- a/src/lib/perl5/COD/Cell.pm
+++ b/src/lib/perl5/COD/Cell.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-01-26 13:14:35 +0200 (Tue, 26 Jan 2016) $
 #$Revision: 4561 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Cell.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Cell.pm $
 #-----------------------------------------------------------------------
 #*
 #  Contains generic subroutines for cell calculations.
diff --git a/src/lib/perl5/COD/Cell/Conventional/deWG91.pm b/src/lib/perl5/COD/Cell/Conventional/deWG91.pm
index 35dcddd..7806a3a 100644
--- a/src/lib/perl5/COD/Cell/Conventional/deWG91.pm
+++ b/src/lib/perl5/COD/Cell/Conventional/deWG91.pm
@@ -2,7 +2,7 @@
 #$Author: saulius $
 #$Date: 2016-04-09 07:43:05 +0300 (Sat, 09 Apr 2016) $ 
 #$Revision: 4614 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Cell/Conventional/deWG91.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Cell/Conventional/deWG91.pm $
 #------------------------------------------------------------------------------
 #*
 #  Perl package implementing the de Wollf & Gruber 1991 algorithm for
diff --git a/src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm b/src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm
index a627c45..6c915b6 100644
--- a/src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm
+++ b/src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm
@@ -2,7 +2,7 @@
 #$Author: saulius $
 #$Date: 2016-04-11 21:23:29 +0300 (Mon, 11 Apr 2016) $ 
 #$Revision: 4622 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Cell/Delaunay/Delaunay.pm $
 #------------------------------------------------------------------------------
 #*
 #  Perl package implementing the Delaunay cell reduction as decribed
diff --git a/src/lib/perl5/COD/Cell/Niggli/KG76.pm b/src/lib/perl5/COD/Cell/Niggli/KG76.pm
index 7ead10d..35a708b 100644
--- a/src/lib/perl5/COD/Cell/Niggli/KG76.pm
+++ b/src/lib/perl5/COD/Cell/Niggli/KG76.pm
@@ -2,7 +2,7 @@
 #$Author: saulius $
 #$Date: 2016-04-09 08:16:25 +0300 (Sat, 09 Apr 2016) $ 
 #$Revision: 4618 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Cell/Niggli/KG76.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Cell/Niggli/KG76.pm $
 #------------------------------------------------------------------------------
 #*
 
diff --git a/src/lib/perl5/COD/CromerMann.pm b/src/lib/perl5/COD/CromerMann.pm
index 18883f2..e7a58bf 100644
--- a/src/lib/perl5/COD/CromerMann.pm
+++ b/src/lib/perl5/COD/CromerMann.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/CromerMann.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/CromerMann.pm $
 #------------------------------------------------------------------------------
 #*
 #  This package which contains Crommer-Mann coefficients 
diff --git a/src/lib/perl5/COD/ErrorHandler.pm b/src/lib/perl5/COD/ErrorHandler.pm
index c9236a9..c6f6afc 100644
--- a/src/lib/perl5/COD/ErrorHandler.pm
+++ b/src/lib/perl5/COD/ErrorHandler.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
 #$Author: antanas $
-#$Date: 2016-04-13 17:23:24 +0300 (Wed, 13 Apr 2016) $ 
-#$Revision: 4623 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/ErrorHandler.pm $
+#$Date: 2017-07-18 12:51:21 +0300 (Tue, 18 Jul 2017) $ 
+#$Revision: 5464 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/ErrorHandler.pm $
 #------------------------------------------------------------------------------
 #*
 #  Set of subroutines used to handle error messages in COD perl scripts.
@@ -33,8 +33,8 @@ sub process_parser_messages
     foreach ( @$messages ) {
         warn $_;
         my $parsed_message = parse_message($_);
-        if ( defined $parsed_message->{errlevel} ) {
-            $err_level_counter{$parsed_message->{errlevel}}++;
+        if ( defined $parsed_message->{err_level} ) {
+            $err_level_counter{$parsed_message->{err_level}}++;
         };
         if ( defined $parsed_message->{filename} && !defined $filename ) {
             $filename = $parsed_message->{filename};
diff --git a/src/lib/perl5/COD/Escape.pm b/src/lib/perl5/COD/Escape.pm
index de02cf3..c851ee8 100644
--- a/src/lib/perl5/COD/Escape.pm
+++ b/src/lib/perl5/COD/Escape.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-16 16:04:37 +0200 (Mon, 16 Nov 2015) $ 
 #$Revision: 4287 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Escape.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Escape.pm $
 #------------------------------------------------------------------------------
 #*
 #  Subroutines to perform escaping and unescaping of strings
diff --git a/src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp b/src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp
index 9291295..81e7698 100644
--- a/src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp
+++ b/src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-12-19 17:11:20 +0200 (Mon, 19 Dec 2016) $
 #$Revision: 4786 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Formulae/Parser/AdHoc/AdHoc.yp $
 # -------------------------------------------------------------- 
 #
 # --------------------------------------------------------------
diff --git a/src/lib/perl5/COD/Formulae/Parser/AdHoc/tests/scripts/formula_parser_test b/src/lib/perl5/COD/Formulae/Parser/AdHoc/tests/scripts/formula_parser_test
index 7287291..30e6c2c 100755
--- a/src/lib/perl5/COD/Formulae/Parser/AdHoc/tests/scripts/formula_parser_test
+++ b/src/lib/perl5/COD/Formulae/Parser/AdHoc/tests/scripts/formula_parser_test
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-10-26 15:51:39 +0200 (Mon, 26 Oct 2015) $ 
 #$Revision: 4143 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Formulae/Parser/AdHoc/tests/scripts/formula_parser_test $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Formulae/Parser/AdHoc/tests/scripts/formula_parser_test $
 #------------------------------------------------------------------------------
 #*
 #  Test driver for COD::Formulae::Parser::IUCr.pm module.
diff --git a/src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp b/src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp
index e3d7b41..297331a 100644
--- a/src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp
+++ b/src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-04 19:30:25 +0200 (Wed, 04 Nov 2015) $
 #$Revision: 4195 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Formulae/Parser/IUCr/IUCr.yp $
 # -------------------------------------------------------------- 
 #
 # --------------------------------------------------------------
diff --git a/src/lib/perl5/COD/Formulae/Parser/IUCr/tests/scripts/formula_parser_test b/src/lib/perl5/COD/Formulae/Parser/IUCr/tests/scripts/formula_parser_test
index 277fd3b..00d6393 100755
--- a/src/lib/perl5/COD/Formulae/Parser/IUCr/tests/scripts/formula_parser_test
+++ b/src/lib/perl5/COD/Formulae/Parser/IUCr/tests/scripts/formula_parser_test
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2015-10-26 15:47:15 +0200 (Mon, 26 Oct 2015) $ 
 #$Revision: 4142 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Formulae/Parser/IUCr/tests/scripts/formula_parser_test $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Formulae/Parser/IUCr/tests/scripts/formula_parser_test $
 #------------------------------------------------------------------------------
 #*
 #  Test driver for COD::Formulae::Parser::IUCr.pm module.
diff --git a/src/lib/perl5/COD/Formulae/Print.pm b/src/lib/perl5/COD/Formulae/Print.pm
index 4efc8c4..5baea4a 100644
--- a/src/lib/perl5/COD/Formulae/Print.pm
+++ b/src/lib/perl5/COD/Formulae/Print.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-20 16:55:31 +0200 (Fri, 20 Nov 2015) $ 
 #$Revision: 4320 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Formulae/Print.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Formulae/Print.pm $
 #------------------------------------------------------------------------
 #*
 #  Functions for printing chemical formulas in a formated way.
diff --git a/src/lib/perl5/COD/Fractional.pm b/src/lib/perl5/COD/Fractional.pm
index c91d407..734072b 100644
--- a/src/lib/perl5/COD/Fractional.pm
+++ b/src/lib/perl5/COD/Fractional.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Fractional.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Fractional.pm $
 #-----------------------------------------------------------------------
 #*
 #  Convert orthogonal coordinates into fractional and back
diff --git a/src/lib/perl5/COD/MorganFingerprints.pm b/src/lib/perl5/COD/MorganFingerprints.pm
index 2b9b5b1..f1bacee 100644
--- a/src/lib/perl5/COD/MorganFingerprints.pm
+++ b/src/lib/perl5/COD/MorganFingerprints.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/MorganFingerprints.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/MorganFingerprints.pm $
 #------------------------------------------------------------------------------
 #*
 #  Compute Morgan fingerprints from atom connectivity list.
diff --git a/src/lib/perl5/COD/Overlays/Kabsch.pm b/src/lib/perl5/COD/Overlays/Kabsch.pm
index 07846d8..5b37e4d 100644
--- a/src/lib/perl5/COD/Overlays/Kabsch.pm
+++ b/src/lib/perl5/COD/Overlays/Kabsch.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-12-17 15:17:58 +0200 (Thu, 17 Dec 2015) $
 #$Revision: 4470 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Overlays/Kabsch.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Overlays/Kabsch.pm $
 #-----------------------------------------------------------------------
 #*
 # finds the best (in a least squares sence) symmetry operator to move
diff --git a/src/lib/perl5/COD/Overlays/Kearsley.pm b/src/lib/perl5/COD/Overlays/Kearsley.pm
index 8658f5a..c31086a 100644
--- a/src/lib/perl5/COD/Overlays/Kearsley.pm
+++ b/src/lib/perl5/COD/Overlays/Kearsley.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2016-04-27 10:28:55 +0300 (Wed, 27 Apr 2016) $
 #$Revision: 4631 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Overlays/Kearsley.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Overlays/Kearsley.pm $
 #-----------------------------------------------------------------------
 #*
 # Constructs the best symmetry operator to superposition two sets of points.
diff --git a/src/lib/perl5/COD/Overlays/Theobald.pm b/src/lib/perl5/COD/Overlays/Theobald.pm
index 7644d65..b28c2b6 100644
--- a/src/lib/perl5/COD/Overlays/Theobald.pm
+++ b/src/lib/perl5/COD/Overlays/Theobald.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2017-02-03 12:30:13 +0200 (Fri, 03 Feb 2017) $
 #$Revision: 4858 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Overlays/Theobald.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Overlays/Theobald.pm $
 #-----------------------------------------------------------------------
 #
 # Calculates the smallest rmds of superposition for two sets of points.
diff --git a/src/lib/perl5/COD/Precision.pm b/src/lib/perl5/COD/Precision.pm
index ce76860..703d51f 100644
--- a/src/lib/perl5/COD/Precision.pm
+++ b/src/lib/perl5/COD/Precision.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Precision.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Precision.pm $
 #------------------------------------------------------------------------
 
 package COD::Precision;
diff --git a/src/lib/perl5/COD/RDF.pm b/src/lib/perl5/COD/RDF.pm
index dc0d419..646a949 100644
--- a/src/lib/perl5/COD/RDF.pm
+++ b/src/lib/perl5/COD/RDF.pm
@@ -2,7 +2,7 @@
 #$Author: andrius $
 #$Date: 2016-10-04 17:17:44 +0300 (Tue, 04 Oct 2016) $ 
 #$Revision: 4715 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/RDF.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/RDF.pm $
 #------------------------------------------------------------------------------
 #*
 #  Common subroutines for RDF generation.
diff --git a/src/lib/perl5/COD/SOptions.pm b/src/lib/perl5/COD/SOptions.pm
index b2a14f1..6485c48 100644
--- a/src/lib/perl5/COD/SOptions.pm
+++ b/src/lib/perl5/COD/SOptions.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2016-01-12 16:22:02 +0200 (Tue, 12 Jan 2016) $ 
 #$Revision: 4529 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/SOptions.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/SOptions.pm $
 #------------------------------------------------------------------------
 #* 
 #  Simple option processing package
diff --git a/src/lib/perl5/COD/SUsage.pm b/src/lib/perl5/COD/SUsage.pm
index 9725c03..9b83a08 100644
--- a/src/lib/perl5/COD/SUsage.pm
+++ b/src/lib/perl5/COD/SUsage.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/SUsage.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/SUsage.pm $
 #------------------------------------------------------------------------
 #*
 #  Simple usage message generator.
diff --git a/src/lib/perl5/COD/Serialise.pm b/src/lib/perl5/COD/Serialise.pm
index 6baca1c..e5a7ad6 100644
--- a/src/lib/perl5/COD/Serialise.pm
+++ b/src/lib/perl5/COD/Serialise.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-12 13:22:42 +0200 (Thu, 12 Nov 2015) $ 
 #$Revision: 4271 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Serialise.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Serialise.pm $
 #------------------------------------------------------------------------
 
 package COD::Serialise;
diff --git a/src/lib/perl5/COD/Spacegroups/Builder.pm b/src/lib/perl5/COD/Spacegroups/Builder.pm
index 8ceeab4..1aeaf6c 100644
--- a/src/lib/perl5/COD/Spacegroups/Builder.pm
+++ b/src/lib/perl5/COD/Spacegroups/Builder.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-08 10:28:29 +0200 (Sun, 08 Nov 2015) $ 
 #$Revision: 4227 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Builder.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Builder.pm $
 #------------------------------------------------------------------------------
 #*
 #  A Perl object to build all spacegroup operators and spacegroup
diff --git a/src/lib/perl5/COD/Spacegroups/Cosets.pm b/src/lib/perl5/COD/Spacegroups/Cosets.pm
index 940b4db..396e9e3 100644
--- a/src/lib/perl5/COD/Spacegroups/Cosets.pm
+++ b/src/lib/perl5/COD/Spacegroups/Cosets.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-11 11:02:34 +0200 (Wed, 11 Nov 2015) $ 
 #$Revision: 4265 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Cosets.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Cosets.pm $
 #------------------------------------------------------------------------------
 #*
 #  Perl package to find cosets of a subgroup in a symmetry group.
diff --git a/src/lib/perl5/COD/Spacegroups/Lookup.pm b/src/lib/perl5/COD/Spacegroups/Lookup.pm
index a1ce374..fc8dc7c 100644
--- a/src/lib/perl5/COD/Spacegroups/Lookup.pm
+++ b/src/lib/perl5/COD/Spacegroups/Lookup.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Lookup.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Lookup.pm $
 #------------------------------------------------------------------------
 #*
 #  Basic functions for space group look up.
diff --git a/src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm b/src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm
index c86fc5c..a2153a6 100644
--- a/src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm
+++ b/src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Lookup/CCP4.pm $
 #------------------------------------------------------------------------
 #* 
 #**
diff --git a/src/lib/perl5/COD/Spacegroups/Lookup/COD.pm b/src/lib/perl5/COD/Spacegroups/Lookup/COD.pm
index c3934eb..e34b01f 100644
--- a/src/lib/perl5/COD/Spacegroups/Lookup/COD.pm
+++ b/src/lib/perl5/COD/Spacegroups/Lookup/COD.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2017-05-18 10:47:52 +0300 (Thu, 18 May 2017) $
 #$Revision: 5273 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Lookup/COD.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Lookup/COD.pm $
 #------------------------------------------------------------------------
 #*
 #**
diff --git a/src/lib/perl5/COD/Spacegroups/Names.pm b/src/lib/perl5/COD/Spacegroups/Names.pm
index 2c65e43..517d757 100644
--- a/src/lib/perl5/COD/Spacegroups/Names.pm
+++ b/src/lib/perl5/COD/Spacegroups/Names.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Names.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Names.pm $
 #------------------------------------------------------------------------
 #* 
 # A list of the spacegroup names with the ITC numbers, long and short
diff --git a/src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm b/src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm
index 28cafb3..0396987 100644
--- a/src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm
+++ b/src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-12-18 13:08:28 +0200 (Fri, 18 Dec 2015) $
 #$Revision: 4486 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Symop/Algebra.pm $
 #-----------------------------------------------------------------------
 #*
 # Basic symmetry operator algebra (addition, multiplication, etc.)
diff --git a/src/lib/perl5/COD/Spacegroups/Symop/Parse.pm b/src/lib/perl5/COD/Spacegroups/Symop/Parse.pm
index c7e8b9e..130dfd2 100644
--- a/src/lib/perl5/COD/Spacegroups/Symop/Parse.pm
+++ b/src/lib/perl5/COD/Spacegroups/Symop/Parse.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------
 #$Author: antanas $
-#$Date: 2015-11-16 16:04:37 +0200 (Mon, 16 Nov 2015) $ 
-#$Revision: 4287 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Symop/Parse.pm $
+#$Date: 2017-07-19 13:31:25 +0300 (Wed, 19 Jul 2017) $ 
+#$Revision: 5470 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Symop/Parse.pm $
 #------------------------------------------------------------------------
 #* 
 #**
@@ -210,17 +210,12 @@ sub is_symop_parsable
         "(?:-|\\+)?$symop_term(?:-|\\+)$symop_term|" .
         "(?:-|\\+)?$symop_term(?:-|\\+)$symop_term(?:-|\\+)$symop_term)";
 
-    if( !defined $symop ) {
-        warn "WARNING, no symmetry operators\n";
+    my $no_spaces = $symop;
+    $no_spaces =~ s/\s//g;
+    if( $no_spaces !~ /^($symop_component,){2}($symop_component)$/i ) {
         $status = 0;
-    } else {
-        my $no_spaces = $symop;
-        $no_spaces =~ s/\s//g;
-        if( $no_spaces !~ /^($symop_component,){2}($symop_component)$/i ) {
-            warn "WARNING, symmetry operator '$symop' could not be parsed\n";
-            $status = 0;
-        }
     }
+
     return $status;
 }
 
diff --git a/src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm b/src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm
index 85709c8..ff9293f 100644
--- a/src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm
+++ b/src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm
@@ -2,7 +2,7 @@
 #$Author: antanas $
 #$Date: 2015-11-09 12:17:48 +0200 (Mon, 09 Nov 2015) $ 
 #$Revision: 4237 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/Spacegroups/Symop/SSGParse.pm $
 #------------------------------------------------------------------------
 #* 
 # Parse symmetry operators describing Superspacegroups (N+1
diff --git a/src/lib/perl5/COD/ToolsVersion.pmin b/src/lib/perl5/COD/ToolsVersion.pmin
index aff5bc8..4a62189 100644
--- a/src/lib/perl5/COD/ToolsVersion.pmin
+++ b/src/lib/perl5/COD/ToolsVersion.pmin
@@ -2,7 +2,7 @@
 #$Author: saulius $
 #$Date: 2017-05-10 20:16:25 +0300 (Wed, 10 May 2017) $ 
 #$Revision: 5243 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/ToolsVersion.pmin $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/ToolsVersion.pmin $
 #------------------------------------------------------------------------
 #*
 #  Module to provide version number for Perl programs.
diff --git a/src/lib/perl5/COD/UserMessage.pm b/src/lib/perl5/COD/UserMessage.pm
index 6a351bf..00efb51 100644
--- a/src/lib/perl5/COD/UserMessage.pm
+++ b/src/lib/perl5/COD/UserMessage.pm
@@ -1,8 +1,8 @@
 #------------------------------------------------------------------------------
-#$Author: andrius $
-#$Date: 2016-10-29 15:14:33 +0300 (Sat, 29 Oct 2016) $ 
-#$Revision: 4764 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/src/lib/perl5/COD/UserMessage.pm $
+#$Author: antanas $
+#$Date: 2017-07-18 18:16:38 +0300 (Tue, 18 Jul 2017) $ 
+#$Revision: 5467 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/src/lib/perl5/COD/UserMessage.pm $
 #------------------------------------------------------------------------------
 #*
 #  Format run time error and warning messages in a uniform way.
@@ -44,7 +44,7 @@ my %message_escape   = ( '&' => '&', ':' => ':', "\n" => '
' );
 
 sub sprint_message($$$$$$@)
 {
-    my ( $program, $filename, $datablock, $errlevel, $message,
+    my ( $program, $filename, $datablock, $err_level, $message,
          $explanation, $line, $column, $line_contents ) = @_;
 
     $message =~ s/\.?\n?$//;
@@ -67,7 +67,7 @@ sub sprint_message($$$$$$@)
                 : "") .
                 (defined $datablock ? " $datablock" : "")
            : "") . ": " .
-           (defined $errlevel ? $errlevel . ", " : "") .
+           (defined $err_level ? $err_level . ", " : "") .
            $message .
            (defined $explanation ? " -- " . $explanation : "") .
            (defined $line_contents ? ":\n" . $line_contents . "\n" .
@@ -79,9 +79,9 @@ sub sprint_message($$$$$$@)
 
 sub print_message($$$$$$@)
 {
-    my ( $program, $filename, $datablock, $errlevel, $message,
+    my ( $program, $filename, $datablock, $err_level, $message,
          $explanation, $line, $column, $line_contents ) = @_;
-    print STDERR sprint_message( $program, $filename, $datablock, $errlevel,
+    print STDERR sprint_message( $program, $filename, $datablock, $err_level,
                                  $message, $explanation, $line, $column,
                                  $line_contents );
 }
@@ -117,10 +117,10 @@ sub parse_message($)
         return {
             program      => unescape_meta($1, \%program_escape ),
             filename     => unescape_meta($2, \%filename_escape),
-            line         => $3,
-            column       => $4,
-            datablock    => unescape_meta($5, \%datablock_escape),
-            errlevel     => $6,
+            line_no      => $3,
+            column_no    => $4,
+            add_pos      => unescape_meta($5, \%datablock_escape),
+            err_level    => $6,
             message      => unescape_meta($7, \%message_escape),
             line_content => unprefix_multiline($8)
         };
diff --git a/tests/cases/cif2cod_047.opt b/tests/cases/cif2cod_047.opt
new file mode 100644
index 0000000..78d9ccb
--- /dev/null
+++ b/tests/cases/cif2cod_047.opt
@@ -0,0 +1 @@
+--column "column1 column2, column3" -h < /dev/null
diff --git a/tests/cases/cif_cod_check_112.inp b/tests/cases/cif_cod_check_112.inp
new file mode 120000
index 0000000..19e6609
--- /dev/null
+++ b/tests/cases/cif_cod_check_112.inp
@@ -0,0 +1 @@
+../inputs/malformed_symop_new_sym_tag.cif
\ No newline at end of file
diff --git a/tests/cases/cif_cod_check_112.opt b/tests/cases/cif_cod_check_112.opt
new file mode 100644
index 0000000..3e228c2
--- /dev/null
+++ b/tests/cases/cif_cod_check_112.opt
@@ -0,0 +1 @@
+--check-only-symmetry-operators
diff --git a/tests/cases/cif_cod_check_112.tst b/tests/cases/cif_cod_check_112.tst
new file mode 100644
index 0000000..edb0b32
--- /dev/null
+++ b/tests/cases/cif_cod_check_112.tst
@@ -0,0 +1,2 @@
+Tests if the _space_group_symop_operation_xyz data item is handled the same
+way as the _symmetry_equiv_pos_as_xyz data item.
diff --git a/tests/cases/cif_cod_check_113.inp b/tests/cases/cif_cod_check_113.inp
new file mode 120000
index 0000000..3dc3bf5
--- /dev/null
+++ b/tests/cases/cif_cod_check_113.inp
@@ -0,0 +1 @@
+../inputs/new_symop_tag.cif
\ No newline at end of file
diff --git a/tests/cases/cif_cod_check_113.tst b/tests/cases/cif_cod_check_113.tst
new file mode 100644
index 0000000..69aa392
--- /dev/null
+++ b/tests/cases/cif_cod_check_113.tst
@@ -0,0 +1,3 @@
+Tests if the _space_group_symop_operation_xyz data item is handled the same
+way as the _symmetry_equiv_pos_as_xyz data item in the check_space_group_info()
+subroutine.
diff --git a/tests/cases/cif_filter_043.opt b/tests/cases/cif_filter_043.opt
index 194d4c6..79d3178 100644
--- a/tests/cases/cif_filter_043.opt
+++ b/tests/cases/cif_filter_043.opt
@@ -1 +1 @@
---original ../tests/inputs/ja063963ssi20060606_082513.cif
+--original-filename ../tests/inputs/ja063963ssi20060606_082513.cif
diff --git a/tests/cases/cif_filter_045.opt b/tests/cases/cif_filter_045.opt
index 2ff394a..4d5e7e9 100644
--- a/tests/cases/cif_filter_045.opt
+++ b/tests/cases/cif_filter_045.opt
@@ -1 +1 @@
---original-file tests/inputs/jo030173h_01.cif
+--original-filename tests/inputs/jo030173h_01.cif
diff --git a/tests/cases/cif_filter_046.opt b/tests/cases/cif_filter_046.opt
index 030136d..e0fd7b2 100644
--- a/tests/cases/cif_filter_046.opt
+++ b/tests/cases/cif_filter_046.opt
@@ -1 +1 @@
---original-file tests/inputs/jo030173h_01-double-quotes.cif
+--original-filename tests/inputs/jo030173h_01-double-quotes.cif
diff --git a/tests/cases/cif_filter_181.inp b/tests/cases/cif_filter_181.inp
new file mode 120000
index 0000000..9c5083d
--- /dev/null
+++ b/tests/cases/cif_filter_181.inp
@@ -0,0 +1 @@
+../inputs/generic.cif
\ No newline at end of file
diff --git a/tests/cases/cif_filter_181.opt b/tests/cases/cif_filter_181.opt
new file mode 100644
index 0000000..6c589fc
--- /dev/null
+++ b/tests/cases/cif_filter_181.opt
@@ -0,0 +1 @@
+--use-all --database-code-tag _rod_database.code --start-data-block-number 0000001
diff --git a/tests/cases/cif_merge_007.opt b/tests/cases/cif_merge_007.opt
new file mode 100644
index 0000000..15d7308
--- /dev/null
+++ b/tests/cases/cif_merge_007.opt
@@ -0,0 +1 @@
+--override-all tests/inputs/merge_2a.cif tests/inputs/merge_7b.cif
diff --git a/tests/cases/cif_sort_atoms_001.inp b/tests/cases/cif_sort_atoms_001.inp
new file mode 120000
index 0000000..5a2075e
--- /dev/null
+++ b/tests/cases/cif_sort_atoms_001.inp
@@ -0,0 +1 @@
+../inputs/1000000.cif
\ No newline at end of file
diff --git a/tests/cases/cif_sort_atoms_002.inp b/tests/cases/cif_sort_atoms_002.inp
new file mode 120000
index 0000000..5a2075e
--- /dev/null
+++ b/tests/cases/cif_sort_atoms_002.inp
@@ -0,0 +1 @@
+../inputs/1000000.cif
\ No newline at end of file
diff --git a/tests/cases/cif_sort_atoms_002.opt b/tests/cases/cif_sort_atoms_002.opt
new file mode 100644
index 0000000..54fadfe
--- /dev/null
+++ b/tests/cases/cif_sort_atoms_002.opt
@@ -0,0 +1 @@
+--reverse
diff --git a/tests/cases/cif_sort_atoms_003.inp b/tests/cases/cif_sort_atoms_003.inp
new file mode 120000
index 0000000..5a2075e
--- /dev/null
+++ b/tests/cases/cif_sort_atoms_003.inp
@@ -0,0 +1 @@
+../inputs/1000000.cif
\ No newline at end of file
diff --git a/tests/cases/cif_sort_atoms_003.opt b/tests/cases/cif_sort_atoms_003.opt
new file mode 100644
index 0000000..aa80cc6
--- /dev/null
+++ b/tests/cases/cif_sort_atoms_003.opt
@@ -0,0 +1 @@
+--atomic -r
diff --git a/tests/cases/cif_split_004.inp b/tests/cases/cif_split_004.inp
new file mode 120000
index 0000000..503813d
--- /dev/null
+++ b/tests/cases/cif_split_004.inp
@@ -0,0 +1 @@
+../inputs/Burford_2000_p152_crude.cif
\ No newline at end of file
diff --git a/tests/cases/cif_split_004.opt b/tests/cases/cif_split_004.opt
new file mode 100644
index 0000000..3abe40e
--- /dev/null
+++ b/tests/cases/cif_split_004.opt
@@ -0,0 +1 @@
+--output-prefixed --do-not-split-global-data-block
diff --git a/tests/cases/cif_tcod_tree_004.inp b/tests/cases/cif_tcod_tree_004.inp
new file mode 120000
index 0000000..a6536ad
--- /dev/null
+++ b/tests/cases/cif_tcod_tree_004.inp
@@ -0,0 +1 @@
+../inputs/aiida_exported_gzipped.cif
\ No newline at end of file
diff --git a/tests/cases/cif_tcod_tree_004.opt b/tests/cases/cif_tcod_tree_004.opt
new file mode 100644
index 0000000..df587dd
--- /dev/null
+++ b/tests/cases/cif_tcod_tree_004.opt
@@ -0,0 +1 @@
+--dry-run --list --no-outputs
diff --git a/tests/cases/cif_validate_039.inp b/tests/cases/cif_validate_039.inp
new file mode 120000
index 0000000..5a07dde
--- /dev/null
+++ b/tests/cases/cif_validate_039.inp
@@ -0,0 +1 @@
+../inputs/empty.cif
\ No newline at end of file
diff --git a/tests/cases/cif_validate_039.opt b/tests/cases/cif_validate_039.opt
new file mode 100644
index 0000000..9252b7c
--- /dev/null
+++ b/tests/cases/cif_validate_039.opt
@@ -0,0 +1 @@
+--dictionaries tests/inputs/DDLm_3.11.09.dic
diff --git a/tests/cases/cod_predeposition_check_033.chk b/tests/cases/cod_predeposition_check_033.chk
new file mode 120000
index 0000000..6fc8444
--- /dev/null
+++ b/tests/cases/cod_predeposition_check_033.chk
@@ -0,0 +1 @@
+cif_cod_numbers_001.chk
\ No newline at end of file
diff --git a/tests/inputs/10000001.cif b/tests/inputs/10000001.cif
index a97591e..1641b5e 100644
--- a/tests/inputs/10000001.cif
+++ b/tests/inputs/10000001.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-05-07 22:02:21 +0300 (Tue, 07 May 2013) $
 #$Revision: 2178 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/10000001.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/10000001.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000002-test-hall.cif b/tests/inputs/1000002-test-hall.cif
index 13d14e1..2cdac1a 100644
--- a/tests/inputs/1000002-test-hall.cif
+++ b/tests/inputs/1000002-test-hall.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000002-test-hall.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000002-test-hall.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000002-test-hm.cif b/tests/inputs/1000002-test-hm.cif
index 5dd551e..85a65c5 100644
--- a/tests/inputs/1000002-test-hm.cif
+++ b/tests/inputs/1000002-test-hm.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000002-test-hm.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000002-test-hm.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000002-test-hm2.cif b/tests/inputs/1000002-test-hm2.cif
index ddce9c2..72dbc09 100644
--- a/tests/inputs/1000002-test-hm2.cif
+++ b/tests/inputs/1000002-test-hm2.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000002-test-hm2.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000002-test-hm2.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000002-test-symop.cif b/tests/inputs/1000002-test-symop.cif
index 922553a..d2de725 100644
--- a/tests/inputs/1000002-test-symop.cif
+++ b/tests/inputs/1000002-test-symop.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000002-test-symop.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000002-test-symop.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000023.cif b/tests/inputs/1000023.cif
index ce2c481..ce97344 100644
--- a/tests/inputs/1000023.cif
+++ b/tests/inputs/1000023.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-05-17 13:12:17 +0300 (Thu, 17 May 2012) $
 #$Revision: 2095 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000023.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000023.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000026-MgB2.cif b/tests/inputs/1000026-MgB2.cif
index eefccf4..dca1717 100644
--- a/tests/inputs/1000026-MgB2.cif
+++ b/tests/inputs/1000026-MgB2.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-02-03 13:02:37 +0200 (Fri, 03 Feb 2012) $
 #$Revision: 1975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000026-MgB2.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000026-MgB2.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000035.cif b/tests/inputs/1000035.cif
index a187255..fa599aa 100644
--- a/tests/inputs/1000035.cif
+++ b/tests/inputs/1000035.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-25 12:06:58 +0300 (Thu, 25 Jun 2009) $
 #$Revision: 887 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000035.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000035.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000039.cif b/tests/inputs/1000039.cif
index b6fb432..399a351 100644
--- a/tests/inputs/1000039.cif
+++ b/tests/inputs/1000039.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-06-01 12:41:02 +0300 (Sun, 01 Jun 2014) $
 #$Revision: 2708 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000039.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000039.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000054.cif b/tests/inputs/1000054.cif
index 3a9af60..0b2ef6e 100644
--- a/tests/inputs/1000054.cif
+++ b/tests/inputs/1000054.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-03-25 12:26:33 +0200 (Tue, 25 Mar 2014) $
 #$Revision: 2593 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000054.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000054.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000055-unrecognised-spacegroup.cif b/tests/inputs/1000055-unrecognised-spacegroup.cif
index ae0756f..8e7ffa9 100644
--- a/tests/inputs/1000055-unrecognised-spacegroup.cif
+++ b/tests/inputs/1000055-unrecognised-spacegroup.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-03-25 12:26:33 +0200 (Tue, 25 Mar 2014) $
 #$Revision: 2593 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000055-unrecognised-spacegroup.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000055-unrecognised-spacegroup.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000125-cell-diff.cif b/tests/inputs/1000125-cell-diff.cif
index fed9586..c93ad10 100644
--- a/tests/inputs/1000125-cell-diff.cif
+++ b/tests/inputs/1000125-cell-diff.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-25 14:58:02 +0300 (Sun, 25 Apr 2010) $
 #$Revision: 1263 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000125-cell-diff.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000125-cell-diff.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1000451.cif b/tests/inputs/1000451.cif
index 19d4523..da05974 100644
--- a/tests/inputs/1000451.cif
+++ b/tests/inputs/1000451.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-09-10 13:09:39 +0300 (Thu, 10 Sep 2009) $
 #$Revision: 933 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1000451.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1000451.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1001012-no-cell.cif b/tests/inputs/1001012-no-cell.cif
index 68f0419..c68142d 100644
--- a/tests/inputs/1001012-no-cell.cif
+++ b/tests/inputs/1001012-no-cell.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-02 15:56:56 +0300 (Sun, 02 May 2010) $
 #$Revision: 1267 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1001012-no-cell.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1001012-no-cell.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1001627-spacegroup-A-1.cif b/tests/inputs/1001627-spacegroup-A-1.cif
index 57409cf..63da106 100644
--- a/tests/inputs/1001627-spacegroup-A-1.cif
+++ b/tests/inputs/1001627-spacegroup-A-1.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-10 21:03:07 +0300 (Sat, 10 Apr 2010) $
 #$Revision: 1239 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1001627-spacegroup-A-1.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1001627-spacegroup-A-1.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1004001-disorder.cif b/tests/inputs/1004001-disorder.cif
index b19d95f..f807e20 100644
--- a/tests/inputs/1004001-disorder.cif
+++ b/tests/inputs/1004001-disorder.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1004001-disorder.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1004001-disorder.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1004001.cif b/tests/inputs/1004001.cif
index e525f7a..2455ad8 100644
--- a/tests/inputs/1004001.cif
+++ b/tests/inputs/1004001.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-16 13:36:41 +0300 (Tue, 16 Jun 2009) $
 #$Revision: 815 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1004001.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1004001.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1004008-90-dot.cif b/tests/inputs/1004008-90-dot.cif
index e4e32fc..6a77e63 100644
--- a/tests/inputs/1004008-90-dot.cif
+++ b/tests/inputs/1004008-90-dot.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-21 14:46:05 +0300 (Wed, 21 Apr 2010) $
 #$Revision: 1250 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1004008-90-dot.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1004008-90-dot.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1008449.cif b/tests/inputs/1008449.cif
index 8f157f9..d0198d1 100644
--- a/tests/inputs/1008449.cif
+++ b/tests/inputs/1008449.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-06-17 14:22:50 +0300 (Tue, 17 Jun 2014) $
 #$Revision: 2725 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1008449.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1008449.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1010050-zero-sigmas.cif b/tests/inputs/1010050-zero-sigmas.cif
index 25ce78a..5bcd616 100644
--- a/tests/inputs/1010050-zero-sigmas.cif
+++ b/tests/inputs/1010050-zero-sigmas.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-17 20:34:43 +0200 (Wed, 17 Mar 2010) $
 #$Revision: 1184 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1010050-zero-sigmas.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1010050-zero-sigmas.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1010800-no-spcgrp-info.cif b/tests/inputs/1010800-no-spcgrp-info.cif
index 066af07..5b53fcf 100644
--- a/tests/inputs/1010800-no-spcgrp-info.cif
+++ b/tests/inputs/1010800-no-spcgrp-info.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-06 16:23:25 +0200 (Sat, 06 Mar 2010) $
 #$Revision: 1139 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1010800-no-spcgrp-info.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1010800-no-spcgrp-info.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1011060-graphite-atom-label.cif b/tests/inputs/1011060-graphite-atom-label.cif
index fc76a78..d52143c 100644
--- a/tests/inputs/1011060-graphite-atom-label.cif
+++ b/tests/inputs/1011060-graphite-atom-label.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1011060-graphite-atom-label.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1011060-graphite-atom-label.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1011060-graphite-atom-type-symbol.cif b/tests/inputs/1011060-graphite-atom-type-symbol.cif
index cca16a7..320e51c 100644
--- a/tests/inputs/1011060-graphite-atom-type-symbol.cif
+++ b/tests/inputs/1011060-graphite-atom-type-symbol.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1011060-graphite-atom-type-symbol.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1011060-graphite-atom-type-symbol.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1011060-graphite-err.cif b/tests/inputs/1011060-graphite-err.cif
index 12f127d..cbff637 100644
--- a/tests/inputs/1011060-graphite-err.cif
+++ b/tests/inputs/1011060-graphite-err.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1011060-graphite-err.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1011060-graphite-err.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1011060-graphite.cif b/tests/inputs/1011060-graphite.cif
index 788afd0..5d2dfcd 100644
--- a/tests/inputs/1011060-graphite.cif
+++ b/tests/inputs/1011060-graphite.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1011060-graphite.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1011060-graphite.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1100107-spacegroup-with-underscore.cif b/tests/inputs/1100107-spacegroup-with-underscore.cif
index 9013e60..44ce7bb 100644
--- a/tests/inputs/1100107-spacegroup-with-underscore.cif
+++ b/tests/inputs/1100107-spacegroup-with-underscore.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-11-16 10:00:57 +0200 (Mon, 16 Nov 2009) $
 #$Revision: 971 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1100107-spacegroup-with-underscore.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1100107-spacegroup-with-underscore.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1100709-uqstring-brackets.cif b/tests/inputs/1100709-uqstring-brackets.cif
index 29bc262..ac2b243 100644
--- a/tests/inputs/1100709-uqstring-brackets.cif
+++ b/tests/inputs/1100709-uqstring-brackets.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-11-23 12:19:46 +0200 (Mon, 23 Nov 2009) $
 #$Revision: 989 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1100709-uqstring-brackets.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1100709-uqstring-brackets.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1100910-simple-fractions.cif b/tests/inputs/1100910-simple-fractions.cif
index f1a9234..ae03f09 100644
--- a/tests/inputs/1100910-simple-fractions.cif
+++ b/tests/inputs/1100910-simple-fractions.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-09 15:57:16 +0200 (Wed, 09 Dec 2009) $
 #$Revision: 1012 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1100910-simple-fractions.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1100910-simple-fractions.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1100914-incorrect-weighting-scheme.cif b/tests/inputs/1100914-incorrect-weighting-scheme.cif
index 6394cff..70fdf0e 100644
--- a/tests/inputs/1100914-incorrect-weighting-scheme.cif
+++ b/tests/inputs/1100914-incorrect-weighting-scheme.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-03-26 12:43:51 +0200 (Thu, 26 Mar 2015) $
 #$Revision: 3140 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1100914-incorrect-weighting-scheme.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1100914-incorrect-weighting-scheme.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1502949.cif b/tests/inputs/1502949.cif
index 6b6a59a..0af134b 100644
--- a/tests/inputs/1502949.cif
+++ b/tests/inputs/1502949.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-04-20 14:50:04 +0300 (Sun, 20 Apr 2014) $
 #$Revision: 2614 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1502949.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1502949.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/1516136.cif b/tests/inputs/1516136.cif
index 028a9e7..d314814 100644
--- a/tests/inputs/1516136.cif
+++ b/tests/inputs/1516136.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-10-04 11:30:31 +0300 (Sat, 04 Oct 2014) $
 #$Revision: 2852 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/1516136.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/1516136.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000000-cif-special-values.cif b/tests/inputs/2000000-cif-special-values.cif
index 86145ef..5b792b1 100644
--- a/tests/inputs/2000000-cif-special-values.cif
+++ b/tests/inputs/2000000-cif-special-values.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-02-19 14:26:16 +0200 (Thu, 19 Feb 2015) $
 #$Revision: 3074 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000000-cif-special-values.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000000-cif-special-values.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000000_e_kelvins.cif b/tests/inputs/2000000_e_kelvins.cif
index 55c669b..4d56d7d 100644
--- a/tests/inputs/2000000_e_kelvins.cif
+++ b/tests/inputs/2000000_e_kelvins.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-06-14 12:50:00 +0300 (Tue, 14 Jun 2011) $
 #$Revision: 1704 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000000_e_kelvins.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000000_e_kelvins.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000000_e_temperature.cif b/tests/inputs/2000000_e_temperature.cif
index 19f6500..48354fd 100644
--- a/tests/inputs/2000000_e_temperature.cif
+++ b/tests/inputs/2000000_e_temperature.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-06-14 13:01:14 +0300 (Tue, 14 Jun 2011) $
 #$Revision: 1705 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000000_e_temperature.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000000_e_temperature.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/20000097.cif b/tests/inputs/20000097.cif
index 8a286bb..9ed12c4 100644
--- a/tests/inputs/20000097.cif
+++ b/tests/inputs/20000097.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-07-15 11:32:02 +0300 (Mon, 15 Jul 2013) $
 #$Revision: 2193 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/20000097.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/20000097.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000056.cif b/tests/inputs/2000056.cif
index 4e634d0..40b06dd 100644
--- a/tests/inputs/2000056.cif
+++ b/tests/inputs/2000056.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-20 17:18:09 +0300 (Fri, 20 Apr 2012) $
 #$Revision: 2056 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000056.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000056.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000080-molecule.cif b/tests/inputs/2000080-molecule.cif
index f536c4f..96b14f0 100644
--- a/tests/inputs/2000080-molecule.cif
+++ b/tests/inputs/2000080-molecule.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000080-molecule.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000080-molecule.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000135.cif b/tests/inputs/2000135.cif
index 80ebb59..fbfb1ae 100644
--- a/tests/inputs/2000135.cif
+++ b/tests/inputs/2000135.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-11-01 12:46:50 +0200 (Fri, 01 Nov 2013) $
 #$Revision: 2348 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000135.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000135.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000318-r91933.cif b/tests/inputs/2000318-r91933.cif
index 0592ad7..39cc546 100644
--- a/tests/inputs/2000318-r91933.cif
+++ b/tests/inputs/2000318-r91933.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-06-18 10:10:15 +0300 (Wed, 18 Jun 2014) $
 #$Revision: 2731 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000318-r91933.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000318-r91933.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000373-merge-limits.cif b/tests/inputs/2000373-merge-limits.cif
index 34c59da..54c4a4e 100644
--- a/tests/inputs/2000373-merge-limits.cif
+++ b/tests/inputs/2000373-merge-limits.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-08 13:36:26 +0200 (Tue, 08 Mar 2011) $
 #$Revision: 1587 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000373-merge-limits.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000373-merge-limits.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000373-modified-merge-limits.cif b/tests/inputs/2000373-modified-merge-limits.cif
index 007f4f7..3da1e91 100644
--- a/tests/inputs/2000373-modified-merge-limits.cif
+++ b/tests/inputs/2000373-modified-merge-limits.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-08 13:36:26 +0200 (Tue, 08 Mar 2011) $
 #$Revision: 1587 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000373-modified-merge-limits.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000373-modified-merge-limits.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000488-reset-limits.cif b/tests/inputs/2000488-reset-limits.cif
index 86bff59..2582cb0 100644
--- a/tests/inputs/2000488-reset-limits.cif
+++ b/tests/inputs/2000488-reset-limits.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-08 09:52:22 +0200 (Tue, 08 Mar 2011) $
 #$Revision: 1586 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000488-reset-limits.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000488-reset-limits.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000507.cif b/tests/inputs/2000507.cif
index 53d5be8..147d553 100644
--- a/tests/inputs/2000507.cif
+++ b/tests/inputs/2000507.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-25 12:36:24 +0300 (Wed, 25 Apr 2012) $
 #$Revision: 2073 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000507.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000507.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000583.cif b/tests/inputs/2000583.cif
index 0883c55..c2782cf 100644
--- a/tests/inputs/2000583.cif
+++ b/tests/inputs/2000583.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-07-25 13:10:07 +0300 (Mon, 25 Jul 2011) $
 #$Revision: 1719 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000583.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000583.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000724.cif b/tests/inputs/2000724.cif
index 1fe893f..30c92af 100644
--- a/tests/inputs/2000724.cif
+++ b/tests/inputs/2000724.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000724.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000724.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2000728-atom-type-questionmarks.cif b/tests/inputs/2000728-atom-type-questionmarks.cif
index 26afce2..5a33c5c 100644
--- a/tests/inputs/2000728-atom-type-questionmarks.cif
+++ b/tests/inputs/2000728-atom-type-questionmarks.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-26 13:48:40 +0300 (Fri, 26 Jun 2009) $
 #$Revision: 892 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2000728-atom-type-questionmarks.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2000728-atom-type-questionmarks.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001207-abs-corr-with-biblio.cif b/tests/inputs/2001207-abs-corr-with-biblio.cif
index ec6c32d..79fde2b 100644
--- a/tests/inputs/2001207-abs-corr-with-biblio.cif
+++ b/tests/inputs/2001207-abs-corr-with-biblio.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-12-29 12:17:09 +0200 (Wed, 29 Dec 2010) $
 #$Revision: 1526 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001207-abs-corr-with-biblio.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001207-abs-corr-with-biblio.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001253-not-numeric-limits.cif b/tests/inputs/2001253-not-numeric-limits.cif
index 2b6c01a..33fa368 100644
--- a/tests/inputs/2001253-not-numeric-limits.cif
+++ b/tests/inputs/2001253-not-numeric-limits.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-08 16:18:37 +0200 (Tue, 08 Mar 2011) $
 #$Revision: 1589 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001253-not-numeric-limits.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001253-not-numeric-limits.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001460.cif b/tests/inputs/2001460.cif
index 7563a03..83200da 100644
--- a/tests/inputs/2001460.cif
+++ b/tests/inputs/2001460.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-25 13:41:23 +0300 (Wed, 25 Apr 2012) $
 #$Revision: 2074 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001460.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001460.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001495-incorrect-weighting-scheme.cif b/tests/inputs/2001495-incorrect-weighting-scheme.cif
index db453b1..9fae1b5 100644
--- a/tests/inputs/2001495-incorrect-weighting-scheme.cif
+++ b/tests/inputs/2001495-incorrect-weighting-scheme.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-03-26 12:43:51 +0200 (Thu, 26 Mar 2015) $
 #$Revision: 3140 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001495-incorrect-weighting-scheme.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001495-incorrect-weighting-scheme.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001811-googness-of-fit.cif b/tests/inputs/2001811-googness-of-fit.cif
index 9890721..df95069 100644
--- a/tests/inputs/2001811-googness-of-fit.cif
+++ b/tests/inputs/2001811-googness-of-fit.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-02 13:42:01 +0200 (Wed, 02 Mar 2011) $
 #$Revision: 1576 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001811-googness-of-fit.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001811-googness-of-fit.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001811-with-T.cif b/tests/inputs/2001811-with-T.cif
index 8abef66..c2cb78c 100644
--- a/tests/inputs/2001811-with-T.cif
+++ b/tests/inputs/2001811-with-T.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-11-13 15:01:10 +0200 (Fri, 13 Nov 2009) $
 #$Revision: 952 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001811-with-T.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001811-with-T.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2001811_new_line.cif b/tests/inputs/2001811_new_line.cif
index f30ba60..e726b85 100644
--- a/tests/inputs/2001811_new_line.cif
+++ b/tests/inputs/2001811_new_line.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-06-07 13:41:20 +0300 (Tue, 07 Jun 2011) $
 #$Revision: 1698 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2001811_new_line.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2001811_new_line.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2002857-cif_molecule-deep-recursion.cif b/tests/inputs/2002857-cif_molecule-deep-recursion.cif
index 2bc8a88..659c730 100644
--- a/tests/inputs/2002857-cif_molecule-deep-recursion.cif
+++ b/tests/inputs/2002857-cif_molecule-deep-recursion.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-24 15:16:36 +0300 (Wed, 24 Jun 2009) $
 #$Revision: 881 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2002857-cif_molecule-deep-recursion.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2002857-cif_molecule-deep-recursion.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2003003.cif b/tests/inputs/2003003.cif
index 118b34f..b3b8af5 100644
--- a/tests/inputs/2003003.cif
+++ b/tests/inputs/2003003.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-09-07 10:00:51 +0300 (Mon, 07 Sep 2009) $
 #$Revision: 927 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2003003.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2003003.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2003005.cif b/tests/inputs/2003005.cif
index e071e49..ae73209 100644
--- a/tests/inputs/2003005.cif
+++ b/tests/inputs/2003005.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-12-21 16:34:56 +0200 (Tue, 21 Dec 2010) $
 #$Revision: 1525 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2003005.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2003005.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2003076-spacegroup-C1.cif b/tests/inputs/2003076-spacegroup-C1.cif
index ab3d659..8de6c27 100644
--- a/tests/inputs/2003076-spacegroup-C1.cif
+++ b/tests/inputs/2003076-spacegroup-C1.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-10 21:13:50 +0300 (Sat, 10 Apr 2010) $
 #$Revision: 1241 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2003076-spacegroup-C1.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2003076-spacegroup-C1.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2003526-r-factor-with-esd.cif b/tests/inputs/2003526-r-factor-with-esd.cif
index dd483f5..1de81aa 100644
--- a/tests/inputs/2003526-r-factor-with-esd.cif
+++ b/tests/inputs/2003526-r-factor-with-esd.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-10 12:05:24 +0200 (Thu, 10 Mar 2011) $
 #$Revision: 1612 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2003526-r-factor-with-esd.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2003526-r-factor-with-esd.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2003757-formula-C12_B_Cl_F10.cif b/tests/inputs/2003757-formula-C12_B_Cl_F10.cif
index bb5a494..b20310a 100644
--- a/tests/inputs/2003757-formula-C12_B_Cl_F10.cif
+++ b/tests/inputs/2003757-formula-C12_B_Cl_F10.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-25 13:51:04 +0300 (Thu, 25 Jun 2009) $
 #$Revision: 890 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2003757-formula-C12_B_Cl_F10.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2003757-formula-C12_B_Cl_F10.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2003896-undefined-goodness-fit.cif b/tests/inputs/2003896-undefined-goodness-fit.cif
index 9799c8e..93b557f 100644
--- a/tests/inputs/2003896-undefined-goodness-fit.cif
+++ b/tests/inputs/2003896-undefined-goodness-fit.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-09 15:22:16 +0200 (Wed, 09 Mar 2011) $
 #$Revision: 1600 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2003896-undefined-goodness-fit.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2003896-undefined-goodness-fit.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2004198-no-cell-angles.cif b/tests/inputs/2004198-no-cell-angles.cif
index 8f23a02..8b54743 100644
--- a/tests/inputs/2004198-no-cell-angles.cif
+++ b/tests/inputs/2004198-no-cell-angles.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-09-07 12:03:26 +0300 (Wed, 07 Sep 2011) $
 #$Revision: 1726 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2004198-no-cell-angles.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2004198-no-cell-angles.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2004325-cell-questionmark.cif b/tests/inputs/2004325-cell-questionmark.cif
index 64b86ae..7983376 100644
--- a/tests/inputs/2004325-cell-questionmark.cif
+++ b/tests/inputs/2004325-cell-questionmark.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-17 19:43:09 +0200 (Wed, 17 Mar 2010) $
 #$Revision: 1182 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2004325-cell-questionmark.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2004325-cell-questionmark.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2004650.cif b/tests/inputs/2004650.cif
index 10e1191..de1ccf3 100644
--- a/tests/inputs/2004650.cif
+++ b/tests/inputs/2004650.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-17 14:01:18 +0300 (Mon, 17 May 2010) $
 #$Revision: 1275 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2004650.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2004650.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2005372-atom-name-with-spaces.cif b/tests/inputs/2005372-atom-name-with-spaces.cif
index 6eea3f5..b90d192 100644
--- a/tests/inputs/2005372-atom-name-with-spaces.cif
+++ b/tests/inputs/2005372-atom-name-with-spaces.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2017-02-06 21:24:22 +0200 (Mon, 06 Feb 2017) $
 #$Revision: 4906 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2005372-atom-name-with-spaces.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2005372-atom-name-with-spaces.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2006132.cif b/tests/inputs/2006132.cif
index f32ab27..5295aa1 100644
--- a/tests/inputs/2006132.cif
+++ b/tests/inputs/2006132.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-18 16:32:51 +0300 (Fri, 18 Apr 2008) $
 #$Revision: 458 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2006132.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2006132.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2007300.cif b/tests/inputs/2007300.cif
index 81e5632..2ec8c7e 100644
--- a/tests/inputs/2007300.cif
+++ b/tests/inputs/2007300.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-03-20 15:55:49 +0200 (Fri, 20 Mar 2015) $
 #$Revision: 3130 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2007300.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2007300.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2008009-set1.cif b/tests/inputs/2008009-set1.cif
index fc3da85..5bb1c3a 100644
--- a/tests/inputs/2008009-set1.cif
+++ b/tests/inputs/2008009-set1.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-07-08 15:43:23 +0300 (Fri, 08 Jul 2011) $
 #$Revision: 1714 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2008009-set1.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2008009-set1.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2009306-xyz-simple-fract.cif b/tests/inputs/2009306-xyz-simple-fract.cif
index 7a22d16..fc15293 100644
--- a/tests/inputs/2009306-xyz-simple-fract.cif
+++ b/tests/inputs/2009306-xyz-simple-fract.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 10:36:46 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1014 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2009306-xyz-simple-fract.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2009306-xyz-simple-fract.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2009397-corrected-symops.cif b/tests/inputs/2009397-corrected-symops.cif
index f8cb202..effd954 100644
--- a/tests/inputs/2009397-corrected-symops.cif
+++ b/tests/inputs/2009397-corrected-symops.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-07-12 13:05:51 +0300 (Sat, 12 Jul 2008) $
 #$Revision: 570 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2009397-corrected-symops.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2009397-corrected-symops.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2009397-syntax-error.cif b/tests/inputs/2009397-syntax-error.cif
index 0338ddf..66cfb9d 100644
--- a/tests/inputs/2009397-syntax-error.cif
+++ b/tests/inputs/2009397-syntax-error.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-07-11 23:49:26 +0300 (Fri, 11 Jul 2008) $
 #$Revision: 569 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2009397-syntax-error.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2009397-syntax-error.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2009397.cif b/tests/inputs/2009397.cif
index a30439b..8edf9bf 100644
--- a/tests/inputs/2009397.cif
+++ b/tests/inputs/2009397.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-18 16:02:51 +0300 (Fri, 18 Apr 2008) $
 #$Revision: 457 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2009397.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2009397.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2009480.cif b/tests/inputs/2009480.cif
index 47c5528..06fede8 100644
--- a/tests/inputs/2009480.cif
+++ b/tests/inputs/2009480.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-17 14:01:18 +0300 (Mon, 17 May 2010) $
 #$Revision: 1275 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2009480.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2009480.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2009901.cif b/tests/inputs/2009901.cif
index d4dcb15..1271fd0 100644
--- a/tests/inputs/2009901.cif
+++ b/tests/inputs/2009901.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-11-13 21:38:03 +0200 (Wed, 13 Nov 2013) $
 #$Revision: 2368 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2009901.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2009901.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2010359.cif b/tests/inputs/2010359.cif
index eed653e..7a56c41 100644
--- a/tests/inputs/2010359.cif
+++ b/tests/inputs/2010359.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-17 17:21:53 +0300 (Mon, 17 May 2010) $
 #$Revision: 1276 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2010359.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2010359.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2010442-Uiso-value-bug.cif b/tests/inputs/2010442-Uiso-value-bug.cif
index 96d140c..748d177 100644
--- a/tests/inputs/2010442-Uiso-value-bug.cif
+++ b/tests/inputs/2010442-Uiso-value-bug.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-19 17:17:17 +0200 (Fri, 19 Feb 2010) $
 #$Revision: 1124 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2010442-Uiso-value-bug.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2010442-Uiso-value-bug.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2010787.cif b/tests/inputs/2010787.cif
index 62ad201..096eae9 100644
--- a/tests/inputs/2010787.cif
+++ b/tests/inputs/2010787.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-25 15:16:02 +0300 (Wed, 25 Apr 2012) $
 #$Revision: 2075 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2010787.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2010787.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2011406-xy-simple-fract.cif b/tests/inputs/2011406-xy-simple-fract.cif
index a2dc697..35894ad 100644
--- a/tests/inputs/2011406-xy-simple-fract.cif
+++ b/tests/inputs/2011406-xy-simple-fract.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 10:36:46 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1014 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2011406-xy-simple-fract.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2011406-xy-simple-fract.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2014244.cif b/tests/inputs/2014244.cif
index 0d515d9..dbddf73 100644
--- a/tests/inputs/2014244.cif
+++ b/tests/inputs/2014244.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-24 12:53:52 +0300 (Wed, 24 Jun 2009) $
 #$Revision: 877 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2014244.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2014244.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2015717-long-title.cif b/tests/inputs/2015717-long-title.cif
index 8a75d6a..278ecab 100644
--- a/tests/inputs/2015717-long-title.cif
+++ b/tests/inputs/2015717-long-title.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-03-24 20:53:18 +0200 (Mon, 24 Mar 2008) $
 #$Revision: 431 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2015717-long-title.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2015717-long-title.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2016470-long-title.cif b/tests/inputs/2016470-long-title.cif
index fa188c8..d02ab8d 100644
--- a/tests/inputs/2016470-long-title.cif
+++ b/tests/inputs/2016470-long-title.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-03-24 20:53:18 +0200 (Mon, 24 Mar 2008) $
 #$Revision: 431 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2016470-long-title.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2016470-long-title.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2019572.cif b/tests/inputs/2019572.cif
index 22861a1..67de8d3 100644
--- a/tests/inputs/2019572.cif
+++ b/tests/inputs/2019572.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-05-28 17:12:37 +0300 (Wed, 28 May 2014) $
 #$Revision: 2695 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2019572.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2019572.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2100348-benzene-dist-test.cif b/tests/inputs/2100348-benzene-dist-test.cif
index 8219673..49218b5 100644
--- a/tests/inputs/2100348-benzene-dist-test.cif
+++ b/tests/inputs/2100348-benzene-dist-test.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2100348-benzene-dist-test.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2100348-benzene-dist-test.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2100428-superspacegroup.cif b/tests/inputs/2100428-superspacegroup.cif
index 4ce24da..cb2ef54 100644
--- a/tests/inputs/2100428-superspacegroup.cif
+++ b/tests/inputs/2100428-superspacegroup.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-10-07 19:48:35 +0300 (Wed, 07 Oct 2015) $
 #$Revision: 4020 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2100428-superspacegroup.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2100428-superspacegroup.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2100438-cell-vol.cif b/tests/inputs/2100438-cell-vol.cif
index 62f77eb..109d4b1 100644
--- a/tests/inputs/2100438-cell-vol.cif
+++ b/tests/inputs/2100438-cell-vol.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-17 10:55:46 +0200 (Wed, 17 Mar 2010) $
 #$Revision: 1179 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2100438-cell-vol.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2100438-cell-vol.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2100831-incomplete-unit-cell-info.cif b/tests/inputs/2100831-incomplete-unit-cell-info.cif
index 94cd966..2d85f23 100644
--- a/tests/inputs/2100831-incomplete-unit-cell-info.cif
+++ b/tests/inputs/2100831-incomplete-unit-cell-info.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-24 14:51:36 +0300 (Wed, 24 Jun 2009) $
 #$Revision: 879 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2100831-incomplete-unit-cell-info.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2100831-incomplete-unit-cell-info.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2101499-diamond.cif b/tests/inputs/2101499-diamond.cif
index 9ca44da..4cf8e33 100644
--- a/tests/inputs/2101499-diamond.cif
+++ b/tests/inputs/2101499-diamond.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-02-03 10:00:22 +0200 (Fri, 03 Feb 2012) $
 #$Revision: 1973 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2101499-diamond.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2101499-diamond.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2101923-value-with-precision.cif b/tests/inputs/2101923-value-with-precision.cif
index d5174e2..0df6a6b 100644
--- a/tests/inputs/2101923-value-with-precision.cif
+++ b/tests/inputs/2101923-value-with-precision.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-10 11:39:24 +0200 (Thu, 10 Mar 2011) $
 #$Revision: 1611 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2101923-value-with-precision.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2101923-value-with-precision.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103187-misaligned-loop.cif b/tests/inputs/2103187-misaligned-loop.cif
index b3b36db..ea8170b 100644
--- a/tests/inputs/2103187-misaligned-loop.cif
+++ b/tests/inputs/2103187-misaligned-loop.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-04 13:28:29 +0200 (Thu, 04 Mar 2010) $
 #$Revision: 1132 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103187-misaligned-loop.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103187-misaligned-loop.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103514-with-P-and-T.cif b/tests/inputs/2103514-with-P-and-T.cif
index f8e9c60..c8fd838 100644
--- a/tests/inputs/2103514-with-P-and-T.cif
+++ b/tests/inputs/2103514-with-P-and-T.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-11-13 15:01:10 +0200 (Fri, 13 Nov 2009) $
 #$Revision: 952 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103514-with-P-and-T.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103514-with-P-and-T.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103654-head.cif b/tests/inputs/2103654-head.cif
index 492dc38..eb9d749 100644
--- a/tests/inputs/2103654-head.cif
+++ b/tests/inputs/2103654-head.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-06-16 10:07:15 +0300 (Mon, 16 Jun 2008) $
 #$Revision: 511 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103654-head.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103654-head.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103700.cif b/tests/inputs/2103700.cif
index 2f8ec9f..b51353d 100644
--- a/tests/inputs/2103700.cif
+++ b/tests/inputs/2103700.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-06-16 10:07:15 +0300 (Mon, 16 Jun 2008) $
 #$Revision: 511 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103700.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103700.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103766.cif b/tests/inputs/2103766.cif
index a238acf..3f03b08 100644
--- a/tests/inputs/2103766.cif
+++ b/tests/inputs/2103766.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-17 14:01:18 +0300 (Mon, 17 May 2010) $
 #$Revision: 1275 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103766.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103766.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103867.cif b/tests/inputs/2103867.cif
index 86001be..740e4a3 100644
--- a/tests/inputs/2103867.cif
+++ b/tests/inputs/2103867.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-06-16 10:07:15 +0300 (Mon, 16 Jun 2008) $
 #$Revision: 511 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103867.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103867.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103919.cif b/tests/inputs/2103919.cif
index cdf05f1..9ef8943 100644
--- a/tests/inputs/2103919.cif
+++ b/tests/inputs/2103919.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-17 14:01:18 +0300 (Mon, 17 May 2010) $
 #$Revision: 1275 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103919.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103919.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2103956.cif b/tests/inputs/2103956.cif
index f6c65ac..c548e75 100644
--- a/tests/inputs/2103956.cif
+++ b/tests/inputs/2103956.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-06-16 10:07:15 +0300 (Mon, 16 Jun 2008) $
 #$Revision: 511 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2103956.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2103956.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2104634-new-symop-tags-no-SG.cif b/tests/inputs/2104634-new-symop-tags-no-SG.cif
index 31772f4..2768986 100644
--- a/tests/inputs/2104634-new-symop-tags-no-SG.cif
+++ b/tests/inputs/2104634-new-symop-tags-no-SG.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-19 17:12:06 +0200 (Tue, 19 Jan 2010) $
 #$Revision: 1071 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2104634-new-symop-tags-no-SG.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2104634-new-symop-tags-no-SG.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2105506-superspacegroup.cif b/tests/inputs/2105506-superspacegroup.cif
index 241053f..cfb1dd4 100644
--- a/tests/inputs/2105506-superspacegroup.cif
+++ b/tests/inputs/2105506-superspacegroup.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-10-07 19:48:35 +0300 (Wed, 07 Oct 2015) $
 #$Revision: 4020 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2105506-superspacegroup.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2105506-superspacegroup.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2105936-strange-centering.cif b/tests/inputs/2105936-strange-centering.cif
index 72da5c2..9b7da42 100644
--- a/tests/inputs/2105936-strange-centering.cif
+++ b/tests/inputs/2105936-strange-centering.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-10-07 19:48:35 +0300 (Wed, 07 Oct 2015) $
 #$Revision: 4020 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2105936-strange-centering.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2105936-strange-centering.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2201353-cell-vol.cif b/tests/inputs/2201353-cell-vol.cif
index cebb037..6ec71b7 100644
--- a/tests/inputs/2201353-cell-vol.cif
+++ b/tests/inputs/2201353-cell-vol.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-17 10:55:46 +0200 (Wed, 17 Mar 2010) $
 #$Revision: 1179 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2201353-cell-vol.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2201353-cell-vol.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2202108.cif b/tests/inputs/2202108.cif
index 28b646c..d1c4f3c 100644
--- a/tests/inputs/2202108.cif
+++ b/tests/inputs/2202108.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2202108.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2202108.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2203315.cif b/tests/inputs/2203315.cif
index 9f6f4f8..53512d0 100644
--- a/tests/inputs/2203315.cif
+++ b/tests/inputs/2203315.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-09-20 12:45:16 +0300 (Tue, 20 Sep 2011) $
 #$Revision: 1737 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2203315.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2203315.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2204100.cif b/tests/inputs/2204100.cif
index e7baf3e..1c6176f 100644
--- a/tests/inputs/2204100.cif
+++ b/tests/inputs/2204100.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-02-07 22:02:59 +0200 (Thu, 07 Feb 2008) $
 #$Revision: 394 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2204100.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2204100.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2205051_cif_molecule.cif b/tests/inputs/2205051_cif_molecule.cif
index 8ad3180..c0655b3 100644
--- a/tests/inputs/2205051_cif_molecule.cif
+++ b/tests/inputs/2205051_cif_molecule.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2205051_cif_molecule.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2205051_cif_molecule.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2205053-molecule.cif b/tests/inputs/2205053-molecule.cif
index 4b56fe8..b2b8fd3 100644
--- a/tests/inputs/2205053-molecule.cif
+++ b/tests/inputs/2205053-molecule.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2205053-molecule.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2205053-molecule.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2208311-zero-occupancies.cif b/tests/inputs/2208311-zero-occupancies.cif
index c3d8a3a..cb121a4 100644
--- a/tests/inputs/2208311-zero-occupancies.cif
+++ b/tests/inputs/2208311-zero-occupancies.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-19 19:28:28 +0300 (Fri, 19 Jun 2009) $
 #$Revision: 845 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2208311-zero-occupancies.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2208311-zero-occupancies.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2208504.cif b/tests/inputs/2208504.cif
index 2e4893a..74dc361 100644
--- a/tests/inputs/2208504.cif
+++ b/tests/inputs/2208504.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-19 20:32:15 +0200 (Fri, 19 Mar 2010) $
 #$Revision: 1188 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2208504.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2208504.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2209560-cell-vol.cif b/tests/inputs/2209560-cell-vol.cif
index 1ef5d18..107885d 100644
--- a/tests/inputs/2209560-cell-vol.cif
+++ b/tests/inputs/2209560-cell-vol.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-17 10:55:46 +0200 (Wed, 17 Mar 2010) $
 #$Revision: 1179 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2209560-cell-vol.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2209560-cell-vol.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2217081-cell-vol.cif b/tests/inputs/2217081-cell-vol.cif
index a43de26..1cc84e3 100644
--- a/tests/inputs/2217081-cell-vol.cif
+++ b/tests/inputs/2217081-cell-vol.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-17 10:55:46 +0200 (Wed, 17 Mar 2010) $
 #$Revision: 1179 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2217081-cell-vol.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2217081-cell-vol.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2217757.cif b/tests/inputs/2217757.cif
index ed97204..36b44eb 100644
--- a/tests/inputs/2217757.cif
+++ b/tests/inputs/2217757.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2217757.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2217757.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2219444.cif b/tests/inputs/2219444.cif
index 293c220..d265ca8 100644
--- a/tests/inputs/2219444.cif
+++ b/tests/inputs/2219444.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-14 20:32:48 +0200 (Sun, 14 Mar 2010) $
 #$Revision: 1168 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2219444.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2219444.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2222274.cif b/tests/inputs/2222274.cif
index 26dcfd9..a8b9a9b 100644
--- a/tests/inputs/2222274.cif
+++ b/tests/inputs/2222274.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-05-09 17:51:53 +0300 (Fri, 09 May 2014) $
 #$Revision: 2661 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2222274.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2222274.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2224635.cif b/tests/inputs/2224635.cif
index 6cf83fc..87d2596 100644
--- a/tests/inputs/2224635.cif
+++ b/tests/inputs/2224635.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-25 16:00:11 +0300 (Wed, 25 Apr 2012) $
 #$Revision: 2076 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2224635.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2224635.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2224874.cif b/tests/inputs/2224874.cif
index 67437eb..8a38a54 100644
--- a/tests/inputs/2224874.cif
+++ b/tests/inputs/2224874.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-14 15:13:38 +0200 (Sun, 14 Mar 2010) $
 #$Revision: 1160 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2224874.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2224874.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2228759-multiple-diacritics.cif b/tests/inputs/2228759-multiple-diacritics.cif
index 3a4cddd..b614741 100644
--- a/tests/inputs/2228759-multiple-diacritics.cif
+++ b/tests/inputs/2228759-multiple-diacritics.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-02-22 14:43:35 +0200 (Fri, 22 Feb 2013) $
 #$Revision: 2139 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2228759-multiple-diacritics.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2228759-multiple-diacritics.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2231955.cif b/tests/inputs/2231955.cif
index 79146f0..d6200d8 100644
--- a/tests/inputs/2231955.cif
+++ b/tests/inputs/2231955.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-10-04 16:47:00 +0300 (Fri, 04 Oct 2013) $
 #$Revision: 2296 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2231955.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2231955.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2238212-only-doi.cif b/tests/inputs/2238212-only-doi.cif
index 2d57d50..e3d4a05 100644
--- a/tests/inputs/2238212-only-doi.cif
+++ b/tests/inputs/2238212-only-doi.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-03-31 15:24:38 +0300 (Mon, 31 Mar 2014) $
 #$Revision: 2599 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2238212-only-doi.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2238212-only-doi.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2238212.cif b/tests/inputs/2238212.cif
index b86a2b2..3522294 100644
--- a/tests/inputs/2238212.cif
+++ b/tests/inputs/2238212.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-11-13 21:38:03 +0200 (Wed, 13 Nov 2013) $
 #$Revision: 2368 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2238212.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2238212.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2300214-new-sg-name-H-M.cif b/tests/inputs/2300214-new-sg-name-H-M.cif
index a04583e..282d59e 100644
--- a/tests/inputs/2300214-new-sg-name-H-M.cif
+++ b/tests/inputs/2300214-new-sg-name-H-M.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-07 10:46:40 +0200 (Sun, 07 Feb 2010) $
 #$Revision: 1112 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2300214-new-sg-name-H-M.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2300214-new-sg-name-H-M.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/2300214-new-sg-name-Hall.cif b/tests/inputs/2300214-new-sg-name-Hall.cif
index 7e48fdf..bc913d5 100644
--- a/tests/inputs/2300214-new-sg-name-Hall.cif
+++ b/tests/inputs/2300214-new-sg-name-Hall.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-07 10:46:40 +0200 (Sun, 07 Feb 2010) $
 #$Revision: 1112 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/2300214-new-sg-name-Hall.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/2300214-new-sg-name-Hall.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4000911-high-precision-cell.cif b/tests/inputs/4000911-high-precision-cell.cif
index 25992a3..26d45c2 100644
--- a/tests/inputs/4000911-high-precision-cell.cif
+++ b/tests/inputs/4000911-high-precision-cell.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-03-02 11:50:28 +0200 (Fri, 02 Mar 2012) $
 #$Revision: 1999 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4000911-high-precision-cell.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4000911-high-precision-cell.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4001780.cif b/tests/inputs/4001780.cif
index a56ff37..131e1d1 100644
--- a/tests/inputs/4001780.cif
+++ b/tests/inputs/4001780.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2013-07-15 12:34:34 +0300 (Mon, 15 Jul 2013) $
 #$Revision: 2194 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4001780.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4001780.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4021421-non-dict-tags-in-loop.cif b/tests/inputs/4021421-non-dict-tags-in-loop.cif
index 745fee0..2485b1d 100644
--- a/tests/inputs/4021421-non-dict-tags-in-loop.cif
+++ b/tests/inputs/4021421-non-dict-tags-in-loop.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-02-09 12:29:32 +0200 (Sat, 09 Feb 2008) $
 #$Revision: 397 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4021421-non-dict-tags-in-loop.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4021421-non-dict-tags-in-loop.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4024741.cif b/tests/inputs/4024741.cif
index 0ba205d..4c083ad 100644
--- a/tests/inputs/4024741.cif
+++ b/tests/inputs/4024741.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-17 14:01:18 +0300 (Mon, 17 May 2010) $
 #$Revision: 1275 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4024741.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4024741.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4024913-with-new-symop-tags.cif b/tests/inputs/4024913-with-new-symop-tags.cif
index 9ec964d..417fa89 100644
--- a/tests/inputs/4024913-with-new-symop-tags.cif
+++ b/tests/inputs/4024913-with-new-symop-tags.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-18 17:43:57 +0200 (Mon, 18 Jan 2010) $
 #$Revision: 1066 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4024913-with-new-symop-tags.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4024913-with-new-symop-tags.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4063196-short-H-M.cif b/tests/inputs/4063196-short-H-M.cif
index e9cad90..fafd13d 100644
--- a/tests/inputs/4063196-short-H-M.cif
+++ b/tests/inputs/4063196-short-H-M.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-01-15 18:44:29 +0200 (Sat, 15 Jan 2011) $
 #$Revision: 1550 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4063196-short-H-M.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4063196-short-H-M.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4063260-wrong-formula-sum.cif b/tests/inputs/4063260-wrong-formula-sum.cif
index 7eb8c1a..658ab38 100644
--- a/tests/inputs/4063260-wrong-formula-sum.cif
+++ b/tests/inputs/4063260-wrong-formula-sum.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-01-28 19:36:57 +0200 (Mon, 28 Jan 2008) $
 #$Revision: 384 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4063260-wrong-formula-sum.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4063260-wrong-formula-sum.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4101385.cif b/tests/inputs/4101385.cif
index b9426ea..f2cb12b 100644
--- a/tests/inputs/4101385.cif
+++ b/tests/inputs/4101385.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 21:40:50 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1224 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4101385.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4101385.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4101585-truncated-page-last.cif b/tests/inputs/4101585-truncated-page-last.cif
index fa91cd9..4a9148e 100644
--- a/tests/inputs/4101585-truncated-page-last.cif
+++ b/tests/inputs/4101585-truncated-page-last.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-06-20 12:24:20 +0300 (Fri, 20 Jun 2008) $
 #$Revision: 526 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4101585-truncated-page-last.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4101585-truncated-page-last.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4105625.cif b/tests/inputs/4105625.cif
index d779403..82eac30 100644
--- a/tests/inputs/4105625.cif
+++ b/tests/inputs/4105625.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-12 17:36:24 +0300 (Thu, 12 Apr 2012) $
 #$Revision: 2046 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4105625.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4105625.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4300013.cif b/tests/inputs/4300013.cif
index 9ff5893..87cc190 100644
--- a/tests/inputs/4300013.cif
+++ b/tests/inputs/4300013.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 21:40:50 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1224 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4300013.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4300013.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4300015.cif b/tests/inputs/4300015.cif
index 801fbf3..396363e 100644
--- a/tests/inputs/4300015.cif
+++ b/tests/inputs/4300015.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 21:40:50 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1224 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4300015.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4300015.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4300056.cif b/tests/inputs/4300056.cif
index c183c88..2b6d2b0 100644
--- a/tests/inputs/4300056.cif
+++ b/tests/inputs/4300056.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 21:40:50 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1224 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4300056.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4300056.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4300081.cif b/tests/inputs/4300081.cif
index fa854bf..62cadf1 100644
--- a/tests/inputs/4300081.cif
+++ b/tests/inputs/4300081.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 21:40:50 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1224 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4300081.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4300081.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4301885-I12slash1-spacegroup.cif b/tests/inputs/4301885-I12slash1-spacegroup.cif
index 13b7d2f..16d5efc 100644
--- a/tests/inputs/4301885-I12slash1-spacegroup.cif
+++ b/tests/inputs/4301885-I12slash1-spacegroup.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-24 08:03:49 +0200 (Wed, 24 Mar 2010) $
 #$Revision: 1196 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4301885-I12slash1-spacegroup.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4301885-I12slash1-spacegroup.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4302333-Ortho-and-missing-braces.cif b/tests/inputs/4302333-Ortho-and-missing-braces.cif
index 382bc64..128ec2b 100644
--- a/tests/inputs/4302333-Ortho-and-missing-braces.cif
+++ b/tests/inputs/4302333-Ortho-and-missing-braces.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-24 15:45:37 +0300 (Sat, 24 Apr 2010) $
 #$Revision: 1261 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4302333-Ortho-and-missing-braces.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4302333-Ortho-and-missing-braces.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4302587-symetry.cif b/tests/inputs/4302587-symetry.cif
index d1dcc75..7514e70 100644
--- a/tests/inputs/4302587-symetry.cif
+++ b/tests/inputs/4302587-symetry.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-24 08:40:35 +0300 (Sat, 24 Apr 2010) $
 #$Revision: 1254 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4302587-symetry.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4302587-symetry.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4303187-double-underscore.cif b/tests/inputs/4303187-double-underscore.cif
index 75ad85a..e7193b9 100644
--- a/tests/inputs/4303187-double-underscore.cif
+++ b/tests/inputs/4303187-double-underscore.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-24 08:48:07 +0300 (Sat, 24 Apr 2010) $
 #$Revision: 1256 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4303187-double-underscore.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4303187-double-underscore.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4303187-multiple-underscores.cif b/tests/inputs/4303187-multiple-underscores.cif
index 32d5407..6e23545 100644
--- a/tests/inputs/4303187-multiple-underscores.cif
+++ b/tests/inputs/4303187-multiple-underscores.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-24 08:52:05 +0300 (Sat, 24 Apr 2010) $
 #$Revision: 1257 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4303187-multiple-underscores.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4303187-multiple-underscores.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4308312-audit-dict-name.cif b/tests/inputs/4308312-audit-dict-name.cif
index dbf3405..9588f8e 100644
--- a/tests/inputs/4308312-audit-dict-name.cif
+++ b/tests/inputs/4308312-audit-dict-name.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-30 08:18:18 +0300 (Sun, 30 May 2010) $
 #$Revision: 1280 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4308312-audit-dict-name.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4308312-audit-dict-name.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4310545-temperature-tag.cif b/tests/inputs/4310545-temperature-tag.cif
index 85ba5ed..0ef5f9b 100644
--- a/tests/inputs/4310545-temperature-tag.cif
+++ b/tests/inputs/4310545-temperature-tag.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-02-15 15:21:22 +0200 (Tue, 15 Feb 2011) $
 #$Revision: 1572 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4310545-temperature-tag.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4310545-temperature-tag.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4320780-negative-value.cif b/tests/inputs/4320780-negative-value.cif
index bdd38ff..2d718ee 100644
--- a/tests/inputs/4320780-negative-value.cif
+++ b/tests/inputs/4320780-negative-value.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-04-18 14:12:27 +0300 (Mon, 18 Apr 2011) $
 #$Revision: 1688 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4320780-negative-value.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4320780-negative-value.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4334605.cif b/tests/inputs/4334605.cif
index 8b623b7..08f2d25 100644
--- a/tests/inputs/4334605.cif
+++ b/tests/inputs/4334605.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-02-12 17:06:59 +0200 (Thu, 12 Feb 2015) $
 #$Revision: 3020 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4334605.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4334605.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/4503694.cif b/tests/inputs/4503694.cif
index a2e5c29..7d3d965 100644
--- a/tests/inputs/4503694.cif
+++ b/tests/inputs/4503694.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2014-06-16 16:43:04 +0300 (Mon, 16 Jun 2014) $
 #$Revision: 2722 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/4503694.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/4503694.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/5000332.cif b/tests/inputs/5000332.cif
index 85b2b8c..3bef5b2 100644
--- a/tests/inputs/5000332.cif
+++ b/tests/inputs/5000332.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-14 16:36:22 +0200 (Sun, 14 Mar 2010) $
 #$Revision: 1162 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/5000332.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/5000332.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/6000001-without-cordinates.cif b/tests/inputs/6000001-without-cordinates.cif
index c473c63..68c1669 100644
--- a/tests/inputs/6000001-without-cordinates.cif
+++ b/tests/inputs/6000001-without-cordinates.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-08 07:29:32 +0200 (Mon, 08 Mar 2010) $
 #$Revision: 1141 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/6000001-without-cordinates.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/6000001-without-cordinates.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7000165-disorder.cif b/tests/inputs/7000165-disorder.cif
index 3a83207..3310f64 100644
--- a/tests/inputs/7000165-disorder.cif
+++ b/tests/inputs/7000165-disorder.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7000165-disorder.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7000165-disorder.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7004184-decomp-celsius.cif b/tests/inputs/7004184-decomp-celsius.cif
index fbf29df..263bd0d 100644
--- a/tests/inputs/7004184-decomp-celsius.cif
+++ b/tests/inputs/7004184-decomp-celsius.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-21 14:48:15 +0200 (Mon, 21 Mar 2011) $
 #$Revision: 1627 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7004184-decomp-celsius.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7004184-decomp-celsius.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7011014-occupancy-is-a-dot.cif b/tests/inputs/7011014-occupancy-is-a-dot.cif
index 238722a..1ee256d 100644
--- a/tests/inputs/7011014-occupancy-is-a-dot.cif
+++ b/tests/inputs/7011014-occupancy-is-a-dot.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-12-08 09:59:04 +0200 (Wed, 08 Dec 2010) $
 #$Revision: 1498 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7011014-occupancy-is-a-dot.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7011014-occupancy-is-a-dot.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7050234-non-ascii-text-field.cif b/tests/inputs/7050234-non-ascii-text-field.cif
index 63b2452..c631ba4 100644
--- a/tests/inputs/7050234-non-ascii-text-field.cif
+++ b/tests/inputs/7050234-non-ascii-text-field.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-01-01 21:13:51 +0200 (Sat, 01 Jan 2011) $
 #$Revision: 1529 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7050234-non-ascii-text-field.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7050234-non-ascii-text-field.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7052819-thermal-hist-with-newlines.cif b/tests/inputs/7052819-thermal-hist-with-newlines.cif
index e0a868a..5949424 100644
--- a/tests/inputs/7052819-thermal-hist-with-newlines.cif
+++ b/tests/inputs/7052819-thermal-hist-with-newlines.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-03-04 12:52:46 +0200 (Sun, 04 Mar 2012) $
 #$Revision: 2006 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7052819-thermal-hist-with-newlines.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7052819-thermal-hist-with-newlines.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7101147.cif b/tests/inputs/7101147.cif
index 9be1389..53d2122 100644
--- a/tests/inputs/7101147.cif
+++ b/tests/inputs/7101147.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-03-02 16:20:02 +0200 (Sun, 02 Mar 2008) $
 #$Revision: 416 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7101147.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7101147.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7101937-degrees-celsius.cif b/tests/inputs/7101937-degrees-celsius.cif
index c51713f..0c109f3 100644
--- a/tests/inputs/7101937-degrees-celsius.cif
+++ b/tests/inputs/7101937-degrees-celsius.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-21 12:36:30 +0200 (Mon, 21 Mar 2011) $
 #$Revision: 1624 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7101937-degrees-celsius.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7101937-degrees-celsius.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7105218-complex-author-name.cif b/tests/inputs/7105218-complex-author-name.cif
index 2b390d7..b5caa94 100644
--- a/tests/inputs/7105218-complex-author-name.cif
+++ b/tests/inputs/7105218-complex-author-name.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-21 21:56:12 +0200 (Sun, 21 Feb 2010) $
 #$Revision: 1127 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7105218-complex-author-name.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7105218-complex-author-name.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7105250-oriental-name-capitalisation.cif b/tests/inputs/7105250-oriental-name-capitalisation.cif
index 11805bd..af90c9b 100644
--- a/tests/inputs/7105250-oriental-name-capitalisation.cif
+++ b/tests/inputs/7105250-oriental-name-capitalisation.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-21 21:38:36 +0200 (Sun, 21 Feb 2010) $
 #$Revision: 1126 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7105250-oriental-name-capitalisation.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7105250-oriental-name-capitalisation.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7105573-no-Z.cif b/tests/inputs/7105573-no-Z.cif
index 1f1caba..70bc2bc 100644
--- a/tests/inputs/7105573-no-Z.cif
+++ b/tests/inputs/7105573-no-Z.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-05-28 20:02:38 +0300 (Fri, 28 May 2010) $
 #$Revision: 1279 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7105573-no-Z.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7105573-no-Z.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7106028-temerature-not-important.cif b/tests/inputs/7106028-temerature-not-important.cif
index 6912ea8..4360590 100644
--- a/tests/inputs/7106028-temerature-not-important.cif
+++ b/tests/inputs/7106028-temerature-not-important.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-21 12:36:30 +0200 (Mon, 21 Mar 2011) $
 #$Revision: 1624 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7106028-temerature-not-important.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7106028-temerature-not-important.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7200679-spacegroup-P4.cif b/tests/inputs/7200679-spacegroup-P4.cif
index 669ca44..5ee85ea 100644
--- a/tests/inputs/7200679-spacegroup-P4.cif
+++ b/tests/inputs/7200679-spacegroup-P4.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-01-03 13:47:04 +0200 (Mon, 03 Jan 2011) $
 #$Revision: 1530 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7200679-spacegroup-P4.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7200679-spacegroup-P4.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/7201670-limits-with-precision.cif b/tests/inputs/7201670-limits-with-precision.cif
index 7ce7306..9b9c2f7 100644
--- a/tests/inputs/7201670-limits-with-precision.cif
+++ b/tests/inputs/7201670-limits-with-precision.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-03-09 15:22:16 +0200 (Wed, 09 Mar 2011) $
 #$Revision: 1600 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/7201670-limits-with-precision.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/7201670-limits-with-precision.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/8000003.cif b/tests/inputs/8000003.cif
index b32b321..af7b004 100644
--- a/tests/inputs/8000003.cif
+++ b/tests/inputs/8000003.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-25 12:06:58 +0300 (Thu, 25 Jun 2009) $
 #$Revision: 887 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/8000003.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/8000003.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/8000008-mixed-case-tags.cif b/tests/inputs/8000008-mixed-case-tags.cif
index 7418c65..3038d00 100644
--- a/tests/inputs/8000008-mixed-case-tags.cif
+++ b/tests/inputs/8000008-mixed-case-tags.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-17 14:36:29 +0300 (Wed, 17 Jun 2009) $
 #$Revision: 825 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/8000008-mixed-case-tags.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/8000008-mixed-case-tags.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/8100877-bump.cif b/tests/inputs/8100877-bump.cif
index 4bc262d..0fda43d 100644
--- a/tests/inputs/8100877-bump.cif
+++ b/tests/inputs/8100877-bump.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-19 18:25:03 +0300 (Fri, 19 Jun 2009) $
 #$Revision: 843 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/8100877-bump.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/8100877-bump.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/8102326.cif b/tests/inputs/8102326.cif
index 941eb15..bea8a25 100644
--- a/tests/inputs/8102326.cif
+++ b/tests/inputs/8102326.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2011-07-25 13:10:07 +0300 (Mon, 25 Jul 2011) $
 #$Revision: 1719 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/8102326.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/8102326.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9000020.cif b/tests/inputs/9000020.cif
index 9513f88..4dc5ad2 100644
--- a/tests/inputs/9000020.cif
+++ b/tests/inputs/9000020.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 15:23:38 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 917 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9000020.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9000020.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9000133-annealed.cif b/tests/inputs/9000133-annealed.cif
index 285b8fb..6462b3b 100644
--- a/tests/inputs/9000133-annealed.cif
+++ b/tests/inputs/9000133-annealed.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9000133-annealed.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9000133-annealed.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9000579-annealing.cif b/tests/inputs/9000579-annealing.cif
index d01cc22..d675e5d 100644
--- a/tests/inputs/9000579-annealing.cif
+++ b/tests/inputs/9000579-annealing.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9000579-annealing.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9000579-annealing.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9001201-then-quenched.cif b/tests/inputs/9001201-then-quenched.cif
index 6a1ee21..f2b8315 100644
--- a/tests/inputs/9001201-then-quenched.cif
+++ b/tests/inputs/9001201-then-quenched.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9001201-then-quenched.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9001201-then-quenched.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9001205-then-quenched.cif b/tests/inputs/9001205-then-quenched.cif
index f49d53f..a6eb9b2 100644
--- a/tests/inputs/9001205-then-quenched.cif
+++ b/tests/inputs/9001205-then-quenched.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9001205-then-quenched.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9001205-then-quenched.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9001907-broken-unit-cell.cif b/tests/inputs/9001907-broken-unit-cell.cif
index 9f27b9f..782ba19 100644
--- a/tests/inputs/9001907-broken-unit-cell.cif
+++ b/tests/inputs/9001907-broken-unit-cell.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 16:58:41 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1222 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9001907-broken-unit-cell.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9001907-broken-unit-cell.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9001922-long-formula.cif b/tests/inputs/9001922-long-formula.cif
index 43901b3..af21185 100644
--- a/tests/inputs/9001922-long-formula.cif
+++ b/tests/inputs/9001922-long-formula.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-03-09 10:21:39 +0200 (Sun, 09 Mar 2008) $
 #$Revision: 424 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9001922-long-formula.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9001922-long-formula.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9003333-nonquenchable.cif b/tests/inputs/9003333-nonquenchable.cif
index 62879ad..9c41f65 100644
--- a/tests/inputs/9003333-nonquenchable.cif
+++ b/tests/inputs/9003333-nonquenchable.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9003333-nonquenchable.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9003333-nonquenchable.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9003354.cif b/tests/inputs/9003354.cif
index df8b7e4..76d3e7b 100644
--- a/tests/inputs/9003354.cif
+++ b/tests/inputs/9003354.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-11 11:54:37 +0300 (Thu, 11 Jun 2009) $
 #$Revision: 808 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9003354.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9003354.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9003733-Annealed.cif b/tests/inputs/9003733-Annealed.cif
index e97a1ba..3a7d526 100644
--- a/tests/inputs/9003733-Annealed.cif
+++ b/tests/inputs/9003733-Annealed.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9003733-Annealed.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9003733-Annealed.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9003869-long-title.cif b/tests/inputs/9003869-long-title.cif
index 020df89..880e288 100644
--- a/tests/inputs/9003869-long-title.cif
+++ b/tests/inputs/9003869-long-title.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-03-09 10:21:39 +0200 (Sun, 09 Mar 2008) $
 #$Revision: 424 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9003869-long-title.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9003869-long-title.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9005205-Quenched.cif b/tests/inputs/9005205-Quenched.cif
index 3497ecd..4d6525e 100644
--- a/tests/inputs/9005205-Quenched.cif
+++ b/tests/inputs/9005205-Quenched.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9005205-Quenched.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9005205-Quenched.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9005728.cif b/tests/inputs/9005728.cif
index cc815b2..73b80d7 100644
--- a/tests/inputs/9005728.cif
+++ b/tests/inputs/9005728.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-06-11 11:54:37 +0300 (Thu, 11 Jun 2009) $
 #$Revision: 808 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9005728.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9005728.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9007346-Annealing.cif b/tests/inputs/9007346-Annealing.cif
index 8b33dd7..19f8d66 100644
--- a/tests/inputs/9007346-Annealing.cif
+++ b/tests/inputs/9007346-Annealing.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9007346-Annealing.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9007346-Annealing.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9007872-one-funny-word-title.cif b/tests/inputs/9007872-one-funny-word-title.cif
index 08da3a4..c3a6aa2 100644
--- a/tests/inputs/9007872-one-funny-word-title.cif
+++ b/tests/inputs/9007872-one-funny-word-title.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-03-09 12:22:51 +0200 (Sun, 09 Mar 2008) $
 #$Revision: 427 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9007872-one-funny-word-title.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9007872-one-funny-word-title.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9007874-strange-H-names-no-types.cif b/tests/inputs/9007874-strange-H-names-no-types.cif
index 2195c59..436d6a2 100644
--- a/tests/inputs/9007874-strange-H-names-no-types.cif
+++ b/tests/inputs/9007874-strange-H-names-no-types.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-20 14:06:29 +0300 (Fri, 20 Apr 2012) $
 #$Revision: 2055 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9007874-strange-H-names-no-types.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9007874-strange-H-names-no-types.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9007874-strange-H-names.cif b/tests/inputs/9007874-strange-H-names.cif
index 5ca280b..0bd198f 100644
--- a/tests/inputs/9007874-strange-H-names.cif
+++ b/tests/inputs/9007874-strange-H-names.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-04-20 14:06:29 +0300 (Fri, 20 Apr 2012) $
 #$Revision: 2055 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9007874-strange-H-names.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9007874-strange-H-names.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9008098.cif b/tests/inputs/9008098.cif
index 906c270..66038d4 100644
--- a/tests/inputs/9008098.cif
+++ b/tests/inputs/9008098.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-03-30 21:40:50 +0300 (Tue, 30 Mar 2010) $
 #$Revision: 1224 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9008098.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9008098.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9008564-diamond.cif b/tests/inputs/9008564-diamond.cif
index d06d2d2..f91e4cd 100644
--- a/tests/inputs/9008564-diamond.cif
+++ b/tests/inputs/9008564-diamond.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2015-07-23 06:54:04 +0300 (Thu, 23 Jul 2015) $
 #$Revision: 3607 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9008564-diamond.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9008564-diamond.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9010219-synthesized.cif b/tests/inputs/9010219-synthesized.cif
index 3304774..b6eaac8 100644
--- a/tests/inputs/9010219-synthesized.cif
+++ b/tests/inputs/9010219-synthesized.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-12-10 16:11:18 +0200 (Thu, 10 Dec 2009) $
 #$Revision: 1016 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9010219-synthesized.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9010219-synthesized.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9010340-with-P-value.cif b/tests/inputs/9010340-with-P-value.cif
index a6118fd..03cc4ea 100644
--- a/tests/inputs/9010340-with-P-value.cif
+++ b/tests/inputs/9010340-with-P-value.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-11-19 18:13:15 +0200 (Thu, 19 Nov 2009) $
 #$Revision: 973 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9010340-with-P-value.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9010340-with-P-value.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9010753-C-D-bond.cif b/tests/inputs/9010753-C-D-bond.cif
index 17de76e..8957729 100644
--- a/tests/inputs/9010753-C-D-bond.cif
+++ b/tests/inputs/9010753-C-D-bond.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
-#$Date: 2012-04-20 14:06:29 +0300 (Fri, 20 Apr 2012) $
-#$Revision: 2055 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9010753-C-D-bond.cif $
+#$Date: 2017-09-25 10:48:17 +0300 (Mon, 25 Sep 2017) $
+#$Revision: 5533 $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9010753-C-D-bond.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
@@ -59,55 +59,56 @@ x,-y,z
 1/2+x,1/2-y,-z
 -x,-y,-z
 loop_
+_atom_site_type_symbol
 _atom_site_label
 _atom_site_fract_x
 _atom_site_fract_y
 _atom_site_fract_z
 _atom_site_occupancy
 _atom_site_U_iso_or_equiv
-Mg2 0.00000 0.08820 0.50000 0.56000 0.53000
-Al2 0.00000 0.08820 0.50000 0.41000 0.53000
-Fe2 0.00000 0.08820 0.50000 0.03000 0.53000
-Mg3 0.00000 0.17600 0.00000 0.56000 0.53000
-Al3 0.00000 0.17600 0.00000 0.41000 0.53000
-Fe3 0.00000 0.17600 0.00000 0.03000 0.53000
-Si1 0.23200 0.08870 0.80300 1.00000 0.01900
-Si2 0.20410 0.16880 0.32400 1.00000 0.01900
-O1 0.10500 0.10090 0.75900 1.00000 0.02900
-O2 0.07700 0.18220 0.36100 1.00000 0.02900
-O-H 0.04000 0.00000 0.26900 1.00000 0.02900
-Ow1 0.09300 0.25600 0.80000 1.00000 0.02900
-DWH1 0.17600 0.23300 0.77100 0.34000 0.02900
-DWH1' 0.10700 0.29900 0.85100 0.20000 0.02900
-DWH1'' 0.05700 0.26000 0.62000 0.22000 0.02900
-O3 0.26200 0.00000 0.80500 1.00000 0.02900
-O4 0.25000 0.25000 0.23900 1.00000 0.02900
-O5 0.27500 0.13550 0.55600 1.00000 0.02900
-O6 0.20300 0.10710 0.09800 1.00000 0.02900
-OZW2 0.04500 0.36800 0.22600 0.24000 0.01800
-DZW2' 0.07200 0.41600 0.26000 0.07000 0.01800
-DZW2'' -0.06100 0.38200 0.95000 0.07000 0.01800
-DZW2^ 0.10900 0.37800 0.33000 0.03000 0.01800
-DZW2^^ -0.01400 0.32300 0.75000 0.03000 0.01800
-DZW2* 0.03000 0.41000 0.29000 0.14000 0.01800
-DZW2** 0.01400 0.33500 0.77000 0.14000 0.01800
-OZW3a 0.16400 0.50000 0.26000 0.36000 0.01800
-OZW3b 0.15500 0.50000 0.36000 0.33000 0.01800
-DZW3' 0.21200 0.45600 0.23000 0.34000 0.01800
-DZW3^ 0.21000 0.50000 0.44000 0.02000 0.01800
-DZW3^^ 0.19000 0.50000 0.15000 0.02000 0.01800
-DZW3* 0.18100 0.45300 0.44000 0.33000 0.01800
-OZW4a 0.00000 0.49400 0.00000 0.19000 0.01800
-OZW4b -0.01000 0.50000 0.07000 0.19000 0.01800
-DZW4' 0.06000 0.49900 0.10200 0.19000 0.01800
-DZW4'' 0.00900 0.44800 0.06000 0.19000 0.01800
-C1 0.00400 0.50000 0.36110 0.10000 0.04800
-C2 0.00900 0.42400 0.19700 0.05000 0.04800
-C3 0.01700 0.45600 -0.07200 0.10000 0.04800
-C4 0.03000 0.41800 -0.31500 0.10000 0.04800
-C5 0.03000 0.46200 -0.54100 0.10000 0.04800
-N1 0.00900 0.56400 0.19700 0.05000 0.04800
-Oin 0.00700 0.35700 0.25900 0.05000 0.04800
-H1 0.00800 0.61800 0.24700 0.05000 0.04800
-D4 0.03000 0.36200 -0.31600 0.10000 0.04800
-D5 0.04000 0.43300 -0.70900 0.10000 0.04800
+Mg Mg2 0.00000 0.08820 0.50000 0.56000 0.53000
+Al Al2 0.00000 0.08820 0.50000 0.41000 0.53000
+Fe Fe2 0.00000 0.08820 0.50000 0.03000 0.53000
+Mg Mg3 0.00000 0.17600 0.00000 0.56000 0.53000
+Al Al3 0.00000 0.17600 0.00000 0.41000 0.53000
+Fe Fe3 0.00000 0.17600 0.00000 0.03000 0.53000
+Si Si1 0.23200 0.08870 0.80300 1.00000 0.01900
+Si Si2 0.20410 0.16880 0.32400 1.00000 0.01900
+O O1 0.10500 0.10090 0.75900 1.00000 0.02900
+O O2 0.07700 0.18220 0.36100 1.00000 0.02900
+O O-H 0.04000 0.00000 0.26900 1.00000 0.02900
+O Ow1 0.09300 0.25600 0.80000 1.00000 0.02900
+D DWH1 0.17600 0.23300 0.77100 0.34000 0.02900
+D DWH1' 0.10700 0.29900 0.85100 0.20000 0.02900
+D DWH1'' 0.05700 0.26000 0.62000 0.22000 0.02900
+O O3 0.26200 0.00000 0.80500 1.00000 0.02900
+O O4 0.25000 0.25000 0.23900 1.00000 0.02900
+O O5 0.27500 0.13550 0.55600 1.00000 0.02900
+O O6 0.20300 0.10710 0.09800 1.00000 0.02900
+O OZW2 0.04500 0.36800 0.22600 0.24000 0.01800
+D DZW2' 0.07200 0.41600 0.26000 0.07000 0.01800
+D DZW2'' -0.06100 0.38200 0.95000 0.07000 0.01800
+D DZW2^ 0.10900 0.37800 0.33000 0.03000 0.01800
+D DZW2^^ -0.01400 0.32300 0.75000 0.03000 0.01800
+D DZW2* 0.03000 0.41000 0.29000 0.14000 0.01800
+D DZW2** 0.01400 0.33500 0.77000 0.14000 0.01800
+O OZW3a 0.16400 0.50000 0.26000 0.36000 0.01800
+O OZW3b 0.15500 0.50000 0.36000 0.33000 0.01800
+D DZW3' 0.21200 0.45600 0.23000 0.34000 0.01800
+D DZW3^ 0.21000 0.50000 0.44000 0.02000 0.01800
+D DZW3^^ 0.19000 0.50000 0.15000 0.02000 0.01800
+D DZW3* 0.18100 0.45300 0.44000 0.33000 0.01800
+O OZW4a 0.00000 0.49400 0.00000 0.19000 0.01800
+O OZW4b -0.01000 0.50000 0.07000 0.19000 0.01800
+D DZW4' 0.06000 0.49900 0.10200 0.19000 0.01800
+D DZW4'' 0.00900 0.44800 0.06000 0.19000 0.01800
+C C1 0.00400 0.50000 0.36110 0.10000 0.04800
+C C2 0.00900 0.42400 0.19700 0.05000 0.04800
+C C3 0.01700 0.45600 -0.07200 0.10000 0.04800
+C C4 0.03000 0.41800 -0.31500 0.10000 0.04800
+C C5 0.03000 0.46200 -0.54100 0.10000 0.04800
+N N1 0.00900 0.56400 0.19700 0.05000 0.04800
+O Oin 0.00700 0.35700 0.25900 0.05000 0.04800
+H H1 0.00800 0.61800 0.24700 0.05000 0.04800
+D D4 0.03000 0.36200 -0.31600 0.10000 0.04800
+D D5 0.04000 0.43300 -0.70900 0.10000 0.04800
diff --git a/tests/inputs/9011575-diamond.cif b/tests/inputs/9011575-diamond.cif
index f643181..0adbadc 100644
--- a/tests/inputs/9011575-diamond.cif
+++ b/tests/inputs/9011575-diamond.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2012-02-03 10:00:22 +0200 (Fri, 03 Feb 2012) $
 #$Revision: 1973 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9011575-diamond.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9011575-diamond.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9012705.cif b/tests/inputs/9012705.cif
index 55b8cf2..2ad9f11 100644
--- a/tests/inputs/9012705.cif
+++ b/tests/inputs/9012705.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-03 08:59:31 +0300 (Sat, 03 Apr 2010) $
 #$Revision: 1227 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9012705.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9012705.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9012939-with-T-in-deg-C.cif b/tests/inputs/9012939-with-T-in-deg-C.cif
index 90da6d4..6943896 100644
--- a/tests/inputs/9012939-with-T-in-deg-C.cif
+++ b/tests/inputs/9012939-with-T-in-deg-C.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-11-19 18:16:13 +0200 (Thu, 19 Nov 2009) $
 #$Revision: 974 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9012939-with-T-in-deg-C.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9012939-with-T-in-deg-C.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9013186-pressure-hist.cif b/tests/inputs/9013186-pressure-hist.cif
index a44cf6b..b07ae44 100644
--- a/tests/inputs/9013186-pressure-hist.cif
+++ b/tests/inputs/9013186-pressure-hist.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-27 10:36:10 +0200 (Sat, 27 Feb 2010) $
 #$Revision: 1131 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9013186-pressure-hist.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9013186-pressure-hist.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9013187-pressure-hist.cif b/tests/inputs/9013187-pressure-hist.cif
index 7ad0988..5502bd7 100644
--- a/tests/inputs/9013187-pressure-hist.cif
+++ b/tests/inputs/9013187-pressure-hist.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-27 10:36:10 +0200 (Sat, 27 Feb 2010) $
 #$Revision: 1131 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9013187-pressure-hist.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9013187-pressure-hist.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9013191-pressure-hist.cif b/tests/inputs/9013191-pressure-hist.cif
index 1583024..3af594c 100644
--- a/tests/inputs/9013191-pressure-hist.cif
+++ b/tests/inputs/9013191-pressure-hist.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-27 10:36:10 +0200 (Sat, 27 Feb 2010) $
 #$Revision: 1131 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9013191-pressure-hist.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9013191-pressure-hist.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/9013273-Pressure.cif b/tests/inputs/9013273-Pressure.cif
index 95261cc..311fc25 100644
--- a/tests/inputs/9013273-Pressure.cif
+++ b/tests/inputs/9013273-Pressure.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-02-27 09:17:03 +0200 (Sat, 27 Feb 2010) $
 #$Revision: 1128 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/9013273-Pressure.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/9013273-Pressure.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cifs-with-errors/2009397-syntax-error.cif b/tests/inputs/cifs-with-errors/2009397-syntax-error.cif
index 39bb43e..450ccea 100644
--- a/tests/inputs/cifs-with-errors/2009397-syntax-error.cif
+++ b/tests/inputs/cifs-with-errors/2009397-syntax-error.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-04-03 21:45:43 +0300 (Fri, 03 Apr 2009) $
 #$Revision: 731 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cifs-with-errors/2009397-syntax-error.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cifs-with-errors/2009397-syntax-error.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cifs-with-errors/2009397.cif b/tests/inputs/cifs-with-errors/2009397.cif
index 3d91db3..573ec0b 100644
--- a/tests/inputs/cifs-with-errors/2009397.cif
+++ b/tests/inputs/cifs-with-errors/2009397.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-04-03 21:45:43 +0300 (Fri, 03 Apr 2009) $
 #$Revision: 731 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cifs-with-errors/2009397.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cifs-with-errors/2009397.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/close-cells/cod/9006017.cif b/tests/inputs/close-cells/cod/9006017.cif
index b4a6fd1..9ea7bfa 100644
--- a/tests/inputs/close-cells/cod/9006017.cif
+++ b/tests/inputs/close-cells/cod/9006017.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-21 20:46:04 +0200 (Thu, 21 Jan 2010) $
 #$Revision: 1080 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/close-cells/cod/9006017.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/close-cells/cod/9006017.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/close-cells/cod/9006022.cif b/tests/inputs/close-cells/cod/9006022.cif
index 6f24d69..28cbe86 100644
--- a/tests/inputs/close-cells/cod/9006022.cif
+++ b/tests/inputs/close-cells/cod/9006022.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-21 20:46:04 +0200 (Thu, 21 Jan 2010) $
 #$Revision: 1080 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/close-cells/cod/9006022.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/close-cells/cod/9006022.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/close-cells/cod/9006038.cif b/tests/inputs/close-cells/cod/9006038.cif
index 3e7c8ce..7b9eee8 100644
--- a/tests/inputs/close-cells/cod/9006038.cif
+++ b/tests/inputs/close-cells/cod/9006038.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-21 20:46:04 +0200 (Thu, 21 Jan 2010) $
 #$Revision: 1080 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/close-cells/cod/9006038.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/close-cells/cod/9006038.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/close-cells/cod/9006039.cif b/tests/inputs/close-cells/cod/9006039.cif
index cbe0f0f..4cc7304 100644
--- a/tests/inputs/close-cells/cod/9006039.cif
+++ b/tests/inputs/close-cells/cod/9006039.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-21 20:46:04 +0200 (Thu, 21 Jan 2010) $
 #$Revision: 1080 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/close-cells/cod/9006039.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/close-cells/cod/9006039.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/close-cells/cod/9006040.cif b/tests/inputs/close-cells/cod/9006040.cif
index ac4536d..92e57ee 100644
--- a/tests/inputs/close-cells/cod/9006040.cif
+++ b/tests/inputs/close-cells/cod/9006040.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-21 20:46:04 +0200 (Thu, 21 Jan 2010) $
 #$Revision: 1080 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/close-cells/cod/9006040.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/close-cells/cod/9006040.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/close-cells/cod/9006041.cif b/tests/inputs/close-cells/cod/9006041.cif
index a7c76ec..3eeb89b 100644
--- a/tests/inputs/close-cells/cod/9006041.cif
+++ b/tests/inputs/close-cells/cod/9006041.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-21 20:46:04 +0200 (Thu, 21 Jan 2010) $
 #$Revision: 1080 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/close-cells/cod/9006041.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/close-cells/cod/9006041.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod-different-contents/1011335.cif b/tests/inputs/cod-different-contents/1011335.cif
index e9a51be..0de3a3f 100644
--- a/tests/inputs/cod-different-contents/1011335.cif
+++ b/tests/inputs/cod-different-contents/1011335.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-07 09:33:09 +0300 (Wed, 07 Apr 2010) $
 #$Revision: 1238 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod-different-contents/1011335.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod-different-contents/1011335.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod-different-contents/9011403.cif b/tests/inputs/cod-different-contents/9011403.cif
index 73cd17e..3bc9ebd 100644
--- a/tests/inputs/cod-different-contents/9011403.cif
+++ b/tests/inputs/cod-different-contents/9011403.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-07 09:33:09 +0300 (Wed, 07 Apr 2010) $
 #$Revision: 1238 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod-different-contents/9011403.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod-different-contents/9011403.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod-similar-angles/9001833.cif b/tests/inputs/cod-similar-angles/9001833.cif
index 5b9c146..dda2d50 100644
--- a/tests/inputs/cod-similar-angles/9001833.cif
+++ b/tests/inputs/cod-similar-angles/9001833.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-06 10:50:36 +0300 (Tue, 06 Apr 2010) $
 #$Revision: 1234 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod-similar-angles/9001833.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod-similar-angles/9001833.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod-similar-angles/9001838.cif b/tests/inputs/cod-similar-angles/9001838.cif
index 1171d11..feb072c 100644
--- a/tests/inputs/cod-similar-angles/9001838.cif
+++ b/tests/inputs/cod-similar-angles/9001838.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-04-06 10:50:36 +0300 (Tue, 06 Apr 2010) $
 #$Revision: 1234 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod-similar-angles/9001838.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod-similar-angles/9001838.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod-with-errors/2009397-syntax-error.cif b/tests/inputs/cod-with-errors/2009397-syntax-error.cif
index 374c82e..8482c25 100644
--- a/tests/inputs/cod-with-errors/2009397-syntax-error.cif
+++ b/tests/inputs/cod-with-errors/2009397-syntax-error.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-04-03 21:45:43 +0300 (Fri, 03 Apr 2009) $
 #$Revision: 731 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod-with-errors/2009397-syntax-error.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod-with-errors/2009397-syntax-error.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod-with-errors/2009397.cif b/tests/inputs/cod-with-errors/2009397.cif
index af9e1d5..ba3ffa1 100644
--- a/tests/inputs/cod-with-errors/2009397.cif
+++ b/tests/inputs/cod-with-errors/2009397.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-04-03 21:45:43 +0300 (Fri, 03 Apr 2009) $
 #$Revision: 731 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod-with-errors/2009397.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod-with-errors/2009397.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002543.cif b/tests/inputs/cod1/9002543.cif
index d6d820f..2591857 100644
--- a/tests/inputs/cod1/9002543.cif
+++ b/tests/inputs/cod1/9002543.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002543.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002543.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002544.cif b/tests/inputs/cod1/9002544.cif
index 9365832..f56d30a 100644
--- a/tests/inputs/cod1/9002544.cif
+++ b/tests/inputs/cod1/9002544.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002544.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002544.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002545.cif b/tests/inputs/cod1/9002545.cif
index ec2376a..1a2144d 100644
--- a/tests/inputs/cod1/9002545.cif
+++ b/tests/inputs/cod1/9002545.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002545.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002545.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002546.cif b/tests/inputs/cod1/9002546.cif
index 67e9765..fbcd181 100644
--- a/tests/inputs/cod1/9002546.cif
+++ b/tests/inputs/cod1/9002546.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002546.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002546.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002547.cif b/tests/inputs/cod1/9002547.cif
index 9380525..52c0f8f 100644
--- a/tests/inputs/cod1/9002547.cif
+++ b/tests/inputs/cod1/9002547.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002547.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002547.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002548.cif b/tests/inputs/cod1/9002548.cif
index 486dc1e..6d60647 100644
--- a/tests/inputs/cod1/9002548.cif
+++ b/tests/inputs/cod1/9002548.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002548.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002548.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002549.cif b/tests/inputs/cod1/9002549.cif
index 726ef59..c921895 100644
--- a/tests/inputs/cod1/9002549.cif
+++ b/tests/inputs/cod1/9002549.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002549.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002549.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002550.cif b/tests/inputs/cod1/9002550.cif
index ea4b1a7..b81ed4f 100644
--- a/tests/inputs/cod1/9002550.cif
+++ b/tests/inputs/cod1/9002550.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002550.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002550.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod1/9002551.cif b/tests/inputs/cod1/9002551.cif
index a521cc1..d40512e 100644
--- a/tests/inputs/cod1/9002551.cif
+++ b/tests/inputs/cod1/9002551.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod1/9002551.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod1/9002551.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002543.cif b/tests/inputs/cod2/9002543.cif
index 990735a..56c2c55 100644
--- a/tests/inputs/cod2/9002543.cif
+++ b/tests/inputs/cod2/9002543.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002543.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002543.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002544.cif b/tests/inputs/cod2/9002544.cif
index 01780b3..b306467 100644
--- a/tests/inputs/cod2/9002544.cif
+++ b/tests/inputs/cod2/9002544.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002544.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002544.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002545.cif b/tests/inputs/cod2/9002545.cif
index 8cae916..e242e8d 100644
--- a/tests/inputs/cod2/9002545.cif
+++ b/tests/inputs/cod2/9002545.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002545.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002545.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002546.cif b/tests/inputs/cod2/9002546.cif
index 6165c26..e204ac1 100644
--- a/tests/inputs/cod2/9002546.cif
+++ b/tests/inputs/cod2/9002546.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002546.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002546.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002547.cif b/tests/inputs/cod2/9002547.cif
index 9d64c4e..a4dca21 100644
--- a/tests/inputs/cod2/9002547.cif
+++ b/tests/inputs/cod2/9002547.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002547.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002547.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002548.cif b/tests/inputs/cod2/9002548.cif
index bec77ab..1cb6edc 100644
--- a/tests/inputs/cod2/9002548.cif
+++ b/tests/inputs/cod2/9002548.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002548.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002548.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002549.cif b/tests/inputs/cod2/9002549.cif
index 3404a96..b00d8d0 100644
--- a/tests/inputs/cod2/9002549.cif
+++ b/tests/inputs/cod2/9002549.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002549.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002549.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002550.cif b/tests/inputs/cod2/9002550.cif
index 364f162..406818d 100644
--- a/tests/inputs/cod2/9002550.cif
+++ b/tests/inputs/cod2/9002550.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002550.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002550.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/cod2/9002551.cif b/tests/inputs/cod2/9002551.cif
index ed8a631..39602be 100644
--- a/tests/inputs/cod2/9002551.cif
+++ b/tests/inputs/cod2/9002551.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2008-04-05 14:59:53 +0300 (Sat, 05 Apr 2008) $
 #$Revision: 441 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/cod2/9002551.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/cod2/9002551.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/malformed_symop_new_sym_tag.cif b/tests/inputs/malformed_symop_new_sym_tag.cif
new file mode 100644
index 0000000..596980d
--- /dev/null
+++ b/tests/inputs/malformed_symop_new_sym_tag.cif
@@ -0,0 +1,12 @@
+data_malformed_symop
+_journal_name_full 'Journal'
+_publ_section_title 'Title'
+_journal_year '1968'
+_journal_page_first 1
+_publ_author_name 'Surname, Name'
+loop_
+_space_group_symop_id
+_space_group_symop_operation_xyz
+1 x,y,z
+2 '-x,-y,-z malformed symmop'
+_chemical_formula_sum C
diff --git a/tests/inputs/merge_7b.cif b/tests/inputs/merge_7b.cif
new file mode 100644
index 0000000..8cd9520
--- /dev/null
+++ b/tests/inputs/merge_7b.cif
@@ -0,0 +1,5 @@
+data_merge
+loop_
+_loop_tag3
+_loop_tag4
+a b
diff --git a/tests/inputs/new_symop_tag.cif b/tests/inputs/new_symop_tag.cif
new file mode 100644
index 0000000..e8fc324
--- /dev/null
+++ b/tests/inputs/new_symop_tag.cif
@@ -0,0 +1,12 @@
+data_space_group_symop
+_publ_author_name                'Surname, Name'
+_publ_section_title              Title
+_journal_name_full               Journal
+_journal_page_first              1
+_journal_year                    1968
+_chemical_formula_sum            C
+loop_
+_space_group_symop_id
+_space_group_symop_operation_xyz
+1 x,y,z
+2 -x,-y,-z
diff --git a/tests/inputs/sample-history/cod/9005952.cif b/tests/inputs/sample-history/cod/9005952.cif
index 16b20f2..bc92296 100644
--- a/tests/inputs/sample-history/cod/9005952.cif
+++ b/tests/inputs/sample-history/cod/9005952.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-20 12:06:21 +0200 (Wed, 20 Jan 2010) $
 #$Revision: 1075 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/sample-history/cod/9005952.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/sample-history/cod/9005952.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/sample-history/cod/9005953.cif b/tests/inputs/sample-history/cod/9005953.cif
index 16ae7ee..69cc3d3 100644
--- a/tests/inputs/sample-history/cod/9005953.cif
+++ b/tests/inputs/sample-history/cod/9005953.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-20 12:06:21 +0200 (Wed, 20 Jan 2010) $
 #$Revision: 1075 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/sample-history/cod/9005953.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/sample-history/cod/9005953.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/sample-history/cod/9005954.cif b/tests/inputs/sample-history/cod/9005954.cif
index d012552..214dca2 100644
--- a/tests/inputs/sample-history/cod/9005954.cif
+++ b/tests/inputs/sample-history/cod/9005954.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2010-01-20 12:06:21 +0200 (Wed, 20 Jan 2010) $
 #$Revision: 1075 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/sample-history/cod/9005954.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/sample-history/cod/9005954.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/unparsable-formulae1/1100062.cif b/tests/inputs/unparsable-formulae1/1100062.cif
index 3f17037..529a128 100644
--- a/tests/inputs/unparsable-formulae1/1100062.cif
+++ b/tests/inputs/unparsable-formulae1/1100062.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 16:11:19 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 919 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/unparsable-formulae1/1100062.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/unparsable-formulae1/1100062.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/unparsable-formulae1/1100811.cif b/tests/inputs/unparsable-formulae1/1100811.cif
index ba6102c..95b10ec 100644
--- a/tests/inputs/unparsable-formulae1/1100811.cif
+++ b/tests/inputs/unparsable-formulae1/1100811.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 16:55:42 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 922 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/unparsable-formulae1/1100811.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/unparsable-formulae1/1100811.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/unparsable-formulae1/2010785.cif b/tests/inputs/unparsable-formulae1/2010785.cif
index 8584633..c576796 100644
--- a/tests/inputs/unparsable-formulae1/2010785.cif
+++ b/tests/inputs/unparsable-formulae1/2010785.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 16:11:19 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 919 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/unparsable-formulae1/2010785.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/unparsable-formulae1/2010785.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/unparsable-formulae2/1100062.cif b/tests/inputs/unparsable-formulae2/1100062.cif
index 2b8cb7c..21d56e6 100644
--- a/tests/inputs/unparsable-formulae2/1100062.cif
+++ b/tests/inputs/unparsable-formulae2/1100062.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 16:11:19 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 919 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/unparsable-formulae2/1100062.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/unparsable-formulae2/1100062.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/unparsable-formulae2/1100811.cif b/tests/inputs/unparsable-formulae2/1100811.cif
index 649a3ff..15ac4c5 100644
--- a/tests/inputs/unparsable-formulae2/1100811.cif
+++ b/tests/inputs/unparsable-formulae2/1100811.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 16:55:42 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 922 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/unparsable-formulae2/1100811.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/unparsable-formulae2/1100811.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/inputs/unparsable-formulae2/2010785.cif b/tests/inputs/unparsable-formulae2/2010785.cif
index 9194d04..022f6df 100644
--- a/tests/inputs/unparsable-formulae2/2010785.cif
+++ b/tests/inputs/unparsable-formulae2/2010785.cif
@@ -1,7 +1,7 @@
 #------------------------------------------------------------------------------
 #$Date: 2009-07-11 16:11:19 +0300 (Sat, 11 Jul 2009) $
 #$Revision: 919 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/inputs/unparsable-formulae2/2010785.cif $
+#$URL: svn://www.crystallography.net/cod-tools/trunk/tests/inputs/unparsable-formulae2/2010785.cif $
 #------------------------------------------------------------------------------
 #
 # This file is available in the Crystallography Open Database (COD),
diff --git a/tests/outputs/cif2cod_047.out b/tests/outputs/cif2cod_047.out
new file mode 100644
index 0000000..1f06547
--- /dev/null
+++ b/tests/outputs/cif2cod_047.out
@@ -0,0 +1 @@
+column1;column2;column3
diff --git a/tests/outputs/cif_classify_002.out b/tests/outputs/cif_classify_002.out
index 4e7c566..5ab2320 100644
--- a/tests/outputs/cif_classify_002.out
+++ b/tests/outputs/cif_classify_002.out
@@ -1 +1 @@
-9007874	has_C_C_bond,has_C_H_bond
+scripts/cif_classify: tests/cases/cif_classify_002.inp data_9007874: WARNING, could not determine chemical type for atom 'HC2'.
diff --git a/tests/outputs/cif_cod_check_008.out b/tests/outputs/cif_cod_check_008.out
index bc30c21..ff49d65 100644
--- a/tests/outputs/cif_cod_check_008.out
+++ b/tests/outputs/cif_cod_check_008.out
@@ -1,2 +1,3 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_008.inp data_2000000: WARNING, _publ_section_title is undefined.
-scripts/cif_cod_check: tests/cases/cif_cod_check_008.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_008.inp data_2000000: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_008.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_009.out b/tests/outputs/cif_cod_check_009.out
index 19e7569..9a5b6bc 100644
--- a/tests/outputs/cif_cod_check_009.out
+++ b/tests/outputs/cif_cod_check_009.out
@@ -1,2 +1,3 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_009.inp data_2000000: WARNING, _publ_section_title is undefined.
-scripts/cif_cod_check: tests/cases/cif_cod_check_009.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_009.inp data_2000000: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_009.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_010.out b/tests/outputs/cif_cod_check_010.out
index 1a9d8da..ee5ac5f 100644
--- a/tests/outputs/cif_cod_check_010.out
+++ b/tests/outputs/cif_cod_check_010.out
@@ -1,3 +1,4 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_010.inp data_2000000: WARNING, _publ_section_title is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_010.inp data_2000000: WARNING, no symmetry information found.
-scripts/cif_cod_check: tests/cases/cif_cod_check_010.inp: NOTE, 2 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_010.inp data_2000000: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_010.inp: NOTE, 3 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_012.out b/tests/outputs/cif_cod_check_012.out
index f3a678d..e2f80d7 100644
--- a/tests/outputs/cif_cod_check_012.out
+++ b/tests/outputs/cif_cod_check_012.out
@@ -5,10 +5,13 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_global: NOTE, name
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_global: NOTE, name 'V. MAISONNEUVE' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_global: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_global: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_global: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, _publ_section_title is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, neither _journal_year nor _journal_volume is defined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, neither _journal_page_first nor _journal_article_reference is defined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, no symmetry information found.
-scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp: NOTE, 12 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp data_C5H17AlN2O8P2: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp: NOTE, 5 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_012.inp: NOTE, 10 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_013.out b/tests/outputs/cif_cod_check_013.out
index aee0cfd..a512767 100644
--- a/tests/outputs/cif_cod_check_013.out
+++ b/tests/outputs/cif_cod_check_013.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: NOTE, name
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: NOTE, name 'V. MAISONNEUVE' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_global: WARNING, not enough data to estimate Z; cell volume undefined; crystal density undefined; molecular weight undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WARNING, _journal_name_full is undefined.
@@ -13,5 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WAR
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WARNING, neither _journal_page_first nor _journal_article_reference is defined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp data_C5H17AlN2O8P2: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp: NOTE, 15 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp: NOTE, 5 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_013.inp: NOTE, 13 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_015.out b/tests/outputs/cif_cod_check_015.out
index 1575d28..53dd400 100644
--- a/tests/outputs/cif_cod_check_015.out
+++ b/tests/outputs/cif_cod_check_015.out
@@ -4,4 +4,5 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp data_global: NOTE, name
 scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp data_global: NOTE, name 'J. RENAUDIN' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp data_global: NOTE, name 'V. MAISONNEUVE' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp data_C5H17AlN2O8P2: WARNING, _publ_author_name is undefined.
-scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp: NOTE, 5 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp: NOTE, 5 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_015.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_018.out b/tests/outputs/cif_cod_check_018.out
index 32a5e76..d9f1188 100644
--- a/tests/outputs/cif_cod_check_018.out
+++ b/tests/outputs/cif_cod_check_018.out
@@ -1 +1,3 @@
-tests/cases/cif_cod_check_018.inp: OK
+scripts/cif_cod_check: tests/cases/cif_cod_check_018.inp data_global: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_018.inp data_C5H17AlN2O8P2: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_018.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_019.out b/tests/outputs/cif_cod_check_019.out
index 9d302b3..6284848 100644
--- a/tests/outputs/cif_cod_check_019.out
+++ b/tests/outputs/cif_cod_check_019.out
@@ -1,3 +1,4 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_019.inp data_1008954: WARNING, name 'Dalmas=de=Reotier, P' contains symbol '=' that is not permitted in names.
 scripts/cif_cod_check: tests/cases/cif_cod_check_019.inp data_1008954: NOTE, names should be written as 'First von Last', 'von Last, First', or 'von Last, Jr, First' (mind the case!).
+scripts/cif_cod_check: tests/cases/cif_cod_check_019.inp: NOTE, 1 NOTE(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_019.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_020.out b/tests/outputs/cif_cod_check_020.out
index 6c1bda7..5bbcdc1 100644
--- a/tests/outputs/cif_cod_check_020.out
+++ b/tests/outputs/cif_cod_check_020.out
@@ -1,5 +1,7 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp data_global: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp data_global: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp data_global: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp data_C5H17AlN2O8P2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp data_C5H17AlN2O8P2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp data_C5H17AlN2O8P2: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp: NOTE, 4 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_020.inp: NOTE, 6 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_023.out b/tests/outputs/cif_cod_check_023.out
index ae41265..de63f4d 100644
--- a/tests/outputs/cif_cod_check_023.out
+++ b/tests/outputs/cif_cod_check_023.out
@@ -1,3 +1,3 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_023.inp data_2205750: NOTE, name 'Updegraff III, James B.' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_023.inp data_2205750: NOTE, names should be written as 'First von Last', 'von Last, First', or 'von Last, Jr, First' (mind the case!).
-scripts/cif_cod_check: tests/cases/cif_cod_check_023.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_023.inp: NOTE, 2 NOTE(s) encountered.
diff --git a/tests/outputs/cif_cod_check_025.out b/tests/outputs/cif_cod_check_025.out
index aff2aa5..894a8fb 100644
--- a/tests/outputs/cif_cod_check_025.out
+++ b/tests/outputs/cif_cod_check_025.out
@@ -1,3 +1,4 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_025.inp data_2000334: WARNING, _publ_section_title is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_025.inp data_2000334: WARNING, _publ_author_name is undefined.
-scripts/cif_cod_check: tests/cases/cif_cod_check_025.inp: NOTE, 2 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_025.inp data_2000334: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_025.inp: NOTE, 3 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_026.out b/tests/outputs/cif_cod_check_026.out
index 8453441..7abac5e 100644
--- a/tests/outputs/cif_cod_check_026.out
+++ b/tests/outputs/cif_cod_check_026.out
@@ -1 +1,2 @@
-tests/cases/cif_cod_check_026.inp: OK
+scripts/cif_cod_check: tests/cases/cif_cod_check_026.inp data_2000380: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_026.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_050.out b/tests/outputs/cif_cod_check_050.out
index 376735e..32c4eae 100644
--- a/tests/outputs/cif_cod_check_050.out
+++ b/tests/outputs/cif_cod_check_050.out
@@ -4,4 +4,5 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp data_global: NOTE, name
 scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp data_global: NOTE, name 'J. RENAUDIN' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp data_global: NOTE, name 'V. MAISONNEUVE' seems unusual.
 scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp data_C5H17AlN2O8P2: WARNING, _publ_author_name is undefined.
-scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp: NOTE, 5 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp: NOTE, 5 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_050.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_051.out b/tests/outputs/cif_cod_check_051.out
index 1c5dfbf..a96094c 100644
--- a/tests/outputs/cif_cod_check_051.out
+++ b/tests/outputs/cif_cod_check_051.out
@@ -1 +1,3 @@
-tests/cases/cif_cod_check_051.inp: OK
+scripts/cif_cod_check: tests/cases/cif_cod_check_051.inp data_global: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_051.inp data_C5H17AlN2O8P2: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_051.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_056.out b/tests/outputs/cif_cod_check_056.out
index e396669..d4391c7 100644
--- a/tests/outputs/cif_cod_check_056.out
+++ b/tests/outputs/cif_cod_check_056.out
@@ -1 +1,2 @@
-tests/cases/cif_cod_check_056.inp: OK
+scripts/cif_cod_check: tests/cases/cif_cod_check_056.inp data_0000055: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_056.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_063.out b/tests/outputs/cif_cod_check_063.out
index b95bb98..45332b6 100644
--- a/tests/outputs/cif_cod_check_063.out
+++ b/tests/outputs/cif_cod_check_063.out
@@ -1 +1,2 @@
-tests/cases/cif_cod_check_063.inp: OK
+scripts/cif_cod_check: tests/cases/cif_cod_check_063.inp data_0000055: WARNING, the space group symmetry operation list was not provided.
+scripts/cif_cod_check: tests/cases/cif_cod_check_063.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_072.out b/tests/outputs/cif_cod_check_072.out
index 8985b17..4f153b4 100644
--- a/tests/outputs/cif_cod_check_072.out
+++ b/tests/outputs/cif_cod_check_072.out
@@ -1,7 +1,8 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp data_2000373: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp data_2000373: NOTE, data item '_refine_ls_R_factor_obs' value '0.15' is > 0.13.
 scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp data_2000373: NOTE, data item '_refine_ls_goodness_of_fit_obs' value '5.05' lies outside the range [0.89, 3.9].
 scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp data_2000373: ERROR, data item '_refine_ls_shift/esd_max' value '0.57' is > 0.2.
 scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp data_2000373: WARNING, data item '_refine_ls_wR_factor_obs' value '0.36' is > 0.35.
 scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp: NOTE, 2 NOTE(s) encountered.
-scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp: NOTE, 2 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_072.inp: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_082.out b/tests/outputs/cif_cod_check_082.out
index 6ec79f6..a85147f 100644
--- a/tests/outputs/cif_cod_check_082.out
+++ b/tests/outputs/cif_cod_check_082.out
@@ -1,3 +1,4 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_082.inp data_I: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_082.inp data_I: WARNING, data item '_atom_site_fract_y' is present, but data item ['_atom_site_fract_x'] is absent.
 scripts/cif_cod_check: tests/cases/cif_cod_check_082.inp data_I: WARNING, data item '_atom_site_aniso_U_12' is present, but data items ['_atom_site_aniso_U_11', '_atom_site_aniso_U_13', '_atom_site_aniso_U_22'] are absent.
-scripts/cif_cod_check: tests/cases/cif_cod_check_082.inp: NOTE, 2 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_082.inp: NOTE, 3 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_083.out b/tests/outputs/cif_cod_check_083.out
index 476460d..bb27e85 100644
--- a/tests/outputs/cif_cod_check_083.out
+++ b/tests/outputs/cif_cod_check_083.out
@@ -1,2 +1,3 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_083.inp data_I: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_083.inp data_I: WARNING, data item '_atom_site_fract_y' is present, but data item ['_atom_site_fract_x'] is absent.
-scripts/cif_cod_check: tests/cases/cif_cod_check_083.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_083.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_084.out b/tests/outputs/cif_cod_check_084.out
index 59c9abf..71672a2 100644
--- a/tests/outputs/cif_cod_check_084.out
+++ b/tests/outputs/cif_cod_check_084.out
@@ -1,2 +1,3 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_084.inp data_I: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_084.inp data_I: WARNING, data item '_atom_site_Cartn_y' is present, but data items ['_atom_site_Cartn_x', '_atom_site_Cartn_z'] are absent.
-scripts/cif_cod_check: tests/cases/cif_cod_check_084.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_084.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_085.out b/tests/outputs/cif_cod_check_085.out
index 6fc923a..93fadb8 100644
--- a/tests/outputs/cif_cod_check_085.out
+++ b/tests/outputs/cif_cod_check_085.out
@@ -1,2 +1,3 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_085.inp data_I: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_085.inp data_I: WARNING, data item '_atom_site_fract_x' is present, but data item ['_atom_site_fract_z'] is absent.
-scripts/cif_cod_check: tests/cases/cif_cod_check_085.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_085.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_086.out b/tests/outputs/cif_cod_check_086.out
index 6f3ab00..1b6ef66 100644
--- a/tests/outputs/cif_cod_check_086.out
+++ b/tests/outputs/cif_cod_check_086.out
@@ -1,2 +1,3 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_086.inp data_I: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_086.inp data_I: WARNING, data item '_atom_site_fract_x' is present, but data items ['_atom_site_fract_y', '_atom_site_fract_z'] are absent.
-scripts/cif_cod_check: tests/cases/cif_cod_check_086.inp: NOTE, 1 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_086.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_087.out b/tests/outputs/cif_cod_check_087.out
index 9508a7b..7b15284 100644
--- a/tests/outputs/cif_cod_check_087.out
+++ b/tests/outputs/cif_cod_check_087.out
@@ -14,5 +14,6 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp data_A_BA4TA2O9_RT_p_01
 scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp data_A_BA4TA2O9_RT_p_01: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp data_A_BA4TA2O9_RT_p_01: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp data_A_BA4TA2O9_RT_p_01: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp data_A_BA4TA2O9_RT_p_01: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp data_A_BA4TA2O9_RT_p_01: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp: NOTE, 17 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_087.inp: NOTE, 18 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_088.out b/tests/outputs/cif_cod_check_088.out
index f1cfb9e..35c6590 100644
--- a/tests/outputs/cif_cod_check_088.out
+++ b/tests/outputs/cif_cod_check_088.out
@@ -14,10 +14,11 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp data_A_BA4TA2O9_RT_p_01
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp data_A_BA4TA2O9_RT_p_01: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp data_A_BA4TA2O9_RT_p_01: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp data_A_BA4TA2O9_RT_p_01: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp data_A_BA4TA2O9_RT_p_01: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp data_A_BA4TA2O9_RT_p_01: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: ERROR, phase data block 'data_A_BA4TA2O9_RT_phase_1' does not contain a diffractogram list.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: WARNING, value '2009-08-27T22:46|A_BA4TA2O9_RT_phase2|Chris_Ling||' seems to be missing in the _pd_phase_block_id list of the difractogram data block 'data_A_BA4TA2O9_RT_p_01'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: ERROR, diffractogram data block with _pd_block_id '2009-08-27T22:46|A_BA4TA2O9_RT_H_02|Chris_Ling|SPODI' is listed in the phase data block 'data_A_BA4TA2O9_RT_phase_2', but does not exist.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: ERROR, phase data block 'data_A_BA4TA2O9_RT_phase_1' does not contain a diffractogram list.
-scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: NOTE, 18 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: NOTE, 19 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_088.inp: ERROR, 3 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_089.out b/tests/outputs/cif_cod_check_089.out
index 36f24a9..d5c2bbb 100644
--- a/tests/outputs/cif_cod_check_089.out
+++ b/tests/outputs/cif_cod_check_089.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_test: WARNING, nei
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_test: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_test: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_test: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_test: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_test: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_3: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, _publ_section_title is undefined.
@@ -45,6 +50,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_4: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, _publ_section_title is undefined.
@@ -53,6 +59,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_5: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, _publ_section_title is undefined.
@@ -61,6 +68,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_6: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, _publ_section_title is undefined.
@@ -69,6 +77,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_7: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, _publ_section_title is undefined.
@@ -77,6 +86,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, neithe
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp data_8: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: WARNING, value 'b' seems to be missing in the _pd_phase_block_id list of the difractogram data block 'data_8'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: ERROR, phase data block 'data_3' does not contain a diffractogram list.
@@ -84,5 +94,5 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: ERROR, phase data bloc
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: ERROR, value 'x' seems to be missing in _pd_block_diffractogram_id list of the phase data block 'data_2'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: ERROR, diffractogram data block 'data_6' does not contain a phase list.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: ERROR, phase data block 'data_3' does not contain a diffractogram list.
-scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: NOTE, 81 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: NOTE, 91 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_089.inp: ERROR, 5 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_090.out b/tests/outputs/cif_cod_check_090.out
index 8ce3082..50dcc9f 100644
--- a/tests/outputs/cif_cod_check_090.out
+++ b/tests/outputs/cif_cod_check_090.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_publ: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_publ: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_diffractogram2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, _publ_section_title is undefined.
@@ -45,5 +50,6 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp data_test_phase2: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp: NOTE, 48 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_090.inp: NOTE, 54 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_091.out b/tests/outputs/cif_cod_check_091.out
index 5a8bdd9..662f74f 100644
--- a/tests/outputs/cif_cod_check_091.out
+++ b/tests/outputs/cif_cod_check_091.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_publ: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_publ: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_diffractogram2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, _publ_section_title is undefined.
@@ -45,7 +50,8 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp data_test_phase2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp: ERROR, value 'diffractogram2' seems to be missing in _pd_block_diffractogram_id list of the phase data block 'data_test_phase2'.
-scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp: NOTE, 48 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp: NOTE, 54 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_091.inp: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_092.out b/tests/outputs/cif_cod_check_092.out
index c86bf06..a1aff37 100644
--- a/tests/outputs/cif_cod_check_092.out
+++ b/tests/outputs/cif_cod_check_092.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_publ: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_publ: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_diffractogram2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, _publ_section_title is undefined.
@@ -45,7 +50,8 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp data_test_phase2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp: ERROR, diffractogram data block with _pd_block_id 'diffractogram3' listed in the _pd_block_diffractogram_id loop of the overall data block 'data_test_overall', but does not exist.
-scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp: NOTE, 48 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp: NOTE, 54 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_092.inp: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_093.out b/tests/outputs/cif_cod_check_093.out
index 4e30387..a35f46d 100644
--- a/tests/outputs/cif_cod_check_093.out
+++ b/tests/outputs/cif_cod_check_093.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_publ: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_publ: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_diffractogram2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, _publ_section_title is undefined.
@@ -45,10 +50,11 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp data_test_phase2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: WARNING, value 'phase1' seems to be missing in the _pd_phase_block_id list of the difractogram data block 'data_test_diffractogram2'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: ERROR, phase data block 'data_test_phase2' does not contain a diffractogram list.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: ERROR, value 'diffractogram1' seems to be missing in _pd_block_diffractogram_id list of the phase data block 'data_test_phase1'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: ERROR, phase data block 'data_test_phase2' does not contain a diffractogram list.
-scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: NOTE, 49 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: NOTE, 55 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_093.inp: ERROR, 3 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_094.out b/tests/outputs/cif_cod_check_094.out
index 62466bf..17e3739 100644
--- a/tests/outputs/cif_cod_check_094.out
+++ b/tests/outputs/cif_cod_check_094.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_publ: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_publ: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_diffractogram2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, _publ_section_title is undefined.
@@ -45,7 +50,8 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNI
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp data_test_phase2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp: ERROR, phase data block 'data_test_phase2' is not listed in _pd_phase_block_id loop of the overall information data block 'data_test_overall'.
-scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp: NOTE, 48 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp: NOTE, 54 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_094.inp: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_095.out b/tests/outputs/cif_cod_check_095.out
index d36a5fe..5343b2d 100644
--- a/tests/outputs/cif_cod_check_095.out
+++ b/tests/outputs/cif_cod_check_095.out
@@ -2,6 +2,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_publ
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_publ: NOTE, names should be written as 'First von Last', 'von Last, First', or 'von Last, Jr, First' (mind the case!).
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, _publ_section_title is undefined.
@@ -10,6 +11,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_over
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_phase_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_phase_1: WARNING, _publ_section_title is undefined.
@@ -32,5 +34,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_p_01
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_p_01: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_p_01: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_p_01: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_p_01: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp data_A_BA4TA2O9_RT_p_01: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp: NOTE, 34 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp: NOTE, 1 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_095.inp: NOTE, 37 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_096.out b/tests/outputs/cif_cod_check_096.out
index 0e8ff54..0e5805d 100644
--- a/tests/outputs/cif_cod_check_096.out
+++ b/tests/outputs/cif_cod_check_096.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_publ: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_publ: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_publ: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_publ: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_publ: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_publ: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARN
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_phase_2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, _publ_section_title is undefined.
@@ -37,6 +41,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, _publ_section_title is undefined.
@@ -45,5 +50,6 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp data_NISI_p_O2: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp: NOTE, 48 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_096.inp: NOTE, 54 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_097.out b/tests/outputs/cif_cod_check_097.out
index edb3a80..db493d0 100644
--- a/tests/outputs/cif_cod_check_097.out
+++ b/tests/outputs/cif_cod_check_097.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_overall: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_phase_2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: W
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp data_diffractogram_1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp: WARNING, value 'phase_2' seems to be missing in the _pd_phase_block_id list of the difractogram data block 'data_diffractogram_1'.
-scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp: NOTE, 33 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_097.inp: NOTE, 37 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_098.out b/tests/outputs/cif_cod_check_098.out
index 1f71766..59ee2ab 100644
--- a/tests/outputs/cif_cod_check_098.out
+++ b/tests/outputs/cif_cod_check_098.out
@@ -5,6 +5,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_overall: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_overall: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_overall: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_overall: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_overall: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_overall: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, _publ_section_title is undefined.
@@ -13,6 +14,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, _publ_section_title is undefined.
@@ -21,6 +23,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_phase_2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, _publ_section_title is undefined.
@@ -29,6 +32,7 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: W
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_1: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, _journal_name_full is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, _publ_section_title is undefined.
@@ -37,7 +41,8 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: W
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp data_diffractogram_2: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp: ERROR, value 'diffractogram_2' seems to be missing in _pd_block_diffractogram_id list of the phase data block 'data_phase_2'.
-scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp: NOTE, 40 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp: NOTE, 45 WARNING(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_098.inp: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_099.out b/tests/outputs/cif_cod_check_099.out
index b8fade2..b7cdc4a 100644
--- a/tests/outputs/cif_cod_check_099.out
+++ b/tests/outputs/cif_cod_check_099.out
@@ -10,4 +10,5 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_099.inp data_imb293: WARNING, n
 scripts/cif_cod_check: tests/cases/cif_cod_check_099.inp data_imb293: WARNING, name '\n 'Pablo Espinet'' contains symbol '\n' that is not permitted in names.
 scripts/cif_cod_check: tests/cases/cif_cod_check_099.inp data_imb293: WARNING, name '\n ''' contains symbol '\n' that is not permitted in names.
 scripts/cif_cod_check: tests/cases/cif_cod_check_099.inp data_imb293: WARNING, incorrect _symmetry_space_group_name_H-M 'P2(1)/n'.
+scripts/cif_cod_check: tests/cases/cif_cod_check_099.inp: NOTE, 1 NOTE(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_099.inp: NOTE, 11 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_102.out b/tests/outputs/cif_cod_check_102.out
index 847c03c..f464c39 100644
--- a/tests/outputs/cif_cod_check_102.out
+++ b/tests/outputs/cif_cod_check_102.out
@@ -5,5 +5,6 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp data_try_loop_with_sing
 scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp data_try_loop_with_single_quotes: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp data_try_loop_with_single_quotes: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp data_try_loop_with_single_quotes: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp data_try_loop_with_single_quotes: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp data_try_loop_with_single_quotes: WARNING, no space group symbol to check cell constraints.
-scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp: NOTE, 8 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_102.inp: NOTE, 9 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_103.out b/tests/outputs/cif_cod_check_103.out
index 8044b46..12711ee 100644
--- a/tests/outputs/cif_cod_check_103.out
+++ b/tests/outputs/cif_cod_check_103.out
@@ -1,6 +1,6 @@
-scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp data_2001925: NOTE, symmetry operator 'x,y,z' is repeated 3 times (as 'x,y,z', 'x-1,y-1,z', 'x-1,y,z') in symmetry operator list.
-scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp data_2001925: NOTE, symmetry operators '-x+1/2,y+1/2,-z+1/2', '-x,-y,-z', 'x+1/2,-y+1/2,z+1/2' are missing, although required by the space group 'P 1 21/n 1'.
+scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp data_2001925: NOTE, symmetry operation 'x,y,z' is repeated 3 times (as 'x,y,z', 'x-1,y-1,z', 'x-1,y,z') in symmetry operation list.
+scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp data_2001925: NOTE, symmetry operations '-x+1/2,y+1/2,-z+1/2', '-x,-y,-z', 'x+1/2,-y+1/2,z+1/2' are missing, although required by the space group 'P 1 21/n 1'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp data_2001925: NOTE, data item '_refine_ls_goodness_of_fit_obs' value '2.24' lies outside the range [0.8, 2].
 scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp data_2001925: WARNING, structure is published after 1969, but does not contain temperature factors.
-scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp: NOTE, 1 NOTE(s) encountered.
-scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp: NOTE, 3 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp: NOTE, 3 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_103.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_104.out b/tests/outputs/cif_cod_check_104.out
index 2093c54..75d7566 100644
--- a/tests/outputs/cif_cod_check_104.out
+++ b/tests/outputs/cif_cod_check_104.out
@@ -1,5 +1,5 @@
-scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp data_2005206: NOTE, symmetry operator '-x,-y,-z' is missing, although required by the space group 'P 1 21/n 1'.
-scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp data_2005206: NOTE, symmetry operator 'x,-y,-z' is found, although not required by the space group 'P 1 21/n 1'.
+scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp data_2005206: NOTE, symmetry operation '-x,-y,-z' is missing, although required by the space group 'P 1 21/n 1'.
+scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp data_2005206: NOTE, symmetry operation 'x,-y,-z' is found, although not required by the space group 'P 1 21/n 1'.
 scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp data_2005206: ERROR, data item '_refine_ls_shift/esd_max' value '0.25' is > 0.2.
-scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp: NOTE, 2 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp: NOTE, 2 NOTE(s) encountered.
 scripts/cif_cod_check: tests/cases/cif_cod_check_104.inp: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cif_cod_check_105.out b/tests/outputs/cif_cod_check_105.out
index 832744d..bd66601 100644
--- a/tests/outputs/cif_cod_check_105.out
+++ b/tests/outputs/cif_cod_check_105.out
@@ -1,6 +1,7 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, _publ_author_name is undefined.
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, data item '_tcod_atom_sites_sim_cell_tran_matrix_11' is present, but data items ['_tcod_atom_sites_sim_cell_tran_matrix_12', '_tcod_atom_sites_sim_cell_tran_matrix_13', '_tcod_atom_sites_sim_cell_tran_matrix_21', '_tcod_atom_sites_sim_cell_tran_matrix_22', '_tcod_atom_sites_sim_cell_tran_matrix_23', '_tcod_atom_sites_sim_cell_tran_matrix_31', '_tcod_atom_sites_sim_cell_tran_matrix_32', '_tcod_atom_sites_sim_c [...]
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, data item '_tcod_atom_sites_sim_cell_tran_vector_1' is present, but data items ['_tcod_atom_sites_sim_cell_tran_vector_2', '_tcod_atom_sites_sim_cell_tran_vector_3'] are absent.
@@ -13,4 +14,4 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING,
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, data item '_dft_BZ_integration_grid_dens_X' is present, but data item ['_dft_BZ_integration_grid_dens_Z'] is absent.
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, data item '_dft_BZ_integration_grid_shift_X' is present, but data item ['_dft_BZ_integration_grid_shift_Z'] is absent.
 scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp data_missing: WARNING, data item '_dft_cell_periodic_BC_X' is present, but data item ['_dft_cell_periodic_BC_Z'] is absent.
-scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp: NOTE, 15 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_105.inp: NOTE, 16 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_108.out b/tests/outputs/cif_cod_check_108.out
index f654d3e..6b17bf1 100644
--- a/tests/outputs/cif_cod_check_108.out
+++ b/tests/outputs/cif_cod_check_108.out
@@ -1,4 +1,4 @@
 scripts/cif_cod_check: tests/cases/cif_cod_check_108.inp data_nice: WARNING, no space group symbol found.
-scripts/cif_cod_check: tests/cases/cif_cod_check_108.inp data_nice: WARNING, symmetry operator '-x,-y,-z malformed symmop' could not be parsed.
+scripts/cif_cod_check: tests/cases/cif_cod_check_108.inp data_nice: WARNING, symmetry operation '-x,-y,-z malformed symmop' could not be parsed.
 scripts/cif_cod_check: tests/cases/cif_cod_check_108.inp data_nice: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_108.inp: NOTE, 3 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_109.out b/tests/outputs/cif_cod_check_109.out
index bf8fd57..f13bf3a 100644
--- a/tests/outputs/cif_cod_check_109.out
+++ b/tests/outputs/cif_cod_check_109.out
@@ -2,6 +2,8 @@ scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: WARNING, n
 scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: NOTE, names should be written as 'First von Last', 'von Last, First', or 'von Last, Jr, First' (mind the case!).
 scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: WARNING, no _chemical_formula_sum.
 scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: WARNING, no symmetry information found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: WARNING, the space group symmetry operation list was not provided.
 scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: WARNING, no space group symbol to check cell constraints.
 scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp data_global: WARNING, structure is published after 1969, but does not contain temperature factors.
-scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp: NOTE, 5 WARNING(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp: NOTE, 1 NOTE(s) encountered.
+scripts/cif_cod_check: tests/cases/cif_cod_check_109.inp: NOTE, 6 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_110.out b/tests/outputs/cif_cod_check_110.out
index 399008a..495e05e 100644
--- a/tests/outputs/cif_cod_check_110.out
+++ b/tests/outputs/cif_cod_check_110.out
@@ -1,5 +1,5 @@
-scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_3: NOTE, atom count in groups of disorder assembly 'A' are different: 5 ('.'), 18 ('1'), 14 ('2') at <script_name> line <line_no>.
-scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_6: NOTE, atom count in groups of disorder assembly 'A' are different: 10 ('.'), 1 ('1'), 1 ('2') at <script_name> line <line_no>.
-scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_6: NOTE, atom count in groups of disorder assembly 'B' are different: 10 ('.'), 1 ('1'), 1 ('2') at <script_name> line <line_no>.
-scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_6: NOTE, atom count in groups of disorder assembly 'C' are different: 10 ('.'), 1 ('1'), 1 ('2') at <script_name> line <line_no>.
-tests/cases/cif_cod_check_110.inp: OK
+scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_3: NOTE, atom count in groups of disorder assembly 'A' are different: 5 ('.'), 18 ('1'), 14 ('2').
+scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_6: NOTE, atom count in groups of disorder assembly 'A' are different: 10 ('.'), 1 ('1'), 1 ('2').
+scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_6: NOTE, atom count in groups of disorder assembly 'B' are different: 10 ('.'), 1 ('1'), 1 ('2').
+scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp data_6: NOTE, atom count in groups of disorder assembly 'C' are different: 10 ('.'), 1 ('1'), 1 ('2').
+scripts/cif_cod_check: tests/cases/cif_cod_check_110.inp: NOTE, 4 NOTE(s) encountered.
diff --git a/tests/outputs/cif_cod_check_112.out b/tests/outputs/cif_cod_check_112.out
new file mode 100644
index 0000000..30e4081
--- /dev/null
+++ b/tests/outputs/cif_cod_check_112.out
@@ -0,0 +1,2 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_112.inp data_malformed_symop: WARNING, symmetry operation '-x,-y,-z malformed symmop' could not be parsed.
+scripts/cif_cod_check: tests/cases/cif_cod_check_112.inp: NOTE, 1 WARNING(s) encountered.
diff --git a/tests/outputs/cif_cod_check_113.out b/tests/outputs/cif_cod_check_113.out
new file mode 100644
index 0000000..cd2679a
--- /dev/null
+++ b/tests/outputs/cif_cod_check_113.out
@@ -0,0 +1,3 @@
+scripts/cif_cod_check: tests/cases/cif_cod_check_113.inp data_space_group_symop: WARNING, no space group symbol found.
+scripts/cif_cod_check: tests/cases/cif_cod_check_113.inp data_space_group_symop: WARNING, no space group symbol to check cell constraints.
+scripts/cif_cod_check: tests/cases/cif_cod_check_113.inp: NOTE, 2 WARNING(s) encountered.
diff --git a/tests/outputs/cif_correct_tags_005.out b/tests/outputs/cif_correct_tags_005.out
index 75329eb..eaa98b1 100644
--- a/tests/outputs/cif_correct_tags_005.out
+++ b/tests/outputs/cif_correct_tags_005.out
@@ -1,3 +1,5 @@
+scripts/cif_correct_tags: tests/cases/cif_correct_tags_005.inp(2,19): WARNING, unallowed symbol in CIF comment.
+scripts/cif_correct_tags: tests/cases/cif_correct_tags_005.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cif_correct_tags: tests/cases/cif_correct_tags_005.inp data_receptor16_DABCO: NOTE, data name '_atom_site_refinement_disorder_assembly' replaced with '_atom_site_disorder_assembly' as specified in the replacement file 'tests/inputs/b415935g-replacement-list.lst'.
 scripts/cif_correct_tags: tests/cases/cif_correct_tags_005.inp data_receptor16_DABCO: NOTE, data name '_atom_site_refinement_disorder_group' replaced with '_atom_site_disorder_group' as specified in the replacement file 'tests/inputs/b415935g-replacement-list.lst'.
 scripts/cif_correct_tags: tests/cases/cif_correct_tags_005.inp data_receptor12_DABCO: NOTE, data name '_atom_site_refinement_disorder_group' replaced with '_atom_site_disorder_group' as specified in the replacement file 'tests/inputs/b415935g-replacement-list.lst'.
diff --git a/tests/outputs/cif_distances_024.out b/tests/outputs/cif_distances_024.out
index 72f6e3d..b27395f 100644
--- a/tests/outputs/cif_distances_024.out
+++ b/tests/outputs/cif_distances_024.out
@@ -1,3 +1,2 @@
-scripts/cif_distances: tests/cases/cif_distances_024.inp data_9009261: WARNING, neither symmetry operator data item values, nor Hall space group name, nor Hermann-Mauguin space group name could be processed to acquire symmetry operators.
-scripts/cif_distances: tests/cases/cif_distances_024.inp data_9009261: ERROR, unable to generate symmetrically equivalent atoms -- dataset will be skipped.
+scripts/cif_distances: tests/cases/cif_distances_024.inp data_9009261: ERROR, neither symmetry operator data item values, nor Hall space group name, nor Hermann-Mauguin space group name could be processed to acquire symmetry operators.
 FORMAT distance_matrix v1.0 svn://www.crystallography.net/cod-tools/trunk/perl-scripts/docs/cif_distances_distance_matrix_v1.0
diff --git a/tests/outputs/cif_filter_136.out b/tests/outputs/cif_filter_136.out
index 6b7d0e0..ebc15e8 100644
--- a/tests/outputs/cif_filter_136.out
+++ b/tests/outputs/cif_filter_136.out
@@ -1,3 +1,5 @@
+scripts/cif_filter: tests/cases/cif_filter_136.inp(2,19): WARNING, unallowed symbol in CIF comment.
+scripts/cif_filter: tests/cases/cif_filter_136.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cif_filter: tests/cases/cif_filter_136.inp data_9: WARNING, data name '_ccdc_biological_activity' is not recognised.
 scripts/cif_filter: tests/cases/cif_filter_136.inp data_9: WARNING, data name '_ccdc_polymorph' is not recognised.
 scripts/cif_filter: tests/cases/cif_filter_136.inp data_9: WARNING, data name '_ccdc_chemdiag_type' is not recognised.
diff --git a/tests/outputs/cif_filter_137.out b/tests/outputs/cif_filter_137.out
index cb80b32..b2ec20c 100644
--- a/tests/outputs/cif_filter_137.out
+++ b/tests/outputs/cif_filter_137.out
@@ -1,3 +1,5 @@
+scripts/cif_filter: tests/cases/cif_filter_137.inp(2,19): WARNING, unallowed symbol in CIF comment.
+scripts/cif_filter: tests/cases/cif_filter_137.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cif_filter: tests/cases/cif_filter_137.inp data_9: WARNING, data name '_ccdc_journal_depnumber' is not recognised.
 scripts/cif_filter: tests/cases/cif_filter_137.inp data_9: WARNING, data name '_ccdc_biological_activity' is not recognised.
 scripts/cif_filter: tests/cases/cif_filter_137.inp data_9: WARNING, data name '_ccdc_polymorph' is not recognised.
diff --git a/tests/outputs/cif_filter_181.out b/tests/outputs/cif_filter_181.out
new file mode 100644
index 0000000..4537ed6
--- /dev/null
+++ b/tests/outputs/cif_filter_181.out
@@ -0,0 +1,69 @@
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_tag1' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_tag2' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_tag3' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_loop_tag_1' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_loop_tag_2' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_loop_tag_3' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_loop_tag_4' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_loop_tag_5' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_1: WARNING, data name '_loop_tag_6' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_tag1' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_tag2' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_tag3' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_loop_tag_1' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_loop_tag_2' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_loop_tag_3' is not recognised.
+scripts/cif_filter: tests/cases/cif_filter_181.inp data_generic_2: WARNING, data name '_loop_tag_4' is not recognised.
+data_0000001
+#BEGIN Tags that were not found in dictionaries:
+_tag1                            1
+_tag2                            2
+_tag3                            3
+_rod_database.code               0000001
+#END Tags that were not found in dictionaries
+#BEGIN Loops that were not found in dictionaries:
+loop_
+_loop_tag_1
+_loop_tag_2
+_loop_tag_3
+_loop_tag_4
+1 2 3 4
+5 6 7 8
+9 10 11 12
+13 14 15 16
+17 18 19 20
+21 22 23 24
+25 26 27 28
+29 30 31 32
+33 34 35 36
+37 38 39 40
+41 42 43 44
+loop_
+_loop_tag_5
+_loop_tag_6
+1 2
+5 6
+9 10
+13 14
+17 18
+21 22
+#END Loops that were not found in dictionaries
+data_0000002
+#BEGIN Tags that were not found in dictionaries:
+_tag1                            1
+_tag2                            2
+_tag3                            3
+_rod_database.code               0000002
+#END Tags that were not found in dictionaries
+#BEGIN Loops that were not found in dictionaries:
+loop_
+_loop_tag_1
+_loop_tag_2
+_loop_tag_3
+_loop_tag_4
+1 2 3 4
+5 6 7 8
+9 10 11 12
+13 14 15 16
+17 18 19 20
+#END Loops that were not found in dictionaries
diff --git a/tests/outputs/cif_find_symmetry_001.out b/tests/outputs/cif_find_symmetry_001.out
index 44095ab..70ea12d 100644
--- a/tests/outputs/cif_find_symmetry_001.out
+++ b/tests/outputs/cif_find_symmetry_001.out
@@ -95,17 +95,17 @@ _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
 2 -x,-y,-z
-3 -x+1,-y+1,z+0.5
-4 x+1,y+1,-z+0.5
+3 -x,-y,z+1/2
+4 x,y,-z+1/2
 5 x,-y,-z
 6 -x,y,z
-7 -x+1,y+1,-z+0.5
-8 x+1,-y+1,z+0.5
-9 x+0.5,y+0.5,z
-10 -x+0.5,-y+0.5,-z
-11 -x+0.5,-y+0.5,z+0.5
-12 x+0.5,y+0.5,-z+0.5
-13 x+0.5,-y+0.5,-z
-14 -x+0.5,y+0.5,z
-15 -x+0.5,y+0.5,-z+0.5
-16 x+0.5,-y+0.5,z+0.5
+7 -x,y,-z+1/2
+8 x,-y,z+1/2
+9 x+1/2,y+1/2,z
+10 -x+1/2,-y+1/2,-z
+11 -x+1/2,-y+1/2,z+1/2
+12 x+1/2,y+1/2,-z+1/2
+13 x+1/2,-y+1/2,-z
+14 -x+1/2,y+1/2,z
+15 -x+1/2,y+1/2,-z+1/2
+16 x+1/2,-y+1/2,z+1/2
diff --git a/tests/outputs/cif_find_symmetry_002.out b/tests/outputs/cif_find_symmetry_002.out
index 4ef057d..d409070 100644
--- a/tests/outputs/cif_find_symmetry_002.out
+++ b/tests/outputs/cif_find_symmetry_002.out
@@ -80,10 +80,10 @@ loop_
 _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
-2 -x+0.5,-y+0.5,z
+2 -x+1/2,-y+1/2,z
 3 -x,y,z
-4 x+0.5,-y+0.5,z
-5 x,y+0.5,z
-6 -x+0.5,-y+1,z
-7 -x,y+0.5,z
-8 x+0.5,-y+1,z
+4 x+1/2,-y+1/2,z
+5 x,y+1/2,z
+6 -x+1/2,-y,z
+7 -x,y+1/2,z
+8 x+1/2,-y,z
diff --git a/tests/outputs/cif_find_symmetry_003.out b/tests/outputs/cif_find_symmetry_003.out
index b2078d0..88f8017 100644
--- a/tests/outputs/cif_find_symmetry_003.out
+++ b/tests/outputs/cif_find_symmetry_003.out
@@ -92,51 +92,51 @@ _space_group_symop_operation_xyz
 14 -y,-x,z
 15 x,-y,-z
 16 -x,y,z
-17 x+0.5,y,z+0.5
-18 -x+0.5,-y,-z+0.5
-19 -y+0.5,x,z+0.5
-20 y+0.5,-x,-z+0.5
-21 -x+0.5,-y,z+0.5
-22 x+0.5,y,-z+0.5
-23 y+0.5,-x,z+0.5
-24 -y+0.5,x,-z+0.5
-25 -y+0.5,-x,-z+0.5
-26 y+0.5,x,z+0.5
-27 -x+0.5,y,-z+0.5
-28 x+0.5,-y,z+0.5
-29 y+0.5,x,-z+0.5
-30 -y+0.5,-x,z+0.5
-31 x+0.5,-y,-z+0.5
-32 -x+0.5,y,z+0.5
-33 x+0.5,y+0.5,z
-34 -x+0.5,-y+0.5,-z
-35 -y+0.5,x+0.5,z
-36 y+0.5,-x+0.5,-z
-37 -x+0.5,-y+0.5,z
-38 x+0.5,y+0.5,-z
-39 y+0.5,-x+0.5,z
-40 -y+0.5,x+0.5,-z
-41 -y+0.5,-x+0.5,-z
-42 y+0.5,x+0.5,z
-43 -x+0.5,y+0.5,-z
-44 x+0.5,-y+0.5,z
-45 y+0.5,x+0.5,-z
-46 -y+0.5,-x+0.5,z
-47 x+0.5,-y+0.5,-z
-48 -x+0.5,y+0.5,z
-49 x,y+0.5,z+0.5
-50 -x,-y+0.5,-z+0.5
-51 -y,x+0.5,z+0.5
-52 y,-x+0.5,-z+0.5
-53 -x,-y+0.5,z+0.5
-54 x,y+0.5,-z+0.5
-55 y,-x+0.5,z+0.5
-56 -y,x+0.5,-z+0.5
-57 -y,-x+0.5,-z+0.5
-58 y,x+0.5,z+0.5
-59 -x,y+0.5,-z+0.5
-60 x,-y+0.5,z+0.5
-61 y,x+0.5,-z+0.5
-62 -y,-x+0.5,z+0.5
-63 x,-y+0.5,-z+0.5
-64 -x,y+0.5,z+0.5
+17 x+1/2,y,z+1/2
+18 -x+1/2,-y,-z+1/2
+19 -y+1/2,x,z+1/2
+20 y+1/2,-x,-z+1/2
+21 -x+1/2,-y,z+1/2
+22 x+1/2,y,-z+1/2
+23 y+1/2,-x,z+1/2
+24 -y+1/2,x,-z+1/2
+25 -y+1/2,-x,-z+1/2
+26 y+1/2,x,z+1/2
+27 -x+1/2,y,-z+1/2
+28 x+1/2,-y,z+1/2
+29 y+1/2,x,-z+1/2
+30 -y+1/2,-x,z+1/2
+31 x+1/2,-y,-z+1/2
+32 -x+1/2,y,z+1/2
+33 x+1/2,y+1/2,z
+34 -x+1/2,-y+1/2,-z
+35 -y+1/2,x+1/2,z
+36 y+1/2,-x+1/2,-z
+37 -x+1/2,-y+1/2,z
+38 x+1/2,y+1/2,-z
+39 y+1/2,-x+1/2,z
+40 -y+1/2,x+1/2,-z
+41 -y+1/2,-x+1/2,-z
+42 y+1/2,x+1/2,z
+43 -x+1/2,y+1/2,-z
+44 x+1/2,-y+1/2,z
+45 y+1/2,x+1/2,-z
+46 -y+1/2,-x+1/2,z
+47 x+1/2,-y+1/2,-z
+48 -x+1/2,y+1/2,z
+49 x,y+1/2,z+1/2
+50 -x,-y+1/2,-z+1/2
+51 -y,x+1/2,z+1/2
+52 y,-x+1/2,-z+1/2
+53 -x,-y+1/2,z+1/2
+54 x,y+1/2,-z+1/2
+55 y,-x+1/2,z+1/2
+56 -y,x+1/2,-z+1/2
+57 -y,-x+1/2,-z+1/2
+58 y,x+1/2,z+1/2
+59 -x,y+1/2,-z+1/2
+60 x,-y+1/2,z+1/2
+61 y,x+1/2,-z+1/2
+62 -y,-x+1/2,z+1/2
+63 x,-y+1/2,-z+1/2
+64 -x,y+1/2,z+1/2
diff --git a/tests/outputs/cif_find_symmetry_004.out b/tests/outputs/cif_find_symmetry_004.out
index 7aa8d8e..ca6e514 100644
--- a/tests/outputs/cif_find_symmetry_004.out
+++ b/tests/outputs/cif_find_symmetry_004.out
@@ -134,6 +134,6 @@ loop_
 _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
-2 -x,-y,-z+0.30557
-3 x,y,z+0.5
-4 -x,-y,-z+0.80557
+2 -x,-y,-z+0.305570
+3 x,y,z+1/2
+4 -x,-y,-z+0.805570
diff --git a/tests/outputs/cif_find_symmetry_008.out b/tests/outputs/cif_find_symmetry_008.out
index 452cb64..d6a44ee 100644
--- a/tests/outputs/cif_find_symmetry_008.out
+++ b/tests/outputs/cif_find_symmetry_008.out
@@ -27,14 +27,14 @@ loop_
 _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
-2 -x+1,-y,-z+0.999999999999999
-3 -x+y+z+1,-x,z
-4 x-y-z+1,x,-z+0.999999999999999
-5 -y+1,x-y-z,z
-6 y+0.999999999999999,-x+y+z,-z+0.999999999999999
-7 x-y-z+1,-y,-z+0.999999999999999
-8 -x+y+z+1,y,z
-9 y+1,x,-z+0.999999999999999
+2 -x,-y,-z
+3 -x+y+z,-x,z
+4 x-y-z,x,-z
+5 -y,x-y-z,z
+6 y,-x+y+z,-z
+7 x-y-z,-y,-z
+8 -x+y+z,y,z
+9 y,x,-z
 10 -y,-x,z
-11 -x+0.999999999999999,-x+y+z,-z+0.999999999999999
-12 x+1,x-y-z,z
+11 -x,-x+y+z,-z
+12 x,x-y-z,z
diff --git a/tests/outputs/cif_find_symmetry_010.out b/tests/outputs/cif_find_symmetry_010.out
index d03fbb8..b9c5bb3 100644
--- a/tests/outputs/cif_find_symmetry_010.out
+++ b/tests/outputs/cif_find_symmetry_010.out
@@ -32,6 +32,6 @@ loop_
 _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
-2 -x+0.5,-y+0.9999999999996,z+0.5
-3 x+0.5,-y+0.4999999999996,-z
-4 -x+1,y+0.5,-z+0.5
+2 -x+1/2,-y,z+1/2
+3 x+1/2,-y+1/2,-z
+4 -x,y+1/2,-z+1/2
diff --git a/tests/outputs/cif_find_symmetry_011.out b/tests/outputs/cif_find_symmetry_011.out
index 05b1294..c008421 100644
--- a/tests/outputs/cif_find_symmetry_011.out
+++ b/tests/outputs/cif_find_symmetry_011.out
@@ -47,25 +47,25 @@ _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
 2 -x,-y,-z
-3 -x+0.5,-y,z+0.5
-4 x+0.5,y,-z+0.5
-5 x+0.5,-y+0.5,-z
-6 -x+0.5,y+0.5,z
-7 -x,y+0.5,-z+0.5
-8 x,-y+0.5,z+0.5
+3 -x+1/2,-y,z+1/2
+4 x+1/2,y,-z+1/2
+5 x+1/2,-y+1/2,-z
+6 -x+1/2,y+1/2,z
+7 -x,y+1/2,-z+1/2
+8 x,-y+1/2,z+1/2
 9 z,x,y
 10 -z,-x,-y
-11 z+0.5,-x+0.5,-y
-12 -z+0.5,x+0.5,y
-13 -z,x+0.5,-y+0.5
-14 z,-x+0.5,y+0.5
-15 -z+0.5,-x,y+0.5
-16 z+0.5,x,-y+0.5
+11 z+1/2,-x+1/2,-y
+12 -z+1/2,x+1/2,y
+13 -z,x+1/2,-y+1/2
+14 z,-x+1/2,y+1/2
+15 -z+1/2,-x,y+1/2
+16 z+1/2,x,-y+1/2
 17 y,z,x
 18 -y,-z,-x
-19 -y,z+0.5,-x+0.5
-20 y,-z+0.5,x+0.5
-21 -y+0.5,-z,x+0.5
-22 y+0.5,z,-x+0.5
-23 y+0.5,-z+0.5,-x
-24 -y+0.5,z+0.5,x
+19 -y,z+1/2,-x+1/2
+20 y,-z+1/2,x+1/2
+21 -y+1/2,-z,x+1/2
+22 y+1/2,z,-x+1/2
+23 y+1/2,-z+1/2,-x
+24 -y+1/2,z+1/2,x
diff --git a/tests/outputs/cif_find_symmetry_012.out b/tests/outputs/cif_find_symmetry_012.out
index 72330bf..88dbaa2 100644
--- a/tests/outputs/cif_find_symmetry_012.out
+++ b/tests/outputs/cif_find_symmetry_012.out
@@ -47,26 +47,26 @@ loop_
 _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
-2 -x+1,-y+1,-z+1
-3 -y+z,-y+1,x-y
+2 -x,-y,-z
+3 -y+z,-y,x-y
 4 y-z,y,-x+y
-5 y-z,x-z,-z+1
+5 y-z,x-z,-z
 6 -y+z,-x+z,z
-7 -x+1,-x+z,-x+y
+7 -x,-x+z,-x+y
 8 x,x-z,x-y
 9 z,x,y
-10 -z+1,-x+1,-y+1
-11 x-y,-y+z,-y+1
+10 -z,-x,-y
+11 x-y,-y+z,-y
 12 -x+y,y-z,y
-13 -z+1,y-z,x-z
+13 -z,y-z,x-z
 14 z,-y+z,-x+z
-15 -x+y,-x+1,-x+z
+15 -x+y,-x,-x+z
 16 x-y,x,x-z
 17 y,z,x
-18 -y+1,-z+1,-x+1
-19 -y+1,x-y,-y+z
+18 -y,-z,-x
+19 -y,x-y,-y+z
 20 y,-x+y,y-z
-21 x-z,-z+1,y-z
+21 x-z,-z,y-z
 22 -x+z,z,-y+z
-23 -x+z,-x+y,-x+1
+23 -x+z,-x+y,-x
 24 x-z,x-y,x
diff --git a/tests/outputs/cif_find_symmetry_013.out b/tests/outputs/cif_find_symmetry_013.out
index e3bd124..0e2f312 100644
--- a/tests/outputs/cif_find_symmetry_013.out
+++ b/tests/outputs/cif_find_symmetry_013.out
@@ -40,10 +40,10 @@ loop_
 _space_group_symop_id
 _space_group_symop_operation_xyz
 1 x,y,z
-2 -x+0.999998581616,-y,-z
-3 -x+0.499998581616,-y,z
-4 x+0.5,y+1,-z
+2 -x,-y,-z
+3 -x+1/2,-y,z
+4 x+1/2,y,-z
 5 x-y,-y,-z
-6 -x+y+0.999998468172,y,z
-7 -x+y+0.499998468172,y+1,-z
-8 x-y+0.500000113444,-y,z
+6 -x+y,y,z
+7 -x+y+1/2,y,-z
+8 x-y+1/2,-y,z
diff --git a/tests/outputs/cif_fix_values_051.out b/tests/outputs/cif_fix_values_051.out
index b7b8948..dc59fa0 100644
--- a/tests/outputs/cif_fix_values_051.out
+++ b/tests/outputs/cif_fix_values_051.out
@@ -1,3 +1,5 @@
+scripts/cif_fix_values: tests/cases/cif_fix_values_051.inp(2,19): WARNING, unallowed symbol in CIF comment.
+scripts/cif_fix_values: tests/cases/cif_fix_values_051.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cif_fix_values: tests/cases/cif_fix_values_051.inp data_iah022_601: NOTE, '_chemical_melting_point' value 'not measured' was changed to '?' - the value is undefined or not given.
 scripts/cif_fix_values: tests/cases/cif_fix_values_051.inp data_iah022_601: NOTE, '_exptl_crystal_density_meas' value 'not measured' was changed to '?' - the value is perceived as not measured.
 scripts/cif_fix_values: tests/cases/cif_fix_values_051.inp data_iah_78_173k: NOTE, '_chemical_melting_point' value 'not measured' was changed to '?' - the value is undefined or not given.
diff --git a/tests/outputs/cif_merge_007.out b/tests/outputs/cif_merge_007.out
new file mode 100644
index 0000000..bb60980
--- /dev/null
+++ b/tests/outputs/cif_merge_007.out
@@ -0,0 +1,17 @@
+data_merge
+_data_tag1                       123
+_data_tag2                       abc
+loop_
+_loop_tag3
+_loop_tag4
+a b
+data_merge2
+_data_tag1                       'xyz now'
+_data_tag2                       1.01(3)
+loop_
+_loop_tag1
+_loop_tag3
+10 200
+30 400
+40 600
+70 800
diff --git a/tests/outputs/cif_molecule_003.out b/tests/outputs/cif_molecule_003.out
index ce9f653..6c0f179 100644
--- a/tests/outputs/cif_molecule_003.out
+++ b/tests/outputs/cif_molecule_003.out
@@ -104,9 +104,11 @@ _cell_angle_alpha                90
 _cell_angle_beta                 119.08(4)
 _cell_angle_gamma                90
 _diffrn_ambient_temperature      ?
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C6 H17 N2 O8 P1'
 _cod_src_refine_ls_R_factor_gt   0.032
 _cod_src_refine_ls_wR_factor_gt  0.032
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C3 H7 N O2'
 _cod_data_source_file            cif_molecule_003.inp
 _cod_data_source_block           2000080
diff --git a/tests/outputs/cif_molecule_004.out b/tests/outputs/cif_molecule_004.out
index 5cf769b..99580e1 100644
--- a/tests/outputs/cif_molecule_004.out
+++ b/tests/outputs/cif_molecule_004.out
@@ -76,8 +76,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 D O4'
 _cod_data_source_file            cif_molecule_004.inp
 _cod_data_source_block           1000002.cif
@@ -142,8 +144,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'D2 O'
 _cod_data_source_file            cif_molecule_004.inp
 _cod_data_source_block           1000002.cif
@@ -200,8 +204,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 O4'
 _cod_data_source_file            cif_molecule_004.inp
 _cod_data_source_block           1000002.cif
diff --git a/tests/outputs/cif_molecule_005.out b/tests/outputs/cif_molecule_005.out
index 39ef7bd..771ed1c 100644
--- a/tests/outputs/cif_molecule_005.out
+++ b/tests/outputs/cif_molecule_005.out
@@ -76,8 +76,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 D O4'
 _cod_data_source_file            cif_molecule_005.inp
 _cod_data_source_block           1000002.cif
@@ -142,8 +144,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'D2 O'
 _cod_data_source_file            cif_molecule_005.inp
 _cod_data_source_block           1000002.cif
@@ -200,8 +204,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 O4'
 _cod_data_source_file            cif_molecule_005.inp
 _cod_data_source_block           1000002.cif
diff --git a/tests/outputs/cif_molecule_007.out b/tests/outputs/cif_molecule_007.out
index 338e1cd..6dbe4e2 100644
--- a/tests/outputs/cif_molecule_007.out
+++ b/tests/outputs/cif_molecule_007.out
@@ -77,8 +77,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 D O4'
 _cod_data_source_file            cif_molecule_007.inp
 _cod_data_source_block           1000002.cif
@@ -143,8 +145,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'D2 O'
 _cod_data_source_file            cif_molecule_007.inp
 _cod_data_source_block           1000002.cif
@@ -201,8 +205,10 @@ _cell_length_c                   5.7798(8)
 _cell_angle_alpha                90.000
 _cell_angle_beta                 97.60(1)
 _cell_angle_gamma                90.000
-_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'Sr O7 C3 D3'
+_cod_src_chemical_formula_structural Sr(DC2O4).0,5(C2O4).D2O
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 O4'
 _cod_data_source_file            cif_molecule_007.inp
 _cod_data_source_block           1000002.cif
diff --git a/tests/outputs/cif_molecule_008.out b/tests/outputs/cif_molecule_008.out
index 991f67a..3b75ce0 100644
--- a/tests/outputs/cif_molecule_008.out
+++ b/tests/outputs/cif_molecule_008.out
@@ -305,8 +305,10 @@ _cell_angle_beta                 97.75(5)
 _cell_angle_gamma                91.00(5)
 _cell_measurement_temperature    100(2)
 _diffrn_ambient_temperature      100(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C48 H52 Ga3 O14 Ru6'
 _cod_src_chemical_formula_sum    'C48 H52 Ga3 O14 Ru6'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C45 H45 Ga3 O14 Ru6'
 _cod_data_source_file            cif_molecule_008.inp
 _cod_data_source_block           7000165
@@ -587,9 +589,11 @@ _cell_angle_beta                 97.75(5)
 _cell_angle_gamma                91.00(5)
 _cell_measurement_temperature    100(2)
 _diffrn_ambient_temperature      100(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C48 H52 Ga3 O14 Ru6'
 _cod_src_chemical_formula_sum    'C48 H52 Ga3 O14 Ru6'
-_chemical_formula_sum            'C12 H28'
+#END Tags that were not found in dictionaries
+_chemical_formula_sum            'C6 H14'
 _cod_data_source_file            cif_molecule_008.inp
 _cod_data_source_block           7000165
 _cell_formula_units_Z            1
@@ -616,35 +620,15 @@ H47B H 0.6414 0.5430 0.1442 0.096 0.50 PR calc
 H48A H 0.5775 0.6479 0.0376 0.130 0.50 PR calc
 H48B H 0.4985 0.6046 0.0845 0.130 0.50 PR calc
 H49A H 0.4793 0.4175 0.0024 0.114 0.50 PR calc
-C46A_2_554 C 0.2630 0.5290 -0.0649 0.145(14) 0.50 PD d
-C47A_2_554 C 0.3352 0.4340 -0.1039 0.080(8) 0.50 PD d
-C48A_2_554 C 0.4420 0.4210 -0.0542 0.108(10) 0.50 PD d
 C49A_1_554 C 0.4950 0.4910 -0.0106 0.095(8) 0.50 PD d
-C49A_2_555 C 0.5050 0.5090 0.0106 0.095(8) 0.50 PD d
 C50A_1_554 C 0.3806 0.5251 -0.0452 0.070(6) 0.50 PD d
-C50A_2_555 C 0.6194 0.4749 0.0452 0.070(6) 0.50 PD d
 C51A_1_554 C 0.3250 0.4190 -0.1030 0.36(6) 0.50 PD d
-C51A_2_555 C 0.6750 0.5810 0.1030 0.36(6) 0.50 PD d
-H46A_2_554 H 0.1933 0.5364 -0.0960 0.218 0.50 PR calc
-H46B_2_554 H 0.2409 0.5068 -0.0244 0.218 0.50 PR calc
-H46C_2_554 H 0.3073 0.6037 -0.0494 0.218 0.50 PR calc
-H47A_2_554 H 0.2894 0.3593 -0.1212 0.096 0.50 PR calc
-H47B_2_554 H 0.3586 0.4570 -0.1442 0.096 0.50 PR calc
-H48A_2_554 H 0.4225 0.3521 -0.0376 0.130 0.50 PR calc
-H48B_2_554 H 0.5015 0.3954 -0.0845 0.130 0.50 PR calc
-H49A_2_554 H 0.5207 0.5825 -0.0024 0.114 0.50 PR calc
 H49B_1_554 H 0.5471 0.4728 -0.0459 0.114 0.50 PR calc
-H49B_2_555 H 0.4529 0.5272 0.0459 0.114 0.50 PR calc
 H50A_1_554 H 0.3284 0.5500 -0.0102 0.084 0.50 PR calc
-H50A_2_555 H 0.6716 0.4500 0.0102 0.084 0.50 PR calc
 H50B_1_554 H 0.3948 0.5910 -0.0652 0.084 0.50 PR calc
-H50B_2_555 H 0.6052 0.4090 0.0652 0.084 0.50 PR calc
 H51A_1_554 H 0.2521 0.4397 -0.1246 0.544 0.50 PR calc
-H51A_2_555 H 0.7479 0.5603 0.1246 0.544 0.50 PR calc
 H51B_1_554 H 0.3126 0.3538 -0.0829 0.544 0.50 PR calc
-H51B_2_555 H 0.6874 0.6462 0.0829 0.544 0.50 PR calc
 H51C_1_554 H 0.3766 0.3963 -0.1381 0.544 0.50 PR calc
-H51C_2_555 H 0.6234 0.6037 0.1381 0.544 0.50 PR calc
 loop_
 _cod_molecule_atom_label
 _cod_molecule_atom_orig_label
@@ -670,32 +654,12 @@ H47B H47B 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H48A H48A 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H48B H48B 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H49A H49A 1_555 1 x,y,z 555 0 0 0 2 1 B -1
-C46A_2_554 C46A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-C47A_2_554 C47A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-C48A_2_554 C48A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
 C49A_1_554 C49A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C49A_2_555 C49A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 C50A_1_554 C50A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C50A_2_555 C50A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 C51A_1_554 C51A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C51A_2_555 C51A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
-H46A_2_554 H46A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H46B_2_554 H46B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H46C_2_554 H46C 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H47A_2_554 H47A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H47B_2_554 H47B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H48A_2_554 H48A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H48B_2_554 H48B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H49A_2_554 H49A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
 H49B_1_554 H49B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H49B_2_555 H49B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H50A_1_554 H50A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H50A_2_555 H50A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H50B_1_554 H50B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H50B_2_555 H50B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51A_1_554 H51A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51A_2_555 H51A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51B_1_554 H51B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51B_2_555 H51B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51C_1_554 H51C 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51C_2_555 H51C 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
diff --git a/tests/outputs/cif_molecule_009.out b/tests/outputs/cif_molecule_009.out
index a039ae6..2c66491 100644
--- a/tests/outputs/cif_molecule_009.out
+++ b/tests/outputs/cif_molecule_009.out
@@ -621,12 +621,14 @@ _diffrn_reflns_limit_k_max       29
 _diffrn_reflns_limit_k_min       -30
 _diffrn_reflns_limit_l_max       28
 _diffrn_reflns_limit_l_min       -30
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'W6 S8 (PC12H27)6'
 _cod_src_chemical_formula_sum    'C72 H162 P6 S8 W6'
 _cod_src_refine_ls_R_factor_all  0.0396
 _cod_src_refine_ls_R_factor_gt   0.0250
-_cod_src_refine_ls_wR_factor_gt  0.0506
 _cod_src_refine_ls_wR_factor_ref 0.0590
+_cod_src_refine_ls_wR_factor_gt  0.0506
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C72 H160 P6 S8 W6'
 _cod_data_source_file            cif_molecule_009.inp
 _cod_data_source_block           d5
diff --git a/tests/outputs/cif_molecule_016.out b/tests/outputs/cif_molecule_016.out
index b0b6c2d..e36c405 100644
--- a/tests/outputs/cif_molecule_016.out
+++ b/tests/outputs/cif_molecule_016.out
@@ -625,12 +625,14 @@ _diffrn_reflns_limit_k_max       29
 _diffrn_reflns_limit_k_min       -30
 _diffrn_reflns_limit_l_max       28
 _diffrn_reflns_limit_l_min       -30
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'W6 S8 (PC12H27)6'
 _cod_src_chemical_formula_sum    'C72 H162 P6 S8 W6'
 _cod_src_refine_ls_R_factor_all  0.0396
 _cod_src_refine_ls_R_factor_gt   0.0250
-_cod_src_refine_ls_wR_factor_gt  0.0506
 _cod_src_refine_ls_wR_factor_ref 0.0590
+_cod_src_refine_ls_wR_factor_gt  0.0506
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C72 H162 P6 S8 W6'
 _cod_data_source_file            cif_molecule_016.inp
 _cod_data_source_block           d5
diff --git a/tests/outputs/cif_molecule_020.out b/tests/outputs/cif_molecule_020.out
index 2e8eb9c..5dcbcfe 100644
--- a/tests/outputs/cif_molecule_020.out
+++ b/tests/outputs/cif_molecule_020.out
@@ -221,9 +221,11 @@ _cell_angle_beta                 82.13(2)
 _cell_angle_gamma                83.63(2)
 _cell_measurement_temperature    200(2)
 _diffrn_ambient_temperature      200(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C33 H32 B F4 O2 P2 Rh'
 _cod_src_refine_ls_R_factor_obs  0.0421
 _cod_src_refine_ls_wR_factor_obs 0.0951
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'B F7'
 _cod_data_source_file            cif_molecule_020.inp
 _cod_data_source_block           8100877
diff --git a/tests/outputs/cif_molecule_023.out b/tests/outputs/cif_molecule_023.out
index 36f74b1..064159e 100644
--- a/tests/outputs/cif_molecule_023.out
+++ b/tests/outputs/cif_molecule_023.out
@@ -222,9 +222,11 @@ _cell_angle_beta                 82.13(2)
 _cell_angle_gamma                83.63(2)
 _cell_measurement_temperature    200(2)
 _diffrn_ambient_temperature      200(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C33 H32 B F4 O2 P2 Rh'
 _cod_src_refine_ls_R_factor_obs  0.0421
 _cod_src_refine_ls_wR_factor_obs 0.0951
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'B F7'
 _cod_data_source_file            cif_molecule_023.inp
 _cod_data_source_block           8100877
diff --git a/tests/outputs/cif_molecule_024.out b/tests/outputs/cif_molecule_024.out
index 9d9dd23..b715576 100644
--- a/tests/outputs/cif_molecule_024.out
+++ b/tests/outputs/cif_molecule_024.out
@@ -1,9 +1,4 @@
 scripts/cif_molecule: tests/cases/cif_molecule_024.inp data_7000165: WARNING, multiplicity ratios are given instead of multiplicities for 158 atoms -- taking calculated values.
-scripts/cif_molecule: tests/cases/cif_molecule_024.inp data_7000165: WARNING, atoms "C51A_2_555" and "C47A" are too close (distance = 0.2192) and are considered a bump.
-scripts/cif_molecule: tests/cases/cif_molecule_024.inp data_7000165: WARNING, atoms "C49A_2_555" and "C49A_1_554" are too close (distance = 0.4245) and are considered a bump.
-scripts/cif_molecule: tests/cases/cif_molecule_024.inp data_7000165: WARNING, atoms "C51A_1_554" and "C47A_2_555" are too close (distance = 0.2192) and are considered a bump.
-scripts/cif_molecule: tests/cases/cif_molecule_024.inp data_7000165: WARNING, atoms "C47A_2_554" and "C51A" are too close (distance = 0.2192) and are considered a bump.
-scripts/cif_molecule: tests/cases/cif_molecule_024.inp data_7000165: WARNING, atoms "C49A_1_554" and "C49A_2_556" are too close (distance = 0.4245) and are considered a bump.
 data_7000165_molecule_0
 loop_
 _publ_author_name
@@ -310,8 +305,10 @@ _cell_angle_beta                 97.75(5)
 _cell_angle_gamma                91.00(5)
 _cell_measurement_temperature    100(2)
 _diffrn_ambient_temperature      100(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C48 H52 Ga3 O14 Ru6'
 _cod_src_chemical_formula_sum    'C48 H52 Ga3 O14 Ru6'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C10 H15'
 _cod_data_source_file            cif_molecule_024.inp
 _cod_data_source_block           7000165
@@ -416,9 +413,11 @@ _cell_angle_beta                 97.75(5)
 _cell_angle_gamma                91.00(5)
 _cell_measurement_temperature    100(2)
 _diffrn_ambient_temperature      100(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C48 H52 Ga3 O14 Ru6'
 _cod_src_chemical_formula_sum    'C48 H52 Ga3 O14 Ru6'
-_chemical_formula_sum            'C12 H28'
+#END Tags that were not found in dictionaries
+_chemical_formula_sum            'C6 H14'
 _cod_data_source_file            cif_molecule_024.inp
 _cod_data_source_block           7000165
 _cell_formula_units_Z            1
@@ -445,35 +444,15 @@ H47B H 0.6414 0.5430 0.1442 0.096 0.50 PR calc
 H48A H 0.5775 0.6479 0.0376 0.130 0.50 PR calc
 H48B H 0.4985 0.6046 0.0845 0.130 0.50 PR calc
 H49A H 0.4793 0.4175 0.0024 0.114 0.50 PR calc
-C46A_2_554 C 0.2630 0.5290 -0.0649 0.145(14) 0.50 PD d
-C47A_2_554 C 0.3352 0.4340 -0.1039 0.080(8) 0.50 PD d
-C48A_2_554 C 0.4420 0.4210 -0.0542 0.108(10) 0.50 PD d
 C49A_1_554 C 0.4950 0.4910 -0.0106 0.095(8) 0.50 PD d
-C49A_2_555 C 0.5050 0.5090 0.0106 0.095(8) 0.50 PD d
 C50A_1_554 C 0.3806 0.5251 -0.0452 0.070(6) 0.50 PD d
-C50A_2_555 C 0.6194 0.4749 0.0452 0.070(6) 0.50 PD d
 C51A_1_554 C 0.3250 0.4190 -0.1030 0.36(6) 0.50 PD d
-C51A_2_555 C 0.6750 0.5810 0.1030 0.36(6) 0.50 PD d
-H46A_2_554 H 0.1933 0.5364 -0.0960 0.218 0.50 PR calc
-H46B_2_554 H 0.2409 0.5068 -0.0244 0.218 0.50 PR calc
-H46C_2_554 H 0.3073 0.6037 -0.0494 0.218 0.50 PR calc
-H47A_2_554 H 0.2894 0.3593 -0.1212 0.096 0.50 PR calc
-H47B_2_554 H 0.3586 0.4570 -0.1442 0.096 0.50 PR calc
-H48A_2_554 H 0.4225 0.3521 -0.0376 0.130 0.50 PR calc
-H48B_2_554 H 0.5015 0.3954 -0.0845 0.130 0.50 PR calc
-H49A_2_554 H 0.5207 0.5825 -0.0024 0.114 0.50 PR calc
 H49B_1_554 H 0.5471 0.4728 -0.0459 0.114 0.50 PR calc
-H49B_2_555 H 0.4529 0.5272 0.0459 0.114 0.50 PR calc
 H50A_1_554 H 0.3284 0.5500 -0.0102 0.084 0.50 PR calc
-H50A_2_555 H 0.6716 0.4500 0.0102 0.084 0.50 PR calc
 H50B_1_554 H 0.3948 0.5910 -0.0652 0.084 0.50 PR calc
-H50B_2_555 H 0.6052 0.4090 0.0652 0.084 0.50 PR calc
 H51A_1_554 H 0.2521 0.4397 -0.1246 0.544 0.50 PR calc
-H51A_2_555 H 0.7479 0.5603 0.1246 0.544 0.50 PR calc
 H51B_1_554 H 0.3126 0.3538 -0.0829 0.544 0.50 PR calc
-H51B_2_555 H 0.6874 0.6462 0.0829 0.544 0.50 PR calc
 H51C_1_554 H 0.3766 0.3963 -0.1381 0.544 0.50 PR calc
-H51C_2_555 H 0.6234 0.6037 0.1381 0.544 0.50 PR calc
 loop_
 _cod_molecule_atom_label
 _cod_molecule_atom_orig_label
@@ -499,32 +478,12 @@ H47B H47B 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H48A H48A 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H48B H48B 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H49A H49A 1_555 1 x,y,z 555 0 0 0 2 1 B -1
-C46A_2_554 C46A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-C47A_2_554 C47A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-C48A_2_554 C48A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
 C49A_1_554 C49A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C49A_2_555 C49A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 C50A_1_554 C50A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C50A_2_555 C50A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 C51A_1_554 C51A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C51A_2_555 C51A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
-H46A_2_554 H46A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H46B_2_554 H46B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H46C_2_554 H46C 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H47A_2_554 H47A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H47B_2_554 H47B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H48A_2_554 H48A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H48B_2_554 H48B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H49A_2_554 H49A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
 H49B_1_554 H49B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H49B_2_555 H49B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H50A_1_554 H50A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H50A_2_555 H50A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H50B_1_554 H50B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H50B_2_555 H50B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51A_1_554 H51A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51A_2_555 H51A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51B_1_554 H51B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51B_2_555 H51B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51C_1_554 H51C 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51C_2_555 H51C 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
diff --git a/tests/outputs/cif_molecule_026.out b/tests/outputs/cif_molecule_026.out
index fb19977..4ebf6ed 100644
--- a/tests/outputs/cif_molecule_026.out
+++ b/tests/outputs/cif_molecule_026.out
@@ -305,8 +305,10 @@ _cell_angle_beta                 97.75(5)
 _cell_angle_gamma                91.00(5)
 _cell_measurement_temperature    100(2)
 _diffrn_ambient_temperature      100(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C48 H52 Ga3 O14 Ru6'
 _cod_src_chemical_formula_sum    'C48 H52 Ga3 O14 Ru6'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C10 H15'
 _cod_data_source_file            cif_molecule_026.inp
 _cod_data_source_block           7000165
@@ -411,9 +413,11 @@ _cell_angle_beta                 97.75(5)
 _cell_angle_gamma                91.00(5)
 _cell_measurement_temperature    100(2)
 _diffrn_ambient_temperature      100(2)
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C48 H52 Ga3 O14 Ru6'
 _cod_src_chemical_formula_sum    'C48 H52 Ga3 O14 Ru6'
-_chemical_formula_sum            'C12 H28'
+#END Tags that were not found in dictionaries
+_chemical_formula_sum            'C6 H14'
 _cod_data_source_file            cif_molecule_026.inp
 _cod_data_source_block           7000165
 _cell_formula_units_Z            1
@@ -440,35 +444,15 @@ H47B H 0.6414 0.5430 0.1442 0.096 0.50 PR calc
 H48A H 0.5775 0.6479 0.0376 0.130 0.50 PR calc
 H48B H 0.4985 0.6046 0.0845 0.130 0.50 PR calc
 H49A H 0.4793 0.4175 0.0024 0.114 0.50 PR calc
-C46A_2_554 C 0.2630 0.5290 -0.0649 0.145(14) 0.50 PD d
-C47A_2_554 C 0.3352 0.4340 -0.1039 0.080(8) 0.50 PD d
-C48A_2_554 C 0.4420 0.4210 -0.0542 0.108(10) 0.50 PD d
 C49A_1_554 C 0.4950 0.4910 -0.0106 0.095(8) 0.50 PD d
-C49A_2_555 C 0.5050 0.5090 0.0106 0.095(8) 0.50 PD d
 C50A_1_554 C 0.3806 0.5251 -0.0452 0.070(6) 0.50 PD d
-C50A_2_555 C 0.6194 0.4749 0.0452 0.070(6) 0.50 PD d
 C51A_1_554 C 0.3250 0.4190 -0.1030 0.36(6) 0.50 PD d
-C51A_2_555 C 0.6750 0.5810 0.1030 0.36(6) 0.50 PD d
-H46A_2_554 H 0.1933 0.5364 -0.0960 0.218 0.50 PR calc
-H46B_2_554 H 0.2409 0.5068 -0.0244 0.218 0.50 PR calc
-H46C_2_554 H 0.3073 0.6037 -0.0494 0.218 0.50 PR calc
-H47A_2_554 H 0.2894 0.3593 -0.1212 0.096 0.50 PR calc
-H47B_2_554 H 0.3586 0.4570 -0.1442 0.096 0.50 PR calc
-H48A_2_554 H 0.4225 0.3521 -0.0376 0.130 0.50 PR calc
-H48B_2_554 H 0.5015 0.3954 -0.0845 0.130 0.50 PR calc
-H49A_2_554 H 0.5207 0.5825 -0.0024 0.114 0.50 PR calc
 H49B_1_554 H 0.5471 0.4728 -0.0459 0.114 0.50 PR calc
-H49B_2_555 H 0.4529 0.5272 0.0459 0.114 0.50 PR calc
 H50A_1_554 H 0.3284 0.5500 -0.0102 0.084 0.50 PR calc
-H50A_2_555 H 0.6716 0.4500 0.0102 0.084 0.50 PR calc
 H50B_1_554 H 0.3948 0.5910 -0.0652 0.084 0.50 PR calc
-H50B_2_555 H 0.6052 0.4090 0.0652 0.084 0.50 PR calc
 H51A_1_554 H 0.2521 0.4397 -0.1246 0.544 0.50 PR calc
-H51A_2_555 H 0.7479 0.5603 0.1246 0.544 0.50 PR calc
 H51B_1_554 H 0.3126 0.3538 -0.0829 0.544 0.50 PR calc
-H51B_2_555 H 0.6874 0.6462 0.0829 0.544 0.50 PR calc
 H51C_1_554 H 0.3766 0.3963 -0.1381 0.544 0.50 PR calc
-H51C_2_555 H 0.6234 0.6037 0.1381 0.544 0.50 PR calc
 loop_
 _cod_molecule_atom_label
 _cod_molecule_atom_orig_label
@@ -494,32 +478,12 @@ H47B H47B 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H48A H48A 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H48B H48B 1_555 1 x,y,z 555 0 0 0 2 1 B -1
 H49A H49A 1_555 1 x,y,z 555 0 0 0 2 1 B -1
-C46A_2_554 C46A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-C47A_2_554 C47A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-C48A_2_554 C48A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
 C49A_1_554 C49A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C49A_2_555 C49A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 C50A_1_554 C50A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C50A_2_555 C50A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 C51A_1_554 C51A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-C51A_2_555 C51A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
-H46A_2_554 H46A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H46B_2_554 H46B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H46C_2_554 H46C 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H47A_2_554 H47A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H47B_2_554 H47B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H48A_2_554 H48A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H48B_2_554 H48B 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
-H49A_2_554 H49A 2_554 2 -x,-y,-z 554 0 0 -1 2 1 B -1
 H49B_1_554 H49B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H49B_2_555 H49B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H50A_1_554 H50A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H50A_2_555 H50A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H50B_1_554 H50B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H50B_2_555 H50B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51A_1_554 H51A 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51A_2_555 H51A 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51B_1_554 H51B 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51B_2_555 H51B 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
 H51C_1_554 H51C 1_554 1 x,y,z 554 0 0 -1 2 1 B -1
-H51C_2_555 H51C 2_555 2 -x,-y,-z 555 0 0 0 2 1 B -1
diff --git a/tests/outputs/cif_molecule_028.out b/tests/outputs/cif_molecule_028.out
index 8083977..b2d6cd7 100644
--- a/tests/outputs/cif_molecule_028.out
+++ b/tests/outputs/cif_molecule_028.out
@@ -121,9 +121,11 @@ _cell_angle_beta                 108.665(4)
 _cell_angle_gamma                90.00
 _cell_measurement_temperature    150.0(10)
 _diffrn_ambient_temperature      150.0(10)
-_cod_src_chemical_formula_iupac  'C8 H12 N + , C4 H5 O5 -'
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C8 H12 N + , C4 H5 O5 -'
 _cod_src_chemical_formula_sum    'C12 H17 N O5'
+_cod_src_chemical_formula_iupac  'C8 H12 N + , C4 H5 O5 -'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C4 H5 O5'
 _cod_data_source_file            cif_molecule_028.inp
 _cod_data_source_block           2014244
@@ -207,9 +209,11 @@ _cell_angle_beta                 108.665(4)
 _cell_angle_gamma                90.00
 _cell_measurement_temperature    150.0(10)
 _diffrn_ambient_temperature      150.0(10)
-_cod_src_chemical_formula_iupac  'C8 H12 N + , C4 H5 O5 -'
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C8 H12 N + , C4 H5 O5 -'
 _cod_src_chemical_formula_sum    'C12 H17 N O5'
+_cod_src_chemical_formula_iupac  'C8 H12 N + , C4 H5 O5 -'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 H3'
 _cod_data_source_file            cif_molecule_028.inp
 _cod_data_source_block           2014244
diff --git a/tests/outputs/cif_molecule_029.out b/tests/outputs/cif_molecule_029.out
index 4966e3a..af43ad8 100644
--- a/tests/outputs/cif_molecule_029.out
+++ b/tests/outputs/cif_molecule_029.out
@@ -146,7 +146,9 @@ _cell_length_c                   10.682(4)
 _cell_angle_beta                 95.38(6)
 _diffrn_radiation_type           Mo
 _diffrn_radiation_wavelength     0.71073
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'H15 Cl2 Co1 N6 O2'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            Cl
 _cod_data_source_file            cif_molecule_029.inp
 _cod_data_source_block           2100831
diff --git a/tests/outputs/cif_molecule_030.out b/tests/outputs/cif_molecule_030.out
index 9e9a65c..04f1ed6 100644
--- a/tests/outputs/cif_molecule_030.out
+++ b/tests/outputs/cif_molecule_030.out
@@ -880,9 +880,11 @@ _cell_length_c                   3.9500(8)
 _cell_angle_alpha                90
 _cell_angle_beta                 90
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Sr6 Nb34 O91'
 _cod_src_chemical_formula_sum    'Nb34 O91 Sr6'
 _cod_src_refine_ls_R_factor_all  0.133
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            Sr
 _cod_data_source_file            cif_molecule_030.inp
 _cod_data_source_block           2002857
@@ -938,9 +940,11 @@ _cell_length_c                   3.9500(8)
 _cell_angle_alpha                90
 _cell_angle_beta                 90
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Sr6 Nb34 O91'
 _cod_src_chemical_formula_sum    'Nb34 O91 Sr6'
 _cod_src_refine_ls_R_factor_all  0.133
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            Sr
 _cod_data_source_file            cif_molecule_030.inp
 _cod_data_source_block           2002857
@@ -990,9 +994,11 @@ _cell_length_c                   3.9500(8)
 _cell_angle_alpha                90
 _cell_angle_beta                 90
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Sr6 Nb34 O91'
 _cod_src_chemical_formula_sum    'Nb34 O91 Sr6'
 _cod_src_refine_ls_R_factor_all  0.133
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            Sr
 _cod_data_source_file            cif_molecule_030.inp
 _cod_data_source_block           2002857
@@ -1046,9 +1052,11 @@ _cell_length_c                   3.9500(8)
 _cell_angle_alpha                90
 _cell_angle_beta                 90
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Sr6 Nb34 O91'
 _cod_src_chemical_formula_sum    'Nb34 O91 Sr6'
 _cod_src_refine_ls_R_factor_all  0.133
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            Sr
 _cod_data_source_file            cif_molecule_030.inp
 _cod_data_source_block           2002857
diff --git a/tests/outputs/cif_molecule_031.out b/tests/outputs/cif_molecule_031.out
index a22fedc..5db7049 100644
--- a/tests/outputs/cif_molecule_031.out
+++ b/tests/outputs/cif_molecule_031.out
@@ -198,9 +198,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C20 O2'
 _cod_data_source_file            cif_molecule_031.inp
 _cod_data_source_block           8000003
@@ -308,9 +310,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C20 O2'
 _cod_data_source_file            cif_molecule_031.inp
 _cod_data_source_block           8000003
@@ -418,9 +422,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C20 O2'
 _cod_data_source_file            cif_molecule_031.inp
 _cod_data_source_block           8000003
@@ -528,9 +534,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C3 N2'
 _cod_data_source_file            cif_molecule_031.inp
 _cod_data_source_block           8000003
diff --git a/tests/outputs/cif_molecule_032.out b/tests/outputs/cif_molecule_032.out
index ca0ca04..caf0eb6 100644
--- a/tests/outputs/cif_molecule_032.out
+++ b/tests/outputs/cif_molecule_032.out
@@ -198,9 +198,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C20 O2'
 _cod_data_source_file            cif_molecule_032.inp
 _cod_data_source_block           8000003
@@ -308,9 +310,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C20 O2'
 _cod_data_source_file            cif_molecule_032.inp
 _cod_data_source_block           8000003
@@ -418,9 +422,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C20 O2'
 _cod_data_source_file            cif_molecule_032.inp
 _cod_data_source_block           8000003
@@ -528,9 +534,11 @@ _diffrn_reflns_limit_k_max       23
 _diffrn_reflns_limit_k_min       -22
 _diffrn_reflns_limit_l_max       13
 _diffrn_reflns_limit_l_min       -13
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C116 H59 Co N11 O8 '
 _cod_src_refine_ls_R_factor_gt   0.0959
 _cod_src_refine_ls_wR_factor_ref 0.1139
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C3 N2'
 _cod_data_source_file            cif_molecule_032.inp
 _cod_data_source_block           8000003
diff --git a/tests/outputs/cif_molecule_035.out b/tests/outputs/cif_molecule_035.out
index 8b8cc69..876e8d6 100644
--- a/tests/outputs/cif_molecule_035.out
+++ b/tests/outputs/cif_molecule_035.out
@@ -137,11 +137,13 @@ _diffrn_reflns_limit_k_max       17
 _diffrn_reflns_limit_k_min       0
 _diffrn_reflns_limit_l_max       38
 _diffrn_reflns_limit_l_min       0
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety '2(C10 H8 S8), C2 N3'
 _cod_src_chemical_formula_structural '2(C10 H8 S8) (N3 C2 )'
 _cod_src_chemical_formula_sum    'C22 H16 N3 S16'
 _cod_src_refine_ls_R_factor_obs  0.077
 _cod_src_refine_ls_wR_factor_obs 0.125
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C2 N3'
 _cod_data_source_file            cif_molecule_035.inp
 _cod_data_source_block           2000728
diff --git a/tests/outputs/cif_molecule_036.out b/tests/outputs/cif_molecule_036.out
index 72adecf..ed6132f 100644
--- a/tests/outputs/cif_molecule_036.out
+++ b/tests/outputs/cif_molecule_036.out
@@ -265,7 +265,9 @@ _cell_angle_alpha                90
 _cell_angle_beta                 102.44(1)
 _cell_angle_gamma                90
 _cell_measurement_temperature    293
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C26 H46 Co2 Mo2 O22 P6'
+#END Tags that were not found in dictionaries
 _chemical_formula_sum            'C26 H46 Co2 Mo2 O22 P6'
 _cod_data_source_file            cif_molecule_036.inp
 _cod_data_source_block           2005372
diff --git a/tests/outputs/cif_molecule_047.out b/tests/outputs/cif_molecule_047.out
index bfa3def..a0697b1 100644
--- a/tests/outputs/cif_molecule_047.out
+++ b/tests/outputs/cif_molecule_047.out
@@ -262,6 +262,7 @@ _diffrn_reflns_limit_k_max       15
 _diffrn_reflns_limit_k_min       -15
 _diffrn_reflns_limit_l_max       10
 _diffrn_reflns_limit_l_min       -10
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety
 'C10 H20 O5, H12 Ni O6 2+, 2(N O3 1-), 2(H2 O)'
 _cod_src_chemical_formula_sum    'C10 H36 N2 Ni O19'
@@ -269,6 +270,7 @@ _cod_src_refine_ls_R_factor_all  0.1675
 _cod_src_refine_ls_R_factor_gt   0.0893
 _cod_src_refine_ls_wR_factor_gt  0.2590
 _cod_src_refine_ls_wR_factor_ref 0.3137
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C10 H34 N2 Ni O18'
diff --git a/tests/outputs/cif_molecule_048.out b/tests/outputs/cif_molecule_048.out
index ae50dca..62ccfe9 100644
--- a/tests/outputs/cif_molecule_048.out
+++ b/tests/outputs/cif_molecule_048.out
@@ -262,6 +262,7 @@ _diffrn_reflns_limit_k_max       15
 _diffrn_reflns_limit_k_min       -15
 _diffrn_reflns_limit_l_max       10
 _diffrn_reflns_limit_l_min       -10
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety
 'C10 H20 O5, H12 Ni O6 2+, 2(N O3 1-), 2(H2 O)'
 _cod_src_chemical_formula_sum    'C10 H36 N2 Ni O19'
@@ -269,6 +270,7 @@ _cod_src_refine_ls_R_factor_all  0.1675
 _cod_src_refine_ls_R_factor_gt   0.0893
 _cod_src_refine_ls_wR_factor_gt  0.2590
 _cod_src_refine_ls_wR_factor_ref 0.3137
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C10 H34 N2 Ni O18'
diff --git a/tests/outputs/cif_molecule_056.out b/tests/outputs/cif_molecule_056.out
index 3a24dcf..0c60e6c 100644
--- a/tests/outputs/cif_molecule_056.out
+++ b/tests/outputs/cif_molecule_056.out
@@ -434,6 +434,7 @@ _diffrn_reflns_limit_k_max       12
 _diffrn_reflns_limit_k_min       -17
 _diffrn_reflns_limit_l_max       20
 _diffrn_reflns_limit_l_min       -19
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_iupac  '(C16 H38 N2 O6) [Zn (C3 S5)2]'
 _cod_src_chemical_formula_moiety 'C16 H38 N2 O6 2+, C6 S10 Zn 2-'
 _cod_src_chemical_formula_sum    'C22 H38 N2 O6 S10 Zn'
@@ -441,6 +442,7 @@ _cod_src_refine_ls_R_factor_all  0.0427
 _cod_src_refine_ls_R_factor_gt   0.0348
 _cod_src_refine_ls_wR_factor_gt  0.0933
 _cod_src_refine_ls_wR_factor_ref 0.0981
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C38 H64 N4 O12 S20 Zn2'
diff --git a/tests/outputs/cif_molecule_059.out b/tests/outputs/cif_molecule_059.out
index 5fc0db3..845dfea 100644
--- a/tests/outputs/cif_molecule_059.out
+++ b/tests/outputs/cif_molecule_059.out
@@ -336,6 +336,7 @@ _diffrn_reflns_limit_k_max       15
 _diffrn_reflns_limit_k_min       -15
 _diffrn_reflns_limit_l_max       10
 _diffrn_reflns_limit_l_min       -10
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety
 'C10 H20 O5, H12 Ni O6 2+, 2(N O3 1-), 2(H2 O)'
 _cod_src_chemical_formula_sum    'C10 H36 N2 Ni O19'
@@ -343,6 +344,7 @@ _cod_src_refine_ls_R_factor_all  0.1675
 _cod_src_refine_ls_R_factor_gt   0.0893
 _cod_src_refine_ls_wR_factor_gt  0.2590
 _cod_src_refine_ls_wR_factor_ref 0.3137
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C10 H36 N2 Ni O19'
diff --git a/tests/outputs/cif_molecule_080.out b/tests/outputs/cif_molecule_080.out
index ef15526..25fa20d 100644
--- a/tests/outputs/cif_molecule_080.out
+++ b/tests/outputs/cif_molecule_080.out
@@ -86,8 +86,10 @@ _cell_length_c                   8.14
 _cell_angle_alpha                90
 _cell_angle_beta                 107.58
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Li2 S O4 (H2 O)'
 _cod_src_chemical_formula_sum    'H2 Li2 O5 S'
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            O
@@ -142,8 +144,10 @@ _cell_length_c                   8.14
 _cell_angle_alpha                90
 _cell_angle_beta                 107.58
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Li2 S O4 (H2 O)'
 _cod_src_chemical_formula_sum    'H2 Li2 O5 S'
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            Li
@@ -198,8 +202,10 @@ _cell_length_c                   8.14
 _cell_angle_alpha                90
 _cell_angle_beta                 107.58
 _cell_angle_gamma                90
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_structural 'Li2 S O4 (H2 O)'
 _cod_src_chemical_formula_sum    'H2 Li2 O5 S'
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            Li
diff --git a/tests/outputs/cif_molecule_085.out b/tests/outputs/cif_molecule_085.out
index 0caf8dd..2600ef5 100644
--- a/tests/outputs/cif_molecule_085.out
+++ b/tests/outputs/cif_molecule_085.out
@@ -3937,6 +3937,7 @@ _cell_length_c                   29.97049(160)
 _cell_angle_alpha                90
 _cell_angle_beta                 90
 _cell_angle_gamma                120
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_analytical
 ;
 (K.90 Na.06 Ca.01 Ba.01) (Al1.83 Fe.08 Mg.09 Ti.01) (Si3.11 Al.89) O10
@@ -3945,6 +3946,7 @@ _cod_src_chemical_formula_analytical
 _cod_src_chemical_formula_structural 'K (Al1.91 Fe.09) (Si3 Al) O10 (O H)2'
 _cod_src_chemical_formula_sum    'Al2.91 Fe0.09 H2 K O12 Si3'
 _cod_src_refine_ls_R_factor_all  0.024
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            K
diff --git a/tests/outputs/cif_molecule_086.out b/tests/outputs/cif_molecule_086.out
index 6966bb5..a3fdc5c 100644
--- a/tests/outputs/cif_molecule_086.out
+++ b/tests/outputs/cif_molecule_086.out
@@ -649,9 +649,11 @@ _cell_angle_alpha                90
 _cell_angle_beta                 90
 _cell_angle_gamma                90
 _diffrn_ambient_temperature      ?
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C6 H19 N2 O12 P3 Zn'
 _cod_src_refine_ls_R_factor_gt   0.06
 _cod_src_refine_ls_wR_factor_gt  0.06
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C6 N2'
diff --git a/tests/outputs/cif_molecule_092.out b/tests/outputs/cif_molecule_092.out
index 58db72c..1675916 100644
--- a/tests/outputs/cif_molecule_092.out
+++ b/tests/outputs/cif_molecule_092.out
@@ -200,6 +200,7 @@ _diffrn_reflns_limit_k_max       12
 _diffrn_reflns_limit_k_min       0
 _diffrn_reflns_limit_l_max       20
 _diffrn_reflns_limit_l_min       -20
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_moiety 'C23 H20 Fe O , C2 H6 O S '
 _cod_src_chemical_formula_structural 'C23 H20 Fe O, C2 H6 O S'
 _cod_src_chemical_formula_sum    'C25 H26 Fe O2 S'
@@ -207,6 +208,7 @@ _cod_src_refine_ls_R_factor_all  0.044
 _cod_src_refine_ls_R_factor_obs  0.034
 _cod_src_refine_ls_wR_factor_all 0.055
 _cod_src_refine_ls_wR_factor_obs 0.052
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C2 H6 O S'
diff --git a/tests/outputs/cif_p1_001.out b/tests/outputs/cif_p1_001.out
index aca8b99..83ca79b 100644
--- a/tests/outputs/cif_p1_001.out
+++ b/tests/outputs/cif_p1_001.out
@@ -418,26 +418,26 @@ I1 y,-x+y,-z
 I1 x-y,x,-z
 Na1 -y,x-y,z
 Na1 -x+y,-x,z
-Na1 -x+0.666666666666667,-y+0.333333333333333,-z+0.333333333333333
-Na1 y+0.666666666666667,-x+y+0.333333333333333,-z+0.333333333333333
-Na1 x-y+0.666666666666667,x+0.333333333333333,-z+0.333333333333333
+Na1 -x+2/3,-y+1/3,-z+1/3
+Na1 y+2/3,-x+y+1/3,-z+1/3
+Na1 x-y+2/3,x+1/3,-z+1/3
 I1_4_555 -y,x-y,z
 I1_4_555 -x+y,-x,z
-I1_4_555 -x,-y,-z
-I1_4_555 y,-x+y,-z
-I1_4_555 x-y,x,-z
+I1_4_555 -x+1/3,-y+2/3,-z+2/3
+I1_4_555 y+1/3,-x+y+2/3,-z+2/3
+I1_4_555 x-y+1/3,x+2/3,-z+2/3
 I1_7_555 -y,x-y,z
 I1_7_555 -x+y,-x,z
-I1_7_555 -x,-y,-z
-I1_7_555 y,-x+y,-z
-I1_7_555 x-y,x,-z
+I1_7_555 -x+2/3,-y+1/3,-z+1/3
+I1_7_555 y+2/3,-x+y+1/3,-z+1/3
+I1_7_555 x-y+2/3,x+1/3,-z+1/3
 Na1_4_555 -y,x-y,z
 Na1_4_555 -x+y,-x,z
-Na1_4_555 -x+0.666666666666667,-y+0.333333333333333,-z+0.333333333333333
-Na1_4_555 y+0.666666666666667,-x+y+0.333333333333333,-z+0.333333333333333
-Na1_4_555 x-y+0.666666666666667,x+0.333333333333333,-z+0.333333333333333
+Na1_4_555 -x,-y,-z
+Na1_4_555 y,-x+y,-z
+Na1_4_555 x-y,x,-z
 Na1_7_555 -y,x-y,z
 Na1_7_555 -x+y,-x,z
-Na1_7_555 -x+0.666666666666667,-y+0.333333333333333,-z+0.333333333333333
-Na1_7_555 y+0.666666666666667,-x+y+0.333333333333333,-z+0.333333333333333
-Na1_7_555 x-y+0.666666666666667,x+0.333333333333333,-z+0.333333333333333
+Na1_7_555 -x+1/3,-y+2/3,-z+2/3
+Na1_7_555 y+1/3,-x+y+2/3,-z+2/3
+Na1_7_555 x-y+1/3,x+2/3,-z+2/3
diff --git a/tests/outputs/cif_p1_004.out b/tests/outputs/cif_p1_004.out
index 825bdc8..1785562 100644
--- a/tests/outputs/cif_p1_004.out
+++ b/tests/outputs/cif_p1_004.out
@@ -752,11 +752,13 @@ _diffrn_reflns_limit_k_max       17
 _diffrn_reflns_limit_k_min       -21
 _diffrn_reflns_limit_l_max       16
 _diffrn_reflns_limit_l_min       -16
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C36 H82 N8 O29 P6'
 _cod_src_refine_ls_R_factor_all  0.0466
 _cod_src_refine_ls_R_factor_gt   0.0411
 _cod_src_refine_ls_wR_factor_gt  0.1057
 _cod_src_refine_ls_wR_factor_ref 0.1093
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C36 H82 N8 O29 P6'
diff --git a/tests/outputs/cif_p1_005.out b/tests/outputs/cif_p1_005.out
index dc15d35..7656a9b 100644
--- a/tests/outputs/cif_p1_005.out
+++ b/tests/outputs/cif_p1_005.out
@@ -430,11 +430,13 @@ _diffrn_reflns_limit_k_max       17
 _diffrn_reflns_limit_k_min       -21
 _diffrn_reflns_limit_l_max       16
 _diffrn_reflns_limit_l_min       -16
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C36 H82 N8 O29 P6'
 _cod_src_refine_ls_R_factor_all  0.0466
 _cod_src_refine_ls_R_factor_gt   0.0411
 _cod_src_refine_ls_wR_factor_gt  0.1057
 _cod_src_refine_ls_wR_factor_ref 0.1093
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C36 H82 N8 O29 P6'
diff --git a/tests/outputs/cif_p1_006.out b/tests/outputs/cif_p1_006.out
index 07ab6a0..9af24e7 100644
--- a/tests/outputs/cif_p1_006.out
+++ b/tests/outputs/cif_p1_006.out
@@ -752,11 +752,13 @@ _diffrn_reflns_limit_k_max       17
 _diffrn_reflns_limit_k_min       -21
 _diffrn_reflns_limit_l_max       16
 _diffrn_reflns_limit_l_min       -16
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C36 H82 N8 O29 P6'
 _cod_src_refine_ls_R_factor_all  0.0466
 _cod_src_refine_ls_R_factor_gt   0.0411
 _cod_src_refine_ls_wR_factor_gt  0.1057
 _cod_src_refine_ls_wR_factor_ref 0.1093
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C36 H82 N8 O29 P6'
diff --git a/tests/outputs/cif_p1_007.out b/tests/outputs/cif_p1_007.out
index 81d799b..4d785dc 100644
--- a/tests/outputs/cif_p1_007.out
+++ b/tests/outputs/cif_p1_007.out
@@ -430,11 +430,13 @@ _diffrn_reflns_limit_k_max       17
 _diffrn_reflns_limit_k_min       -21
 _diffrn_reflns_limit_l_max       16
 _diffrn_reflns_limit_l_min       -16
+#BEGIN Tags that were not found in dictionaries:
 _cod_src_chemical_formula_sum    'C36 H82 N8 O29 P6'
 _cod_src_refine_ls_R_factor_all  0.0466
 _cod_src_refine_ls_R_factor_gt   0.0411
 _cod_src_refine_ls_wR_factor_gt  0.1057
 _cod_src_refine_ls_wR_factor_ref 0.1093
+#END Tags that were not found in dictionaries
 _audit_creation_method
 'Id: <script_name> <revision_nr> <date> <time> <author>'
 _chemical_formula_sum            'C36 H82 N8 O29 P6'
diff --git a/tests/outputs/cif_p1_008.out b/tests/outputs/cif_p1_008.out
index e65b04a..36efa6e 100644
--- a/tests/outputs/cif_p1_008.out
+++ b/tests/outputs/cif_p1_008.out
@@ -215,31 +215,31 @@ Ti1_8_555 Ti1 8_555 8 x+0.5,-y+0.5,z+0.5 555 0 0 0 8 1
 loop_
 _cod_molecule_transform_label
 _cod_molecule_transform_symop
-Al1 -x,y,-z+0.5
-Ca1 -x,y,-z+0.5
-Fe1 -x,y,-z+0.5
-Fe2 -x,y,-z+0.5
-Mg1 -x,y,-z+0.5
-Mg2 -x,y,-z+0.5
-Na1 -x,y,-z+0.5
-Al1_3_555 -x,y,-z+0.5
-Al1_5_555 -x,y,-z+0.5
-Al1_7_555 -x,y,-z+0.5
-Ca1_3_555 -x,y,-z+0.5
-Ca1_5_555 -x,y,-z+0.5
-Ca1_7_555 -x,y,-z+0.5
-Fe1_3_555 -x,y,-z+0.5
-Fe1_5_555 -x,y,-z+0.5
-Fe1_7_555 -x,y,-z+0.5
-Fe2_3_555 -x,y,-z+0.5
-Fe2_5_555 -x,y,-z+0.5
-Fe2_7_555 -x,y,-z+0.5
-Mg1_3_555 -x,y,-z+0.5
-Mg1_5_555 -x,y,-z+0.5
-Mg1_7_555 -x,y,-z+0.5
-Mg2_3_555 -x,y,-z+0.5
-Mg2_5_555 -x,y,-z+0.5
-Mg2_7_555 -x,y,-z+0.5
-Na1_3_555 -x,y,-z+0.5
-Na1_5_555 -x,y,-z+0.5
-Na1_7_555 -x,y,-z+0.5
+Al1 -x,y,-z+1/2
+Ca1 -x,y,-z+1/2
+Fe1 -x,y,-z+1/2
+Fe2 -x,y,-z+1/2
+Mg1 -x,y,-z+1/2
+Mg2 -x,y,-z+1/2
+Na1 -x,y,-z+1/2
+Al1_3_555 -x,y,-z+1/2
+Al1_5_555 -x,y,-z+1/2
+Al1_7_555 -x,y,-z+1/2
+Ca1_3_555 -x,y,-z+1/2
+Ca1_5_555 -x,y,-z+1/2
+Ca1_7_555 -x,y,-z+1/2
+Fe1_3_555 -x,y,-z+1/2
+Fe1_5_555 -x,y,-z+1/2
+Fe1_7_555 -x,y,-z+1/2
+Fe2_3_555 -x,y,-z+1/2
+Fe2_5_555 -x,y,-z+1/2
+Fe2_7_555 -x,y,-z+1/2
+Mg1_3_555 -x,y,-z+1/2
+Mg1_5_555 -x,y,-z+1/2
+Mg1_7_555 -x,y,-z+1/2
+Mg2_3_555 -x,y,-z+1/2
+Mg2_5_555 -x,y,-z+1/2
+Mg2_7_555 -x,y,-z+1/2
+Na1_3_555 -x,y,-z+1/2
+Na1_5_555 -x,y,-z+1/2
+Na1_7_555 -x,y,-z+1/2
diff --git a/tests/outputs/cif_sort_atoms_001.out b/tests/outputs/cif_sort_atoms_001.out
new file mode 100644
index 0000000..328a41b
--- /dev/null
+++ b/tests/outputs/cif_sort_atoms_001.out
@@ -0,0 +1,421 @@
+data_global
+_audit_creation_method           'form.cif (version 2.0)'
+_journal_data_validation_number  ?
+_journal_date_recd_electronic    ?
+_journal_date_to_coeditor        ?
+_journal_date_from_coeditor      ?
+_journal_date_accepted           ?
+_journal_date_printers_first     ?
+_journal_date_printers_final     ?
+_journal_date_proofs_out         ?
+_journal_date_proofs_in          ?
+_journal_coeditor_name           ?
+_journal_coeditor_code           ?
+_journal_coeditor_notes          ' ?'
+_journal_techeditor_code         ?
+_journal_techeditor_notes        ' ?'
+_journal_coden_ASTM              ?
+_journal_name_full               ?
+_journal_year                    ?
+_journal_volume                  ?
+_journal_issue                   ?
+_journal_page_first              ?
+_journal_page_last               ?
+_journal_paper_category          ?
+_journal_suppl_publ_number       ?
+_journal_suppl_publ_pages        ?
+_publ_contact_author_name        'Vincent MAISONNEUVE'
+_publ_contact_author_address
+;
+Laboratoire des Fluorures - UPRES-A 6010 
+Facult\'e des Sciences, Universit\'e du Maine, Avenue Olivier-Messiaen,
+ 72085 LE MANS Cedex 9, FRANCE
+;
+_publ_contact_author_phone       '(33) 2 43 83 35 61'
+_publ_contact_author_fax         '(33) 2 43 83 35 06'
+_publ_contact_author_email       vincent.maisonneuve at univ-lemans.fr
+_publ_contact_letter
+;
+Please consider this CIF submission for publication as a full paper in
+Acta Crystallographica C. The figures and structure factors listings
+will be sent by normal mailing.
+;
+_publ_requested_journal          'Acta Crystallographica C'
+_publ_requested_coeditor_name    ?
+_publ_section_title
+;
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H, a One-Dimensional Aluminophosphate
+;
+loop_
+_publ_author_name
+_publ_author_address
+'S. PHAN THANH'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+'J. MARROT'
+;
+Institut Lavoisier, IREM, UMR CNRS C 8637,
+Universit\'e  de Versailles Saint-Quentin-en-Yvelines,
+45 Avenue des Etats Unis, 75035 Versailles Cedex, FRANCE
+;
+'J. RENAUDIN'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+'V. MAISONNEUVE'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+_publ_section_synopsis
+; The structure of the title compound, obtained solvothermally at 473 K, has 
+been determined by single-crystal X-ray diffraction. It consists of 
+one-dimensional [AlP~2~O~8~H]^2-^ macroanions, connected each other by 
+pentanediammonium cations. 
+;
+_publ_section_abstract
+;
+The structure of the title compound, obtained solvothermally at 473 K, has 
+been determined by single-crystal X-ray diffraction. It consists of 
+one-dimensional [AlP~2~O~8~H]^2-^ macroanions, connected each other by 
+pentanediammonium cations. Contrary to the referred similar compounds with 
+P/Al = 2, the  three-dimensionality is mainly obtained via the network of 
+hydrogen bonds. 
+;
+_publ_section_comment
+;
+The investigation of the system Al~2~O~3~-H~3~PO~4~-aliphatic 
+diamine-EtOH led to a new one-dimensional aluminophosphate templated 
+by 1,5-diaminopentane. The structure of [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H 
+consists of inorganic chains, formulated [AlP~2~O~8~H]^2-^, separated by 
+organic molecules (Fig. 1, top). The inorganic part is built up from 
+tetrahedral AlO~4~ and PO~4~ units, in which all AlO~4~ vertices are 
+connected. This arrangement forms a corner-shared Al~2~P~2~ four-membered 
+ring, with PO~4~H groups. The Al-O distances, ranging from 1.727 (3) to 
+1.731 (3) \%A, and the O-Al-O angles, lying between 106.4 (2) and 111.3 (2)\%, 
+are consistent with those found in the mineral Berlinite. On the contrary, the 
+P-O distances vary from 1.490 (3) to 1.539 (3) \%A  and from 1.499 (3) to 1.546 
+(3) \%A for the P1 and P2 phosphate groups respectively. This dispersion is 
+attributable to multiple bond character. 1,5-diaminopentane molecules, which 
+must be protonated to balance the negative charges, ensure the cohesion between 
+inorganic chains via hydrogen bonds. All the protons of ammonium cations are 
+linked to terminal O atoms of PO~4~H group. Owing to N-H...O hydrogen bond 
+lengths for the two amine functions, the N1 terminal group is more anchored to 
+the inorganic chains. Details of the hydrogen bonding are given in Table 2. 
+[H~3~N(CH~2~)~5~NH~3~]^2+^ cations present a bent 
+conformation for a size reason. In this case, the atomic displacement 
+parameters of the carbon atoms are rather large, especially in the central 
+part (atoms C3 and C4) of the molecule (Fig. 2). This situation is 
+the complete opposite of that observed in [H~3~N(CH~2~)~6~NH~3~].AlF~5~ 
+(Phan Thanh, Renaudin & Maisonneuve, 2000) where the diammonium cation 
+exhibits a stretched conformation between (AlF~5~) inorganic chains. In 
+addition, it can be observed in the compound called ULM13 both the bent and 
+stretched conformations for the 1,6-diaminohexane molecules (Renaudin, 
+F\'erey, 1995).
+
+Up to now, two types of chain architecture for the one-dimensional 
+aluminophosphates, with a P/Al ratio of 2 in the formulation, have been 
+reported in the literature. The former in [H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~H 
+(Williams, Xu, Gao, Chen & Xu, 1997) shows a one-dimensional polymer chains 
+consisting of edge-shared Al~2~P~2~ four-membered rings, with pendant PO~4~H 
+side groups. The latter, in [H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~.H~2~O 
+(Wang, Yu & Pang, 1990), [Et~3~NH].AlP~2~O~8~H~2~ (Jones, Thomas, Xu, Huo, Xu, 
+Cheetham & Bieber, 1990) and [NH~4~][H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~ (Gao, 
+Chen, Li, Xu, Thomas, Light & Hursthouse, 1996), present a linear arrangement 
+of corner-shared Al~2~P~2~ four-membered rings similar to that 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H. However, the higher size of the 
+diammonium cation in [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H led to a distorted 
+inorganic chain. On one hand, the small size of the 
+organic molecule in these four compounds leads to a three-dimensional 
+organization ensured by a combination of van der Waals forces and hydrogen 
+bonds. On the other hand, in the title compound, the structure accommodates 
+the more significant length of the organic chain by a distortion of the 
+organic part but also of the inorganic chain. Consequently, the three-
+dimensional character is then obtained mainly by the set of hydrogen bonds 
+(Fig. 1, bottom). It is also noticed that this involves a shortening of the 
+O-H...O distance. The distance passes from 2.641 (2) \%A in 
+[H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~H to 2.457 (4) \%A in 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H.
+;
+_publ_section_exptl_prep
+;
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H was prepared from a starting mixture 
+Aluminum isopropoxide ([(CH~3~)~2~CHO]~3~Al)-H~3~PO~4~-1.5 diaminopentane-EtOH 
+with the molar ratio 1:2:5:100 under solvothermal conditions (473 K, 7 days, 
+autogenous pressure) in a Teflon lined autoclave. The resulting product was 
+filtered and dried in air at 353 K for 1 h. A suitable single crystal was 
+isolated by optical microscopy. The crystal cell of 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H was obtained from long exposure rotation 
+photographs. Systematic extinction conditions lead to P2~1~/n space group.
+;
+_publ_section_exptl_refinement
+;
+The structure was solved by direct methods of the program SHELXS86 
+(Sheldrick, 1990) and successive refinements and difference Fourier maps using 
+SHELXL93 program (Sheldrick, 1993). For the refinement of hydrogen atoms in 
+the CH~2~ and NH~3~ groups, geometrical restraint conditions were used that 
+implied equal distances and angles to the central atom (AFIX option). H atoms 
+of each CH~2~ and NH~3~ groups were refined with a common isotropic thermal 
+parameter. Fourier map showed a relatively large electron-density peak of 
+1.36 e \%A^-3^ at distances of 0.94 and 1.28 \%A from H5A and C5 respectively.
+;
+_publ_section_references
+; Berger-Hoff, G. (1996). DIAMOND. Visual Crystal Structure Information
+ System, Gerhard-Domagk-Str.1, 53121 Bonn, Germany.
+
+Gao, Q., Chen, J., Li, S., Xu, R., Thomas, J. M., Light, M. & Hursthouse,
+ M. B. (1996). J. Solid State Chem. 127, 145-150.
+
+Farrugia, L.J. (1997). J. Appl. Cryst. 30, 565.
+
+Jones, R. H., Thomas, J. M., Xu, R., Huo, Q., Xu, Y., Cheetham, A. K. & 
+Bieber, D. (1990). J. Chem. Soc., Chem. Commun. 1170-1172.
+
+Phan Thanh, S., Renaudin, J. & Maisonneuve, V. (2000). Solid State Sciences, 
+in press.
+
+Renaudin, J. & F\'erey, G. (1995). J. Solid State Chem.  120, 197-203.
+
+Sheldrick, G.M. (1990), Acta Cryst. A46 , 467-473.
+
+Sheldrick, G.M. (1993). SHELXL93. Program for the Refinement of Crystal 
+Structures, University of G\"ottingen, Germany.
+
+Sheldrick, G.M. (1996). SADABS. University of G\"ottingen, Germany.
+
+Siemens (1996). SMART and SAINT. Area Detector Control and Integration
+ Software. Siemens Analytical X-ray Instruments Inc., Madison, Wisconsin, USA.
+
+Wang, T., Yu, L. & Pang, W. (1990). J. Solid State Chem. 89, 392-395.
+
+Williams, I. D., XU, J., Gao, Q., Chen, J. & Xu, R. (1997). Chem. Commun.
+ 1273-1274.
+;
+_publ_section_figure_captions
+;
+Fig. 1.  Projection of [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H along the c-axis 
+showing its one-dimensional character and the bent conformation of the 
+diammonium cation (top) and along the a-axis (bottom). PO~4~ tetrahedra are 
+hatched.
+
+Fig. 2.  Ortep view (Farrugia, 1997) of pentanediammonium cation in 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H. Displacement ellipsoids are shown at the 
+50% probability level.
+;
+_publ_section_acknowledgements
+; The authors thank Professor M. Leblanc and R. Retoux for useful counsels to 
+this manuscript and Dr T. Loiseau for his help.
+;
+_publ_section_table_legends
+;
+Table 1. Selected bond distances (\%A) and angles (\%)
+
+Table 2. Hydrogen-bonding geometry (\%A, \%)
+;
+data_C5H17AlN2O8P2
+_audit_creation_method           SHELXL-97
+_chemical_name_systematic
+;
+ ?
+;
+_chemical_name_common            ?
+_chemical_formula_moiety         ?
+_chemical_formula_structural     ?
+_chemical_formula_analytical     ?
+_chemical_formula_sum            'C5 H17 Al N2 O8 P2'
+_chemical_formula_weight         322.13
+_chemical_melting_point          ?
+_chemical_compound_source        ?
+_symmetry_cell_setting           Monoclinic
+_symmetry_space_group_name_H-M   P2~1~/n
+_cell_length_a                   7.8783(2)
+_cell_length_b                   10.46890(10)
+_cell_length_c                   16.0680(4)
+_cell_angle_alpha                90.00
+_cell_angle_beta                 95.1470(10)
+_cell_angle_gamma                90.00
+_cell_volume                     1319.90(5)
+_cell_formula_units_Z            4
+_cell_measurement_temperature    296(2)
+_cell_measurement_reflns_used    5007
+_cell_measurement_theta_min      2.32
+_cell_measurement_theta_max      29.83
+_exptl_crystal_description       parallelepiped
+_exptl_crystal_colour            colorless
+_exptl_crystal_size_max          0.12
+_exptl_crystal_size_mid          0.06
+_exptl_crystal_size_min          0.05
+_exptl_crystal_density_meas      'not measured'
+_exptl_crystal_density_diffrn    1.621
+_exptl_crystal_density_method    ?
+_exptl_crystal_F_000             672
+_exptl_absorpt_coefficient_mu    0.429
+_exptl_absorpt_correction_type   semi-empirical
+_exptl_absorpt_process_details   'SADABS (Sheldrick, 1996)'
+_exptl_absorpt_correction_T_min  0.844
+_exptl_absorpt_correction_T_max  0.978
+_exptl_special_details
+;
+'Blessing, Acta Cryst. (1995) A51 33-38'
+;
+_diffrn_ambient_temperature      296(2)
+_diffrn_radiation_wavelength     0.71073
+_diffrn_radiation_type           MoK\a
+_diffrn_radiation_source         'fine-focus sealed tube'
+_diffrn_radiation_monochromator  graphite
+_diffrn_measurement_device       'Siemens SMART diffractometer'
+_diffrn_measurement_method       '\w scans'
+_diffrn_standards_number         0
+_diffrn_standards_interval_count 0
+_diffrn_standards_interval_time  0
+_diffrn_standards_decay_%        0
+_diffrn_reflns_number            8939
+_diffrn_reflns_av_R_equivalents  0.0383
+_diffrn_reflns_av_sigmaI/netI    0.0532
+_diffrn_reflns_limit_h_min       -10
+_diffrn_reflns_limit_h_max       10
+_diffrn_reflns_limit_k_min       -14
+_diffrn_reflns_limit_k_max       13
+_diffrn_reflns_limit_l_min       -21
+_diffrn_reflns_limit_l_max       9
+_diffrn_reflns_theta_min         2.32
+_diffrn_reflns_theta_max         29.83
+_reflns_number_total             3421
+_reflns_number_gt                1901
+_reflns_threshold_expression     >2sigma(I)
+_computing_data_collection       'Siemens SMART'
+_computing_cell_refinement       'Siemens SMART'
+_computing_data_reduction        'Siemens SHELXTL'
+_computing_structure_solution    'SHELXS-86 (Sheldrick, 1990)'
+_computing_structure_refinement  'SHELXL-93 (Sheldrick, 1993)'
+_computing_molecular_graphics    'DIAMOND (Berger-Hoff, 1996)'
+_computing_publication_material  'Siemens SHELXTL'
+_refine_special_details
+; Refinement on F^2^ for ALL reflections except for 900 with very negative 
+F^2^ or flagged by the user for potential systematic errors. Weighted 
+R-factors wR and all goodnesses of fit S are based on F^2^, conventional 
+R-factors R are based on F, with F set to zero for negative F^2^. The 
+observed criterion of F^2^ > 2sigma(F^2^) is used only for calculating 
+R-factor-obs etc. and is not relevant to the choice of reflections for 
+refinement.  R-factors based on F^2^ are statistically about twice as 
+large as those based on F, and R- factors based on ALL data will be even 
+larger.
+;
+_refine_ls_structure_factor_coef Fsqd
+_refine_ls_matrix_type           full
+_refine_ls_weighting_scheme
+'calc w=1/[\s^2^(Fo^2^)+(0.0573P)^2^+3.0698P] where P=(Fo^2^+2Fc^2^)/3'
+_atom_sites_solution_primary     direct
+_atom_sites_solution_secondary   difmap
+_atom_sites_solution_hydrogens   geom
+_refine_ls_hydrogen_treatment    constr
+_refine_ls_extinction_method     SHELXL
+_refine_ls_extinction_coef       0.0130(77)
+_refine_ls_extinction_expression Fc^*^=kFc[1+0.001xFc^2^\l^3^/sin(2\q)]^-1/4^
+_refine_ls_number_reflns         2521
+_refine_ls_number_parameters     167
+_refine_ls_number_restraints     4
+_refine_ls_R_factor_all          0.1073
+_refine_ls_R_factor_gt           0.0584
+_refine_ls_wR_factor_all         0.2069
+_refine_ls_wR_factor_ref         0.1362
+_refine_ls_goodness_of_fit_all   1.055
+_refine_ls_goodness_of_fit_ref   1.080
+_refine_ls_restrained_S_all      1.370
+_refine_ls_restrained_S_obs      1.096
+_refine_ls_shift/su_max          0.000
+_refine_ls_shift/esd_mean        0.000
+loop_
+_atom_type_symbol
+_atom_type_description
+_atom_type_scat_dispersion_real
+_atom_type_scat_dispersion_imag
+_atom_type_scat_source
+C C 0.0033 0.0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+N N 0.0061 0.0033 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+O O 0.0106 0.0060 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+Al Al 0.0645 0.0514 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+P P 0.1023 0.0942 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+loop_
+_symmetry_equiv_pos_as_xyz
+'x, y, z'
+'-x+1/2, y+1/2, -z+1/2'
+'-x, -y, -z'
+'x-1/2, -y-1/2, z-1/2'
+loop_
+_atom_site_label
+_atom_site_type_symbol
+_atom_site_fract_x
+_atom_site_fract_y
+_atom_site_fract_z
+_atom_site_U_iso_or_equiv
+_atom_site_thermal_displace_type
+_atom_site_occupancy
+_atom_site_calc_flag
+_atom_site_refinement_flags
+_atom_site_disorder_group
+Al1 Al 0.24723(13) 0.95928(11) -0.02995(7) 0.0246(4) Uani 1 d . .
+C1 C 0.7372(9) 0.3936(7) 0.1518(5) 0.077(2) Uani 1 d D .
+C2 C 0.8618(10) 0.4488(8) 0.2194(5) 0.088(2) Uani 1 d D .
+C3 C 0.8903(13) 0.5913(9) 0.2175(5) 0.110(3) Uani 1 d D .
+C4 C 0.9232(15) 0.6711(14) 0.1428(8) 0.153(5) Uani 1 d D .
+C5 C 1.1025(11) 0.6688(10) 0.1213(5) 0.099(3) Uani 1 d D .
+H1A H 0.4934 0.4053 0.1133 0.066 Uiso 1 calc R .
+H1B H 0.5704 0.5309 0.1254 0.066 Uiso 1 calc R .
+H1C H 0.5288 0.4565 0.1972 0.066 Uiso 1 calc R .
+H1D H 0.7840 0.4038 0.0984 0.092 Uiso 1 calc R .
+H1E H 0.7258 0.3028 0.1618 0.092 Uiso 1 calc R .
+H2 H 0.7123 0.7571 -0.0649 0.056 Uiso 1 calc R .
+H2A H 0.8225 0.4271 0.2732 0.105 Uiso 1 calc R .
+H2B H 0.9709 0.4071 0.2162 0.105 Uiso 1 calc R .
+H2C H 1.3301 0.7296 0.1586 0.066 Uiso 1 calc R .
+H2D H 1.2357 0.6916 0.2283 0.066 Uiso 1 calc R .
+H2E H 1.1984 0.8127 0.1863 0.066 Uiso 1 calc R .
+H3A H 0.7912 0.6290 0.2395 0.132 Uiso 1 calc R .
+H3B H 0.9855 0.6077 0.2587 0.132 Uiso 1 calc R .
+H4A H 0.8502 0.6411 0.0950 0.184 Uiso 1 calc R .
+H4B H 0.8917 0.7587 0.1534 0.184 Uiso 1 calc R .
+H5A H 1.1363 0.5802 0.1162 0.118 Uiso 1 calc R .
+H5B H 1.1062 0.7081 0.0669 0.118 Uiso 1 calc R .
+N1 N 0.5653(6) 0.4525(4) 0.1464(2) 0.0438(10) Uani 1 d . .
+N2 N 1.2290(5) 0.7318(4) 0.1793(3) 0.0439(9) Uani 1 d . .
+O1 O 0.1684(4) 0.9724(3) 0.0667(2) 0.0379(7) Uani 1 d . .
+O2 O 0.6564(4) 0.7078(3) -0.0386(2) 0.0373(7) Uani 1 d . .
+O3 O 0.0882(4) 0.9116(3) -0.1048(2) 0.0381(7) Uani 1 d . .
+O4 O 0.1982(4) 1.1793(3) 0.1459(2) 0.0467(9) Uani 1 d . .
+O5 O 0.4005(4) 0.8408(3) -0.0252(2) 0.0435(8) Uani 1 d . .
+O6 O 0.5116(4) 0.6993(3) 0.0927(2) 0.0466(8) Uani 1 d . .
+O7 O 0.1067(5) 0.9814(4) 0.2149(2) 0.0521(9) Uani 1 d . .
+O8 O 0.6701(4) 0.8956(3) 0.0585(2) 0.0398(8) Uani 1 d . .
+P1 P 0.55909(13) 0.78402(9) 0.02396(7) 0.0280(3) Uani 1 d . .
+P2 P 0.09646(13) 1.05563(11) 0.13485(6) 0.0290(3) Uani 1 d . .
+loop_
+_atom_site_aniso_label
+_atom_site_aniso_U_11
+_atom_site_aniso_U_22
+_atom_site_aniso_U_33
+_atom_site_aniso_U_23
+_atom_site_aniso_U_13
+_atom_site_aniso_U_12
+P1 0.0276(5) 0.0230(5) 0.0341(6) 0.0016(4) 0.0063(4) 0.0016(4)
+P2 0.0259(5) 0.0418(6) 0.0193(5) -0.0034(4) 0.0019(4) -0.0018(4)
+Al1 0.0218(6) 0.0289(6) 0.0233(6) -0.0027(4) 0.0024(4) 0.0004(4)
+O1 0.041(2) 0.048(2) 0.0262(15) -0.0020(13) 0.0096(12) 0.0047(14)
+O2 0.036(2) 0.0285(15) 0.049(2) -0.0019(13) 0.0141(13) 0.0033(12)
+O3 0.0279(15) 0.049(2) 0.037(2) -0.0117(13) -0.0009(12) -0.0003(13)
+O4 0.042(2) 0.060(2) 0.039(2) -0.016(2) 0.0100(14) -0.019(2)
+O5 0.036(2) 0.046(2) 0.047(2) -0.0090(14) -0.0034(14) 0.0153(14)
+O6 0.055(2) 0.032(2) 0.056(2) 0.0116(14) 0.022(2) -0.0010(14)
+O7 0.060(2) 0.073(2) 0.024(2) 0.0063(15) 0.0098(14) 0.015(2)
+O8 0.045(2) 0.036(2) 0.038(2) -0.0015(13) 0.0052(13) -0.0117(14)
+N1 0.067(3) 0.030(2) 0.037(2) -0.003(2) 0.016(2) -0.006(2)
+C1 0.080(4) 0.070(4) 0.080(5) -0.026(3) 0.000(4) 0.012(3)
+C2 0.073(4) 0.123(7) 0.067(4) -0.005(4) 0.008(3) -0.002(4)
+C3 0.097(6) 0.158(10) 0.077(5) -0.002(6) 0.015(4) -0.056(6)
+C4 0.169(13) 0.130(10) 0.153(12) 0.010(8) -0.024(10) -0.019(9)
+C5 0.099(6) 0.134(7) 0.063(4) -0.007(4) 0.004(4) -0.075(5)
+N2 0.041(2) 0.052(2) 0.039(2) 0.012(2) 0.006(2) -0.002(2)
diff --git a/tests/outputs/cif_sort_atoms_002.out b/tests/outputs/cif_sort_atoms_002.out
new file mode 100644
index 0000000..463a3e3
--- /dev/null
+++ b/tests/outputs/cif_sort_atoms_002.out
@@ -0,0 +1,421 @@
+data_global
+_audit_creation_method           'form.cif (version 2.0)'
+_journal_data_validation_number  ?
+_journal_date_recd_electronic    ?
+_journal_date_to_coeditor        ?
+_journal_date_from_coeditor      ?
+_journal_date_accepted           ?
+_journal_date_printers_first     ?
+_journal_date_printers_final     ?
+_journal_date_proofs_out         ?
+_journal_date_proofs_in          ?
+_journal_coeditor_name           ?
+_journal_coeditor_code           ?
+_journal_coeditor_notes          ' ?'
+_journal_techeditor_code         ?
+_journal_techeditor_notes        ' ?'
+_journal_coden_ASTM              ?
+_journal_name_full               ?
+_journal_year                    ?
+_journal_volume                  ?
+_journal_issue                   ?
+_journal_page_first              ?
+_journal_page_last               ?
+_journal_paper_category          ?
+_journal_suppl_publ_number       ?
+_journal_suppl_publ_pages        ?
+_publ_contact_author_name        'Vincent MAISONNEUVE'
+_publ_contact_author_address
+;
+Laboratoire des Fluorures - UPRES-A 6010 
+Facult\'e des Sciences, Universit\'e du Maine, Avenue Olivier-Messiaen,
+ 72085 LE MANS Cedex 9, FRANCE
+;
+_publ_contact_author_phone       '(33) 2 43 83 35 61'
+_publ_contact_author_fax         '(33) 2 43 83 35 06'
+_publ_contact_author_email       vincent.maisonneuve at univ-lemans.fr
+_publ_contact_letter
+;
+Please consider this CIF submission for publication as a full paper in
+Acta Crystallographica C. The figures and structure factors listings
+will be sent by normal mailing.
+;
+_publ_requested_journal          'Acta Crystallographica C'
+_publ_requested_coeditor_name    ?
+_publ_section_title
+;
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H, a One-Dimensional Aluminophosphate
+;
+loop_
+_publ_author_name
+_publ_author_address
+'S. PHAN THANH'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+'J. MARROT'
+;
+Institut Lavoisier, IREM, UMR CNRS C 8637,
+Universit\'e  de Versailles Saint-Quentin-en-Yvelines,
+45 Avenue des Etats Unis, 75035 Versailles Cedex, FRANCE
+;
+'J. RENAUDIN'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+'V. MAISONNEUVE'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+_publ_section_synopsis
+; The structure of the title compound, obtained solvothermally at 473 K, has 
+been determined by single-crystal X-ray diffraction. It consists of 
+one-dimensional [AlP~2~O~8~H]^2-^ macroanions, connected each other by 
+pentanediammonium cations. 
+;
+_publ_section_abstract
+;
+The structure of the title compound, obtained solvothermally at 473 K, has 
+been determined by single-crystal X-ray diffraction. It consists of 
+one-dimensional [AlP~2~O~8~H]^2-^ macroanions, connected each other by 
+pentanediammonium cations. Contrary to the referred similar compounds with 
+P/Al = 2, the  three-dimensionality is mainly obtained via the network of 
+hydrogen bonds. 
+;
+_publ_section_comment
+;
+The investigation of the system Al~2~O~3~-H~3~PO~4~-aliphatic 
+diamine-EtOH led to a new one-dimensional aluminophosphate templated 
+by 1,5-diaminopentane. The structure of [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H 
+consists of inorganic chains, formulated [AlP~2~O~8~H]^2-^, separated by 
+organic molecules (Fig. 1, top). The inorganic part is built up from 
+tetrahedral AlO~4~ and PO~4~ units, in which all AlO~4~ vertices are 
+connected. This arrangement forms a corner-shared Al~2~P~2~ four-membered 
+ring, with PO~4~H groups. The Al-O distances, ranging from 1.727 (3) to 
+1.731 (3) \%A, and the O-Al-O angles, lying between 106.4 (2) and 111.3 (2)\%, 
+are consistent with those found in the mineral Berlinite. On the contrary, the 
+P-O distances vary from 1.490 (3) to 1.539 (3) \%A  and from 1.499 (3) to 1.546 
+(3) \%A for the P1 and P2 phosphate groups respectively. This dispersion is 
+attributable to multiple bond character. 1,5-diaminopentane molecules, which 
+must be protonated to balance the negative charges, ensure the cohesion between 
+inorganic chains via hydrogen bonds. All the protons of ammonium cations are 
+linked to terminal O atoms of PO~4~H group. Owing to N-H...O hydrogen bond 
+lengths for the two amine functions, the N1 terminal group is more anchored to 
+the inorganic chains. Details of the hydrogen bonding are given in Table 2. 
+[H~3~N(CH~2~)~5~NH~3~]^2+^ cations present a bent 
+conformation for a size reason. In this case, the atomic displacement 
+parameters of the carbon atoms are rather large, especially in the central 
+part (atoms C3 and C4) of the molecule (Fig. 2). This situation is 
+the complete opposite of that observed in [H~3~N(CH~2~)~6~NH~3~].AlF~5~ 
+(Phan Thanh, Renaudin & Maisonneuve, 2000) where the diammonium cation 
+exhibits a stretched conformation between (AlF~5~) inorganic chains. In 
+addition, it can be observed in the compound called ULM13 both the bent and 
+stretched conformations for the 1,6-diaminohexane molecules (Renaudin, 
+F\'erey, 1995).
+
+Up to now, two types of chain architecture for the one-dimensional 
+aluminophosphates, with a P/Al ratio of 2 in the formulation, have been 
+reported in the literature. The former in [H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~H 
+(Williams, Xu, Gao, Chen & Xu, 1997) shows a one-dimensional polymer chains 
+consisting of edge-shared Al~2~P~2~ four-membered rings, with pendant PO~4~H 
+side groups. The latter, in [H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~.H~2~O 
+(Wang, Yu & Pang, 1990), [Et~3~NH].AlP~2~O~8~H~2~ (Jones, Thomas, Xu, Huo, Xu, 
+Cheetham & Bieber, 1990) and [NH~4~][H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~ (Gao, 
+Chen, Li, Xu, Thomas, Light & Hursthouse, 1996), present a linear arrangement 
+of corner-shared Al~2~P~2~ four-membered rings similar to that 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H. However, the higher size of the 
+diammonium cation in [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H led to a distorted 
+inorganic chain. On one hand, the small size of the 
+organic molecule in these four compounds leads to a three-dimensional 
+organization ensured by a combination of van der Waals forces and hydrogen 
+bonds. On the other hand, in the title compound, the structure accommodates 
+the more significant length of the organic chain by a distortion of the 
+organic part but also of the inorganic chain. Consequently, the three-
+dimensional character is then obtained mainly by the set of hydrogen bonds 
+(Fig. 1, bottom). It is also noticed that this involves a shortening of the 
+O-H...O distance. The distance passes from 2.641 (2) \%A in 
+[H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~H to 2.457 (4) \%A in 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H.
+;
+_publ_section_exptl_prep
+;
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H was prepared from a starting mixture 
+Aluminum isopropoxide ([(CH~3~)~2~CHO]~3~Al)-H~3~PO~4~-1.5 diaminopentane-EtOH 
+with the molar ratio 1:2:5:100 under solvothermal conditions (473 K, 7 days, 
+autogenous pressure) in a Teflon lined autoclave. The resulting product was 
+filtered and dried in air at 353 K for 1 h. A suitable single crystal was 
+isolated by optical microscopy. The crystal cell of 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H was obtained from long exposure rotation 
+photographs. Systematic extinction conditions lead to P2~1~/n space group.
+;
+_publ_section_exptl_refinement
+;
+The structure was solved by direct methods of the program SHELXS86 
+(Sheldrick, 1990) and successive refinements and difference Fourier maps using 
+SHELXL93 program (Sheldrick, 1993). For the refinement of hydrogen atoms in 
+the CH~2~ and NH~3~ groups, geometrical restraint conditions were used that 
+implied equal distances and angles to the central atom (AFIX option). H atoms 
+of each CH~2~ and NH~3~ groups were refined with a common isotropic thermal 
+parameter. Fourier map showed a relatively large electron-density peak of 
+1.36 e \%A^-3^ at distances of 0.94 and 1.28 \%A from H5A and C5 respectively.
+;
+_publ_section_references
+; Berger-Hoff, G. (1996). DIAMOND. Visual Crystal Structure Information
+ System, Gerhard-Domagk-Str.1, 53121 Bonn, Germany.
+
+Gao, Q., Chen, J., Li, S., Xu, R., Thomas, J. M., Light, M. & Hursthouse,
+ M. B. (1996). J. Solid State Chem. 127, 145-150.
+
+Farrugia, L.J. (1997). J. Appl. Cryst. 30, 565.
+
+Jones, R. H., Thomas, J. M., Xu, R., Huo, Q., Xu, Y., Cheetham, A. K. & 
+Bieber, D. (1990). J. Chem. Soc., Chem. Commun. 1170-1172.
+
+Phan Thanh, S., Renaudin, J. & Maisonneuve, V. (2000). Solid State Sciences, 
+in press.
+
+Renaudin, J. & F\'erey, G. (1995). J. Solid State Chem.  120, 197-203.
+
+Sheldrick, G.M. (1990), Acta Cryst. A46 , 467-473.
+
+Sheldrick, G.M. (1993). SHELXL93. Program for the Refinement of Crystal 
+Structures, University of G\"ottingen, Germany.
+
+Sheldrick, G.M. (1996). SADABS. University of G\"ottingen, Germany.
+
+Siemens (1996). SMART and SAINT. Area Detector Control and Integration
+ Software. Siemens Analytical X-ray Instruments Inc., Madison, Wisconsin, USA.
+
+Wang, T., Yu, L. & Pang, W. (1990). J. Solid State Chem. 89, 392-395.
+
+Williams, I. D., XU, J., Gao, Q., Chen, J. & Xu, R. (1997). Chem. Commun.
+ 1273-1274.
+;
+_publ_section_figure_captions
+;
+Fig. 1.  Projection of [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H along the c-axis 
+showing its one-dimensional character and the bent conformation of the 
+diammonium cation (top) and along the a-axis (bottom). PO~4~ tetrahedra are 
+hatched.
+
+Fig. 2.  Ortep view (Farrugia, 1997) of pentanediammonium cation in 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H. Displacement ellipsoids are shown at the 
+50% probability level.
+;
+_publ_section_acknowledgements
+; The authors thank Professor M. Leblanc and R. Retoux for useful counsels to 
+this manuscript and Dr T. Loiseau for his help.
+;
+_publ_section_table_legends
+;
+Table 1. Selected bond distances (\%A) and angles (\%)
+
+Table 2. Hydrogen-bonding geometry (\%A, \%)
+;
+data_C5H17AlN2O8P2
+_audit_creation_method           SHELXL-97
+_chemical_name_systematic
+;
+ ?
+;
+_chemical_name_common            ?
+_chemical_formula_moiety         ?
+_chemical_formula_structural     ?
+_chemical_formula_analytical     ?
+_chemical_formula_sum            'C5 H17 Al N2 O8 P2'
+_chemical_formula_weight         322.13
+_chemical_melting_point          ?
+_chemical_compound_source        ?
+_symmetry_cell_setting           Monoclinic
+_symmetry_space_group_name_H-M   P2~1~/n
+_cell_length_a                   7.8783(2)
+_cell_length_b                   10.46890(10)
+_cell_length_c                   16.0680(4)
+_cell_angle_alpha                90.00
+_cell_angle_beta                 95.1470(10)
+_cell_angle_gamma                90.00
+_cell_volume                     1319.90(5)
+_cell_formula_units_Z            4
+_cell_measurement_temperature    296(2)
+_cell_measurement_reflns_used    5007
+_cell_measurement_theta_min      2.32
+_cell_measurement_theta_max      29.83
+_exptl_crystal_description       parallelepiped
+_exptl_crystal_colour            colorless
+_exptl_crystal_size_max          0.12
+_exptl_crystal_size_mid          0.06
+_exptl_crystal_size_min          0.05
+_exptl_crystal_density_meas      'not measured'
+_exptl_crystal_density_diffrn    1.621
+_exptl_crystal_density_method    ?
+_exptl_crystal_F_000             672
+_exptl_absorpt_coefficient_mu    0.429
+_exptl_absorpt_correction_type   semi-empirical
+_exptl_absorpt_process_details   'SADABS (Sheldrick, 1996)'
+_exptl_absorpt_correction_T_min  0.844
+_exptl_absorpt_correction_T_max  0.978
+_exptl_special_details
+;
+'Blessing, Acta Cryst. (1995) A51 33-38'
+;
+_diffrn_ambient_temperature      296(2)
+_diffrn_radiation_wavelength     0.71073
+_diffrn_radiation_type           MoK\a
+_diffrn_radiation_source         'fine-focus sealed tube'
+_diffrn_radiation_monochromator  graphite
+_diffrn_measurement_device       'Siemens SMART diffractometer'
+_diffrn_measurement_method       '\w scans'
+_diffrn_standards_number         0
+_diffrn_standards_interval_count 0
+_diffrn_standards_interval_time  0
+_diffrn_standards_decay_%        0
+_diffrn_reflns_number            8939
+_diffrn_reflns_av_R_equivalents  0.0383
+_diffrn_reflns_av_sigmaI/netI    0.0532
+_diffrn_reflns_limit_h_min       -10
+_diffrn_reflns_limit_h_max       10
+_diffrn_reflns_limit_k_min       -14
+_diffrn_reflns_limit_k_max       13
+_diffrn_reflns_limit_l_min       -21
+_diffrn_reflns_limit_l_max       9
+_diffrn_reflns_theta_min         2.32
+_diffrn_reflns_theta_max         29.83
+_reflns_number_total             3421
+_reflns_number_gt                1901
+_reflns_threshold_expression     >2sigma(I)
+_computing_data_collection       'Siemens SMART'
+_computing_cell_refinement       'Siemens SMART'
+_computing_data_reduction        'Siemens SHELXTL'
+_computing_structure_solution    'SHELXS-86 (Sheldrick, 1990)'
+_computing_structure_refinement  'SHELXL-93 (Sheldrick, 1993)'
+_computing_molecular_graphics    'DIAMOND (Berger-Hoff, 1996)'
+_computing_publication_material  'Siemens SHELXTL'
+_refine_special_details
+; Refinement on F^2^ for ALL reflections except for 900 with very negative 
+F^2^ or flagged by the user for potential systematic errors. Weighted 
+R-factors wR and all goodnesses of fit S are based on F^2^, conventional 
+R-factors R are based on F, with F set to zero for negative F^2^. The 
+observed criterion of F^2^ > 2sigma(F^2^) is used only for calculating 
+R-factor-obs etc. and is not relevant to the choice of reflections for 
+refinement.  R-factors based on F^2^ are statistically about twice as 
+large as those based on F, and R- factors based on ALL data will be even 
+larger.
+;
+_refine_ls_structure_factor_coef Fsqd
+_refine_ls_matrix_type           full
+_refine_ls_weighting_scheme
+'calc w=1/[\s^2^(Fo^2^)+(0.0573P)^2^+3.0698P] where P=(Fo^2^+2Fc^2^)/3'
+_atom_sites_solution_primary     direct
+_atom_sites_solution_secondary   difmap
+_atom_sites_solution_hydrogens   geom
+_refine_ls_hydrogen_treatment    constr
+_refine_ls_extinction_method     SHELXL
+_refine_ls_extinction_coef       0.0130(77)
+_refine_ls_extinction_expression Fc^*^=kFc[1+0.001xFc^2^\l^3^/sin(2\q)]^-1/4^
+_refine_ls_number_reflns         2521
+_refine_ls_number_parameters     167
+_refine_ls_number_restraints     4
+_refine_ls_R_factor_all          0.1073
+_refine_ls_R_factor_gt           0.0584
+_refine_ls_wR_factor_all         0.2069
+_refine_ls_wR_factor_ref         0.1362
+_refine_ls_goodness_of_fit_all   1.055
+_refine_ls_goodness_of_fit_ref   1.080
+_refine_ls_restrained_S_all      1.370
+_refine_ls_restrained_S_obs      1.096
+_refine_ls_shift/su_max          0.000
+_refine_ls_shift/esd_mean        0.000
+loop_
+_atom_type_symbol
+_atom_type_description
+_atom_type_scat_dispersion_real
+_atom_type_scat_dispersion_imag
+_atom_type_scat_source
+C C 0.0033 0.0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+N N 0.0061 0.0033 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+O O 0.0106 0.0060 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+Al Al 0.0645 0.0514 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+P P 0.1023 0.0942 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+loop_
+_symmetry_equiv_pos_as_xyz
+'x, y, z'
+'-x+1/2, y+1/2, -z+1/2'
+'-x, -y, -z'
+'x-1/2, -y-1/2, z-1/2'
+loop_
+_atom_site_label
+_atom_site_type_symbol
+_atom_site_fract_x
+_atom_site_fract_y
+_atom_site_fract_z
+_atom_site_U_iso_or_equiv
+_atom_site_thermal_displace_type
+_atom_site_occupancy
+_atom_site_calc_flag
+_atom_site_refinement_flags
+_atom_site_disorder_group
+P2 P 0.09646(13) 1.05563(11) 0.13485(6) 0.0290(3) Uani 1 d . .
+P1 P 0.55909(13) 0.78402(9) 0.02396(7) 0.0280(3) Uani 1 d . .
+O8 O 0.6701(4) 0.8956(3) 0.0585(2) 0.0398(8) Uani 1 d . .
+O7 O 0.1067(5) 0.9814(4) 0.2149(2) 0.0521(9) Uani 1 d . .
+O6 O 0.5116(4) 0.6993(3) 0.0927(2) 0.0466(8) Uani 1 d . .
+O5 O 0.4005(4) 0.8408(3) -0.0252(2) 0.0435(8) Uani 1 d . .
+O4 O 0.1982(4) 1.1793(3) 0.1459(2) 0.0467(9) Uani 1 d . .
+O3 O 0.0882(4) 0.9116(3) -0.1048(2) 0.0381(7) Uani 1 d . .
+O2 O 0.6564(4) 0.7078(3) -0.0386(2) 0.0373(7) Uani 1 d . .
+O1 O 0.1684(4) 0.9724(3) 0.0667(2) 0.0379(7) Uani 1 d . .
+N2 N 1.2290(5) 0.7318(4) 0.1793(3) 0.0439(9) Uani 1 d . .
+N1 N 0.5653(6) 0.4525(4) 0.1464(2) 0.0438(10) Uani 1 d . .
+H5B H 1.1062 0.7081 0.0669 0.118 Uiso 1 calc R .
+H5A H 1.1363 0.5802 0.1162 0.118 Uiso 1 calc R .
+H4B H 0.8917 0.7587 0.1534 0.184 Uiso 1 calc R .
+H4A H 0.8502 0.6411 0.0950 0.184 Uiso 1 calc R .
+H3B H 0.9855 0.6077 0.2587 0.132 Uiso 1 calc R .
+H3A H 0.7912 0.6290 0.2395 0.132 Uiso 1 calc R .
+H2E H 1.1984 0.8127 0.1863 0.066 Uiso 1 calc R .
+H2D H 1.2357 0.6916 0.2283 0.066 Uiso 1 calc R .
+H2C H 1.3301 0.7296 0.1586 0.066 Uiso 1 calc R .
+H2B H 0.9709 0.4071 0.2162 0.105 Uiso 1 calc R .
+H2A H 0.8225 0.4271 0.2732 0.105 Uiso 1 calc R .
+H2 H 0.7123 0.7571 -0.0649 0.056 Uiso 1 calc R .
+H1E H 0.7258 0.3028 0.1618 0.092 Uiso 1 calc R .
+H1D H 0.7840 0.4038 0.0984 0.092 Uiso 1 calc R .
+H1C H 0.5288 0.4565 0.1972 0.066 Uiso 1 calc R .
+H1B H 0.5704 0.5309 0.1254 0.066 Uiso 1 calc R .
+H1A H 0.4934 0.4053 0.1133 0.066 Uiso 1 calc R .
+C5 C 1.1025(11) 0.6688(10) 0.1213(5) 0.099(3) Uani 1 d D .
+C4 C 0.9232(15) 0.6711(14) 0.1428(8) 0.153(5) Uani 1 d D .
+C3 C 0.8903(13) 0.5913(9) 0.2175(5) 0.110(3) Uani 1 d D .
+C2 C 0.8618(10) 0.4488(8) 0.2194(5) 0.088(2) Uani 1 d D .
+C1 C 0.7372(9) 0.3936(7) 0.1518(5) 0.077(2) Uani 1 d D .
+Al1 Al 0.24723(13) 0.95928(11) -0.02995(7) 0.0246(4) Uani 1 d . .
+loop_
+_atom_site_aniso_label
+_atom_site_aniso_U_11
+_atom_site_aniso_U_22
+_atom_site_aniso_U_33
+_atom_site_aniso_U_23
+_atom_site_aniso_U_13
+_atom_site_aniso_U_12
+P1 0.0276(5) 0.0230(5) 0.0341(6) 0.0016(4) 0.0063(4) 0.0016(4)
+P2 0.0259(5) 0.0418(6) 0.0193(5) -0.0034(4) 0.0019(4) -0.0018(4)
+Al1 0.0218(6) 0.0289(6) 0.0233(6) -0.0027(4) 0.0024(4) 0.0004(4)
+O1 0.041(2) 0.048(2) 0.0262(15) -0.0020(13) 0.0096(12) 0.0047(14)
+O2 0.036(2) 0.0285(15) 0.049(2) -0.0019(13) 0.0141(13) 0.0033(12)
+O3 0.0279(15) 0.049(2) 0.037(2) -0.0117(13) -0.0009(12) -0.0003(13)
+O4 0.042(2) 0.060(2) 0.039(2) -0.016(2) 0.0100(14) -0.019(2)
+O5 0.036(2) 0.046(2) 0.047(2) -0.0090(14) -0.0034(14) 0.0153(14)
+O6 0.055(2) 0.032(2) 0.056(2) 0.0116(14) 0.022(2) -0.0010(14)
+O7 0.060(2) 0.073(2) 0.024(2) 0.0063(15) 0.0098(14) 0.015(2)
+O8 0.045(2) 0.036(2) 0.038(2) -0.0015(13) 0.0052(13) -0.0117(14)
+N1 0.067(3) 0.030(2) 0.037(2) -0.003(2) 0.016(2) -0.006(2)
+C1 0.080(4) 0.070(4) 0.080(5) -0.026(3) 0.000(4) 0.012(3)
+C2 0.073(4) 0.123(7) 0.067(4) -0.005(4) 0.008(3) -0.002(4)
+C3 0.097(6) 0.158(10) 0.077(5) -0.002(6) 0.015(4) -0.056(6)
+C4 0.169(13) 0.130(10) 0.153(12) 0.010(8) -0.024(10) -0.019(9)
+C5 0.099(6) 0.134(7) 0.063(4) -0.007(4) 0.004(4) -0.075(5)
+N2 0.041(2) 0.052(2) 0.039(2) 0.012(2) 0.006(2) -0.002(2)
diff --git a/tests/outputs/cif_sort_atoms_003.out b/tests/outputs/cif_sort_atoms_003.out
new file mode 100644
index 0000000..8a5d47c
--- /dev/null
+++ b/tests/outputs/cif_sort_atoms_003.out
@@ -0,0 +1,421 @@
+data_global
+_audit_creation_method           'form.cif (version 2.0)'
+_journal_data_validation_number  ?
+_journal_date_recd_electronic    ?
+_journal_date_to_coeditor        ?
+_journal_date_from_coeditor      ?
+_journal_date_accepted           ?
+_journal_date_printers_first     ?
+_journal_date_printers_final     ?
+_journal_date_proofs_out         ?
+_journal_date_proofs_in          ?
+_journal_coeditor_name           ?
+_journal_coeditor_code           ?
+_journal_coeditor_notes          ' ?'
+_journal_techeditor_code         ?
+_journal_techeditor_notes        ' ?'
+_journal_coden_ASTM              ?
+_journal_name_full               ?
+_journal_year                    ?
+_journal_volume                  ?
+_journal_issue                   ?
+_journal_page_first              ?
+_journal_page_last               ?
+_journal_paper_category          ?
+_journal_suppl_publ_number       ?
+_journal_suppl_publ_pages        ?
+_publ_contact_author_name        'Vincent MAISONNEUVE'
+_publ_contact_author_address
+;
+Laboratoire des Fluorures - UPRES-A 6010 
+Facult\'e des Sciences, Universit\'e du Maine, Avenue Olivier-Messiaen,
+ 72085 LE MANS Cedex 9, FRANCE
+;
+_publ_contact_author_phone       '(33) 2 43 83 35 61'
+_publ_contact_author_fax         '(33) 2 43 83 35 06'
+_publ_contact_author_email       vincent.maisonneuve at univ-lemans.fr
+_publ_contact_letter
+;
+Please consider this CIF submission for publication as a full paper in
+Acta Crystallographica C. The figures and structure factors listings
+will be sent by normal mailing.
+;
+_publ_requested_journal          'Acta Crystallographica C'
+_publ_requested_coeditor_name    ?
+_publ_section_title
+;
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H, a One-Dimensional Aluminophosphate
+;
+loop_
+_publ_author_name
+_publ_author_address
+'S. PHAN THANH'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+'J. MARROT'
+;
+Institut Lavoisier, IREM, UMR CNRS C 8637,
+Universit\'e  de Versailles Saint-Quentin-en-Yvelines,
+45 Avenue des Etats Unis, 75035 Versailles Cedex, FRANCE
+;
+'J. RENAUDIN'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+'V. MAISONNEUVE'
+;
+Laboratoire des Fluorures - UPRES-A 6010 Facult\'e des Sciences, 
+Universit\'e du Maine, Avenue Olivier-Messiaen, 72085 LE MANS Cedex 9, FRANCE
+;
+_publ_section_synopsis
+; The structure of the title compound, obtained solvothermally at 473 K, has 
+been determined by single-crystal X-ray diffraction. It consists of 
+one-dimensional [AlP~2~O~8~H]^2-^ macroanions, connected each other by 
+pentanediammonium cations. 
+;
+_publ_section_abstract
+;
+The structure of the title compound, obtained solvothermally at 473 K, has 
+been determined by single-crystal X-ray diffraction. It consists of 
+one-dimensional [AlP~2~O~8~H]^2-^ macroanions, connected each other by 
+pentanediammonium cations. Contrary to the referred similar compounds with 
+P/Al = 2, the  three-dimensionality is mainly obtained via the network of 
+hydrogen bonds. 
+;
+_publ_section_comment
+;
+The investigation of the system Al~2~O~3~-H~3~PO~4~-aliphatic 
+diamine-EtOH led to a new one-dimensional aluminophosphate templated 
+by 1,5-diaminopentane. The structure of [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H 
+consists of inorganic chains, formulated [AlP~2~O~8~H]^2-^, separated by 
+organic molecules (Fig. 1, top). The inorganic part is built up from 
+tetrahedral AlO~4~ and PO~4~ units, in which all AlO~4~ vertices are 
+connected. This arrangement forms a corner-shared Al~2~P~2~ four-membered 
+ring, with PO~4~H groups. The Al-O distances, ranging from 1.727 (3) to 
+1.731 (3) \%A, and the O-Al-O angles, lying between 106.4 (2) and 111.3 (2)\%, 
+are consistent with those found in the mineral Berlinite. On the contrary, the 
+P-O distances vary from 1.490 (3) to 1.539 (3) \%A  and from 1.499 (3) to 1.546 
+(3) \%A for the P1 and P2 phosphate groups respectively. This dispersion is 
+attributable to multiple bond character. 1,5-diaminopentane molecules, which 
+must be protonated to balance the negative charges, ensure the cohesion between 
+inorganic chains via hydrogen bonds. All the protons of ammonium cations are 
+linked to terminal O atoms of PO~4~H group. Owing to N-H...O hydrogen bond 
+lengths for the two amine functions, the N1 terminal group is more anchored to 
+the inorganic chains. Details of the hydrogen bonding are given in Table 2. 
+[H~3~N(CH~2~)~5~NH~3~]^2+^ cations present a bent 
+conformation for a size reason. In this case, the atomic displacement 
+parameters of the carbon atoms are rather large, especially in the central 
+part (atoms C3 and C4) of the molecule (Fig. 2). This situation is 
+the complete opposite of that observed in [H~3~N(CH~2~)~6~NH~3~].AlF~5~ 
+(Phan Thanh, Renaudin & Maisonneuve, 2000) where the diammonium cation 
+exhibits a stretched conformation between (AlF~5~) inorganic chains. In 
+addition, it can be observed in the compound called ULM13 both the bent and 
+stretched conformations for the 1,6-diaminohexane molecules (Renaudin, 
+F\'erey, 1995).
+
+Up to now, two types of chain architecture for the one-dimensional 
+aluminophosphates, with a P/Al ratio of 2 in the formulation, have been 
+reported in the literature. The former in [H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~H 
+(Williams, Xu, Gao, Chen & Xu, 1997) shows a one-dimensional polymer chains 
+consisting of edge-shared Al~2~P~2~ four-membered rings, with pendant PO~4~H 
+side groups. The latter, in [H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~.H~2~O 
+(Wang, Yu & Pang, 1990), [Et~3~NH].AlP~2~O~8~H~2~ (Jones, Thomas, Xu, Huo, Xu, 
+Cheetham & Bieber, 1990) and [NH~4~][H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~ (Gao, 
+Chen, Li, Xu, Thomas, Light & Hursthouse, 1996), present a linear arrangement 
+of corner-shared Al~2~P~2~ four-membered rings similar to that 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H. However, the higher size of the 
+diammonium cation in [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H led to a distorted 
+inorganic chain. On one hand, the small size of the 
+organic molecule in these four compounds leads to a three-dimensional 
+organization ensured by a combination of van der Waals forces and hydrogen 
+bonds. On the other hand, in the title compound, the structure accommodates 
+the more significant length of the organic chain by a distortion of the 
+organic part but also of the inorganic chain. Consequently, the three-
+dimensional character is then obtained mainly by the set of hydrogen bonds 
+(Fig. 1, bottom). It is also noticed that this involves a shortening of the 
+O-H...O distance. The distance passes from 2.641 (2) \%A in 
+[H~3~NCH~2~CH~2~NH~3~].AlP~2~O~8~H to 2.457 (4) \%A in 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H.
+;
+_publ_section_exptl_prep
+;
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H was prepared from a starting mixture 
+Aluminum isopropoxide ([(CH~3~)~2~CHO]~3~Al)-H~3~PO~4~-1.5 diaminopentane-EtOH 
+with the molar ratio 1:2:5:100 under solvothermal conditions (473 K, 7 days, 
+autogenous pressure) in a Teflon lined autoclave. The resulting product was 
+filtered and dried in air at 353 K for 1 h. A suitable single crystal was 
+isolated by optical microscopy. The crystal cell of 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H was obtained from long exposure rotation 
+photographs. Systematic extinction conditions lead to P2~1~/n space group.
+;
+_publ_section_exptl_refinement
+;
+The structure was solved by direct methods of the program SHELXS86 
+(Sheldrick, 1990) and successive refinements and difference Fourier maps using 
+SHELXL93 program (Sheldrick, 1993). For the refinement of hydrogen atoms in 
+the CH~2~ and NH~3~ groups, geometrical restraint conditions were used that 
+implied equal distances and angles to the central atom (AFIX option). H atoms 
+of each CH~2~ and NH~3~ groups were refined with a common isotropic thermal 
+parameter. Fourier map showed a relatively large electron-density peak of 
+1.36 e \%A^-3^ at distances of 0.94 and 1.28 \%A from H5A and C5 respectively.
+;
+_publ_section_references
+; Berger-Hoff, G. (1996). DIAMOND. Visual Crystal Structure Information
+ System, Gerhard-Domagk-Str.1, 53121 Bonn, Germany.
+
+Gao, Q., Chen, J., Li, S., Xu, R., Thomas, J. M., Light, M. & Hursthouse,
+ M. B. (1996). J. Solid State Chem. 127, 145-150.
+
+Farrugia, L.J. (1997). J. Appl. Cryst. 30, 565.
+
+Jones, R. H., Thomas, J. M., Xu, R., Huo, Q., Xu, Y., Cheetham, A. K. & 
+Bieber, D. (1990). J. Chem. Soc., Chem. Commun. 1170-1172.
+
+Phan Thanh, S., Renaudin, J. & Maisonneuve, V. (2000). Solid State Sciences, 
+in press.
+
+Renaudin, J. & F\'erey, G. (1995). J. Solid State Chem.  120, 197-203.
+
+Sheldrick, G.M. (1990), Acta Cryst. A46 , 467-473.
+
+Sheldrick, G.M. (1993). SHELXL93. Program for the Refinement of Crystal 
+Structures, University of G\"ottingen, Germany.
+
+Sheldrick, G.M. (1996). SADABS. University of G\"ottingen, Germany.
+
+Siemens (1996). SMART and SAINT. Area Detector Control and Integration
+ Software. Siemens Analytical X-ray Instruments Inc., Madison, Wisconsin, USA.
+
+Wang, T., Yu, L. & Pang, W. (1990). J. Solid State Chem. 89, 392-395.
+
+Williams, I. D., XU, J., Gao, Q., Chen, J. & Xu, R. (1997). Chem. Commun.
+ 1273-1274.
+;
+_publ_section_figure_captions
+;
+Fig. 1.  Projection of [H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H along the c-axis 
+showing its one-dimensional character and the bent conformation of the 
+diammonium cation (top) and along the a-axis (bottom). PO~4~ tetrahedra are 
+hatched.
+
+Fig. 2.  Ortep view (Farrugia, 1997) of pentanediammonium cation in 
+[H~3~N(CH~2~)~5~NH~3~].AlP~2~O~8~H. Displacement ellipsoids are shown at the 
+50% probability level.
+;
+_publ_section_acknowledgements
+; The authors thank Professor M. Leblanc and R. Retoux for useful counsels to 
+this manuscript and Dr T. Loiseau for his help.
+;
+_publ_section_table_legends
+;
+Table 1. Selected bond distances (\%A) and angles (\%)
+
+Table 2. Hydrogen-bonding geometry (\%A, \%)
+;
+data_C5H17AlN2O8P2
+_audit_creation_method           SHELXL-97
+_chemical_name_systematic
+;
+ ?
+;
+_chemical_name_common            ?
+_chemical_formula_moiety         ?
+_chemical_formula_structural     ?
+_chemical_formula_analytical     ?
+_chemical_formula_sum            'C5 H17 Al N2 O8 P2'
+_chemical_formula_weight         322.13
+_chemical_melting_point          ?
+_chemical_compound_source        ?
+_symmetry_cell_setting           Monoclinic
+_symmetry_space_group_name_H-M   P2~1~/n
+_cell_length_a                   7.8783(2)
+_cell_length_b                   10.46890(10)
+_cell_length_c                   16.0680(4)
+_cell_angle_alpha                90.00
+_cell_angle_beta                 95.1470(10)
+_cell_angle_gamma                90.00
+_cell_volume                     1319.90(5)
+_cell_formula_units_Z            4
+_cell_measurement_temperature    296(2)
+_cell_measurement_reflns_used    5007
+_cell_measurement_theta_min      2.32
+_cell_measurement_theta_max      29.83
+_exptl_crystal_description       parallelepiped
+_exptl_crystal_colour            colorless
+_exptl_crystal_size_max          0.12
+_exptl_crystal_size_mid          0.06
+_exptl_crystal_size_min          0.05
+_exptl_crystal_density_meas      'not measured'
+_exptl_crystal_density_diffrn    1.621
+_exptl_crystal_density_method    ?
+_exptl_crystal_F_000             672
+_exptl_absorpt_coefficient_mu    0.429
+_exptl_absorpt_correction_type   semi-empirical
+_exptl_absorpt_process_details   'SADABS (Sheldrick, 1996)'
+_exptl_absorpt_correction_T_min  0.844
+_exptl_absorpt_correction_T_max  0.978
+_exptl_special_details
+;
+'Blessing, Acta Cryst. (1995) A51 33-38'
+;
+_diffrn_ambient_temperature      296(2)
+_diffrn_radiation_wavelength     0.71073
+_diffrn_radiation_type           MoK\a
+_diffrn_radiation_source         'fine-focus sealed tube'
+_diffrn_radiation_monochromator  graphite
+_diffrn_measurement_device       'Siemens SMART diffractometer'
+_diffrn_measurement_method       '\w scans'
+_diffrn_standards_number         0
+_diffrn_standards_interval_count 0
+_diffrn_standards_interval_time  0
+_diffrn_standards_decay_%        0
+_diffrn_reflns_number            8939
+_diffrn_reflns_av_R_equivalents  0.0383
+_diffrn_reflns_av_sigmaI/netI    0.0532
+_diffrn_reflns_limit_h_min       -10
+_diffrn_reflns_limit_h_max       10
+_diffrn_reflns_limit_k_min       -14
+_diffrn_reflns_limit_k_max       13
+_diffrn_reflns_limit_l_min       -21
+_diffrn_reflns_limit_l_max       9
+_diffrn_reflns_theta_min         2.32
+_diffrn_reflns_theta_max         29.83
+_reflns_number_total             3421
+_reflns_number_gt                1901
+_reflns_threshold_expression     >2sigma(I)
+_computing_data_collection       'Siemens SMART'
+_computing_cell_refinement       'Siemens SMART'
+_computing_data_reduction        'Siemens SHELXTL'
+_computing_structure_solution    'SHELXS-86 (Sheldrick, 1990)'
+_computing_structure_refinement  'SHELXL-93 (Sheldrick, 1993)'
+_computing_molecular_graphics    'DIAMOND (Berger-Hoff, 1996)'
+_computing_publication_material  'Siemens SHELXTL'
+_refine_special_details
+; Refinement on F^2^ for ALL reflections except for 900 with very negative 
+F^2^ or flagged by the user for potential systematic errors. Weighted 
+R-factors wR and all goodnesses of fit S are based on F^2^, conventional 
+R-factors R are based on F, with F set to zero for negative F^2^. The 
+observed criterion of F^2^ > 2sigma(F^2^) is used only for calculating 
+R-factor-obs etc. and is not relevant to the choice of reflections for 
+refinement.  R-factors based on F^2^ are statistically about twice as 
+large as those based on F, and R- factors based on ALL data will be even 
+larger.
+;
+_refine_ls_structure_factor_coef Fsqd
+_refine_ls_matrix_type           full
+_refine_ls_weighting_scheme
+'calc w=1/[\s^2^(Fo^2^)+(0.0573P)^2^+3.0698P] where P=(Fo^2^+2Fc^2^)/3'
+_atom_sites_solution_primary     direct
+_atom_sites_solution_secondary   difmap
+_atom_sites_solution_hydrogens   geom
+_refine_ls_hydrogen_treatment    constr
+_refine_ls_extinction_method     SHELXL
+_refine_ls_extinction_coef       0.0130(77)
+_refine_ls_extinction_expression Fc^*^=kFc[1+0.001xFc^2^\l^3^/sin(2\q)]^-1/4^
+_refine_ls_number_reflns         2521
+_refine_ls_number_parameters     167
+_refine_ls_number_restraints     4
+_refine_ls_R_factor_all          0.1073
+_refine_ls_R_factor_gt           0.0584
+_refine_ls_wR_factor_all         0.2069
+_refine_ls_wR_factor_ref         0.1362
+_refine_ls_goodness_of_fit_all   1.055
+_refine_ls_goodness_of_fit_ref   1.080
+_refine_ls_restrained_S_all      1.370
+_refine_ls_restrained_S_obs      1.096
+_refine_ls_shift/su_max          0.000
+_refine_ls_shift/esd_mean        0.000
+loop_
+_atom_type_symbol
+_atom_type_description
+_atom_type_scat_dispersion_real
+_atom_type_scat_dispersion_imag
+_atom_type_scat_source
+C C 0.0033 0.0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+N N 0.0061 0.0033 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+O O 0.0106 0.0060 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+Al Al 0.0645 0.0514 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+P P 0.1023 0.0942 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+loop_
+_symmetry_equiv_pos_as_xyz
+'x, y, z'
+'-x+1/2, y+1/2, -z+1/2'
+'-x, -y, -z'
+'x-1/2, -y-1/2, z-1/2'
+loop_
+_atom_site_label
+_atom_site_type_symbol
+_atom_site_fract_x
+_atom_site_fract_y
+_atom_site_fract_z
+_atom_site_U_iso_or_equiv
+_atom_site_thermal_displace_type
+_atom_site_occupancy
+_atom_site_calc_flag
+_atom_site_refinement_flags
+_atom_site_disorder_group
+P1 P 0.55909(13) 0.78402(9) 0.02396(7) 0.0280(3) Uani 1 d . .
+P2 P 0.09646(13) 1.05563(11) 0.13485(6) 0.0290(3) Uani 1 d . .
+Al1 Al 0.24723(13) 0.95928(11) -0.02995(7) 0.0246(4) Uani 1 d . .
+O1 O 0.1684(4) 0.9724(3) 0.0667(2) 0.0379(7) Uani 1 d . .
+O2 O 0.6564(4) 0.7078(3) -0.0386(2) 0.0373(7) Uani 1 d . .
+O3 O 0.0882(4) 0.9116(3) -0.1048(2) 0.0381(7) Uani 1 d . .
+O4 O 0.1982(4) 1.1793(3) 0.1459(2) 0.0467(9) Uani 1 d . .
+O5 O 0.4005(4) 0.8408(3) -0.0252(2) 0.0435(8) Uani 1 d . .
+O6 O 0.5116(4) 0.6993(3) 0.0927(2) 0.0466(8) Uani 1 d . .
+O7 O 0.1067(5) 0.9814(4) 0.2149(2) 0.0521(9) Uani 1 d . .
+O8 O 0.6701(4) 0.8956(3) 0.0585(2) 0.0398(8) Uani 1 d . .
+N1 N 0.5653(6) 0.4525(4) 0.1464(2) 0.0438(10) Uani 1 d . .
+N2 N 1.2290(5) 0.7318(4) 0.1793(3) 0.0439(9) Uani 1 d . .
+C1 C 0.7372(9) 0.3936(7) 0.1518(5) 0.077(2) Uani 1 d D .
+C2 C 0.8618(10) 0.4488(8) 0.2194(5) 0.088(2) Uani 1 d D .
+C3 C 0.8903(13) 0.5913(9) 0.2175(5) 0.110(3) Uani 1 d D .
+C4 C 0.9232(15) 0.6711(14) 0.1428(8) 0.153(5) Uani 1 d D .
+C5 C 1.1025(11) 0.6688(10) 0.1213(5) 0.099(3) Uani 1 d D .
+H2 H 0.7123 0.7571 -0.0649 0.056 Uiso 1 calc R .
+H1A H 0.4934 0.4053 0.1133 0.066 Uiso 1 calc R .
+H1B H 0.5704 0.5309 0.1254 0.066 Uiso 1 calc R .
+H1C H 0.5288 0.4565 0.1972 0.066 Uiso 1 calc R .
+H1D H 0.7840 0.4038 0.0984 0.092 Uiso 1 calc R .
+H1E H 0.7258 0.3028 0.1618 0.092 Uiso 1 calc R .
+H2A H 0.8225 0.4271 0.2732 0.105 Uiso 1 calc R .
+H2B H 0.9709 0.4071 0.2162 0.105 Uiso 1 calc R .
+H3A H 0.7912 0.6290 0.2395 0.132 Uiso 1 calc R .
+H3B H 0.9855 0.6077 0.2587 0.132 Uiso 1 calc R .
+H4A H 0.8502 0.6411 0.0950 0.184 Uiso 1 calc R .
+H4B H 0.8917 0.7587 0.1534 0.184 Uiso 1 calc R .
+H5A H 1.1363 0.5802 0.1162 0.118 Uiso 1 calc R .
+H5B H 1.1062 0.7081 0.0669 0.118 Uiso 1 calc R .
+H2C H 1.3301 0.7296 0.1586 0.066 Uiso 1 calc R .
+H2D H 1.2357 0.6916 0.2283 0.066 Uiso 1 calc R .
+H2E H 1.1984 0.8127 0.1863 0.066 Uiso 1 calc R .
+loop_
+_atom_site_aniso_label
+_atom_site_aniso_U_11
+_atom_site_aniso_U_22
+_atom_site_aniso_U_33
+_atom_site_aniso_U_23
+_atom_site_aniso_U_13
+_atom_site_aniso_U_12
+P1 0.0276(5) 0.0230(5) 0.0341(6) 0.0016(4) 0.0063(4) 0.0016(4)
+P2 0.0259(5) 0.0418(6) 0.0193(5) -0.0034(4) 0.0019(4) -0.0018(4)
+Al1 0.0218(6) 0.0289(6) 0.0233(6) -0.0027(4) 0.0024(4) 0.0004(4)
+O1 0.041(2) 0.048(2) 0.0262(15) -0.0020(13) 0.0096(12) 0.0047(14)
+O2 0.036(2) 0.0285(15) 0.049(2) -0.0019(13) 0.0141(13) 0.0033(12)
+O3 0.0279(15) 0.049(2) 0.037(2) -0.0117(13) -0.0009(12) -0.0003(13)
+O4 0.042(2) 0.060(2) 0.039(2) -0.016(2) 0.0100(14) -0.019(2)
+O5 0.036(2) 0.046(2) 0.047(2) -0.0090(14) -0.0034(14) 0.0153(14)
+O6 0.055(2) 0.032(2) 0.056(2) 0.0116(14) 0.022(2) -0.0010(14)
+O7 0.060(2) 0.073(2) 0.024(2) 0.0063(15) 0.0098(14) 0.015(2)
+O8 0.045(2) 0.036(2) 0.038(2) -0.0015(13) 0.0052(13) -0.0117(14)
+N1 0.067(3) 0.030(2) 0.037(2) -0.003(2) 0.016(2) -0.006(2)
+C1 0.080(4) 0.070(4) 0.080(5) -0.026(3) 0.000(4) 0.012(3)
+C2 0.073(4) 0.123(7) 0.067(4) -0.005(4) 0.008(3) -0.002(4)
+C3 0.097(6) 0.158(10) 0.077(5) -0.002(6) 0.015(4) -0.056(6)
+C4 0.169(13) 0.130(10) 0.153(12) 0.010(8) -0.024(10) -0.019(9)
+C5 0.099(6) 0.134(7) 0.063(4) -0.007(4) 0.004(4) -0.075(5)
+N2 0.041(2) 0.052(2) 0.039(2) 0.012(2) 0.006(2) -0.002(2)
diff --git a/tests/outputs/cif_split_004.out b/tests/outputs/cif_split_004.out
new file mode 100644
index 0000000..6451344
--- /dev/null
+++ b/tests/outputs/cif_split_004.out
@@ -0,0 +1,1671 @@
+global	data_global
+global	_publ_contact_author_name        'Neil Burford'
+global	_publ_contact_author_address
+global	;
+global	   Department of Chemistry
+global	   Dalhousie University
+global	   Halifax, NS B3H 4J3
+global	   CANADA
+global	;
+global	_publ_contact_author_email       burford at chem1.chem.dal.ca
+global	_publ_contact_author_fax         '(902) 494-1310'
+global	_publ_contact_author_phone       '(902) 494-3190'
+global	_publ_requested_journal          Organometallics
+global	_publ_section_title
+global	;
+global	 Synthesis and characterization of the
+global	 bis(2,4,6-tris[trifluoromethyl]phenyl)derivatives of arsenic and
+global	 antimony: X-ray crystal structures of As(R~F~)~2~Cl, Sb(R~F~)~2~Cl and
+global	 Sb(R~F~)~2~OSO~2~CF~3~
+global	;
+global	_publ_section_title_footnote     ?
+global	loop_
+global	_publ_author_name
+global	_publ_author_footnote
+global	_publ_author_address
+global	'Neil Burford'
+global	;
+global	 ?
+global	;
+global	;
+global	   Department of Chemistry
+global	   Dalhousie University
+global	   Halifax, NS B3H 4J3
+global	   CANADA
+global	;
+global	'Charles L.B. Macdonald'
+global	;
+global	 ?
+global	;
+global	;
+global	   Department of Chemistry
+global	   Dalhousie University
+global	   Halifax, NS B3H 4J3
+global	   CANADA
+global	;
+global	'Daren J. LeBlanc'
+global	;
+global	 ?
+global	;
+global	;
+global	   Department of Chemistry
+global	   Dalhousie University
+global	   Halifax, NS B3H 4J3
+global	   CANADA
+global	;
+global	'T. Stanley Cameron'
+global	;
+global	 ?
+global	;
+global	;
+global	   Department of Chemistry
+global	   Dalhousie University
+global	   Halifax, NS B3H 4J3
+global	   CANADA
+global	;
+global	_publ_section_references
+global	;
+global	 Altomare, A., Cascarano, M., Giacovazzo, C., Guagliardi, A. (1993). SIR92.
+global	 J. Appl. Cryst., 26, 343.
+global	
+global	 Beurskens, P.T., Admiraal, G., Beurskens, G., Bosman, W.P., de Gelder, R.,
+global	 Israel, R. and Smits, J.M.M. (1994). DIRDIF94. The DIRDIF-94 program system,
+global	 Technical Report of the Crystallography Laboratory, University of Nijmegen,
+global	 The Netherlands.
+global	
+global	 Nonius, B.V. (1997). Delft, Holland.
+global	
+global	 Sheldrick, G.M. (1994). SHELXTL. Release 5.03. Siemens Analytical X-ray
+global	 Instruments Inc., Madison, Wisconsin, USA.
+global	
+global	 Sheldrick, G.M. (1997). SHELX-97. Programs for the Solution and Refinement
+global	 of Crystal Structures. University of G\"ottingen, Germany.
+global	
+global	 teXsan for Windows. (1997). Crystal Structure Analysis Package, Molecular
+global	 Structure Corporation.
+global	;
+global	_publ_section_exptl_refinement
+global	;
+global	 For 2a, all non-hydrogen atoms were refined anisotropically.  The four H 
+global	 atoms were found and refined with a common isotropic displacement parameter 
+global	 (FVAR 2).  The H atoms were constrained to ride on their attached carbon 
+global	 atoms but the coordinates were allowed to vary (AFIX 44) and the C-H bond 
+global	 distances were restrained to be equal (SADI, su = 0.02).  The C18 and C28 
+global	 CF~3~ groups were modelled as a two-positioned disorder with their C-F 
+global	 distances restrained to be equal (SADI, su = 0.02).  Absorption was 
+global	 corrected for based upon the redundancy of the data (DENZO-SMN, Nonius,
+global	 1997).  Decay was negligible.
+global	
+global	 For 2b, 3 and 4, some non-hydrogen atoms were refined anisotropically while 
+global	 the rest were refined isotropically.  Hydrogen atoms were included but not 
+global	 refined.  The disordered CF~3~ groups were refined as rigid bodies riding on 
+global	 the attached carbon atom; the fluorine anisotropic displacement parameters 
+global	 were constrained to give a physically meaningful vibration along the C-F 
+global	 bonds.
+global	;
+cm165_2a	data_cm165_2a
+cm165_2a	_audit_creation_method           SHELXL-97
+cm165_2a	_chemical_name_systematic        ?
+cm165_2a	_chemical_name_common            ?
+cm165_2a	_chemical_melting_point          98-100
+cm165_2a	_chemical_formula_moiety         ?
+cm165_2a	_chemical_formula_sum            'C18 H4 As Cl F18'
+cm165_2a	_chemical_formula_weight         672.58
+cm165_2a	_symmetry_cell_setting           orthorhombic
+cm165_2a	_symmetry_space_group_name_H-M   'P 21 21 21'
+cm165_2a	_cell_length_a                   8.6646(2)
+cm165_2a	_cell_length_b                   9.69650(10)
+cm165_2a	_cell_length_c                   25.4076(6)
+cm165_2a	_cell_angle_alpha                90.00
+cm165_2a	_cell_angle_beta                 90.00
+cm165_2a	_cell_angle_gamma                90.00
+cm165_2a	_cell_volume                     2134.65(7)
+cm165_2a	_cell_formula_units_Z            4
+cm165_2a	_cell_measurement_temperature    130(2)
+cm165_2a	_cell_measurement_reflns_used    16157
+cm165_2a	_cell_measurement_theta_min      2.48
+cm165_2a	_cell_measurement_theta_max      26.37
+cm165_2a	_exptl_crystal_description       plate
+cm165_2a	_exptl_crystal_colour            colourless
+cm165_2a	_exptl_crystal_size_max          0.30
+cm165_2a	_exptl_crystal_size_mid          0.25
+cm165_2a	_exptl_crystal_size_min          0.15
+cm165_2a	_exptl_crystal_density_meas      ?
+cm165_2a	_exptl_crystal_density_diffrn    2.093
+cm165_2a	_exptl_crystal_density_method    'not measured'
+cm165_2a	_exptl_crystal_F_000             1296
+cm165_2a	_exptl_absorpt_coefficient_mu    1.880
+cm165_2a	_exptl_absorpt_correction_type   multi-scan
+cm165_2a	_exptl_absorpt_correction_T_min  0.602
+cm165_2a	_exptl_absorpt_correction_T_max  0.766
+cm165_2a	_exptl_absorpt_process_details   '(Nonius, 1997)'
+cm165_2a	_exptl_special_details
+cm165_2a	; 
+cm165_2a	 ? 
+cm165_2a	;
+cm165_2a	_diffrn_ambient_temperature      130(2)
+cm165_2a	_diffrn_radiation_wavelength     0.71073
+cm165_2a	_diffrn_radiation_type           MoK\a
+cm165_2a	_diffrn_radiation_source         'sealed tube (50 kV, 23 mA)'
+cm165_2a	_diffrn_radiation_monochromator  graphite
+cm165_2a	_diffrn_measurement_device_type  'Nonius KappaCCD'
+cm165_2a	_diffrn_measurement_method       '1\% rotations on \f'
+cm165_2a	_diffrn_detector_area_resol_mean 9.2
+cm165_2a	_diffrn_standards_number         ?
+cm165_2a	_diffrn_standards_interval_count ?
+cm165_2a	_diffrn_standards_interval_time  ?
+cm165_2a	_diffrn_standards_decay_%        0
+cm165_2a	_diffrn_reflns_number            16157
+cm165_2a	_diffrn_reflns_av_R_equivalents  0.0740
+cm165_2a	_diffrn_reflns_av_sigmaI/netI    0.0413
+cm165_2a	_diffrn_reflns_limit_h_min       -10
+cm165_2a	_diffrn_reflns_limit_h_max       10
+cm165_2a	_diffrn_reflns_limit_k_min       -11
+cm165_2a	_diffrn_reflns_limit_k_max       11
+cm165_2a	_diffrn_reflns_limit_l_min       -31
+cm165_2a	_diffrn_reflns_limit_l_max       31
+cm165_2a	_diffrn_reflns_theta_min         2.48
+cm165_2a	_diffrn_reflns_theta_max         26.37
+cm165_2a	_reflns_number_total             4353
+cm165_2a	_reflns_number_gt                3925
+cm165_2a	_reflns_threshold_expression     I>2sigma(I)
+cm165_2a	_computing_data_collection       'KappaCCD Server software (Nonius, 1997)'
+cm165_2a	_computing_cell_refinement       'DENZO-SMN (Nonius, 1997)'
+cm165_2a	_computing_data_reduction        'DENZO-SMN (Nonius, 1997)'
+cm165_2a	_computing_structure_solution    'SHELXS-97 (Sheldrick, 1997)'
+cm165_2a	_computing_structure_refinement  'SHELXL-97 (Sheldrick, 1997)'
+cm165_2a	_computing_molecular_graphics    'SHELXTL (Sheldrick, 1994)'
+cm165_2a	_computing_publication_material  'SHELXL-97 (Sheldrick, 1997)'
+cm165_2a	_refine_special_details
+cm165_2a	; 
+cm165_2a	 Refinement of F^2^ against ALL reflections.  The weighted R-factor wR and 
+cm165_2a	 goodness of fit S are based on F^2^, conventional R-factors R are based 
+cm165_2a	 on F, with F set to zero for negative F^2^. The threshold expression of 
+cm165_2a	 F^2^ > 2sigma(F^2^) is used only for calculating R-factors(gt) etc. and is 
+cm165_2a	 not relevant to the choice of reflections for refinement.  R-factors based 
+cm165_2a	 on F^2^ are statistically about twice as large as those based on F, and R- 
+cm165_2a	 factors based on ALL data will be even larger. 
+cm165_2a	;
+cm165_2a	_refine_ls_structure_factor_coef Fsqd
+cm165_2a	_refine_ls_matrix_type           full
+cm165_2a	_refine_ls_weighting_scheme      calc
+cm165_2a	_refine_ls_weighting_details
+cm165_2a	'calc w=1/[\s^2^(Fo^2^)+(0.0271P)^2^+2.7658P] where P=(Fo^2^+2Fc^2^)/3'
+cm165_2a	_atom_sites_solution_primary     direct
+cm165_2a	_atom_sites_solution_secondary   difmap
+cm165_2a	_atom_sites_solution_hydrogens   geom
+cm165_2a	_refine_ls_hydrogen_treatment    mixed
+cm165_2a	_refine_ls_extinction_method     none
+cm165_2a	_refine_ls_extinction_coef       ?
+cm165_2a	_refine_ls_abs_structure_details 'Flack H D (1983), Acta Cryst. A39, 876-881'
+cm165_2a	_refine_ls_abs_structure_Flack   0.002(10)
+cm165_2a	_refine_ls_number_reflns         4353
+cm165_2a	_refine_ls_number_parameters     402
+cm165_2a	_refine_ls_number_restraints     36
+cm165_2a	_refine_ls_R_factor_all          0.0403
+cm165_2a	_refine_ls_R_factor_gt           0.0334
+cm165_2a	_refine_ls_wR_factor_ref         0.0822
+cm165_2a	_refine_ls_wR_factor_gt          0.0775
+cm165_2a	_refine_ls_goodness_of_fit_ref   1.062
+cm165_2a	_refine_ls_restrained_S_all      1.084
+cm165_2a	_refine_ls_shift/su_max          0.001
+cm165_2a	_refine_ls_shift/su_mean         0.000
+cm165_2a	_geom_special_details
+cm165_2a	; 
+cm165_2a	 All esds (except the esd in the dihedral angle between two l.s. planes) 
+cm165_2a	 are estimated using the full covariance matrix.  The cell esds are taken 
+cm165_2a	 into account individually in the estimation of esds in distances, angles 
+cm165_2a	 and torsion angles; correlations between esds in cell parameters are only 
+cm165_2a	 used when they are defined by crystal symmetry.  An approximate (isotropic) 
+cm165_2a	 treatment of cell esds is used for estimating esds involving l.s. planes. 
+cm165_2a	;
+cm165_2a	_diffrn_measured_fraction_theta_max 0.995
+cm165_2a	_diffrn_reflns_theta_full        26.37
+cm165_2a	_diffrn_measured_fraction_theta_full 0.995
+cm165_2a	_refine_diff_density_max         0.451
+cm165_2a	_refine_diff_density_min         -0.463
+cm165_2a	_refine_diff_density_rms         0.070
+cm165_2a	loop_
+cm165_2a	_atom_type_symbol
+cm165_2a	_atom_type_description
+cm165_2a	_atom_type_scat_dispersion_real
+cm165_2a	_atom_type_scat_dispersion_imag
+cm165_2a	_atom_type_scat_source
+cm165_2a	C C 0.0033 0.0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+cm165_2a	H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+cm165_2a	As As 0.0499 2.0058 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+cm165_2a	Cl Cl 0.1484 0.1585 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+cm165_2a	F F 0.0171 0.0103 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+cm165_2a	loop_
+cm165_2a	_symmetry_equiv_pos_as_xyz
+cm165_2a	'x, y, z'
+cm165_2a	'-x+1/2, -y, z+1/2'
+cm165_2a	'-x, y+1/2, -z+1/2'
+cm165_2a	'x+1/2, -y+1/2, -z'
+cm165_2a	loop_
+cm165_2a	_atom_site_label
+cm165_2a	_atom_site_type_symbol
+cm165_2a	_atom_site_fract_x
+cm165_2a	_atom_site_fract_y
+cm165_2a	_atom_site_fract_z
+cm165_2a	_atom_site_U_iso_or_equiv
+cm165_2a	_atom_site_adp_type
+cm165_2a	_atom_site_occupancy
+cm165_2a	_atom_site_symmetry_multiplicity
+cm165_2a	_atom_site_calc_flag
+cm165_2a	_atom_site_refinement_flags
+cm165_2a	_atom_site_disorder_assembly
+cm165_2a	_atom_site_disorder_group
+cm165_2a	As1 As 0.94158(4) 0.87273(4) 0.106997(15) 0.02487(10) Uani 1 1 d . . .
+cm165_2a	Cl1 Cl 0.76045(13) 0.92249(13) 0.16416(5) 0.0436(3) Uani 1 1 d . . .
+cm165_2a	C1 C 0.8803(5) 0.6783(4) 0.08702(15) 0.0245(8) Uani 1 1 d . . .
+cm165_2a	C2 C 0.9869(5) 0.5692(4) 0.08221(16) 0.0264(9) Uani 1 1 d . . .
+cm165_2a	C3 C 0.9397(5) 0.4367(4) 0.06979(15) 0.0279(8) Uani 1 1 d D . .
+cm165_2a	H3A H 1.013(2) 0.365(2) 0.06756(16) 0.037(6) Uiso 1 1 c RD . .
+cm165_2a	C4 C 0.7859(5) 0.4098(4) 0.06067(16) 0.0303(9) Uani 1 1 d . A .
+cm165_2a	C5 C 0.6801(5) 0.5160(5) 0.06015(16) 0.0303(9) Uani 1 1 d D . .
+cm165_2a	H5A H 0.576(3) 0.4981(7) 0.0517(3) 0.037(6) Uiso 1 1 c RD . .
+cm165_2a	C6 C 0.7272(4) 0.6499(4) 0.07212(14) 0.0247(8) Uani 1 1 d . . .
+cm165_2a	C7 C 1.1575(5) 0.5895(4) 0.08793(19) 0.0345(10) Uani 1 1 d . . .
+cm165_2a	C8 C 0.7341(6) 0.2651(5) 0.0484(2) 0.0462(12) Uani 1 1 d D . .
+cm165_2a	C9 C 0.6024(5) 0.7559(5) 0.06457(17) 0.0325(9) Uani 1 1 d . . .
+cm165_2a	F1 F 1.2377(3) 0.5012(3) 0.05764(12) 0.0464(7) Uani 1 1 d . . .
+cm165_2a	F2 F 1.2083(3) 0.5717(3) 0.13685(11) 0.0452(7) Uani 1 1 d . . .
+cm165_2a	F3 F 1.2008(3) 0.7164(3) 0.07237(11) 0.0363(6) Uani 1 1 d . . .
+cm165_2a	F4 F 0.6031(9) 0.2533(8) 0.0271(4) 0.082(3) Uani 0.65 1 d PD A 1
+cm165_2a	F5 F 0.7214(12) 0.1937(6) 0.0938(3) 0.078(2) Uani 0.65 1 d PD A 1
+cm165_2a	F6 F 0.8346(10) 0.1932(9) 0.0230(5) 0.096(4) Uani 0.65 1 d PD A 1
+cm165_2a	F4A F 0.829(3) 0.1731(13) 0.0591(15) 0.194(19) Uani 0.35 1 d PD A 2
+cm165_2a	F5A F 0.731(2) 0.2509(11) -0.0053(3) 0.070(3) Uani 0.35 1 d PD A 2
+cm165_2a	F6A F 0.5920(18) 0.248(2) 0.0578(10) 0.137(13) Uani 0.35 1 d PD A 2
+cm165_2a	F7 F 0.5082(3) 0.7219(3) 0.02430(10) 0.0411(6) Uani 1 1 d . . .
+cm165_2a	F8 F 0.6570(3) 0.8812(3) 0.05298(9) 0.0378(5) Uani 1 1 d . . .
+cm165_2a	F9 F 0.5101(3) 0.7685(3) 0.10666(11) 0.0430(6) Uani 1 1 d . . .
+cm165_2a	C10 C 1.1029(4) 0.8592(4) 0.16391(14) 0.0240(8) Uani 1 1 d . . .
+cm165_2a	C11 C 1.2261(5) 0.9536(4) 0.15782(16) 0.0257(8) Uani 1 1 d . . .
+cm165_2a	C12 C 1.3394(5) 0.9673(4) 0.19561(16) 0.0279(9) Uani 1 1 d D . .
+cm165_2a	H12A H 1.420(2) 1.0315(19) 0.1907(2) 0.037(6) Uiso 1 1 c RD . .
+cm165_2a	C13 C 1.3350(4) 0.8867(5) 0.24093(15) 0.0299(9) Uani 1 1 d . B .
+cm165_2a	C14 C 1.2147(5) 0.7955(4) 0.24808(17) 0.0326(9) Uani 1 1 d D . .
+cm165_2a	H14A H 1.2106(5) 0.7419(16) 0.2791(9) 0.037(6) Uiso 1 1 c RD . .
+cm165_2a	C15 C 1.0999(5) 0.7810(4) 0.21064(16) 0.0274(9) Uani 1 1 d . . .
+cm165_2a	C16 C 1.2380(5) 1.0513(4) 0.11217(18) 0.0342(9) Uani 1 1 d . . .
+cm165_2a	C17 C 1.4585(6) 0.9028(5) 0.28203(18) 0.0435(11) Uani 1 1 d D . .
+cm165_2a	C18 C 0.9781(6) 0.6794(5) 0.22722(18) 0.0382(11) Uani 1 1 d . . .
+cm165_2a	F10 F 1.3651(3) 1.1255(3) 0.11308(11) 0.0563(8) Uani 1 1 d . . .
+cm165_2a	F11 F 1.2371(3) 0.9860(3) 0.06492(10) 0.0430(6) Uani 1 1 d . . .
+cm165_2a	F12 F 1.1193(3) 1.1402(2) 0.11088(10) 0.0420(6) Uani 1 1 d . . .
+cm165_2a	F13 F 1.423(3) 0.841(3) 0.3263(7) 0.132(12) Uani 0.33 1 d PD B 3
+cm165_2a	F14 F 1.491(4) 1.0269(14) 0.2954(10) 0.158(14) Uani 0.33 1 d PD B 3
+cm165_2a	F15 F 1.580(2) 0.831(3) 0.2742(8) 0.124(13) Uani 0.33 1 d PD B 3
+cm165_2a	F13A F 1.5579(8) 1.0029(7) 0.2707(3) 0.0577(17) Uani 0.67 1 d PD B 4
+cm165_2a	F14A F 1.5457(10) 0.7937(8) 0.2843(5) 0.083(4) Uani 0.67 1 d PD B 4
+cm165_2a	F15A F 1.4018(13) 0.9273(15) 0.3283(3) 0.090(4) Uani 0.67 1 d PD B 4
+cm165_2a	F16 F 0.8959(4) 0.7269(4) 0.26739(11) 0.0604(9) Uani 1 1 d . . .
+cm165_2a	F17 F 1.0432(4) 0.5630(3) 0.24441(16) 0.0761(11) Uani 1 1 d . . .
+cm165_2a	F18 F 0.8789(3) 0.6405(3) 0.19057(10) 0.0479(7) Uani 1 1 d . . .
+cm165_2a	loop_
+cm165_2a	_atom_site_aniso_label
+cm165_2a	_atom_site_aniso_U_11
+cm165_2a	_atom_site_aniso_U_22
+cm165_2a	_atom_site_aniso_U_33
+cm165_2a	_atom_site_aniso_U_23
+cm165_2a	_atom_site_aniso_U_13
+cm165_2a	_atom_site_aniso_U_12
+cm165_2a	As1 0.02452(18) 0.02336(17) 0.02674(18) -0.00082(17) -0.00151(17) 0.00023(16)
+cm165_2a	Cl1 0.0303(6) 0.0583(7) 0.0422(6) -0.0170(5) 0.0005(5) 0.0103(5)
+cm165_2a	C1 0.0224(19) 0.028(2) 0.0228(18) -0.0007(15) 0.0032(16) -0.0020(15)
+cm165_2a	C2 0.029(2) 0.027(2) 0.0237(19) -0.0047(16) -0.0017(16) -0.0018(16)
+cm165_2a	C3 0.034(2) 0.0218(17) 0.0282(19) -0.0020(15) -0.0022(19) 0.0003(18)
+cm165_2a	C4 0.034(2) 0.030(2) 0.027(2) -0.0024(16) 0.0007(17) -0.0086(17)
+cm165_2a	C5 0.023(2) 0.040(2) 0.028(2) -0.0002(18) 0.0039(17) -0.0109(18)
+cm165_2a	C6 0.0209(18) 0.030(2) 0.0232(18) 0.0015(16) 0.0009(15) -0.0001(15)
+cm165_2a	C7 0.025(2) 0.032(2) 0.047(3) -0.0107(18) -0.0031(19) 0.0015(17)
+cm165_2a	C8 0.046(3) 0.038(3) 0.055(3) -0.003(2) -0.003(3) -0.013(2)
+cm165_2a	C9 0.023(2) 0.041(2) 0.034(2) 0.0004(19) -0.0010(17) -0.0005(17)
+cm165_2a	F1 0.0261(13) 0.0451(15) 0.0681(19) -0.0279(14) 0.0025(13) 0.0073(12)
+cm165_2a	F2 0.0381(15) 0.0453(15) 0.0521(17) -0.0110(13) -0.0197(13) 0.0135(12)
+cm165_2a	F3 0.0200(13) 0.0388(14) 0.0500(16) -0.0097(12) 0.0042(11) -0.0042(10)
+cm165_2a	F4 0.063(5) 0.042(3) 0.140(8) -0.013(5) -0.054(6) -0.015(4)
+cm165_2a	F5 0.112(7) 0.030(3) 0.094(5) 0.010(3) -0.009(5) -0.020(4)
+cm165_2a	F6 0.067(6) 0.065(6) 0.156(9) -0.071(6) 0.046(6) -0.028(4)
+cm165_2a	F4A 0.16(2) 0.011(5) 0.41(5) 0.014(16) -0.23(3) 0.007(10)
+cm165_2a	F5A 0.116(11) 0.040(5) 0.055(6) -0.014(4) 0.006(7) -0.032(7)
+cm165_2a	F6A 0.102(15) 0.101(13) 0.21(2) -0.090(16) 0.115(18) -0.091(12)
+cm165_2a	F7 0.0281(13) 0.0570(17) 0.0381(14) -0.0016(12) -0.0119(11) 0.0018(11)
+cm165_2a	F8 0.0332(13) 0.0353(13) 0.0448(14) 0.0049(12) -0.0069(11) 0.0033(12)
+cm165_2a	F9 0.0242(12) 0.0653(17) 0.0397(13) -0.0055(14) 0.0047(12) 0.0082(11)
+cm165_2a	C10 0.0253(19) 0.0242(19) 0.0225(17) 0.0008(16) 0.0023(14) -0.0003(16)
+cm165_2a	C11 0.025(2) 0.027(2) 0.0242(19) -0.0035(16) 0.0031(16) 0.0008(16)
+cm165_2a	C12 0.025(2) 0.029(2) 0.029(2) -0.0049(16) 0.0007(17) -0.0015(16)
+cm165_2a	C13 0.029(2) 0.035(2) 0.0256(19) -0.0076(17) -0.0021(16) 0.0067(18)
+cm165_2a	C14 0.036(2) 0.033(2) 0.028(2) 0.0040(17) 0.0034(18) 0.0087(18)
+cm165_2a	C15 0.031(2) 0.0238(19) 0.028(2) 0.0027(16) 0.0058(16) 0.0046(15)
+cm165_2a	C16 0.034(2) 0.037(2) 0.031(2) 0.0042(19) 0.000(2) -0.0102(18)
+cm165_2a	C17 0.040(3) 0.056(3) 0.035(2) -0.004(2) -0.009(2) 0.009(2)
+cm165_2a	C18 0.042(3) 0.034(2) 0.038(2) 0.0083(19) 0.000(2) -0.0071(19)
+cm165_2a	F10 0.0513(16) 0.0629(18) 0.0549(17) 0.0187(18) -0.0087(14) -0.0342(16)
+cm165_2a	F11 0.0523(17) 0.0488(15) 0.0278(13) 0.0019(11) 0.0034(12) -0.0069(13)
+cm165_2a	F12 0.0542(14) 0.0275(12) 0.0445(14) 0.0097(13) -0.0044(13) 0.0033(11)
+cm165_2a	F13 0.077(17) 0.29(4) 0.034(10) 0.035(15) -0.028(10) -0.03(2)
+cm165_2a	F14 0.26(3) 0.069(9) 0.14(2) -0.052(13) -0.16(2) 0.032(16)
+cm165_2a	F15 0.036(8) 0.28(4) 0.054(8) -0.062(15) 0.001(6) 0.039(13)
+cm165_2a	F13A 0.057(3) 0.069(5) 0.047(3) 0.000(3) -0.023(3) -0.029(3)
+cm165_2a	F14A 0.073(7) 0.049(3) 0.127(10) -0.009(4) -0.067(6) 0.025(3)
+cm165_2a	F15A 0.042(4) 0.205(11) 0.024(4) -0.034(5) 0.000(3) 0.010(6)
+cm165_2a	F16 0.060(2) 0.085(2) 0.0359(16) -0.0056(15) 0.0193(14) -0.0295(17)
+cm165_2a	F17 0.061(2) 0.0462(18) 0.121(3) 0.0457(19) -0.010(2) -0.0087(16)
+cm165_2a	F18 0.0532(16) 0.0553(17) 0.0352(13) 0.0072(13) -0.0025(12) -0.0257(15)
+cm165_2a	loop_
+cm165_2a	_geom_bond_atom_site_label_1
+cm165_2a	_geom_bond_atom_site_label_2
+cm165_2a	_geom_bond_distance
+cm165_2a	_geom_bond_site_symmetry_2
+cm165_2a	_geom_bond_publ_flag
+cm165_2a	As1 Cl1 2.1920(12) . ?
+cm165_2a	As1 C1 2.023(4) . ?
+cm165_2a	As1 C10 2.016(4) . ?
+cm165_2a	C1 C6 1.407(5) . ?
+cm165_2a	C1 C2 1.410(6) . ?
+cm165_2a	C2 C3 1.386(5) . ?
+cm165_2a	C2 C7 1.499(6) . ?
+cm165_2a	C3 C4 1.378(6) . ?
+cm165_2a	C3 H3A 0.9476 . ?
+cm165_2a	C4 C5 1.379(6) . ?
+cm165_2a	C4 C8 1.505(6) . ?
+cm165_2a	C5 C6 1.394(6) . ?
+cm165_2a	C5 H5A 0.9476 . ?
+cm165_2a	C6 C9 1.504(6) . ?
+cm165_2a	C7 F2 1.330(5) . ?
+cm165_2a	C7 F1 1.345(5) . ?
+cm165_2a	C7 F3 1.346(5) . ?
+cm165_2a	C8 F4A 1.243(11) . ?
+cm165_2a	C8 F4 1.264(7) . ?
+cm165_2a	C8 F6A 1.265(12) . ?
+cm165_2a	C8 F6 1.288(8) . ?
+cm165_2a	C8 F5 1.348(7) . ?
+cm165_2a	C8 F5A 1.372(9) . ?
+cm165_2a	C9 F8 1.337(5) . ?
+cm165_2a	C9 F9 1.341(5) . ?
+cm165_2a	C9 F7 1.349(5) . ?
+cm165_2a	C10 C15 1.409(5) . ?
+cm165_2a	C10 C11 1.415(5) . ?
+cm165_2a	C11 C12 1.379(6) . ?
+cm165_2a	C11 C16 1.501(6) . ?
+cm165_2a	C12 C13 1.392(6) . ?
+cm165_2a	C12 H12A 0.9458 . ?
+cm165_2a	C13 C14 1.379(6) . ?
+cm165_2a	C13 C17 1.503(6) . ?
+cm165_2a	C14 C15 1.384(6) . ?
+cm165_2a	C14 H14A 0.9436 . ?
+cm165_2a	C15 C18 1.504(6) . ?
+cm165_2a	C16 F10 1.316(5) . ?
+cm165_2a	C16 F12 1.343(5) . ?
+cm165_2a	C16 F11 1.357(5) . ?
+cm165_2a	C17 F15 1.279(13) . ?
+cm165_2a	C17 F14 1.280(12) . ?
+cm165_2a	C17 F15A 1.297(8) . ?
+cm165_2a	C17 F14A 1.301(7) . ?
+cm165_2a	C17 F13 1.312(14) . ?
+cm165_2a	C17 F13A 1.328(7) . ?
+cm165_2a	C18 F18 1.322(5) . ?
+cm165_2a	C18 F16 1.327(6) . ?
+cm165_2a	C18 F17 1.336(5) . ?
+cm165_2a	loop_
+cm165_2a	_geom_angle_atom_site_label_1
+cm165_2a	_geom_angle_atom_site_label_2
+cm165_2a	_geom_angle_atom_site_label_3
+cm165_2a	_geom_angle
+cm165_2a	_geom_angle_site_symmetry_1
+cm165_2a	_geom_angle_site_symmetry_3
+cm165_2a	_geom_angle_publ_flag
+cm165_2a	C1 As1 Cl1 100.57(12) . . ?
+cm165_2a	C10 As1 Cl1 92.04(11) . . ?
+cm165_2a	C10 As1 C1 107.53(16) . . ?
+cm165_2a	C6 C1 C2 116.6(4) . . ?
+cm165_2a	C6 C1 As1 119.8(3) . . ?
+cm165_2a	C2 C1 As1 123.3(3) . . ?
+cm165_2a	C3 C2 C1 121.5(4) . . ?
+cm165_2a	C3 C2 C7 115.8(4) . . ?
+cm165_2a	C1 C2 C7 122.6(4) . . ?
+cm165_2a	C4 C3 C2 120.0(4) . . ?
+cm165_2a	C4 C3 H3A 120.0 . . ?
+cm165_2a	C2 C3 H3A 120.0 . . ?
+cm165_2a	C3 C4 C5 120.2(4) . . ?
+cm165_2a	C3 C4 C8 119.9(4) . . ?
+cm165_2a	C5 C4 C8 119.8(4) . . ?
+cm165_2a	C4 C5 C6 119.9(4) . . ?
+cm165_2a	C4 C5 H5A 120.0 . . ?
+cm165_2a	C6 C5 H5A 120.0 . . ?
+cm165_2a	C5 C6 C1 121.1(4) . . ?
+cm165_2a	C5 C6 C9 113.4(3) . . ?
+cm165_2a	C1 C6 C9 125.4(4) . . ?
+cm165_2a	F2 C7 F1 106.4(4) . . ?
+cm165_2a	F2 C7 F3 107.5(3) . . ?
+cm165_2a	F1 C7 F3 105.7(4) . . ?
+cm165_2a	F2 C7 C2 113.6(4) . . ?
+cm165_2a	F1 C7 C2 111.7(4) . . ?
+cm165_2a	F3 C7 C2 111.5(4) . . ?
+cm165_2a	F4A C8 F4 128.6(9) . . ?
+cm165_2a	F4A C8 F6A 120.8(17) . . ?
+cm165_2a	F4 C8 F6A 36.3(11) . . ?
+cm165_2a	F4A C8 F6 43.4(17) . . ?
+cm165_2a	F4 C8 F6 110.1(7) . . ?
+cm165_2a	F6A C8 F6 133.1(9) . . ?
+cm165_2a	F4A C8 F5 60.0(18) . . ?
+cm165_2a	F4 C8 F5 104.3(6) . . ?
+cm165_2a	F6A C8 F5 72.1(13) . . ?
+cm165_2a	F6 C8 F5 101.8(7) . . ?
+cm165_2a	F4A C8 F5A 99.1(17) . . ?
+cm165_2a	F4 C8 F5A 63.0(8) . . ?
+cm165_2a	F6A C8 F5A 99.0(12) . . ?
+cm165_2a	F6 C8 F5A 57.4(7) . . ?
+cm165_2a	F5 C8 F5A 142.8(6) . . ?
+cm165_2a	F4A C8 C4 115.2(8) . . ?
+cm165_2a	F4 C8 C4 116.1(5) . . ?
+cm165_2a	F6A C8 C4 111.7(9) . . ?
+cm165_2a	F6 C8 C4 114.0(5) . . ?
+cm165_2a	F5 C8 C4 109.0(4) . . ?
+cm165_2a	F5A C8 C4 107.8(5) . . ?
+cm165_2a	F8 C9 F9 107.7(3) . . ?
+cm165_2a	F8 C9 F7 105.6(3) . . ?
+cm165_2a	F9 C9 F7 105.5(3) . . ?
+cm165_2a	F8 C9 C6 113.2(3) . . ?
+cm165_2a	F9 C9 C6 112.9(3) . . ?
+cm165_2a	F7 C9 C6 111.4(3) . . ?
+cm165_2a	C15 C10 C11 117.0(3) . . ?
+cm165_2a	C15 C10 As1 128.8(3) . . ?
+cm165_2a	C11 C10 As1 113.7(3) . . ?
+cm165_2a	C12 C11 C10 121.5(4) . . ?
+cm165_2a	C12 C11 C16 115.4(4) . . ?
+cm165_2a	C10 C11 C16 123.0(4) . . ?
+cm165_2a	C11 C12 C13 120.2(4) . . ?
+cm165_2a	C11 C12 H12A 119.9 . . ?
+cm165_2a	C13 C12 H12A 119.9 . . ?
+cm165_2a	C14 C13 C12 119.3(4) . . ?
+cm165_2a	C14 C13 C17 120.9(4) . . ?
+cm165_2a	C12 C13 C17 119.8(4) . . ?
+cm165_2a	C13 C14 C15 121.2(4) . . ?
+cm165_2a	C13 C14 H14A 119.4 . . ?
+cm165_2a	C15 C14 H14A 119.4 . . ?
+cm165_2a	C14 C15 C10 120.8(4) . . ?
+cm165_2a	C14 C15 C18 112.2(4) . . ?
+cm165_2a	C10 C15 C18 127.0(4) . . ?
+cm165_2a	F10 C16 F12 106.9(3) . . ?
+cm165_2a	F10 C16 F11 106.0(4) . . ?
+cm165_2a	F12 C16 F11 105.9(3) . . ?
+cm165_2a	F10 C16 C11 112.9(4) . . ?
+cm165_2a	F12 C16 C11 111.8(3) . . ?
+cm165_2a	F11 C16 C11 112.9(3) . . ?
+cm165_2a	F15 C17 F14 112.1(18) . . ?
+cm165_2a	F15 C17 F15A 123.6(11) . . ?
+cm165_2a	F14 C17 F15A 70.7(15) . . ?
+cm165_2a	F15 C17 F14A 23.8(15) . . ?
+cm165_2a	F14 C17 F14A 128.7(13) . . ?
+cm165_2a	F15A C17 F14A 109.2(8) . . ?
+cm165_2a	F15 C17 F13 94.2(16) . . ?
+cm165_2a	F14 C17 F13 104.8(17) . . ?
+cm165_2a	F15A C17 F13 38.7(13) . . ?
+cm165_2a	F14A C17 F13 73.8(14) . . ?
+cm165_2a	F15 C17 F13A 80.3(14) . . ?
+cm165_2a	F14 C17 F13A 39.7(16) . . ?
+cm165_2a	F15A C17 F13A 107.9(7) . . ?
+cm165_2a	F14A C17 F13A 103.1(6) . . ?
+cm165_2a	F13 C17 F13A 132.2(13) . . ?
+cm165_2a	F15 C17 C13 114.9(10) . . ?
+cm165_2a	F14 C17 C13 115.9(9) . . ?
+cm165_2a	F15A C17 C13 112.3(6) . . ?
+cm165_2a	F14A C17 C13 111.1(6) . . ?
+cm165_2a	F13 C17 C13 112.5(12) . . ?
+cm165_2a	F13A C17 C13 112.8(5) . . ?
+cm165_2a	F18 C18 F16 107.0(4) . . ?
+cm165_2a	F18 C18 F17 105.3(4) . . ?
+cm165_2a	F16 C18 F17 105.6(4) . . ?
+cm165_2a	F18 C18 C15 116.5(4) . . ?
+cm165_2a	F16 C18 C15 111.4(4) . . ?
+cm165_2a	F17 C18 C15 110.4(4) . . ?
+chuck39_2b	data_chuck39_2b
+chuck39_2b	_audit_creation_method           'manual editing'
+chuck39_2b	_chemical_name_systematic        ?
+chuck39_2b	_chemical_name_common            ?
+chuck39_2b	_chemical_melting_point          98-100
+chuck39_2b	_chemical_formula_moiety         ?
+chuck39_2b	_chemical_formula_sum            'C18 H4 As Cl F18'
+chuck39_2b	_chemical_formula_weight         672.58
+chuck39_2b	_symmetry_cell_setting           monoclinic
+chuck39_2b	_symmetry_space_group_name_H-M   'P 21/a'
+chuck39_2b	_cell_length_a                   8.705(9)
+chuck39_2b	_cell_length_b                   30.38(1)
+chuck39_2b	_cell_length_c                   8.167(4)
+chuck39_2b	_cell_angle_alpha                90.00
+chuck39_2b	_cell_angle_beta                 91.53(6)
+chuck39_2b	_cell_angle_gamma                90.00
+chuck39_2b	_cell_volume                     2159(2)
+chuck39_2b	_cell_formula_units_Z            4
+chuck39_2b	_cell_measurement_temperature    296(1)
+chuck39_2b	_cell_measurement_reflns_used    20
+chuck39_2b	_cell_measurement_theta_min      3.2
+chuck39_2b	_cell_measurement_theta_max      10.4
+chuck39_2b	_exptl_crystal_description       prism
+chuck39_2b	_exptl_crystal_colour            colourless
+chuck39_2b	_exptl_crystal_size_max          0.40
+chuck39_2b	_exptl_crystal_size_mid          0.30
+chuck39_2b	_exptl_crystal_size_min          0.20
+chuck39_2b	_exptl_crystal_density_meas      ?
+chuck39_2b	_exptl_crystal_density_diffrn    2.069
+chuck39_2b	_exptl_crystal_density_method    'not measured'
+chuck39_2b	_exptl_crystal_F_000             1296
+chuck39_2b	_exptl_absorpt_coefficient_mu    1.859
+chuck39_2b	_exptl_absorpt_correction_type   psi-scan
+chuck39_2b	_exptl_absorpt_correction_T_min  0.615
+chuck39_2b	_exptl_absorpt_correction_T_max  1.000
+chuck39_2b	_exptl_absorpt_process_details   ?
+chuck39_2b	_exptl_special_details
+chuck39_2b	; 
+chuck39_2b	 ? 
+chuck39_2b	;
+chuck39_2b	_diffrn_ambient_temperature      296(1)
+chuck39_2b	_diffrn_radiation_wavelength     0.71073
+chuck39_2b	_diffrn_radiation_type           MoK\a
+chuck39_2b	_diffrn_radiation_source         'rotating anode (54 kV, 170 mA)'
+chuck39_2b	_diffrn_radiation_monochromator  graphite
+chuck39_2b	_diffrn_measurement_device_type  'Rigaku AFC5R'
+chuck39_2b	_diffrn_measurement_method       '\w-2\q scans'
+chuck39_2b	_diffrn_standards_number         3
+chuck39_2b	_diffrn_standards_interval_count 50
+chuck39_2b	_diffrn_standards_interval_time  ?
+chuck39_2b	_diffrn_standards_decay_%        2.6
+chuck39_2b	_diffrn_reflns_number            4082
+chuck39_2b	_diffrn_reflns_av_R_equivalents  0.109
+chuck39_2b	_diffrn_reflns_av_sigmaI/netI    ?
+chuck39_2b	_diffrn_reflns_limit_h_min       -8
+chuck39_2b	_diffrn_reflns_limit_h_max       8
+chuck39_2b	_diffrn_reflns_limit_k_min       0
+chuck39_2b	_diffrn_reflns_limit_k_max       34
+chuck39_2b	_diffrn_reflns_limit_l_min       0
+chuck39_2b	_diffrn_reflns_limit_l_max       8
+chuck39_2b	_diffrn_reflns_theta_min         ?
+chuck39_2b	_diffrn_reflns_theta_max         25.1
+chuck39_2b	_reflns_number_total             3825
+chuck39_2b	_reflns_number_gt                803
+chuck39_2b	_reflns_threshold_expression     I>3sigma(I)
+chuck39_2b	_computing_data_collection       'Rigaku AFC5R'
+chuck39_2b	_computing_cell_refinement       'Rigaku AFC5R'
+chuck39_2b	_computing_data_reduction        'Rigaku AFC5R'
+chuck39_2b	_computing_structure_solution    DIRDIF94
+chuck39_2b	_computing_structure_refinement  teXsan
+chuck39_2b	_computing_molecular_graphics    'SHELXTL (Sheldrick, 1994) and teXsan'
+chuck39_2b	_computing_publication_material  ?
+chuck39_2b	_refine_special_details
+chuck39_2b	; 
+chuck39_2b	 ?
+chuck39_2b	;
+chuck39_2b	_refine_ls_structure_factor_coef F
+chuck39_2b	_refine_ls_matrix_type           full
+chuck39_2b	_refine_ls_weighting_scheme      unit
+chuck39_2b	_refine_ls_weighting_details     ?
+chuck39_2b	_atom_sites_solution_primary     direct
+chuck39_2b	_atom_sites_solution_secondary   difmap
+chuck39_2b	_atom_sites_solution_hydrogens   geom
+chuck39_2b	_refine_ls_hydrogen_treatment    noref
+chuck39_2b	_refine_ls_extinction_method     secondary
+chuck39_2b	_refine_ls_extinction_coef       1.48764e-007
+chuck39_2b	_refine_ls_number_reflns         803
+chuck39_2b	_refine_ls_number_parameters     206
+chuck39_2b	_refine_ls_number_restraints     ?
+chuck39_2b	_refine_ls_R_factor_all          ?
+chuck39_2b	_refine_ls_R_factor_gt           0.067
+chuck39_2b	_refine_ls_wR_factor_ref         0.073
+chuck39_2b	_refine_ls_wR_factor_gt          0.073
+chuck39_2b	_refine_ls_goodness_of_fit_ref   1.73
+chuck39_2b	_refine_ls_restrained_S_all      ?
+chuck39_2b	_refine_ls_shift/su_max          0.09
+chuck39_2b	_refine_ls_shift/su_mean         ?
+chuck39_2b	_geom_special_details
+chuck39_2b	; 
+chuck39_2b	 ?
+chuck39_2b	;
+chuck39_2b	_refine_diff_density_max         0.53
+chuck39_2b	_refine_diff_density_min         -0.40
+chuck39_2b	_refine_diff_density_rms         ?
+chuck39_2b	loop_
+chuck39_2b	_atom_type_symbol
+chuck39_2b	_atom_type_description
+chuck39_2b	_atom_type_scat_dispersion_real
+chuck39_2b	_atom_type_scat_dispersion_imag
+chuck39_2b	_atom_type_scat_source
+chuck39_2b	C C 0.0033 0.0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck39_2b	H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck39_2b	F F 0.0171 0.0103 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck39_2b	Cl Cl 0.1484 0.1585 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck39_2b	As As 0.0499 2.0058 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck39_2b	loop_
+chuck39_2b	_symmetry_equiv_pos_as_xyz
+chuck39_2b	'x, y, z'
+chuck39_2b	'-x+1/2, y+1/2, -z'
+chuck39_2b	'-x, -y, -z'
+chuck39_2b	'x-1/2, -y-1/2, z'
+chuck39_2b	loop_
+chuck39_2b	_atom_site_label
+chuck39_2b	_atom_site_type_symbol
+chuck39_2b	_atom_site_fract_x
+chuck39_2b	_atom_site_fract_y
+chuck39_2b	_atom_site_fract_z
+chuck39_2b	_atom_site_B_iso_or_equiv
+chuck39_2b	_atom_site_adp_type
+chuck39_2b	_atom_site_occupancy
+chuck39_2b	_atom_site_symmetry_multiplicity
+chuck39_2b	_atom_site_calc_flag
+chuck39_2b	_atom_site_refinement_flags
+chuck39_2b	_atom_site_disorder_assembly
+chuck39_2b	_atom_site_disorder_group
+chuck39_2b	As1 As 0.5360(3) -0.12252(7) 0.2545(3) 4.37(6) Uani 1 1 d . . .
+chuck39_2b	Cl1 Cl 0.6994(8) -0.1019(2) 0.0718(9) 7.5(2) Uani 1 1 d . . .
+chuck39_2b	F1 F 0.483(2) -0.2046(4) 0.447(2) 6.6(3) Biso 1 1 d . . .
+chuck39_2b	F2 F 0.705(2) -0.2073(4) 0.328(2) 7.0(4) Biso 1 1 d . . .
+chuck39_2b	F3 F 0.570(2) -0.2652(5) 0.354(2) 7.7(4) Biso 1 1 d . . .
+chuck39_2b	F4 F 0.322(4) -0.2733(9) -0.346(4) 7.0(7) Biso 0.50 1 d P A 1
+chuck39_2b	F5 F 0.237(3) -0.3070(8) -0.147(3) 5.3(6) Biso 0.50 1 d P A 1
+chuck39_2b	F6 F 0.468(4) -0.310(1) -0.207(4) 8.1(8) Biso 0.50 1 d P A 1
+chuck39_2b	F7 F 0.225(2) -0.1249(5) -0.224(2) 10.7(6) Uani 1 1 d . . .
+chuck39_2b	F8 F 0.451(2) -0.1191(4) -0.273(2) 8.4(4) Uani 1 1 d . . .
+chuck39_2b	F9 F 0.366(2) -0.0870(4) -0.063(2) 9.4(5) Uani 1 1 d . . .
+chuck39_2b	F10 F 0.028(1) -0.1219(4) 0.371(2) 6.7(3) Biso 1 1 d . . .
+chuck39_2b	F11 F 0.119(1) -0.1431(4) 0.149(2) 6.3(3) Biso 1 1 d . . .
+chuck39_2b	F12 F 0.249(1) -0.1507(4) 0.371(2) 6.6(3) Biso 1 1 d . . .
+chuck39_2b	F13 F -0.051(2) 0.0305(4) 0.346(2) 8.3(5) Uani 1 1 d . . .
+chuck39_2b	F14 F 0.130(2) 0.0733(4) 0.294(2) 9.8(6) Uani 1 1 d . . .
+chuck39_2b	F15 F 0.004(2) 0.0444(5) 0.098(2) 8.8(5) Uani 1 1 d . . .
+chuck39_2b	F16 F 0.667(1) -0.0064(4) 0.140(1) 4.9(3) Biso 1 1 d . . .
+chuck39_2b	F17 F 0.610(1) 0.0237(4) 0.359(1) 5.1(3) Biso 1 1 d . . .
+chuck39_2b	F18 F 0.685(1) -0.0434(4) 0.357(1) 5.2(3) Biso 1 1 d . . .
+chuck39_2b	F19 F 0.217(4) -0.2795(9) -0.276(4) 7.9(8) Biso 0.50 1 d P A 2
+chuck39_2b	F20 F 0.454(3) -0.2864(8) -0.314(3) 5.0(6) Biso 0.50 1 d P A 2
+chuck39_2b	F21 F 0.371(3) -0.3231(8) -0.115(3) 6.0(6) Biso 0.50 1 d P A 2
+chuck39_2b	C1 C 0.450(2) -0.1696(5) 0.098(2) 2.6(4) Biso 1 1 d . . .
+chuck39_2b	C2 C 0.389(3) -0.1664(7) -0.061(3) 4.8(5) Biso 1 1 d . . .
+chuck39_2b	C3 C 0.353(2) -0.2022(7) -0.162(3) 4.1(5) Biso 1 1 d . . .
+chuck39_2b	C4 C 0.380(2) -0.2439(7) -0.096(3) 4.4(5) Biso 1 1 d . A .
+chuck39_2b	C5 C 0.451(2) -0.2495(7) 0.059(3) 4.1(5) Biso 1 1 d . . .
+chuck39_2b	C6 C 0.482(2) -0.2137(6) 0.158(3) 3.8(5) Biso 1 1 d . . .
+chuck39_2b	C7 C 0.363(4) -0.123(1) -0.154(4) 7.1(7) Biso 1 1 d . . .
+chuck39_2b	C8 C 0.347(3) -0.2836(7) -0.201(3) 4.1(5) Biso 1 1 d . . .
+chuck39_2b	C9 C 0.555(3) -0.2209(8) 0.323(3) 5.5(6) Biso 1 1 d . . .
+chuck39_2b	C10 C 0.382(2) -0.0729(6) 0.255(2) 3.9(5) Biso 1 1 d . . .
+chuck39_2b	C11 C 0.223(2) -0.0787(6) 0.261(2) 3.2(4) Biso 1 1 d . . .
+chuck39_2b	C12 C 0.125(2) -0.0437(6) 0.261(2) 3.0(4) Biso 1 1 d . . .
+chuck39_2b	C13 C 0.175(2) -0.0024(5) 0.252(2) 2.1(3) Biso 1 1 d . . .
+chuck39_2b	C14 C 0.327(2) 0.0063(6) 0.251(2) 3.1(4) Biso 1 1 d . . .
+chuck39_2b	C15 C 0.437(2) -0.0289(6) 0.258(2) 3.2(4) Biso 1 1 d . . .
+chuck39_2b	C16 C 0.157(3) -0.1245(8) 0.287(3) 4.8(5) Biso 1 1 d . . .
+chuck39_2b	C17 C 0.068(3) 0.0361(8) 0.250(4) 4.9(6) Biso 1 1 d . . .
+chuck39_2b	C18 C 0.597(2) -0.0140(5) 0.274(2) 1.9(4) Biso 1 1 d . . .
+chuck39_2b	H1 H 0.3121 -0.1984 -0.2698 4.9584 Biso 1 1 c R . .
+chuck39_2b	H2 H 0.4777 -0.2782 0.0958 4.9414 Biso 1 1 c R . .
+chuck39_2b	H3 H 0.0182 -0.0490 0.2689 3.6062 Biso 1 1 c R . .
+chuck39_2b	H4 H 0.3621 0.0359 0.2453 3.7401 Biso 1 1 c R . .
+chuck39_2b	loop_
+chuck39_2b	_atom_site_aniso_label
+chuck39_2b	_atom_site_aniso_U_11
+chuck39_2b	_atom_site_aniso_U_22
+chuck39_2b	_atom_site_aniso_U_33
+chuck39_2b	_atom_site_aniso_U_23
+chuck39_2b	_atom_site_aniso_U_13
+chuck39_2b	_atom_site_aniso_U_12
+chuck39_2b	As1 0.072(2) 0.038(1) 0.056(1) -0.009(2) -0.005(1) 0.009(2)
+chuck39_2b	Cl1 0.084(5) 0.070(4) 0.136(7) -0.025(4) 0.051(5) -0.006(4)
+chuck39_2b	F7 0.15(2) 0.09(1) 0.16(2) 0.04(1) -0.07(1) 0.02(1)
+chuck39_2b	F8 0.18(2) 0.077(9) 0.062(9) 0.01(1) 0.04(1) 0.01(1)
+chuck39_2b	F9 0.28(2) 0.038(8) 0.044(9) 0.004(7) 0.03(1) 0.04(1)
+chuck39_2b	F13 0.11(1) 0.09(1) 0.12(1) 0.01(1) 0.01(1) 0.042(9)
+chuck39_2b	F14 0.12(1) 0.05(1) 0.20(2) -0.05(1) -0.04(1) 0.031(9)
+chuck39_2b	F15 0.13(1) 0.12(1) 0.08(1) 0.016(9) -0.01(1) 0.07(1)
+chuck39_2b	loop_
+chuck39_2b	_geom_bond_atom_site_label_1
+chuck39_2b	_geom_bond_atom_site_label_2
+chuck39_2b	_geom_bond_distance
+chuck39_2b	_geom_bond_site_symmetry_2
+chuck39_2b	_geom_bond_publ_flag
+chuck39_2b	As1 Cl1 2.181(9) . ?
+chuck39_2b	As1 C1 2.05(2) . ?
+chuck39_2b	As1 C10 2.02(3) . ?
+chuck39_2b	F1 C9 1.30(3) . ?
+chuck39_2b	F2 C9 1.37(3) . ?
+chuck39_2b	F3 C9 1.38(3) . ?
+chuck39_2b	F4 C8 1.24(4) . ?
+chuck39_2b	F5 C8 1.28(4) . ?
+chuck39_2b	F6 C8 1.32(5) . ?
+chuck39_2b	F7 C7 1.32(4) . ?
+chuck39_2b	F8 C7 1.26(4) . ?
+chuck39_2b	F9 C7 1.32(4) . ?
+chuck39_2b	F10 C16 1.33(3) . ?
+chuck39_2b	F11 C16 1.30(3) . ?
+chuck39_2b	F12 C16 1.31(3) . ?
+chuck39_2b	F13 C17 1.32(3) . ?
+chuck39_2b	F14 C17 1.30(3) . ?
+chuck39_2b	F15 C17 1.37(3) . ?
+chuck39_2b	F16 C18 1.29(2) . ?
+chuck39_2b	F17 C18 1.34(2) . ?
+chuck39_2b	F18 C18 1.35(2) . ?
+chuck39_2b	F19 C8 1.27(4) . ?
+chuck39_2b	F20 C8 1.33(4) . ?
+chuck39_2b	F21 C8 1.41(4) . ?
+chuck39_2b	C1 C2 1.39(3) . ?
+chuck39_2b	C1 C6 1.45(3) . ?
+chuck39_2b	C2 C3 1.39(3) . ?
+chuck39_2b	C2 C7 1.54(4) . ?
+chuck39_2b	C3 C4 1.40(3) . ?
+chuck39_2b	C4 C5 1.40(3) . ?
+chuck39_2b	C4 C8 1.51(3) . ?
+chuck39_2b	C5 C6 1.38(3) . ?
+chuck39_2b	C6 C9 1.49(4) . ?
+chuck39_2b	C10 C11 1.40(3) . ?
+chuck39_2b	C10 C15 1.42(3) . ?
+chuck39_2b	C11 C12 1.36(3) . ?
+chuck39_2b	C11 C16 1.52(3) . ?
+chuck39_2b	C12 C13 1.33(3) . ?
+chuck39_2b	C13 C14 1.36(3) . ?
+chuck39_2b	C13 C17 1.49(4) . ?
+chuck39_2b	C14 C15 1.43(3) . ?
+chuck39_2b	C15 C18 1.47(3) . ?
+chuck39_2b	C3 H1 0.98 . ?
+chuck39_2b	C5 H2 1.00 . ?
+chuck39_2b	C12 H3 1.01 . ?
+chuck39_2b	C14 H4 0.99 . ?
+chuck39_2b	loop_
+chuck39_2b	_geom_angle_atom_site_label_1
+chuck39_2b	_geom_angle_atom_site_label_2
+chuck39_2b	_geom_angle_atom_site_label_3
+chuck39_2b	_geom_angle
+chuck39_2b	_geom_angle_site_symmetry_1
+chuck39_2b	_geom_angle_site_symmetry_3
+chuck39_2b	_geom_angle_publ_flag
+chuck39_2b	C1 As1 Cl1 90.4(7) . . ?
+chuck39_2b	C10 As1 Cl1 103.4(8) . . ?
+chuck39_2b	C10 As1 C1 107(1) . . ?
+chuck39_2b	C2 C1 As1 131(2) . . ?
+chuck39_2b	C6 C1 As1 112(2) . . ?
+chuck39_2b	C2 C1 C6 116(2) . . ?
+chuck39_2b	C1 C2 C3 125(3) . . ?
+chuck39_2b	C1 C2 C7 125(3) . . ?
+chuck39_2b	C3 C2 C7 111(3) . . ?
+chuck39_2b	C4 C3 C2 117(3) . . ?
+chuck39_2b	C3 C4 C5 122(3) . . ?
+chuck39_2b	C3 C4 C8 118(3) . . ?
+chuck39_2b	C5 C4 C8 120(3) . . ?
+chuck39_2b	C6 C5 C4 121(3) . . ?
+chuck39_2b	C5 C6 C1 120(3) . . ?
+chuck39_2b	C1 C6 C9 121(3) . . ?
+chuck39_2b	C5 C6 C9 119(3) . . ?
+chuck39_2b	F8 C7 F7 104(3) . . ?
+chuck39_2b	F7 C7 F9 107(4) . . ?
+chuck39_2b	F7 C7 C2 107(3) . . ?
+chuck39_2b	F8 C7 F9 111(3) . . ?
+chuck39_2b	F8 C7 C2 112(3) . . ?
+chuck39_2b	F9 C7 C2 116(3) . . ?
+chuck39_2b	F4 C8 F5 111(4) . . ?
+chuck39_2b	F4 C8 F6 104(4) . . ?
+chuck39_2b	F4 C8 F19 52(3) . . ?
+chuck39_2b	F4 C8 F20 57(3) . . ?
+chuck39_2b	F4 C8 F21 136(3) . . ?
+chuck39_2b	F4 C8 C4 112(3) . . ?
+chuck39_2b	F5 C8 F6 106(3) . . ?
+chuck39_2b	F19 C8 F5 64(3) . . ?
+chuck39_2b	F5 C8 F20 139(3) . . ?
+chuck39_2b	F5 C8 F21 57(2) . . ?
+chuck39_2b	F5 C8 C4 112(3) . . ?
+chuck39_2b	F19 C8 F6 138(4) . . ?
+chuck39_2b	F6 C8 F20 51(2) . . ?
+chuck39_2b	F6 C8 F21 52(2) . . ?
+chuck39_2b	F6 C8 C4 111(3) . . ?
+chuck39_2b	F19 C8 F20 108(3) . . ?
+chuck39_2b	F19 C8 F21 116(3) . . ?
+chuck39_2b	F19 C8 C4 110(3) . . ?
+chuck39_2b	F20 C8 F21 101(3) . . ?
+chuck39_2b	F20 C8 C4 109(3) . . ?
+chuck39_2b	F21 C8 C4 112(3) . . ?
+chuck39_2b	F1 C9 F2 110(3) . . ?
+chuck39_2b	F1 C9 F3 106(3) . . ?
+chuck39_2b	F1 C9 C6 117(3) . . ?
+chuck39_2b	F2 C9 F3 101(3) . . ?
+chuck39_2b	F2 C9 C6 111(3) . . ?
+chuck39_2b	F3 C9 C6 110(3) . . ?
+chuck39_2b	C11 C10 As1 124(2) . . ?
+chuck39_2b	C15 C10 As1 119(2) . . ?
+chuck39_2b	C11 C10 C15 117(2) . . ?
+chuck39_2b	C12 C11 C10 121(2) . . ?
+chuck39_2b	C10 C11 C16 120(2) . . ?
+chuck39_2b	C12 C11 C16 118(2) . . ?
+chuck39_2b	C13 C12 C11 122(2) . . ?
+chuck39_2b	C12 C13 C14 120(2) . . ?
+chuck39_2b	C12 C13 C17 123(2) . . ?
+chuck39_2b	C14 C13 C17 117(2) . . ?
+chuck39_2b	C13 C14 C15 120(2) . . ?
+chuck39_2b	C10 C15 C14 119(2) . . ?
+chuck39_2b	C10 C15 C18 128(2) . . ?
+chuck39_2b	C14 C15 C18 114(2) . . ?
+chuck39_2b	F11 C16 F10 106(2) . . ?
+chuck39_2b	F12 C16 F10 106(2) . . ?
+chuck39_2b	F10 C16 C11 110(3) . . ?
+chuck39_2b	F11 C16 F12 109(3) . . ?
+chuck39_2b	F11 C16 C11 111(2) . . ?
+chuck39_2b	F12 C16 C11 114(2) . . ?
+chuck39_2b	F14 C17 F13 106(3) . . ?
+chuck39_2b	F13 C17 F15 105(3) . . ?
+chuck39_2b	F13 C17 C13 113(3) . . ?
+chuck39_2b	F14 C17 F15 104(3) . . ?
+chuck39_2b	F14 C17 C13 115(3) . . ?
+chuck39_2b	F15 C17 C13 113(3) . . ?
+chuck39_2b	F16 C18 F17 104(2) . . ?
+chuck39_2b	F16 C18 F18 106(2) . . ?
+chuck39_2b	F16 C18 C15 117(2) . . ?
+chuck39_2b	F17 C18 F18 105(2) . . ?
+chuck39_2b	F17 C18 C15 112(2) . . ?
+chuck39_2b	F18 C18 C15 111(2) . . ?
+chuck39_2b	C2 C3 H1 121.4 . . ?
+chuck39_2b	C4 C3 H1 122.0 . . ?
+chuck39_2b	C4 C5 H2 120.1 . . ?
+chuck39_2b	C6 C5 H2 119.2 . . ?
+chuck39_2b	C11 C12 H3 119.8 . . ?
+chuck39_2b	C13 C12 H3 117.9 . . ?
+chuck39_2b	C13 C14 H4 118.8 . . ?
+chuck39_2b	C15 C14 H4 120.7 . . ?
+chuck26_3	data_chuck26_3
+chuck26_3	_audit_creation_method           'manual editing'
+chuck26_3	_chemical_name_systematic        ?
+chuck26_3	_chemical_name_common            ?
+chuck26_3	_chemical_melting_point          112-113
+chuck26_3	_chemical_formula_moiety         ?
+chuck26_3	_chemical_formula_sum            'C18 H4 Cl F18 Sb'
+chuck26_3	_chemical_formula_weight         719.41
+chuck26_3	_symmetry_cell_setting           monoclinic
+chuck26_3	_symmetry_space_group_name_H-M   'P 21/c'
+chuck26_3	_cell_length_a                   8.296(2)
+chuck26_3	_cell_length_b                   30.430(7)
+chuck26_3	_cell_length_c                   8.779(3)
+chuck26_3	_cell_angle_alpha                90.00
+chuck26_3	_cell_angle_beta                 94.030(3)
+chuck26_3	_cell_angle_gamma                90.00
+chuck26_3	_cell_volume                     2211(1)
+chuck26_3	_cell_formula_units_Z            4
+chuck26_3	_cell_measurement_temperature    296(1)
+chuck26_3	_cell_measurement_reflns_used    25
+chuck26_3	_cell_measurement_theta_min      23.2
+chuck26_3	_cell_measurement_theta_max      27.8
+chuck26_3	_exptl_crystal_description       needle
+chuck26_3	_exptl_crystal_colour            'light yellow'
+chuck26_3	_exptl_crystal_size_max          0.30
+chuck26_3	_exptl_crystal_size_mid          0.13
+chuck26_3	_exptl_crystal_size_min          0.11
+chuck26_3	_exptl_crystal_density_meas      ?
+chuck26_3	_exptl_crystal_density_diffrn    2.161
+chuck26_3	_exptl_crystal_density_method    'not measured'
+chuck26_3	_exptl_crystal_F_000             1368
+chuck26_3	_exptl_absorpt_coefficient_mu    12.518
+chuck26_3	_exptl_absorpt_correction_type   psi-scan
+chuck26_3	_exptl_absorpt_correction_T_min  0.640
+chuck26_3	_exptl_absorpt_correction_T_max  1.000
+chuck26_3	_exptl_absorpt_process_details   ?
+chuck26_3	_exptl_special_details
+chuck26_3	; 
+chuck26_3	 ? 
+chuck26_3	;
+chuck26_3	_diffrn_ambient_temperature      296(1)
+chuck26_3	_diffrn_radiation_wavelength     1.54178
+chuck26_3	_diffrn_radiation_type           CuK\a
+chuck26_3	_diffrn_radiation_source         'rotating anode (50 kV, 160 mA)'
+chuck26_3	_diffrn_radiation_monochromator  graphite
+chuck26_3	_diffrn_measurement_device_type  'Rigaku AFC5R'
+chuck26_3	_diffrn_measurement_method       '\w-2\q scans'
+chuck26_3	_diffrn_standards_number         ?
+chuck26_3	_diffrn_standards_interval_count ?
+chuck26_3	_diffrn_standards_interval_time  ?
+chuck26_3	_diffrn_standards_decay_%        3.6
+chuck26_3	_diffrn_reflns_number            3953
+chuck26_3	_diffrn_reflns_av_R_equivalents  0.0740
+chuck26_3	_diffrn_reflns_av_sigmaI/netI    ?
+chuck26_3	_diffrn_reflns_limit_h_min       0
+chuck26_3	_diffrn_reflns_limit_h_max       9
+chuck26_3	_diffrn_reflns_limit_k_min       0
+chuck26_3	_diffrn_reflns_limit_k_max       32
+chuck26_3	_diffrn_reflns_limit_l_min       -10
+chuck26_3	_diffrn_reflns_limit_l_max       10
+chuck26_3	_diffrn_reflns_theta_min         2.90
+chuck26_3	_diffrn_reflns_theta_max         63.45
+chuck26_3	_reflns_number_total             3874
+chuck26_3	_reflns_number_gt                1022
+chuck26_3	_reflns_threshold_expression     I>3sigma(I)
+chuck26_3	_computing_data_collection       'Rigaku AFC5R'
+chuck26_3	_computing_cell_refinement       'Rigaku AFC5R'
+chuck26_3	_computing_data_reduction        'Rigaku AFC5R'
+chuck26_3	_computing_structure_solution    DIRDIF94
+chuck26_3	_computing_structure_refinement  'SHELXL-97 (Sheldrick, 1997)'
+chuck26_3	_computing_molecular_graphics    'SHELXTL (Sheldrick, 1994) and teXsan'
+chuck26_3	_computing_publication_material  ?
+chuck26_3	_refine_special_details
+chuck26_3	; 
+chuck26_3	 ?
+chuck26_3	;
+chuck26_3	_refine_ls_structure_factor_coef Fsqd
+chuck26_3	_refine_ls_matrix_type           full
+chuck26_3	_refine_ls_weighting_scheme      calc
+chuck26_3	_refine_ls_weighting_details
+chuck26_3	'calc w=1/[\s^2^(Fo^2^)+(0.0887P)^2^+0.0000P] where P=(Fo^2^+2Fc^2^)/3'
+chuck26_3	_atom_sites_solution_primary     direct
+chuck26_3	_atom_sites_solution_secondary   difmap
+chuck26_3	_atom_sites_solution_hydrogens   geom
+chuck26_3	_refine_ls_hydrogen_treatment    noref
+chuck26_3	_refine_ls_extinction_method     secondary
+chuck26_3	_refine_ls_extinction_coef       1.04800e-008
+chuck26_3	_refine_ls_number_reflns         1022
+chuck26_3	_refine_ls_number_parameters     238
+chuck26_3	_refine_ls_number_restraints     ?
+chuck26_3	_refine_ls_R_factor_all          ?
+chuck26_3	_refine_ls_R_factor_gt           0.0550
+chuck26_3	_refine_ls_wR_factor_ref         0.220
+chuck26_3	_refine_ls_wR_factor_gt          ?
+chuck26_3	_refine_ls_goodness_of_fit_ref   1.00
+chuck26_3	_refine_ls_restrained_S_all      ?
+chuck26_3	_refine_ls_shift/su_max          .01
+chuck26_3	_refine_ls_shift/su_mean         ?
+chuck26_3	_geom_special_details
+chuck26_3	; 
+chuck26_3	 ?
+chuck26_3	;
+chuck26_3	_refine_diff_density_max         0.630
+chuck26_3	_refine_diff_density_min         -0.950
+chuck26_3	_refine_diff_density_rms         ?
+chuck26_3	loop_
+chuck26_3	_atom_type_symbol
+chuck26_3	_atom_type_description
+chuck26_3	_atom_type_scat_dispersion_real
+chuck26_3	_atom_type_scat_dispersion_imag
+chuck26_3	_atom_type_scat_source
+chuck26_3	C C 0.0181 0.0091 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck26_3	H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck26_3	F F 0.0727 0.0534 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck26_3	Cl Cl 0.3639 0.7018 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck26_3	Sb Sb -0.0562 5.8946 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck26_3	loop_
+chuck26_3	_symmetry_equiv_pos_as_xyz
+chuck26_3	'x, y, z'
+chuck26_3	'-x, y+1/2, -z+1/2'
+chuck26_3	'-x, -y, -z'
+chuck26_3	'x, -y-1/2, z-1/2'
+chuck26_3	loop_
+chuck26_3	_atom_site_label
+chuck26_3	_atom_site_type_symbol
+chuck26_3	_atom_site_fract_x
+chuck26_3	_atom_site_fract_y
+chuck26_3	_atom_site_fract_z
+chuck26_3	_atom_site_U_iso_or_equiv
+chuck26_3	_atom_site_adp_type
+chuck26_3	_atom_site_occupancy
+chuck26_3	_atom_site_symmetry_multiplicity
+chuck26_3	_atom_site_calc_flag
+chuck26_3	_atom_site_refinement_flags
+chuck26_3	_atom_site_disorder_assembly
+chuck26_3	_atom_site_disorder_group
+chuck26_3	Sb1 Sb 1.2808(3) 0.1222(1) 0.0566(3) 0.064(1) Uani 1 1 d . . .
+chuck26_3	Cl1 Cl 1.0832(15) 0.1007(4) 0.2220(14) 0.101(4) Uani 1 1 d . . .
+chuck26_3	F1 F 1.3608(19) 0.0371(5) 0.1880(2) 0.069(6) Uani 1 1 d . . .
+chuck26_3	F2 F 1.1290(14) 0.0035(6) 0.1530(2) 0.074(7) Uani 1 1 d . . .
+chuck26_3	F3 F 1.3520(2) -0.0296(5) 0.1110(2) 0.080(7) Uani 1 1 d . . .
+chuck26_3	F4 F 1.1010(2) -0.0448(10) -0.5110(3) 0.108(12) Uani 0.50 1 d P A 1
+chuck26_3	F5 F 1.2930(4) -0.0775(8) -0.3770(3) 0.119(12) Uani 0.50 1 d P A 1
+chuck26_3	F6 F 1.3490(3) -0.0380(8) -0.5540(3) 0.093(10) Uani 0.50 1 d P A 1
+chuck26_3	F4A F 1.4000(2) -0.0497(10) -0.4750(3) 0.100(7) Uani 0.50 1 d P A 2
+chuck26_3	F5A F 1.1690(3) -0.0251(8) -0.5740(3) 0.100(6) Uani 0.50 1 d P A 2
+chuck26_3	F6A F 1.1720(3) -0.0741(8) -0.3940(3) 0.100(5) Uani 0.50 1 d P A 2
+chuck26_3	F7 F 1.3810(2) 0.1472(7) -0.2314(18) 0.083(7) Uani 1 1 d . . .
+chuck26_3	F8 F 1.1551(17) 0.1403(8) -0.3720(2) 0.106(9) Uani 1 1 d . . .
+chuck26_3	F9 F 1.3810(2) 0.1212(8) -0.4594(19) 0.103(8) Uani 1 1 d . . .
+chuck26_3	F10 F 1.3470(3) 0.2132(7) 0.2090(2) 0.102(9) Uani 1 1 d . . .
+chuck26_3	F11 F 1.4490(2) 0.2092(6) -0.0080(2) 0.087(8) Uani 1 1 d . . .
+chuck26_3	F12 F 1.3620(3) 0.2713(5) 0.0690(3) 0.115(5) Uani 1 1 d . . .
+chuck26_3	F13 F 0.7080(6) 0.2957(14) -0.0260(4) 0.101(17) Uani 0.50 1 d P B 3
+chuck26_3	F14 F 0.7020(5) 0.2771(12) -0.2640(5) 0.103(17) Uani 0.50 1 d P B 3
+chuck26_3	F15 F 0.8880(3) 0.3226(10) -0.1740(7) 0.150(3) Uani 0.50 1 d P B 3
+chuck26_3	F13A F 0.8550(6) 0.3226(12) -0.0490(6) 0.130(3) Uani 0.50 1 d P B 4
+chuck26_3	F14A F 0.6500(4) 0.2806(11) -0.1150(6) 0.109(1) Uani 0.50 1 d P B 4
+chuck26_3	F15A F 0.8180(6) 0.3008(14) -0.2830(4) 0.086(1) Uani 0.50 1 d P B 4
+chuck26_3	F16 F 0.9563(19) 0.0914(7) -0.1180(2) 0.088(13) Uani 1 1 d . . .
+chuck26_3	F17 F 0.7850(3) 0.1260(8) -0.2680(2) 0.098(9) Uani 1 1 d . . .
+chuck26_3	F18 F 0.7450(2) 0.1211(7) -0.0300(2) 0.127(10) Uani 1 1 d . . .
+chuck26_3	C1 C 1.2690(4) 0.0673(10) -0.1100(3) 0.038(8) Uiso 1 1 d . . .
+chuck26_3	C2 C 1.2630(4) 0.0238(11) -0.0710(4) 0.048(9) Uiso 1 1 d . . .
+chuck26_3	C3 C 1.2540(4) -0.0099(11) -0.1740(4) 0.051(10) Uiso 1 1 d . . .
+chuck26_3	C4 C 1.2550(4) -0.0026(13) -0.3270(4) 0.056(10) Uiso 1 1 d . A .
+chuck26_3	C5 C 1.2710(4) 0.0429(13) -0.3720(4) 0.059(10) Uiso 1 1 d . . .
+chuck26_3	C6 C 1.2820(4) 0.0757(11) -0.2670(4) 0.048(9) Uiso 1 1 d . . .
+chuck26_3	C7 C 1.2751(16) 0.0087(5) 0.0973(12) 0.063(11) Uiso 1 1 d . . .
+chuck26_3	C8 C 1.2490(2) -0.0390(6) -0.4430(2) 0.073(13) Uiso 1 1 d . . .
+chuck26_3	C9 C 1.2974(18) 0.1225(4) -0.3332(16) 0.075(11) Uiso 1 1 d . . .
+chuck26_3	C10 C 1.1090(4) 0.1742(12) -0.0370(4) 0.055(10) Uiso 1 1 d . . .
+chuck26_3	C11 C 0.9480(4) 0.1699(12) -0.1000(4) 0.055(10) Uiso 1 1 d . . .
+chuck26_3	C12 C 0.8580(4) 0.2071(13) -0.1330(4) 0.059(10) Uiso 1 1 d . . .
+chuck26_3	C13 C 0.9110(4) 0.2488(13) -0.1060(4) 0.056(11) Uiso 1 1 d . B .
+chuck26_3	C14 C 1.0710(5) 0.2536(13) -0.0460(4) 0.062(11) Uiso 1 1 d . . .
+chuck26_3	C15 C 1.1620(4) 0.2175(12) -0.0090(4) 0.053(10) Uiso 1 1 d . . .
+chuck26_3	C16 C 1.3293(14) 0.2281(6) 0.0667(19) 0.066(12) Uiso 1 1 d . . .
+chuck26_3	C17 C 0.8030(3) 0.2881(7) -0.1400(3) 0.076(13) Uiso 1 1 d . . .
+chuck26_3	C18 C 0.8604(18) 0.1256(5) -0.1280(2) 0.088(13) Uiso 1 1 d . . .
+chuck26_3	H1 H 1.2455 -0.0395 -0.1403 0.059 Uiso 1 1 c R . .
+chuck26_3	H2 H 1.2763 0.0488 -0.4738 0.074 Uiso 1 1 c R . .
+chuck26_3	H3 H 0.7545 0.2032 -0.1826 0.065 Uiso 1 1 c R . .
+chuck26_3	H4 H 1.1167 0.2812 -0.0299 0.075 Uiso 1 1 c R . .
+chuck26_3	loop_
+chuck26_3	_atom_site_aniso_label
+chuck26_3	_atom_site_aniso_U_11
+chuck26_3	_atom_site_aniso_U_22
+chuck26_3	_atom_site_aniso_U_33
+chuck26_3	_atom_site_aniso_U_23
+chuck26_3	_atom_site_aniso_U_13
+chuck26_3	_atom_site_aniso_U_12
+chuck26_3	Sb1 0.056(1) 0.072(2) 0.065(2) -0.006(2) 0.004(1) 0.004(2)
+chuck26_3	Cl1 0.103(9) 0.114(10) 0.092(9) 0.006(7) 0.051(7) 0.028(8)
+chuck26_3	F1 0.060(13) 0.094(18) 0.053(13) 0.006(13) -0.001(10) -0.013(13)
+chuck26_3	F2 0.062(13) 0.108(18) 0.055(14) 0.009(14) 0.025(11) -0.007(14)
+chuck26_3	F3 0.086(16) 0.076(17) 0.077(16) 0.008(14) 0.006(13) 0.011(14)
+chuck26_3	F4 0.070(2) 0.130(3) 0.130(3) -0.050(2) 0.009(19) -0.020(2)
+chuck26_3	F5 0.180(4) 0.090(3) 0.090(2) -0.008(18) 0.010(2) 0.010(2)
+chuck26_3	F6 0.120(3) 0.100(2) 0.061(19) -0.010(18) 0.047(19) -0.010(2)
+chuck26_3	F4A 0.070(9) 0.120(11) 0.110(11) 0.000(9) 0.000(8) 0.000(8)
+chuck26_3	F5A 0.100(9) 0.110(10) 0.080(9) -0.070(8) -0.050(8) -0.020(8)
+chuck26_3	F6A 0.100(5) 0.100(5) 0.100(5) 0.000(2) 0.007(4) 0.000(2)
+chuck26_3	F7 0.099(18) 0.068(15) 0.084(17) 0.014(13) 0.012(14) -0.027(14)
+chuck26_3	F8 0.110(2) 0.120(2) 0.085(18) 0.030(16) 0.000(15) 0.034(17)
+chuck26_3	F9 0.130(2) 0.120(2) 0.068(16) 0.011(17) 0.048(14) -0.006(19)
+chuck26_3	F10 0.065(15) 0.160(3) 0.082(17) -0.011(18) -0.007(14) -0.008(16)
+chuck26_3	F11 0.042(12) 0.100(2) 0.114(19) -0.016(16) 0.001(13) -0.009(12)
+chuck26_3	F12 0.074(15) 0.088 0.178 -0.036 -0.022 -0.005
+chuck26_3	F13 0.120(4) 0.080(3) 0.110(4) -0.030(3) 0.040(3) 0.020(3)
+chuck26_3	F14 0.080(3) 0.110(4) 0.120(4) 0.000(3) -0.020(3) 0.040(3)
+chuck26_3	F15 0.140(5) 0.100(4) 0.230(7) 0.050(5) 0.000(5) 0.000(4)
+chuck26_3	F13A 0.130(6) 0.140(6) 0.120(5) -0.020(4) -0.010(4) 0.040(5)
+chuck26_3	F14A 0.112(3) 0.069 0.155 -0.033 0.062 -0.005
+chuck26_3	F15A 0.097(3) 0.067 0.102 0.044 0.066 0.026
+chuck26_3	F16 0.058(14) 0.075(17) 0.160(3) -0.023(17) -0.003(15) 0.000(13)
+chuck26_3	F17 0.120(2) 0.130(2) 0.130(2) -0.020(2) -0.036(18) -0.010(2)
+chuck26_3	F18 0.080(17) 0.076(16) 0.170(3) -0.030(2) 0.043(16) -0.034(16)
+chuck26_3	loop_
+chuck26_3	_geom_bond_atom_site_label_1
+chuck26_3	_geom_bond_atom_site_label_2
+chuck26_3	_geom_bond_distance
+chuck26_3	_geom_bond_site_symmetry_2
+chuck26_3	_geom_bond_publ_flag
+chuck26_3	Sb1 C1 2.22(3) . ?
+chuck26_3	Sb1 C10 2.25(3) . ?
+chuck26_3	Sb1 Cl1 2.358(11) . ?
+chuck26_3	F1 C7 1.3467 . ?
+chuck26_3	F2 C7 1.3489 . ?
+chuck26_3	F3 C7 1.3281 . ?
+chuck26_3	F4 C8 1.3398 . ?
+chuck26_3	F5 C8 1.3442 . ?
+chuck26_3	F6 C8 1.3502 . ?
+chuck26_3	F4A C8 1.3419 . ?
+chuck26_3	F5A C8 1.3590 . ?
+chuck26_3	F6A C8 1.3344 . ?
+chuck26_3	F7 C9 1.3249 . ?
+chuck26_3	F8 C9 1.3211 . ?
+chuck26_3	F9 C9 1.3496 . ?
+chuck26_3	F10 C16 1.3315 . ?
+chuck26_3	F11 C16 1.3584 . ?
+chuck26_3	F12 C16 1.3417 . ?
+chuck26_3	F13 C17 1.3362 . ?
+chuck26_3	F14 C17 1.3635 . ?
+chuck26_3	F15 C17 1.3081 . ?
+chuck26_3	F13A C17 1.3733 . ?
+chuck26_3	F14A C17 1.3189 . ?
+chuck26_3	F15A C17 1.3283 . ?
+chuck26_3	F16 C18 1.3092 . ?
+chuck26_3	F17 C18 1.3409 . ?
+chuck26_3	F18 C18 1.3394 . ?
+chuck26_3	C1 C2 1.37(4) . ?
+chuck26_3	C1 C6 1.41(4) . ?
+chuck26_3	C2 C3 1.36(4) . ?
+chuck26_3	C2 C7 1.55(3) . ?
+chuck26_3	C3 C4 1.37(4) . ?
+chuck26_3	C4 C5 1.45(5) . ?
+chuck26_3	C4 C8 1.50(4) . ?
+chuck26_3	C5 C6 1.36(5) . ?
+chuck26_3	C6 C9 1.55(4) . ?
+chuck26_3	C10 C15 1.41(4) . ?
+chuck26_3	C10 C11 1.41(4) . ?
+chuck26_3	C11 C12 1.38(5) . ?
+chuck26_3	C11 C18 1.54(4) . ?
+chuck26_3	C12 C13 1.36(5) . ?
+chuck26_3	C13 C14 1.40(5) . ?
+chuck26_3	C13 C17 1.51(4) . ?
+chuck26_3	C14 C15 1.36(5) . ?
+chuck26_3	C15 C16 1.53(4) . ?
+chuck26_3	loop_
+chuck26_3	_geom_angle_atom_site_label_1
+chuck26_3	_geom_angle_atom_site_label_2
+chuck26_3	_geom_angle_atom_site_label_3
+chuck26_3	_geom_angle
+chuck26_3	_geom_angle_site_symmetry_1
+chuck26_3	_geom_angle_site_symmetry_3
+chuck26_3	_geom_angle_publ_flag
+chuck26_3	C1 Sb1 C10 107.0(12) . . ?
+chuck26_3	C1 Sb1 Cl1 101.3(9) . . ?
+chuck26_3	C10 Sb1 Cl1 88.4(9) . . ?
+chuck26_3	C2 C1 C6 115(3) . . ?
+chuck26_3	C2 C1 Sb1 125(2) . . ?
+chuck26_3	C6 C1 Sb1 120(2) . . ?
+chuck26_3	C3 C2 C1 125(3) . . ?
+chuck26_3	C3 C2 C7 114(3) . . ?
+chuck26_3	C1 C2 C7 122(3) . . ?
+chuck26_3	C4 C3 C2 122(3) . . ?
+chuck26_3	C3 C4 C5 116(3) . . ?
+chuck26_3	C3 C4 C8 123(3) . . ?
+chuck26_3	C5 C4 C8 121(3) . . ?
+chuck26_3	C6 C5 C4 121(3) . . ?
+chuck26_3	C5 C6 C1 122(3) . . ?
+chuck26_3	C5 C6 C9 115(3) . . ?
+chuck26_3	C1 C6 C9 123(3) . . ?
+chuck26_3	F3 C7 F1 106.3 . . ?
+chuck26_3	F3 C7 F2 107.5 . . ?
+chuck26_3	F1 C7 F2 108.0 . . ?
+chuck26_3	F3 C7 C2 110(2) . . ?
+chuck26_3	F1 C7 C2 112(2) . . ?
+chuck26_3	F2 C7 C2 113(2) . . ?
+chuck26_3	F6 C8 F6A 135.8 . . ?
+chuck26_3	F6 C8 F4 107.1 . . ?
+chuck26_3	F6A C8 F4 65.9 . . ?
+chuck26_3	F6 C8 F4A 42.4 . . ?
+chuck26_3	F6A C8 F4A 110.6 . . ?
+chuck26_3	F4 C8 F4A 135.6 . . ?
+chuck26_3	F6 C8 F5 107.9 . . ?
+chuck26_3	F6A C8 F5 44.5 . . ?
+chuck26_3	F4 C8 F5 106.9 . . ?
+chuck26_3	F4A C8 F5 69.5 . . ?
+chuck26_3	F6 C8 F5A 67.3 . . ?
+chuck26_3	F6A C8 F5A 107.9 . . ?
+chuck26_3	F4 C8 F5A 44.4 . . ?
+chuck26_3	F4A C8 F5A 107.5 . . ?
+chuck26_3	F5 C8 F5A 137.5 . . ?
+chuck26_3	F6 C8 C4 111(2) . . ?
+chuck26_3	F6A C8 C4 111(2) . . ?
+chuck26_3	F4 C8 C4 112(2) . . ?
+chuck26_3	F4A C8 C4 110(2) . . ?
+chuck26_3	F5 C8 C4 111(2) . . ?
+chuck26_3	F5A C8 C4 110(2) . . ?
+chuck26_3	F8 C9 F7 110.7 . . ?
+chuck26_3	F8 C9 F9 107.7 . . ?
+chuck26_3	F7 C9 F9 107.3 . . ?
+chuck26_3	F8 C9 C6 112(2) . . ?
+chuck26_3	F7 C9 C6 109(2) . . ?
+chuck26_3	F9 C9 C6 110(2) . . ?
+chuck26_3	C15 C10 C11 116(3) . . ?
+chuck26_3	C15 C10 Sb1 114(2) . . ?
+chuck26_3	C11 C10 Sb1 129(3) . . ?
+chuck26_3	C12 C11 C10 119(3) . . ?
+chuck26_3	C12 C11 C18 116(3) . . ?
+chuck26_3	C10 C11 C18 124(3) . . ?
+chuck26_3	C13 C12 C11 125(4) . . ?
+chuck26_3	C12 C13 C14 117(4) . . ?
+chuck26_3	C12 C13 C17 122(3) . . ?
+chuck26_3	C14 C13 C17 121(3) . . ?
+chuck26_3	C15 C14 C13 120(4) . . ?
+chuck26_3	C14 C15 C10 123(3) . . ?
+chuck26_3	C14 C15 C16 114(3) . . ?
+chuck26_3	C10 C15 C16 122(3) . . ?
+chuck26_3	F10 C16 F12 108.0 . . ?
+chuck26_3	F10 C16 F11 106.1 . . ?
+chuck26_3	F12 C16 F11 105.6 . . ?
+chuck26_3	F10 C16 C15 112(2) . . ?
+chuck26_3	F12 C16 C15 113(2) . . ?
+chuck26_3	F11 C16 C15 112(2) . . ?
+chuck26_3	F15 C17 F14A 135.5 . . ?
+chuck26_3	F15 C17 F15A 57.7 . . ?
+chuck26_3	F14A C17 F15A 111.2 . . ?
+chuck26_3	F15 C17 F13 112.6 . . ?
+chuck26_3	F14A C17 F13 44.2 . . ?
+chuck26_3	F15A C17 F13 139.2 . . ?
+chuck26_3	F15 C17 F14 109.0 . . ?
+chuck26_3	F14A C17 F14 63.2 . . ?
+chuck26_3	F15A C17 F14 53.9 . . ?
+chuck26_3	F13 C17 F14 106.2 . . ?
+chuck26_3	F15 C17 F13A 50.6 . . ?
+chuck26_3	F14A C17 F13A 107.6 . . ?
+chuck26_3	F15A C17 F13A 106.5 . . ?
+chuck26_3	F13 C17 F13A 67.0 . . ?
+chuck26_3	F14 C17 F13A 143.5 . . ?
+chuck26_3	F15 C17 C13 111(2) . . ?
+chuck26_3	F14A C17 C13 113(2) . . ?
+chuck26_3	F15A C17 C13 109(2) . . ?
+chuck26_3	F13 C17 C13 111(2) . . ?
+chuck26_3	F14 C17 C13 106(2) . . ?
+chuck26_3	F13A C17 C13 109(2) . . ?
+chuck26_3	F16 C18 F18 109.7 . . ?
+chuck26_3	F16 C18 F17 107.9 . . ?
+chuck26_3	F18 C18 F17 106.5 . . ?
+chuck26_3	F16 C18 C11 114(2) . . ?
+chuck26_3	F18 C18 C11 110(2) . . ?
+chuck26_3	F17 C18 C11 109(2) . . ?
+chuck31_4	data_chuck31_4
+chuck31_4	_audit_creation_method           'manual editing'
+chuck31_4	_chemical_name_systematic        ?
+chuck31_4	_chemical_name_common            ?
+chuck31_4	_chemical_melting_point          126-127
+chuck31_4	_chemical_formula_moiety         ?
+chuck31_4	_chemical_formula_sum            'C19 H4 F21 O3 S Sb'
+chuck31_4	_chemical_formula_weight         833.03
+chuck31_4	_symmetry_cell_setting           orthorhombic
+chuck31_4	_symmetry_space_group_name_H-M   'P 21 21 21'
+chuck31_4	_cell_length_a                   16.172(4)
+chuck31_4	_cell_length_b                   17.758(2)
+chuck31_4	_cell_length_c                   9.119(1)
+chuck31_4	_cell_angle_alpha                90.00
+chuck31_4	_cell_angle_beta                 90.00
+chuck31_4	_cell_angle_gamma                90.00
+chuck31_4	_cell_volume                     2618.8(6)
+chuck31_4	_cell_formula_units_Z            4
+chuck31_4	_cell_measurement_temperature    296(1)
+chuck31_4	_cell_measurement_reflns_used    25
+chuck31_4	_cell_measurement_theta_min      18.4
+chuck31_4	_cell_measurement_theta_max      21.4
+chuck31_4	_exptl_crystal_description       block
+chuck31_4	_exptl_crystal_colour            colourless
+chuck31_4	_exptl_crystal_size_max          0.50
+chuck31_4	_exptl_crystal_size_mid          0.40
+chuck31_4	_exptl_crystal_size_min          0.40
+chuck31_4	_exptl_crystal_density_meas      ?
+chuck31_4	_exptl_crystal_density_diffrn    2.113
+chuck31_4	_exptl_crystal_density_method    'not measured'
+chuck31_4	_exptl_crystal_F_000             1592
+chuck31_4	_exptl_absorpt_coefficient_mu    1.304
+chuck31_4	_exptl_absorpt_correction_type   psi-scan
+chuck31_4	_exptl_absorpt_correction_T_min  0.97
+chuck31_4	_exptl_absorpt_correction_T_max  1.00
+chuck31_4	_exptl_absorpt_process_details   ?
+chuck31_4	_exptl_special_details
+chuck31_4	; 
+chuck31_4	 ? 
+chuck31_4	;
+chuck31_4	_diffrn_ambient_temperature      296(1)
+chuck31_4	_diffrn_radiation_wavelength     0.71069
+chuck31_4	_diffrn_radiation_type           MoK\a
+chuck31_4	_diffrn_radiation_source         'rotating anode (50 kV, 160 mA)'
+chuck31_4	_diffrn_radiation_monochromator  graphite
+chuck31_4	_diffrn_measurement_device_type  'Rigaku AFC5R'
+chuck31_4	_diffrn_measurement_method       '\w-2\q scans'
+chuck31_4	_diffrn_standards_number         3
+chuck31_4	_diffrn_standards_interval_count 150
+chuck31_4	_diffrn_standards_interval_time  ?
+chuck31_4	_diffrn_standards_decay_%        4.0
+chuck31_4	_diffrn_reflns_number            4287
+chuck31_4	_diffrn_reflns_av_R_equivalents  ?
+chuck31_4	_diffrn_reflns_av_sigmaI/netI    ?
+chuck31_4	_diffrn_reflns_limit_h_min       0
+chuck31_4	_diffrn_reflns_limit_h_max       22
+chuck31_4	_diffrn_reflns_limit_k_min       0
+chuck31_4	_diffrn_reflns_limit_k_max       24
+chuck31_4	_diffrn_reflns_limit_l_min       0
+chuck31_4	_diffrn_reflns_limit_l_max       12
+chuck31_4	_diffrn_reflns_theta_min         2.51
+chuck31_4	_diffrn_reflns_theta_max         30.0
+chuck31_4	_reflns_number_total             ?
+chuck31_4	_reflns_number_gt                1840
+chuck31_4	_reflns_threshold_expression     I>3sigma(I)
+chuck31_4	_computing_data_collection       'Rigaku AFC5R'
+chuck31_4	_computing_cell_refinement       'Rigaku AFC5R'
+chuck31_4	_computing_data_reduction        'Rigaku AFC5R'
+chuck31_4	_computing_structure_solution    SIR92
+chuck31_4	_computing_structure_refinement  DIRDIF94
+chuck31_4	_computing_molecular_graphics    'SHELXTL (Sheldrick, 1994) and teXsan'
+chuck31_4	_computing_publication_material  ?
+chuck31_4	_refine_special_details
+chuck31_4	; 
+chuck31_4	 ?
+chuck31_4	;
+chuck31_4	_refine_ls_structure_factor_coef F
+chuck31_4	_refine_ls_matrix_type           full
+chuck31_4	_refine_ls_weighting_scheme      unit
+chuck31_4	_refine_ls_weighting_details     ?
+chuck31_4	_atom_sites_solution_primary     direct
+chuck31_4	_atom_sites_solution_secondary   difmap
+chuck31_4	_atom_sites_solution_hydrogens   geom
+chuck31_4	_refine_ls_hydrogen_treatment    noref
+chuck31_4	_refine_ls_extinction_method     secondary
+chuck31_4	_refine_ls_extinction_coef       2.42117e-007
+chuck31_4	_refine_ls_abs_structure_details ?
+chuck31_4	_refine_ls_abs_structure_Flack   ?
+chuck31_4	_refine_ls_number_reflns         1840
+chuck31_4	_refine_ls_number_parameters     368
+chuck31_4	_refine_ls_number_restraints     ?
+chuck31_4	_refine_ls_R_factor_all          ?
+chuck31_4	_refine_ls_R_factor_gt           0.043
+chuck31_4	_refine_ls_wR_factor_ref         0.044
+chuck31_4	_refine_ls_wR_factor_gt          0.044
+chuck31_4	_refine_ls_goodness_of_fit_ref   1.40
+chuck31_4	_refine_ls_restrained_S_all      ?
+chuck31_4	_refine_ls_shift/su_max          0.53
+chuck31_4	_refine_ls_shift/su_mean         ?
+chuck31_4	_geom_special_details
+chuck31_4	; 
+chuck31_4	 ?
+chuck31_4	;
+chuck31_4	_refine_diff_density_max         0.72
+chuck31_4	_refine_diff_density_min         -0.43
+chuck31_4	_refine_diff_density_rms         ?
+chuck31_4	loop_
+chuck31_4	_atom_type_symbol
+chuck31_4	_atom_type_description
+chuck31_4	_atom_type_scat_dispersion_real
+chuck31_4	_atom_type_scat_dispersion_imag
+chuck31_4	_atom_type_scat_source
+chuck31_4	C C 0.0033 0.0016 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck31_4	H H 0.0000 0.0000 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck31_4	O O 0.0106 0.0060 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck31_4	F F 0.0171 0.0103 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck31_4	S S 0.1246 0.1234 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck31_4	Sb Sb -0.5866 1.5461 'International Tables Vol C Tables 4.2.6.8 and 6.1.1.4'
+chuck31_4	loop_
+chuck31_4	_symmetry_equiv_pos_as_xyz
+chuck31_4	'x, y, z'
+chuck31_4	'-x+1/2, -y, z+1/2'
+chuck31_4	'-x, y+1/2, -z+1/2'
+chuck31_4	'x+1/2, -y+1/2, -z'
+chuck31_4	loop_
+chuck31_4	_atom_site_label
+chuck31_4	_atom_site_type_symbol
+chuck31_4	_atom_site_fract_x
+chuck31_4	_atom_site_fract_y
+chuck31_4	_atom_site_fract_z
+chuck31_4	_atom_site_B_iso_or_equiv
+chuck31_4	_atom_site_adp_type
+chuck31_4	_atom_site_occupancy
+chuck31_4	_atom_site_symmetry_multiplicity
+chuck31_4	_atom_site_calc_flag
+chuck31_4	_atom_site_refinement_flags
+chuck31_4	_atom_site_disorder_assembly
+chuck31_4	_atom_site_disorder_group
+chuck31_4	Sb1 Sb 0.23906(3) 0.22665(3) -0.0032(1) 3.72(1) Uani 1 1 d . . .
+chuck31_4	S1 S 0.3148(2) 0.3011(2) -0.2912(4) 5.70(8) Uani 1 1 d . . .
+chuck31_4	F1 F 0.0276(4) 0.1706(4) 0.1344(8) 6.4(2) Uani 1 1 d . . .
+chuck31_4	F2 F 0.1506(4) 0.1545(4) 0.2100(8) 6.1(2) Uani 1 1 d . . .
+chuck31_4	F3 F 0.0534(5) 0.1778(4) 0.3659(8) 6.8(2) Uani 1 1 d . . .
+chuck31_4	F4 F -0.0311(9) 0.4199(7) 0.489(2) 10.1(4) Uani 0.70 1 d P A 1
+chuck31_4	F5 F 0.0501(7) 0.5096(7) 0.454(2) 8.9(4) Uani 0.70 1 d P A 1
+chuck31_4	F6 F -0.0430(8) 0.4892(8) 0.303(1) 10.0(4) Uani 0.70 1 d P A 1
+chuck31_4	F7 F 0.2877(5) 0.4710(5) 0.160(1) 9.1(2) Uani 1 1 d . . .
+chuck31_4	F8 F 0.2426(6) 0.4472(4) -0.0548(8) 7.2(2) Uani 1 1 d . . .
+chuck31_4	F9 F 0.3203(4) 0.3682(4) 0.0543(7) 5.9(2) Uani 1 1 d . . .
+chuck31_4	F10 F 0.3102(4) 0.0756(5) -0.1379(9) 8.0(2) Uani 1 1 d . . .
+chuck31_4	F11 F 0.2505(7) 0.0608(4) 0.0691(8) 7.4(2) Uani 1 1 d . . .
+chuck31_4	F12 F 0.2472(6) -0.0265(4) -0.090(1) 9.7(2) Uani 1 1 d . . .
+chuck31_4	F13 F -0.0560(8) -0.0298(8) -0.305(2) 9.8(4) Uani 0.70 1 d P B 3
+chuck31_4	F14 F 0.035(1) -0.0490(9) -0.446(2) 13.9(6) Uani 0.70 1 d P B 3
+chuck31_4	F15 F -0.052(1) 0.0389(7) -0.478(2) 15.3(5) Uani 0.70 1 d P B 3
+chuck31_4	F16 F 0.0338(7) 0.2884(4) -0.3261(9) 10.6(3) Uani 1 1 d . . .
+chuck31_4	F17 F 0.0818(4) 0.3098(3) -0.1215(8) 6.6(2) Uani 1 1 d . . .
+chuck31_4	F18 F -0.0344(5) 0.2624(5) -0.150(2) 14.5(4) Uani 1 1 d . . .
+chuck31_4	F19 F 0.2252(8) 0.2159(8) -0.452(1) 18.9(5) Uani 1 1 d . . .
+chuck31_4	F20 F 0.2131(8) 0.331(1) -0.480(1) 19.7(6) Uani 1 1 d . . .
+chuck31_4	F21 F 0.3203(8) 0.280(1) -0.562(1) 20.3(6) Uani 1 1 d . . .
+chuck31_4	F22 F 0.0455 0.4546 0.5147 10(1) Uani 0.30 1 d P A 2
+chuck31_4	F23 F 0.0263 0.5180 0.3573 13(1) Uani 0.30 1 d P A 2
+chuck31_4	F24 F -0.0594 0.4289 0.4153 8.9(9) Uani 0.30 1 d P A 2
+chuck31_4	F25 F 0.0191 0.0098 -0.5113 7.9(8) Uani 0.30 1 d P B 4
+chuck31_4	F26 F 0.0280 -0.0615 -0.3586 13(1) Uani 0.30 1 d P B 4
+chuck31_4	F27 F -0.0779 0.0155 -0.3698 27(2) Uani 0.30 1 d P B 4
+chuck31_4	O1 O 0.2429(4) 0.2972(4) -0.1854(7) 4.6(1) Biso 1 1 d . . .
+chuck31_4	O2 O 0.3469(6) 0.3734(6) -0.313(1) 8.4(3) Biso 1 1 d . . .
+chuck31_4	O3 O 0.3697(6) 0.2409(6) -0.265(1) 8.9(3) Biso 1 1 d . . .
+chuck31_4	C1 C 0.1647(6) 0.3047(6) 0.132(1) 3.7(2) Biso 1 1 d . . .
+chuck31_4	C2 C 0.0994(5) 0.2780(6) 0.220(1) 3.3(2) Biso 1 1 d . . .
+chuck31_4	C3 C 0.0502(7) 0.3286(6) 0.300(1) 4.3(2) Biso 1 1 d . . .
+chuck31_4	C4 C 0.0662(6) 0.4031(6) 0.300(1) 3.9(2) Biso 1 1 d . A .
+chuck31_4	C5 C 0.1323(6) 0.4291(6) 0.223(1) 3.8(2) Biso 1 1 d . . .
+chuck31_4	C6 C 0.1833(6) 0.3807(6) 0.145(1) 3.7(2) Biso 1 1 d . . .
+chuck31_4	C7 C 0.0807(8) 0.1943(7) 0.229(1) 4.8(3) Uani 1 1 d . . .
+chuck31_4	C8 C 0.0097(8) 0.4544(8) 0.386(2) 5.5(3) Uani 1 1 d . . .
+chuck31_4	C9 C 0.2600(9) 0.4181(7) 0.077(1) 5.1(3) Uani 1 1 d . . .
+chuck31_4	C10 C 0.1473(6) 0.1567(6) -0.125(1) 3.2(2) Biso 1 1 d . . .
+chuck31_4	C11 C 0.1658(6) 0.0811(6) -0.141(1) 3.7(2) Biso 1 1 d . . .
+chuck31_4	C12 C 0.1181(7) 0.0329(6) -0.225(1) 4.6(2) Biso 1 1 d . . .
+chuck31_4	C13 C 0.0483(7) 0.0575(6) -0.291(1) 4.6(2) Biso 1 1 d . B .
+chuck31_4	C14 C 0.0282(6) 0.1328(6) -0.282(1) 4.0(2) Biso 1 1 d . . .
+chuck31_4	C15 C 0.0742(8) 0.1812(7) -0.198(1) 4.2(2) Biso 1 1 d . . .
+chuck31_4	C16 C 0.245(1) 0.0468(8) -0.074(2) 6.5(4) Uani 1 1 d . . .
+chuck31_4	C17 C -0.005(1) 0.0055(8) -0.383(2) 7.2(4) Uani 1 1 d . . .
+chuck31_4	C18 C 0.0413(7) 0.2603(6) -0.196(1) 4.5(3) Uani 1 1 d . . .
+chuck31_4	C19 C 0.270(1) 0.270(1) -0.444(2) 13.4(7) Uani 1 1 d . . .
+chuck31_4	H1 H 0.0047 0.3111 0.3615 5.0 Biso 1 1 c R . .
+chuck31_4	H2 H 0.1439 0.4824 0.2231 4.5 Biso 1 1 c R . .
+chuck31_4	H3 H 0.1362 -0.0191 -0.2401 5.4 Biso 1 1 c R . .
+chuck31_4	H4 H -0.0189 0.1519 -0.3359 4.7 Biso 1 1 c R . .
+chuck31_4	loop_
+chuck31_4	_atom_site_aniso_label
+chuck31_4	_atom_site_aniso_U_11
+chuck31_4	_atom_site_aniso_U_22
+chuck31_4	_atom_site_aniso_U_33
+chuck31_4	_atom_site_aniso_U_23
+chuck31_4	_atom_site_aniso_U_13
+chuck31_4	_atom_site_aniso_U_12
+chuck31_4	Sb1 0.0425(2) 0.0529(3) 0.0458(2) 0.0003(6) -0.0035(6) 0.0047(3)
+chuck31_4	S1 0.069(2) 0.080(2) 0.068(2) 0.004(2) 0.006(2) -0.010(2)
+chuck31_4	F1 0.092(5) 0.059(4) 0.093(5) -0.020(4) 0.013(4) -0.026(4)
+chuck31_4	F2 0.094(5) 0.046(4) 0.090(5) 0.008(4) 0.021(4) 0.005(4)
+chuck31_4	F3 0.134(6) 0.053(4) 0.072(5) -0.001(4) 0.040(5) -0.019(4)
+chuck31_4	F4 0.18(1) 0.087(8) 0.12(1) -0.02(1) 0.08(1) 0.024(8)
+chuck31_4	F5 0.081(7) 0.116(9) 0.14(1) -0.092(8) 0.013(8) 0.003(7)
+chuck31_4	F6 0.12(1) 0.17(1) 0.089(9) -0.059(9) -0.021(8) 0.079(9)
+chuck31_4	F7 0.105(6) 0.114(6) 0.128(7) -0.049(6) 0.030(5) -0.060(5)
+chuck31_4	F8 0.089(5) 0.095(5) 0.091(5) 0.026(4) 0.022(5) 0.007(5)
+chuck31_4	F9 0.056(3) 0.078(4) 0.090(5) 0.001(4) 0.005(3) -0.015(3)
+chuck31_4	F10 0.068(4) 0.134(7) 0.102(6) 0.009(6) 0.011(5) 0.040(5)
+chuck31_4	F11 0.126(7) 0.088(5) 0.067(4) 0.005(4) -0.036(5) 0.046(6)
+chuck31_4	F12 0.148(7) 0.067(4) 0.152(7) -0.014(5) -0.045(7) 0.048(6)
+chuck31_4	F13 0.104(8) 0.16(1) 0.11(1) -0.02(1) -0.003(9) -0.090(8)
+chuck31_4	F14 0.12(1) 0.18(1) 0.23(2) -0.16(1) -0.01(1) 0.00(1)
+chuck31_4	F15 0.33(2) 0.069(8) 0.18(1) -0.03(1) -0.19(1) -0.00(1)
+chuck31_4	F16 0.25(1) 0.065(5) 0.088(6) 0.018(5) -0.061(7) 0.050(6)
+chuck31_4	F17 0.097(5) 0.045(4) 0.110(6) -0.023(4) -0.044(4) 0.027(3)
+chuck31_4	F18 0.073(5) 0.103(7) 0.38(2) -0.00(1) 0.050(8) 0.036(5)
+chuck31_4	F19 0.25(1) 0.35(1) 0.120(8) -0.135(9) 0.062(8) -0.18(1)
+chuck31_4	F20 0.18(1) 0.49(3) 0.088(7) 0.07(1) -0.040(8) -0.01(1)
+chuck31_4	F21 0.23(1) 0.47(2) 0.074(6) -0.07(1) 0.056(7) -0.10(2)
+chuck31_4	F22 0.16(3) 0.14(3) 0.09(2) -0.05(2) 0.00(3) 0.01(2)
+chuck31_4	F23 0.36(6) 0.03(1) 0.10(3) -0.01(2) 0.08(3) 0.05(2)
+chuck31_4	F24 0.017(9) 0.18(3) 0.14(3) -0.01(2) 0.02(1) 0.01(1)
+chuck31_4	F25 0.13(2) 0.07(2) 0.10(2) -0.03(2) -0.01(3) -0.02(2)
+chuck31_4	F26 0.28(5) 0.05(2) 0.17(4) 0.00(2) -0.04(4) -0.09(2)
+chuck31_4	F27 0.03(1) 0.8(1) 0.22(4) -0.33(4) -0.03(2) 0.01(3)
+chuck31_4	C7 0.063(7) 0.057(7) 0.062(8) -0.007(7) 0.004(6) -0.008(6)
+chuck31_4	C8 0.074(8) 0.069(9) 0.068(9) -0.012(7) 0.014(7) 0.021(7)
+chuck31_4	C9 0.061(7) 0.073(7) 0.058(7) -0.020(6) 0.006(7) -0.016(7)
+chuck31_4	C16 0.09(1) 0.074(8) 0.079(9) -0.002(7) -0.01(1) 0.041(9)
+chuck31_4	C17 0.14(1) 0.061(9) 0.08(1) -0.012(9) -0.01(1) -0.039(9)
+chuck31_4	C18 0.060(6) 0.042(6) 0.068(7) 0.006(6) -0.013(6) 0.004(5)
+chuck31_4	C19 0.13(1) 0.24(2) 0.13(2) -0.07(2) 0.06(1) -0.09(2)
+chuck31_4	loop_
+chuck31_4	_geom_bond_atom_site_label_1
+chuck31_4	_geom_bond_atom_site_label_2
+chuck31_4	_geom_bond_distance
+chuck31_4	_geom_bond_site_symmetry_2
+chuck31_4	_geom_bond_publ_flag
+chuck31_4	Sb1 O1 2.082(8) . ?
+chuck31_4	Sb1 C1 2.21(1) . ?
+chuck31_4	Sb1 C10 2.23(1) . ?
+chuck31_4	S1 O1 1.513(9) . ?
+chuck31_4	S1 O2 1.40(1) . ?
+chuck31_4	S1 O3 1.41(1) . ?
+chuck31_4	S1 C19 1.66(2) . ?
+chuck31_4	F1 C7 1.29(2) . ?
+chuck31_4	F2 C7 1.34(2) . ?
+chuck31_4	F3 C7 1.36(2) . ?
+chuck31_4	F4 C8 1.30(2) . ?
+chuck31_4	F5 C8 1.33(2) . ?
+chuck31_4	F6 C8 1.30(2) . ?
+chuck31_4	F7 C9 1.29(2) . ?
+chuck31_4	F8 C9 1.33(2) . ?
+chuck31_4	F9 C9 1.33(2) . ?
+chuck31_4	F10 C16 1.31(2) . ?
+chuck31_4	F11 C16 1.33(2) . ?
+chuck31_4	F12 C16 1.31(2) . ?
+chuck31_4	F13 C17 1.25(2) . ?
+chuck31_4	F14 C17 1.30(2) . ?
+chuck31_4	F15 C17 1.29(2) . ?
+chuck31_4	F16 C18 1.29(1) . ?
+chuck31_4	F17 C18 1.29(1) . ?
+chuck31_4	F18 C18 1.30(2) . ?
+chuck31_4	F19 C19 1.21(3) . ?
+chuck31_4	F20 C19 1.47(3) . ?
+chuck31_4	F21 C19 1.36(2) . ?
+chuck31_4	F22 C8 1.31(2) . ?
+chuck31_4	F23 C8 1.19(2) . ?
+chuck31_4	F24 C8 1.24(2) . ?
+chuck31_4	F25 C17 1.24(2) . ?
+chuck31_4	F26 C17 1.33(2) . ?
+chuck31_4	F27 C17 1.19(2) . ?
+chuck31_4	C1 C2 1.41(1) . ?
+chuck31_4	C1 C6 1.39(2) . ?
+chuck31_4	C2 C3 1.40(2) . ?
+chuck31_4	C2 C7 1.52(2) . ?
+chuck31_4	C3 C4 1.35(2) . ?
+chuck31_4	C4 C5 1.36(2) . ?
+chuck31_4	C4 C8 1.51(2) . ?
+chuck31_4	C5 C6 1.39(2) . ?
+chuck31_4	C6 C9 1.54(2) . ?
+chuck31_4	C10 C11 1.38(2) . ?
+chuck31_4	C10 C15 1.42(2) . ?
+chuck31_4	C11 C12 1.39(2) . ?
+chuck31_4	C11 C16 1.55(2) . ?
+chuck31_4	C12 C13 1.35(2) . ?
+chuck31_4	C13 C14 1.38(2) . ?
+chuck31_4	C13 C17 1.52(2) . ?
+chuck31_4	C14 C15 1.37(2) . ?
+chuck31_4	C15 C18 1.50(2) . ?
+chuck31_4	C3 H1 0.98 . ?
+chuck31_4	C5 H2 0.96 . ?
+chuck31_4	C12 H3 0.98 . ?
+chuck31_4	C14 H4 0.97 . ?
+chuck31_4	loop_
+chuck31_4	_geom_angle_atom_site_label_1
+chuck31_4	_geom_angle_atom_site_label_2
+chuck31_4	_geom_angle_atom_site_label_3
+chuck31_4	_geom_angle
+chuck31_4	_geom_angle_site_symmetry_1
+chuck31_4	_geom_angle_site_symmetry_3
+chuck31_4	_geom_angle_publ_flag
+chuck31_4	O1 Sb1 C1 94.8(4) . . ?
+chuck31_4	O1 Sb1 C10 87.7(4) . . ?
+chuck31_4	C1 Sb1 C10 105.3(4) . . ?
+chuck31_4	O2 S1 O1 114.6(6) . . ?
+chuck31_4	O3 S1 O1 109.9(6) . . ?
+chuck31_4	O1 S1 C19 100.6(8) . . ?
+chuck31_4	O2 S1 O3 119.2(7) . . ?
+chuck31_4	O2 S1 C19 111(1) . . ?
+chuck31_4	O3 S1 C19 99(1) . . ?
+chuck31_4	S1 O1 Sb1 124.0(5) . . ?
+chuck31_4	C2 C1 Sb1 121.0(9) . . ?
+chuck31_4	C6 C1 Sb1 122.7(9) . . ?
+chuck31_4	C6 C1 C2 116(1) . . ?
+chuck31_4	C3 C2 C1 120(1) . . ?
+chuck31_4	C1 C2 C7 120(1) . . ?
+chuck31_4	C3 C2 C7 119(1) . . ?
+chuck31_4	C4 C3 C2 121(1) . . ?
+chuck31_4	C3 C4 C5 119(1) . . ?
+chuck31_4	C3 C4 C8 118(1) . . ?
+chuck31_4	C5 C4 C8 123(1) . . ?
+chuck31_4	C4 C5 C6 121(1) . . ?
+chuck31_4	C5 C6 C1 121(1) . . ?
+chuck31_4	C1 C6 C9 124(1) . . ?
+chuck31_4	C5 C6 C9 115(1) . . ?
+chuck31_4	F1 C7 F2 108(1) . . ?
+chuck31_4	F1 C7 F3 109(1) . . ?
+chuck31_4	F1 C7 C2 115(1) . . ?
+chuck31_4	F2 C7 F3 106(1) . . ?
+chuck31_4	F2 C7 C2 110(1) . . ?
+chuck31_4	F3 C7 C2 109(1) . . ?
+chuck31_4	F4 C8 F5 105(2) . . ?
+chuck31_4	F6 C8 F4 108(2) . . ?
+chuck31_4	F4 C8 F22 65(1) . . ?
+chuck31_4	F23 C8 F4 136(1) . . ?
+chuck31_4	F24 C8 F4 38(1) . . ?
+chuck31_4	F4 C8 C4 114(1) . . ?
+chuck31_4	F6 C8 F5 104(2) . . ?
+chuck31_4	F22 C8 F5 51(1) . . ?
+chuck31_4	F23 C8 F5 45(1) . . ?
+chuck31_4	F24 C8 F5 128(1) . . ?
+chuck31_4	F5 C8 C4 113(1) . . ?
+chuck31_4	F6 C8 F22 145(1) . . ?
+chuck31_4	F23 C8 F6 64(1) . . ?
+chuck31_4	F24 C8 F6 73(1) . . ?
+chuck31_4	F6 C8 C4 112(1) . . ?
+chuck31_4	F23 C8 F22 96(1) . . ?
+chuck31_4	F24 C8 F22 102(1) . . ?
+chuck31_4	F22 C8 C4 102(1) . . ?
+chuck31_4	F23 C8 F24 127(1) . . ?
+chuck31_4	F23 C8 C4 109(1) . . ?
+chuck31_4	F24 C8 C4 116(1) . . ?
+chuck31_4	F7 C9 F8 109(1) . . ?
+chuck31_4	F7 C9 F9 109(1) . . ?
+chuck31_4	F7 C9 C6 111(1) . . ?
+chuck31_4	F9 C9 F8 106(1) . . ?
+chuck31_4	F8 C9 C6 111(1) . . ?
+chuck31_4	F9 C9 C6 111(1) . . ?
+chuck31_4	C11 C10 Sb1 116.7(8) . . ?
+chuck31_4	C15 C10 Sb1 128.0(9) . . ?
+chuck31_4	C11 C10 C15 115(1) . . ?
+chuck31_4	C10 C11 C12 123(1) . . ?
+chuck31_4	C10 C11 C16 121(1) . . ?
+chuck31_4	C12 C11 C16 116(1) . . ?
+chuck31_4	C13 C12 C11 121(1) . . ?
+chuck31_4	C12 C13 C14 119(1) . . ?
+chuck31_4	C12 C13 C17 122(1) . . ?
+chuck31_4	C14 C13 C17 119(1) . . ?
+chuck31_4	C15 C14 C13 121(1) . . ?
+chuck31_4	C14 C15 C10 121(1) . . ?
+chuck31_4	C10 C15 C18 125(1) . . ?
+chuck31_4	C14 C15 C18 114(1) . . ?
+chuck31_4	F10 C16 F11 108(2) . . ?
+chuck31_4	F10 C16 F12 108(2) . . ?
+chuck31_4	F10 C16 C11 110(1) . . ?
+chuck31_4	F12 C16 F11 107(1) . . ?
+chuck31_4	F11 C16 C11 112(2) . . ?
+chuck31_4	F12 C16 C11 112(2) . . ?
+chuck31_4	F13 C17 F14 102(2) . . ?
+chuck31_4	F13 C17 F15 103(2) . . ?
+chuck31_4	F25 C17 F13 141(2) . . ?
+chuck31_4	F13 C17 F26 74(1) . . ?
+chuck31_4	F27 C17 F13 51(1) . . ?
+chuck31_4	F13 C17 C13 111(2) . . ?
+chuck31_4	F15 C17 F14 110(2) . . ?
+chuck31_4	F25 C17 F14 58(2) . . ?
+chuck31_4	F14 C17 F26 37(1) . . ?
+chuck31_4	F27 C17 F14 130(2) . . ?
+chuck31_4	F14 C17 C13 114(2) . . ?
+chuck31_4	F25 C17 F15 62(1) . . ?
+chuck31_4	F15 C17 F26 140(2) . . ?
+chuck31_4	F27 C17 F15 55(2) . . ?
+chuck31_4	F15 C17 C13 115(2) . . ?
+chuck31_4	F25 C17 F26 95(1) . . ?
+chuck31_4	F27 C17 F25 114(2) . . ?
+chuck31_4	F25 C17 C13 108(1) . . ?
+chuck31_4	F27 C17 F26 121(1) . . ?
+chuck31_4	F26 C17 C13 103(1) . . ?
+chuck31_4	F27 C17 C13 115(1) . . ?
+chuck31_4	F17 C18 F16 106(1) . . ?
+chuck31_4	F16 C18 F18 101(1) . . ?
+chuck31_4	F16 C18 C15 113(1) . . ?
+chuck31_4	F17 C18 F18 107(1) . . ?
+chuck31_4	F17 C18 C15 117(1) . . ?
+chuck31_4	F18 C18 C15 111(1) . . ?
+chuck31_4	F19 C19 S1 126(2) . . ?
+chuck31_4	F20 C19 S1 102(2) . . ?
+chuck31_4	F21 C19 S1 111(2) . . ?
+chuck31_4	F19 C19 F20 101(2) . . ?
+chuck31_4	F19 C19 F21 114(2) . . ?
+chuck31_4	F21 C19 F20 96(2) . . ?
+chuck31_4	C2 C3 H1 121.4 . . ?
+chuck31_4	C4 C3 H1 117.3 . . ?
+chuck31_4	C4 C5 H2 119.2 . . ?
+chuck31_4	C6 C5 H2 119.3 . . ?
+chuck31_4	C11 C12 H3 119.5 . . ?
+chuck31_4	C13 C12 H3 119.6 . . ?
+chuck31_4	C13 C14 H4 119.4 . . ?
+chuck31_4	C15 C14 H4 119.5 . . ?
diff --git a/tests/outputs/cif_tcod_tree_004.out b/tests/outputs/cif_tcod_tree_004.out
new file mode 100644
index 0000000..8c891e7
--- /dev/null
+++ b/tests/outputs/cif_tcod_tree_004.out
@@ -0,0 +1,69 @@
+./0
+./0/_aiidasubmit.sh
+./0/aiida.in
+./0/.aiida
+./0/.aiida/job_tmpl.json
+./0/.aiida/calcinfo.json
+./1
+./1/_aiidasubmit.sh
+./1/aiida.in
+./1/.aiida
+./1/.aiida/job_tmpl.json
+./1/.aiida/calcinfo.json
+./2
+./2/_aiidasubmit.sh
+./2/aiida.in
+./2/.aiida
+./2/.aiida/job_tmpl.json
+./2/.aiida/calcinfo.json
+./2/split
+./aiida
+./aiida/metadata.json
+./aiida/data.json
+./aiida/nodes/4f/9b/2efe-be20-4098-b6a5-1d9d7beb43c3/path
+./aiida/nodes/4f/9b/2efe-be20-4098-b6a5-1d9d7beb43c3/path/aiida.err
+./aiida/nodes/4f/9b/2efe-be20-4098-b6a5-1d9d7beb43c3/path/_scheduler-stdout.txt
+./aiida/nodes/4f/9b/2efe-be20-4098-b6a5-1d9d7beb43c3/path/_scheduler-stderr.txt
+./aiida/nodes/4f/9b/2efe-be20-4098-b6a5-1d9d7beb43c3/path/aiida.out
+./aiida/nodes/09/f3/e62f-491a-4290-82c8-01d231016fde/path
+./aiida/nodes/09/f3/e62f-491a-4290-82c8-01d231016fde/path/tmpTELWn8
+./aiida/nodes/09/3c/bbf4-9880-4989-b9b2-5416cded56bb/path
+./aiida/nodes/09/3c/bbf4-9880-4989-b9b2-5416cded56bb/path/aiida.err
+./aiida/nodes/09/3c/bbf4-9880-4989-b9b2-5416cded56bb/path/_scheduler-stdout.txt
+./aiida/nodes/09/3c/bbf4-9880-4989-b9b2-5416cded56bb/path/_scheduler-stderr.txt
+./aiida/nodes/09/3c/bbf4-9880-4989-b9b2-5416cded56bb/path/aiida.out
+./aiida/nodes/87/e7/b703-837e-4e80-b7eb-cfcf81148e9e/path
+./aiida/nodes/87/e7/b703-837e-4e80-b7eb-cfcf81148e9e/path/aiida.out
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/aiida.err
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/split
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/split/1000000_molecule_1.cif
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/split/1000000_molecule_0.cif
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/_scheduler-stdout.txt
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/_scheduler-stderr.txt
+./aiida/nodes/67/49/e87e-41c4-41a3-846f-fb3e8f9bb77b/path/aiida.out
+./aiida/nodes/24/b3/76f7-5673-4822-8438-7740b7b9e935/path
+./aiida/nodes/24/b3/76f7-5673-4822-8438-7740b7b9e935/path/1000000_molecule_0.cif
+./aiida/nodes/24/e1/40e8-a41e-42c7-bea9-70d00167068d/raw_input
+./aiida/nodes/24/e1/40e8-a41e-42c7-bea9-70d00167068d/raw_input/_aiidasubmit.sh
+./aiida/nodes/24/e1/40e8-a41e-42c7-bea9-70d00167068d/raw_input/aiida.in
+./aiida/nodes/24/e1/40e8-a41e-42c7-bea9-70d00167068d/raw_input/.aiida
+./aiida/nodes/24/e1/40e8-a41e-42c7-bea9-70d00167068d/raw_input/.aiida/job_tmpl.json
+./aiida/nodes/24/e1/40e8-a41e-42c7-bea9-70d00167068d/raw_input/.aiida/calcinfo.json
+./aiida/nodes/a5/22/4652-5800-47a7-a212-5b629040fe50/path
+./aiida/nodes/a5/22/4652-5800-47a7-a212-5b629040fe50/path/1000000_molecule_1.cif
+./aiida/nodes/56/93/da76-6ba4-4bdf-9d4e-bf016fb52e61/path
+./aiida/nodes/56/93/da76-6ba4-4bdf-9d4e-bf016fb52e61/path/aiida.out
+./aiida/nodes/3e/35/c0b6-c486-4172-8f40-7e9391f89b02/raw_input
+./aiida/nodes/3e/35/c0b6-c486-4172-8f40-7e9391f89b02/raw_input/_aiidasubmit.sh
+./aiida/nodes/3e/35/c0b6-c486-4172-8f40-7e9391f89b02/raw_input/aiida.in
+./aiida/nodes/3e/35/c0b6-c486-4172-8f40-7e9391f89b02/raw_input/.aiida
+./aiida/nodes/3e/35/c0b6-c486-4172-8f40-7e9391f89b02/raw_input/.aiida/job_tmpl.json
+./aiida/nodes/3e/35/c0b6-c486-4172-8f40-7e9391f89b02/raw_input/.aiida/calcinfo.json
+./aiida/nodes/04/5a/e3a9-0c2d-413f-b0f0-76d2af9cd73b/raw_input
+./aiida/nodes/04/5a/e3a9-0c2d-413f-b0f0-76d2af9cd73b/raw_input/_aiidasubmit.sh
+./aiida/nodes/04/5a/e3a9-0c2d-413f-b0f0-76d2af9cd73b/raw_input/aiida.in
+./aiida/nodes/04/5a/e3a9-0c2d-413f-b0f0-76d2af9cd73b/raw_input/.aiida
+./aiida/nodes/04/5a/e3a9-0c2d-413f-b0f0-76d2af9cd73b/raw_input/.aiida/job_tmpl.json
+./aiida/nodes/04/5a/e3a9-0c2d-413f-b0f0-76d2af9cd73b/raw_input/.aiida/calcinfo.json
+./main.sh
diff --git a/tests/outputs/cif_validate_003.out b/tests/outputs/cif_validate_003.out
index cf026d0..c66e1a1 100644
--- a/tests/outputs/cif_validate_003.out
+++ b/tests/outputs/cif_validate_003.out
@@ -1,5 +1,5 @@
 scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, value "F" of data item "_atom_type_symbol" is required as the data item is a parent of the "_atom_site_type_symbol" data item.
-scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_chomical_name_comon' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_chomical_name_comon' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_003.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_004.out b/tests/outputs/cif_validate_004.out
index a9f3b80..5c21a6f 100644
--- a/tests/outputs/cif_validate_004.out
+++ b/tests/outputs/cif_validate_004.out
@@ -1,7 +1,7 @@
 scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, value "F" of data item "_atom_type_symbol" is required as the data item is a parent of the "_atom_site_type_symbol" data item.
-scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chemical_formula_weight' value "316u3.75" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chemical_formula_weight' value "316u3.75" should be in range [1.0, <any>].
-scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chomical_name_comon' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_chomical_name_comon' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_004.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_005.out b/tests/outputs/cif_validate_005.out
index 597ba39..4b37716 100644
--- a/tests/outputs/cif_validate_005.out
+++ b/tests/outputs/cif_validate_005.out
@@ -1,7 +1,7 @@
 scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, value "F" of data item "_atom_type_symbol" is required as the data item is a parent of the "_atom_site_type_symbol" data item.
-scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chemical_formula_weight' value "316u3.75" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chemical_formula_weight' value "316u3.75" should be in range [1.0, <any>].
-scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chomical_name_comon' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_chomical_name_comon' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_005.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_007.out b/tests/outputs/cif_validate_007.out
index caea264..62ae7df 100644
--- a/tests/outputs/cif_validate_007.out
+++ b/tests/outputs/cif_validate_007.out
@@ -1,2 +1,2 @@
-scripts/cif_validate: tests/cases/cif_validate_007.inp data_8000008: NOTE, data item '_atom_site_symetry_multiplicity' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_007.inp data_8000008: NOTE, data item '_atom_site_symetry_multiplicity' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_007.inp data_8000008: NOTE, data item '_exptl_absorpt_correction_type' value "psi-scans" must be one of the enumeration values [analytical, cylinder, empirical, gaussian, integration, multi-scan, none, numerical, psi-scan, refdelf, sphere].
diff --git a/tests/outputs/cif_validate_008.out b/tests/outputs/cif_validate_008.out
index 7071b9b..cf9f7de 100644
--- a/tests/outputs/cif_validate_008.out
+++ b/tests/outputs/cif_validate_008.out
@@ -256,5 +256,5 @@ scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, value
 scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, value "S7" of data item "_atom_site_label" is required as the data item is a parent of the "_geom_bond_atom_site_label_2" data item.
 scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, value "S8" of data item "_atom_site_label" is required as the data item is a parent of the "_geom_bond_atom_site_label_2" data item.
 scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, value "S9" of data item "_atom_site_label" is required as the data item is a parent of the "_geom_bond_atom_site_label_2" data item.
-scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, data item '_atom_site_symetry_multiplicity' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, data item '_atom_site_symetry_multiplicity' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_008.inp data_8000008: NOTE, data item '_exptl_absorpt_correction_type' value "psi-scans" must be one of the enumeration values [analytical, cylinder, empirical, gaussian, integration, multi-scan, none, numerical, psi-scan, refdelf, sphere].
diff --git a/tests/outputs/cif_validate_015.out b/tests/outputs/cif_validate_015.out
index fdc85cd..6dba338 100644
--- a/tests/outputs/cif_validate_015.out
+++ b/tests/outputs/cif_validate_015.out
@@ -1,7 +1,7 @@
-scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_Hall' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_data_source_block' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_data_source_file' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_Hall' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_data_source_block' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_[local]_cod_data_source_file' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_chemical_melting_point' value "140_C" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_chemical_melting_point' value "140_C" should be in range [0.0, <any>].
 scripts/cif_validate: tests/cases/cif_validate_015.inp data_2103700: NOTE, data item '_diffrn_standards_decay_%' value "<2." is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
diff --git a/tests/outputs/cif_validate_016.out b/tests/outputs/cif_validate_016.out
index e80ca1c..3bfff3b 100644
--- a/tests/outputs/cif_validate_016.out
+++ b/tests/outputs/cif_validate_016.out
@@ -1,5 +1,5 @@
 scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, value "F" of data item "_atom_type_symbol" is required as the data item is a parent of the "_atom_site_type_symbol" data item.
-scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_chomical_name_comon' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_chemical_formula_moyety' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_chemical_formula_summ' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_chomical_name_comon' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_016.inp data_I: NOTE, data item '_symetry_space_group_name_h-m' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_018.out b/tests/outputs/cif_validate_018.out
index 8b219bf..c677adf 100644
--- a/tests/outputs/cif_validate_018.out
+++ b/tests/outputs/cif_validate_018.out
@@ -1,7 +1,7 @@
-scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_Hall' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_data_source_block' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_data_source_file' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_cif_authors_sg_Hall' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_data_source_block' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_[local]_cod_data_source_file' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_chemical_melting_point' value "140_C" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_chemical_melting_point' value "140_C" should be in range [0.0, <any>].
 scripts/cif_validate: tests/cases/cif_validate_018.inp data_2103700: NOTE, data item '_diffrn_standards_decay_%' value "<2." is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
diff --git a/tests/outputs/cif_validate_020.out b/tests/outputs/cif_validate_020.out
index 6994441..f8fd7c5 100644
--- a/tests/outputs/cif_validate_020.out
+++ b/tests/outputs/cif_validate_020.out
@@ -6,4 +6,4 @@ scripts/cif_validate: tests/cases/cif_validate_020.inp data_2010442: NOTE, data
 scripts/cif_validate: tests/cases/cif_validate_020.inp data_2010442: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.08*" should be in range [0.0, <any>] (13 times).
 scripts/cif_validate: tests/cases/cif_validate_020.inp data_2010442: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.1*" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT' (3 times).
 scripts/cif_validate: tests/cases/cif_validate_020.inp data_2010442: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.1*" should be in range [0.0, <any>] (3 times).
-scripts/cif_validate: tests/cases/cif_validate_020.inp data_2010442: NOTE, data item '_cod_database_code' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_020.inp data_2010442: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_021.out b/tests/outputs/cif_validate_021.out
index fe41947..fcb8413 100644
--- a/tests/outputs/cif_validate_021.out
+++ b/tests/outputs/cif_validate_021.out
@@ -4,5 +4,5 @@ scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data
 scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data item '_atom_site_fract_y' value "H3" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data item '_atom_site_fract_z' value "C3" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data item '_atom_site_fract_z' value "H4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
-scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data item '_cod_database_code' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_021.inp data_2103187: NOTE, data item '_symmetry_cell_setting' value "Tetragonal" must be one of the enumeration values [triclinic, monoclinic, orthorhombic, tetragonal, rhombohedral, trigonal, hexagonal, cubic].
diff --git a/tests/outputs/cif_validate_022.out b/tests/outputs/cif_validate_022.out
index acdd81f..a593d64 100644
--- a/tests/outputs/cif_validate_022.out
+++ b/tests/outputs/cif_validate_022.out
@@ -1 +1 @@
-scripts/cif_validate: tests/cases/cif_validate_022.inp data_2224874: NOTE, data item '_cod_database_code' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_022.inp data_2224874: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_024.out b/tests/outputs/cif_validate_024.out
index e0956a8..ed8c598 100644
--- a/tests/outputs/cif_validate_024.out
+++ b/tests/outputs/cif_validate_024.out
@@ -1,4 +1,4 @@
-scripts/cif_validate: tests/inputs/9005205-Quenched.cif data_9005205: NOTE, data item '_[local]_cod_chemical_formula_sum_orig' was not found in dictionaries.
-scripts/cif_validate: tests/inputs/9005205-Quenched.cif data_9005205: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in dictionaries.
-scripts/cif_validate: tests/inputs/9003481-with-P-and-T-remarks.cif data_9003481: NOTE, data item '_[local]_cod_chemical_formula_sum_orig' was not found in dictionaries.
-scripts/cif_validate: tests/inputs/9003481-with-P-and-T-remarks.cif data_9003481: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in dictionaries.
+scripts/cif_validate: tests/inputs/9005205-Quenched.cif data_9005205: NOTE, data item '_[local]_cod_chemical_formula_sum_orig' was not found in the provided dictionaries.
+scripts/cif_validate: tests/inputs/9005205-Quenched.cif data_9005205: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in the provided dictionaries.
+scripts/cif_validate: tests/inputs/9003481-with-P-and-T-remarks.cif data_9003481: NOTE, data item '_[local]_cod_chemical_formula_sum_orig' was not found in the provided dictionaries.
+scripts/cif_validate: tests/inputs/9003481-with-P-and-T-remarks.cif data_9003481: NOTE, data item '_[local]_cod_cif_authors_sg_H-M' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_025.out b/tests/outputs/cif_validate_025.out
index 78ceb86..205ae34 100644
--- a/tests/outputs/cif_validate_025.out
+++ b/tests/outputs/cif_validate_025.out
@@ -1,7 +1,7 @@
-scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_[local]_cod_data_source_block' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_[local]_cod_data_source_file' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_[local]_cod_data_source_block' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_[local]_cod_data_source_file' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.035(4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.039(4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
-scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_cod_database_code' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_cod_original_cell_volume' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_cod_original_cell_volume' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_025.inp data_4302333: NOTE, data item '_symmetry_cell_setting' value "Orthorhombic" must be one of the enumeration values [triclinic, monoclinic, orthorhombic, tetragonal, rhombohedral, trigonal, hexagonal, cubic].
diff --git a/tests/outputs/cif_validate_026.out b/tests/outputs/cif_validate_026.out
index 41fdee2..8ea13f2 100644
--- a/tests/outputs/cif_validate_026.out
+++ b/tests/outputs/cif_validate_026.out
@@ -1,6 +1,6 @@
-scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_[local]_cod_data_source_block' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_[local]_cod_data_source_file' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_[local]_cod_data_source_block' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_[local]_cod_data_source_file' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.035(4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.039(4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
-scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_cod_database_code' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_cod_original_cell_volume' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_026.inp data_4302333: NOTE, data item '_cod_original_cell_volume' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_027.out b/tests/outputs/cif_validate_027.out
index f97d04f..ac2cdc2 100644
--- a/tests/outputs/cif_validate_027.out
+++ b/tests/outputs/cif_validate_027.out
@@ -1,5 +1,5 @@
 scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.035(4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_atom_site_U_iso_or_equiv' value "0.039(4" is of type 'UQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
-scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_cod_database_code' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_cod_original_cell_volume' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_cod_original_cell_volume' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_027.inp data_4302333: NOTE, data item '_symmetry_cell_setting' value "Orthorhombic" must be one of the enumeration values [triclinic, monoclinic, orthorhombic, tetragonal, rhombohedral, trigonal, hexagonal, cubic].
diff --git a/tests/outputs/cif_validate_029.out b/tests/outputs/cif_validate_029.out
index 0a2c3e2..12574d6 100644
--- a/tests/outputs/cif_validate_029.out
+++ b/tests/outputs/cif_validate_029.out
@@ -1 +1 @@
-scripts/cif_validate: tests/cases/cif_validate_029.inp data_4308312: NOTE, data item '_cod_database_code' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_029.inp data_4308312: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_030.out b/tests/outputs/cif_validate_030.out
index 8d9cc59..311a6a8 100644
--- a/tests/outputs/cif_validate_030.out
+++ b/tests/outputs/cif_validate_030.out
@@ -1,7 +1,7 @@
-scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_cod_database_code' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_cod_depositor_comments' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_cod_database_code' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_cod_depositor_comments' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_exptl_crystal_density_meas' value "not measured" is of type 'SQSTRING' while it should be numeric, i.e. 'FLOAT' or 'INT'.
 scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_exptl_crystal_density_meas' value "not measured" should be in range [0.0, <any>].
-scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_journal_paper_doi' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_journal_paper_doi' was not found in the provided dictionaries.
 scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_refine_ls_hydrogen_treatment' value "
Hydrogen atoms placed in calculated positions 1.00\%A from the
supporting C atom and  with U~iso~(H) = 1.3U~eq~(C)." must be one of the enumeration values [refall, refxyz, refU, noref, constr, mixed, undef].
 scripts/cif_validate: tests/cases/cif_validate_030.inp data_2005206: NOTE, data item '_refine_ls_weighting_scheme' value "Weighting scheme from Chebychev polynomial (Carruthers & Watkin, 1979)" must be one of the enumeration values [sigma, unit, calc].
diff --git a/tests/outputs/cif_validate_031.out b/tests/outputs/cif_validate_031.out
index 4b9087f..85708b9 100644
--- a/tests/outputs/cif_validate_031.out
+++ b/tests/outputs/cif_validate_031.out
@@ -2205,6 +2205,6 @@ scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: DEBUG, data
 scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: DEBUG, there are no value range restrictions for data item "_geom_bond_publ_flag" -- skipping the range test.
 scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: DEBUG, data item '_geom_bond_publ_flag' value "no" is one of the enumeration values [no, n, yes, y].
 scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: DEBUG, there are no value range restrictions for data item "_geom_bond_publ_flag" -- skipping the range test.
-scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: NOTE, data item '_cod_depositor_comments' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: NOTE, data item '_cod_original_cell_volume' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: NOTE, data item '_journal_paper_doi' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: NOTE, data item '_cod_depositor_comments' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: NOTE, data item '_cod_original_cell_volume' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_031.inp data_2010014: NOTE, data item '_journal_paper_doi' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_032.out b/tests/outputs/cif_validate_032.out
index a7305cf..5c465e3 100644
--- a/tests/outputs/cif_validate_032.out
+++ b/tests/outputs/cif_validate_032.out
@@ -1,3 +1,3 @@
-scripts/cif_validate: tests/cases/cif_validate_032.inp data_4122001: NOTE, data item '_cod_depositor_comments' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_032.inp data_4122001: NOTE, data item '_cod_original_cell_volume' was not found in dictionaries.
-scripts/cif_validate: tests/cases/cif_validate_032.inp data_4122001: NOTE, data item '_journal_paper_doi' was not found in dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_032.inp data_4122001: NOTE, data item '_cod_depositor_comments' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_032.inp data_4122001: NOTE, data item '_cod_original_cell_volume' was not found in the provided dictionaries.
+scripts/cif_validate: tests/cases/cif_validate_032.inp data_4122001: NOTE, data item '_journal_paper_doi' was not found in the provided dictionaries.
diff --git a/tests/outputs/cif_validate_039.out b/tests/outputs/cif_validate_039.out
new file mode 100644
index 0000000..fc29c4e
--- /dev/null
+++ b/tests/outputs/cif_validate_039.out
@@ -0,0 +1,4 @@
+scripts/cif_validate: tests/inputs/DDLm_3.11.09.dic: WARNING, dictionary is DDLm-compliant and can not be handled in this version.
+scripts/cif_validate: tests/inputs/DDLm_3.11.09.dic: WARNING, no data item definitions found.
+scripts/cif_validate:: ERROR, no data item definitions were found in the provided dictionary files ('tests/inputs/DDLm_3.11.09.dic').
+scripts/cif_validate:: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
diff --git a/tests/outputs/cod_predeposition_check_004.out b/tests/outputs/cod_predeposition_check_004.out
index e07cafb..c0c8296 100644
--- a/tests/outputs/cod_predeposition_check_004.out
+++ b/tests/outputs/cod_predeposition_check_004.out
@@ -1,2 +1,2 @@
 scripts/cod_predeposition_check: tests/inputs/loop_unquoted_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/loop_unquoted_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/loop_unquoted_01.inp: ERROR, file became empty after filtering with cif_filter.
diff --git a/tests/outputs/cod_predeposition_check_009.out b/tests/outputs/cod_predeposition_check_009.out
index 2f1cc92..82da003 100644
--- a/tests/outputs/cod_predeposition_check_009.out
+++ b/tests/outputs/cod_predeposition_check_009.out
@@ -1,6 +1,6 @@
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif data_quartz: WARNING, data name '_chemical_name' is not recognised.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif data_quartz: WARNING, the space group could not be estimated from the symmetry operators.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif data_quartz: NOTE, symmetry operators '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif data_quartz: NOTE, symmetry operators '-x,-x+y,2/3-z', 'x-y,-y,-z', 'y,x,1/3-z' are found, although not required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif: NOTE, 2 WARNING(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+2/3', 'x-y,-y,-z', 'y,x,-z+1/3' are found, although not required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif: NOTE, 2 NOTE(s) encountered.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water.cif: WARNING, journals 'Zeitschrift fur Kristallographie' of data_quartz and 'Journal of Chemical Physics' of data_1011023 indicate that the data blocks belong to different COD number ranges -- please submit them as separate CIFs.
diff --git a/tests/outputs/cod_predeposition_check_010.out b/tests/outputs/cod_predeposition_check_010.out
index 164a564..2a6285a 100644
--- a/tests/outputs/cod_predeposition_check_010.out
+++ b/tests/outputs/cod_predeposition_check_010.out
@@ -1,8 +1,8 @@
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, data name '_chemical_name' is not recognised.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, the space group could not be estimated from the symmetry operators.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operators '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operators '-x,-x+y,2/3-z', 'x-y,-y,-z', 'y,x,1/3-z' are found, although not required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: NOTE, 2 WARNING(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+2/3', 'x-y,-y,-z', 'y,x,-z+1/3' are found, although not required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: NOTE, 2 NOTE(s) encountered.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_1011023: NOTE, tag '_cod_database_code' value '1011023' will be overwritten upon deposition.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, the _cell_formula_units_Z data item is missing -- the Z value will be estimated.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, not enough data to estimate Z; crystal density undefined; molecular weight undefined -- assuming Z = 1.
diff --git a/tests/outputs/cod_predeposition_check_011.out b/tests/outputs/cod_predeposition_check_011.out
index 19d904c..dc9192c 100644
--- a/tests/outputs/cod_predeposition_check_011.out
+++ b/tests/outputs/cod_predeposition_check_011.out
@@ -1,6 +1,6 @@
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, data name '_chemical_name' is not recognised.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, the space group could not be estimated from the symmetry operators.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operators '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operators '-x,-x+y,2/3-z', 'x-y,-y,-z', 'y,x,1/3-z' are found, although not required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: NOTE, 2 WARNING(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+2/3', 'x-y,-y,-z', 'y,x,-z+1/3' are found, although not required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: NOTE, 2 NOTE(s) encountered.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_1011023: WARNING, author list in the data block data_quartz (Glinnemann J; King H E; Schulz H; Hahn T; La Placa S J; Dacol F) is not the same as in the data block data_1011023 (Bernal, J D; Fowler, R H) -- please make sure that all data are authored by the same people when depositing multiple data blocks.
diff --git a/tests/outputs/cod_predeposition_check_012.out b/tests/outputs/cod_predeposition_check_012.out
index 5d6457e..f1ff35c 100644
--- a/tests/outputs/cod_predeposition_check_012.out
+++ b/tests/outputs/cod_predeposition_check_012.out
@@ -1,6 +1,6 @@
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, data name '_chemical_name' is not recognised.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: WARNING, the space group could not be estimated from the symmetry operators.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operators '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operators '-x,-x+y,2/3-z', 'x-y,-y,-z', 'y,x,1/3-z' are found, although not required by the space group 'P 31 2 1'.
-scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: NOTE, 2 WARNING(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+1/3', 'x-y,-y,-z+2/3', 'y,x,-z' are missing, although required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif data_quartz: NOTE, symmetry operations '-x,-x+y,-z+2/3', 'x-y,-y,-z', 'y,x,-z+1/3' are found, although not required by the space group 'P 31 2 1'.
+scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: NOTE, 2 NOTE(s) encountered.
 scripts/cod_predeposition_check: tests/inputs/quartz-and-water-same-journal.cif: WARNING, file supplied for replacement should have only one data block.
diff --git a/tests/outputs/cod_predeposition_check_016.out b/tests/outputs/cod_predeposition_check_016.out
index cf26f98..3f88800 100644
--- a/tests/outputs/cod_predeposition_check_016.out
+++ b/tests/outputs/cod_predeposition_check_016.out
@@ -1,4 +1,4 @@
 scripts/cod_predeposition_check: tests/inputs/1000055-wrong-symops.cif: NOTE, hold period not specified, (or specified incorrectly), defaulting to 6 months.
 scripts/cod_predeposition_check: tests/inputs/1000055-wrong-symops.cif data_1000055: WARNING, _publ_section_title is undefined.
 scripts/cod_predeposition_check: tests/inputs/1000055-wrong-symops.cif: NOTE, 4 WARNING(s) encountered.
-scripts/cod_predeposition_check: cif_cod_check encountered 1 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cif_cod_check encountered 1 warning(s).
diff --git a/tests/outputs/cod_predeposition_check_018.out b/tests/outputs/cod_predeposition_check_018.out
index 5f068c3..6deebff 100644
--- a/tests/outputs/cod_predeposition_check_018.out
+++ b/tests/outputs/cod_predeposition_check_018.out
@@ -1,6 +1,7 @@
+scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif(2,19): WARNING, unallowed symbol in CIF comment.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(5): NOTE, single-quoted string is missing a closing quote -- fixed.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(6): NOTE, DOS EOF symbol ^Z was encountered and ignored.
-scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif: NOTE, 2 WARNING(s) encountered while parsing the file.
+scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif: NOTE, 3 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(1): WARNING, _journal_name_full is undefined.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(1): WARNING, _publ_section_title is undefined.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(1): WARNING, neither _journal_year nor _journal_volume is defined.
@@ -26,8 +27,8 @@ scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(6): WARNING, neither _journal_year nor _journal_volume is defined.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif data_(6): WARNING, neither _journal_page_first nor _journal_article_reference is defined.
 scripts/cod_predeposition_check: tests/inputs/b008262g-missing-closing-quote.cif: NOTE, 24 WARNING(s) encountered.
-scripts/cod_predeposition_check: cif_cod_check encountered 24 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cif_cod_check encountered 24 warning(s).
 scripts/cod_predeposition_check: tests/inputs/missing-closing-double-quote.cif data_X: NOTE, double-quoted string is missing a closing quote -- fixed.
 scripts/cod_predeposition_check: tests/inputs/missing-closing-double-quote.cif: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/missing-closing-double-quote.cif: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/missing-closing-double-quote.cif: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/missing-closing-double-quote.cif: ERROR, file became empty after filtering with cif_filter.
diff --git a/tests/outputs/cod_predeposition_check_019.out b/tests/outputs/cod_predeposition_check_019.out
index 61b0357..2eda69e 100644
--- a/tests/outputs/cod_predeposition_check_019.out
+++ b/tests/outputs/cod_predeposition_check_019.out
@@ -19,4 +19,4 @@ scripts/cod_predeposition_check: tests/inputs/om400620h_si_001.cif data_compound
 scripts/cod_predeposition_check: tests/inputs/om400620h_si_001.cif data_compound_7: WARNING, neither _journal_year nor _journal_volume is defined.
 scripts/cod_predeposition_check: tests/inputs/om400620h_si_001.cif data_compound_7: WARNING, neither _journal_page_first nor _journal_article_reference is defined.
 scripts/cod_predeposition_check: tests/inputs/om400620h_si_001.cif: NOTE, 12 WARNING(s) encountered.
-scripts/cod_predeposition_check: cif_cod_check encountered 12 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cif_cod_check encountered 12 warning(s).
diff --git a/tests/outputs/cod_predeposition_check_020.out b/tests/outputs/cod_predeposition_check_020.out
index 9e3a1db..67e1d7f 100644
--- a/tests/outputs/cod_predeposition_check_020.out
+++ b/tests/outputs/cod_predeposition_check_020.out
@@ -1,5 +1,5 @@
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/1YGG.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/1YGG.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/1YGG.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: WARNING, data name '_atom_site_uiso_or_equiv' is not recognised.
@@ -11,54 +11,55 @@ scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprect
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: WARNING, neither _journal_page_first nor _journal_article_reference is defined.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: WARNING, no _chemical_formula_sum.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: WARNING, no symmetry information found.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: WARNING, the space group symmetry operation list was not provided.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp data_9003354: WARNING, no space group symbol to check cell constraints.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp: NOTE, 7 WARNING(s) encountered.
-scripts/cod_predeposition_check: cif_cod_check encountered 7 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/9003354-unexprected-loop-end.inp: NOTE, 8 WARNING(s) encountered.
+scripts/cod_predeposition_check: cif_cod_check encountered 8 warning(s).
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/cases.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/cases.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/cases.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp data_ctrl_z: NOTE, DOS EOF symbol ^Z was encountered and ignored.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp data_ctrl_z: NOTE, DOS EOF symbol ^Z was encountered and ignored.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp data_ctrl_z: NOTE, DOS EOF symbol ^Z was encountered and ignored.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp: NOTE, 3 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z-inside-textfield.inp data_ctrl_z: NOTE, non-ascii symbols encountered in the text field -- replaced with XML entities.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z-inside-textfield.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z-inside-textfield.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z-inside-textfield.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/ctrl-z-inside-textfield.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_block_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_block_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_block_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_01.inp(3,17) data_block: ERROR, incorrect CIF syntax.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_01.inp: ERROR, compiler could not recover from errors, quitting now -- 1 error(s) detected.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_01.inp: ERROR, 2 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_02.inp(10) data_block4: WARNING, zero-length data block name detected -- ignored.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_02.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_03.inp(6) data_some_great_block#comment_and_here_we_assume,_that: WARNING, the dataname apparently had spaces in it -- replaced spaces with underscores.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_03.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_03.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp(2) data_block: WARNING, zero-length data block name detected -- ignored.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp(3,17) data_block: ERROR, incorrect CIF syntax.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp: ERROR, compiler could not recover from errors, quitting now -- 1 error(s) detected.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp: ERROR, 2 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/data_string_error_04.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/dollar.inp(2,6) data_dollar: ERROR, dollar symbol ('$') must not start an unquoted string.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/dollar.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/dollar.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/dollar.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_01.inp(3) data_duplicate_tags_01: ERROR, tag _tag1 appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_01.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp(3) data_duplicate_tags_01: ERROR, tag _tag1 appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp(4) data_duplicate_tags_01: ERROR, tag _tag1 appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp(5) data_duplicate_tags_01: ERROR, tag _tag1 appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp(6) data_duplicate_tags_01: ERROR, tag _tag1 appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp(7) data_duplicate_tags_01: ERROR, tag _tag1 appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp: ERROR, 5 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate_tags_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp(22) data_duplicate: WARNING, tag _chemical_formula_weight appears more than once with the same value '2604.88'.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp(3) data_duplicate: ERROR, tag _same_line appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp(6) data_duplicate: ERROR, tag _different_lines appears more than once.
@@ -66,149 +67,152 @@ scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.in
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp(19) data_duplicate: ERROR, tag _inloop_tag appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp: ERROR, 4 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/duplicate-tags.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/empty_data_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/empty_data_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/empty_data_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entities.inp data_entities: NOTE, non-ascii symbols encountered in the text field -- replaced with XML entities.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entities.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entities.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entities.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entities.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entity-in-tag-name.inp: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entity-in-tag-name.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entity-in-tag-name.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entity-in-tag-name.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/entity-in-tag-name.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_comment_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_comment_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_comment_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_comment_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_02.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_03.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_float_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_loop_01.inp(9,9) data_wrong_loop: ERROR, wrong number of elements in the loop starting at line 3.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_loop_01.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_loop_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_loop_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp: NOTE, 3 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_missed_tag_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_02.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_03.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_03.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_04.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_04.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_04.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_pos_04.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_02.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_03.inp data_t132: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_03.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_03.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_string_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_textfield_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_textfield_01.inp: ERROR, end of file encountered while in text field starting in line 9, possible runaway closing semicolon (';').
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_textfield_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_textfield_01.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_textfield_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_textfield_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_wspace_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_wspace_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_wspace_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/err_wspace_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/extra-values.inp data_extra: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/extra-values.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/extra-values.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/extra-values.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/extra-values.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/file_wo_wspaces.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/file_wo_wspaces.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/file_wo_wspaces.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/float_mis-increase_lexer_position.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/float_mis-increase_lexer_position.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/float_mis-increase_lexer_position.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/folded_title.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/folded_title.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/folded_title.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/folding.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/folding.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/folding.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_01.inp(2,1): ERROR, GLOBAL_ symbol detected -- it is not acceptable in CIF v1.1.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_01.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_02.inp(2) data_asoads_global_somedasa: WARNING, the dataname apparently had spaces in it -- replaced spaces with underscores.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_02.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_03.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/global_errors_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless_data.inp: NOTE, no data block heading (i.e. data_somecif) found.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless_data.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless_data.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless_data.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless_data.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless.inp: NOTE, no data block heading (i.e. data_somecif) found.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless-unquoted-string.inp: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless-unquoted-string.inp: NOTE, no data block heading (i.e. data_somecif) found.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless-unquoted-string.inp: NOTE, 2 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless-unquoted-string.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless-unquoted-string.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/headerless-unquoted-string.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/line-number-test.inp(15) data_line_number: ERROR, tag _dublicate appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/line-number-test.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/line-number-test.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/line-number-test.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp: NOTE, 3 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp: NOTE, 3 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/local_tags_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_dquoted_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_dquoted_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_dquoted_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp data_floatlexer: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp(9,22) data_floatlexer: ERROR, incorrect CIF syntax.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp: ERROR, compiler could not recover from errors, quitting now -- 1 error(s) detected.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp: ERROR, 2 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_misparsing.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_squoted_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_squoted_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_squoted_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_unquoted_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_unquoted_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/loop_unquoted_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/missing-entity-quote.inp data_entities: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/missing-entity-quote.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/missing-entity-quote.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/missing-entity-quote.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/missing-entity-quote.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-empty-lines.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-empty-lines.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-empty-lines.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-non-ascii.inp: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-non-ascii.inp data_multi: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-non-ascii.inp: NOTE, 2 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-non-ascii.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-non-ascii.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multi-non-ascii.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multitag.inp(3) data_multitag: ERROR, tag _tag appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multitag.inp(4) data_multitag: ERROR, tag _tag appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multitag.inp: ERROR, 2 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multitag.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/multitag.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/newline.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/newline.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/newline.inp: ERROR, file became empty after filtering with cif_filter.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-comment.inp(2,19): WARNING, unallowed symbol in CIF comment.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-comment.inp(3,31): WARNING, unallowed symbol in CIF comment.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-comment.inp: NOTE, 2 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-comment.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-comment.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-comment.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: WARNING, the data block does not contain symmetry operators.
@@ -219,19 +223,20 @@ scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp dat
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: WARNING, neither _journal_page_first nor _journal_article_reference is defined.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: WARNING, no _chemical_formula_sum.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: WARNING, no symmetry information found.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: WARNING, the space group symmetry operation list was not provided.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp data_non_ascii: WARNING, no space group symbol to check cell constraints.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp: NOTE, 7 WARNING(s) encountered.
-scripts/cod_predeposition_check: cif_cod_check encountered 7 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii.inp: NOTE, 8 WARNING(s) encountered.
+scripts/cod_predeposition_check: cif_cod_check encountered 8 warning(s).
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-values.inp data_non_ascii: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-values.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-values.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-values.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/non-ascii-values.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_02.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/precision_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp data_seasea: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp(2,1): ERROR, GLOBAL_ symbol detected -- it is not acceptable in CIF v1.1.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp(3,14) data_seasea: ERROR, GLOBAL_ symbol detected -- it is not acceptable in CIF v1.1.
@@ -239,22 +244,22 @@ scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp: ERROR, compiler could not recover from errors, quitting now -- 3 error(s) detected.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp: ERROR, 4 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/reserved_tags_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sameline.inp(3) data_sameline: ERROR, tag _tag appears more than once.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sameline.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sameline.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sameline.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_02.inp(15,1) data_loctag: ERROR, incorrect CIF syntax.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_02.inp: ERROR, compiler could not recover from errors, quitting now -- 1 error(s) detected.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_02.inp: ERROR, 2 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/save_block_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/shift-precision.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/shift-precision.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/shift-precision.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-in-dataname.inp(1) data_more_than_one: WARNING, the dataname apparently had spaces in it -- replaced spaces with underscores.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-in-dataname.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-in-dataname.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-in-dataname.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-in-dataname.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp(1) data_spaces_without_quotes: WARNING, the dataname apparently had spaces in it -- replaced spaces with underscores.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp data_spaces_without_quotes: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp data_spaces_without_quotes: NOTE, single-quoted string is missing a closing quote -- fixed.
@@ -264,83 +269,84 @@ scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-qu
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp data_spaces_without_quotes: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp: NOTE, 7 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/spaces-without-quotes.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sqbr-entities.inp data_entities: NOTE, non-ascii symbols encountered in the text.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sqbr-entities.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sqbr-entities.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sqbr-entities.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/sqbr-entities.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_01.inp(2,1): ERROR, STOP_ symbol detected -- it is not acceptable in CIF v1.1.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_01.inp: ERROR, 1 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_02.inp(2) data_asoads_stop_somedasa: WARNING, the dataname apparently had spaces in it -- replaced spaces with underscores.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_02.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_03.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stop_errors_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/strange-multiline.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/strange-multiline.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/strange-multiline.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stray.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stray.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stray.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stray.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/stray.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tag_01.inp: NOTE, no data block heading (i.e. data_somecif) found.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tag_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tag_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tag_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tag_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_cif_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_cif_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_cif_01.inp: NOTE, 2 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_cif_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_cif_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_cif_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_numbers_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_numbers_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_numbers_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_sqbrack_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_sqbrack_01.inp data_loctag: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_sqbrack_01.inp: NOTE, 2 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_sqbrack_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_sqbrack_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_sqbrack_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_wspace_lines_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_wspace_lines_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/test_wspace_lines_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_01.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_01.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_01.inp: ERROR, file became empty after filtering with cif_filter.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_03.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_03.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_03.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_03.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_04.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_04.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_04.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/tst_04.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp data_unclosed: NOTE, double-quoted string is missing a closing quote -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp data_unclosed: NOTE, single-quoted string is missing a closing quote -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp data_unclosed: NOTE, single-quoted string is missing a closing quote -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp data_unclosed: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp: NOTE, 4 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unclosed-quote.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unfolded_title.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unfolded_title.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unfolded_title.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unfolding.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unfolding.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unfolding.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unprefix-test.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unprefix-test.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unprefix-test.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unquoted_str_01.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unquoted_str_01.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unquoted_str_01.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unquoted_str_02.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unquoted_str_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/unquoted_str_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-newlines.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-newlines.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-newlines.inp: ERROR, file became empty after filtering with cif_filter.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp(2,19): WARNING, unallowed symbol in CIF comment.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp data_(5): NOTE, single-quoted string is missing a closing quote -- fixed.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp: NOTE, 2 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/weird-unclosed-quote.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/whitespace_02.inp(1): WARNING, stray CIF values at the beginning of the input file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/whitespace_02.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/whitespace_02.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/whitespace_02.inp: ERROR, file became empty after filtering with cif_filter.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/without-quotes.inp data_no_quotes: NOTE, string with spaces without quotes -- fixed.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/without-quotes.inp: NOTE, 1 WARNING(s) encountered while parsing the file.
 scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/without-quotes.inp: WARNING, no data blocks that contain coordinates found.
-scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/without-quotes.inp: ERROR, file became empty after filtering with cif_filter at <script_name> line <line_no>.
+scripts/cod_predeposition_check: tests/inputs/cif-parser-tests/without-quotes.inp: ERROR, file became empty after filtering with cif_filter.
diff --git a/tests/outputs/cod_predeposition_check_021.out b/tests/outputs/cod_predeposition_check_021.out
index 8b5e283..35238a7 100644
--- a/tests/outputs/cod_predeposition_check_021.out
+++ b/tests/outputs/cod_predeposition_check_021.out
@@ -7,7 +7,8 @@ scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif data_C5H1
 scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif data_C5H17AlN2O8P2: NOTE, name 'J. MARROT' seems unusual.
 scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif data_C5H17AlN2O8P2: NOTE, name 'J. RENAUDIN' seems unusual.
 scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif data_C5H17AlN2O8P2: NOTE, name 'V. MAISONNEUVE' seems unusual.
-scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif: NOTE, 7 WARNING(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif: NOTE, 5 NOTE(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/1000000-fake-on-hold.cif: NOTE, 3 WARNING(s) encountered.
 CIF data_C5H17AlN2O8P2
 CIF loop_
 CIF _publ_author_name
diff --git a/tests/outputs/cod_predeposition_check_023.out b/tests/outputs/cod_predeposition_check_023.out
index 7773b36..b305899 100644
--- a/tests/outputs/cod_predeposition_check_023.out
+++ b/tests/outputs/cod_predeposition_check_023.out
@@ -1,11 +1,12 @@
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif: NOTE, hold period not specified, (or specified incorrectly), defaulting to 6 months.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: WARNING, the data block does not contain symmetry operators.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: NOTE, '_refine_ls_weighting_scheme' value '2.90/[\s~2~(F)+0.001(F)~2~]' was changed to 'calc'. A new data item '_refine_ls_weighting_details' was created with the value set to 'w = 2.90/[\s~2~(F)+0.001(F)~2~]'.
+scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: WARNING, the space group symmetry operation list was not provided.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: NOTE, data item '_refine_ls_R_factor_obs' value '0.15' is > 0.1.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: WARNING, data item '_refine_ls_goodness_of_fit_obs' value '5.05' lies outside the range [0.6, 4].
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: ERROR, data item '_refine_ls_shift/esd_max' value '0.57' is > 0.2.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif data_2000373: WARNING, data item '_refine_ls_wR_factor_obs' value '0.36' is > 0.35.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif: NOTE, 1 NOTE(s) encountered.
-scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif: NOTE, 2 WARNING(s) encountered.
+scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif: NOTE, 3 WARNING(s) encountered.
 scripts/cod_predeposition_check: tests/inputs/2000373-merge-limits.cif: ERROR, 1 ERROR(s) encountered -- die on ERROR(s) requested.
-scripts/cod_predeposition_check: cif_cod_check encountered 4 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cif_cod_check encountered 5 warning(s).
diff --git a/tests/outputs/cod_predeposition_check_024.out b/tests/outputs/cod_predeposition_check_024.out
index 56c3016..b0d2d89 100644
--- a/tests/outputs/cod_predeposition_check_024.out
+++ b/tests/outputs/cod_predeposition_check_024.out
@@ -1,4 +1,4 @@
 scripts/cod_predeposition_check: tests/inputs/04530.cif data_global: WARNING, data name '_chemical_name' is not recognised.
 scripts/cod_predeposition_check: tests/inputs/04530.cif data_global: WARNING, structure is published after 1969, but does not contain temperature factors.
 scripts/cod_predeposition_check: tests/inputs/04530.cif: NOTE, 1 WARNING(s) encountered.
-scripts/cod_predeposition_check: cif_cod_check encountered 1 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cif_cod_check encountered 1 warning(s).
diff --git a/tests/outputs/cod_predeposition_check_028.out b/tests/outputs/cod_predeposition_check_028.out
index 0879dc5..028fea2 100644
--- a/tests/outputs/cod_predeposition_check_028.out
+++ b/tests/outputs/cod_predeposition_check_028.out
@@ -1,3 +1,3 @@
 scripts/cod_predeposition_check: tests/inputs/1501469.cif data_1501469: NOTE, tag '_cod_database_code' value '1501469' will be overwritten upon deposition.
 scripts/cod_predeposition_check: tests/inputs/1501469-stray.hkl(1): ERROR, stray CIF values at the beginning of the input file.
-scripts/cod_predeposition_check: cifvalues encountered 1 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cifvalues encountered 1 warning(s).
diff --git a/tests/outputs/cod_predeposition_check_029.out b/tests/outputs/cod_predeposition_check_029.out
index f925e8d..bfcf036 100644
--- a/tests/outputs/cod_predeposition_check_029.out
+++ b/tests/outputs/cod_predeposition_check_029.out
@@ -2,4 +2,4 @@ scripts/cod_predeposition_check: tests/inputs/1501469.cif data_1501469: NOTE, ta
 scripts/cod_predeposition_check: tests/inputs/1501469-non-ascii.hkl(2,19) data_1501469: ERROR, incorrect CIF syntax.
  _publ_author_name 'OÂ’Neill H St C'
                    ^
-scripts/cod_predeposition_check: cifvalues encountered 3 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cifvalues encountered 3 warning(s).
diff --git a/tests/outputs/cod_predeposition_check_030.out b/tests/outputs/cod_predeposition_check_030.out
index a410495..1b25ed8 100644
--- a/tests/outputs/cod_predeposition_check_030.out
+++ b/tests/outputs/cod_predeposition_check_030.out
@@ -2,4 +2,4 @@ scripts/cod_predeposition_check: tests/inputs/1501469.cif data_1501469: NOTE, ta
 scripts/cod_predeposition_check: tests/inputs/2014791-unmatched-quote.hkl(26,34) data_2014791_Fobs: ERROR, incorrect CIF syntax.
  _journal_issue                   '5
                                   ^
-scripts/cod_predeposition_check: cifvalues encountered 3 warning(s) at <script_name> line <line_no>.
+scripts/cod_predeposition_check: cifvalues encountered 3 warning(s).
diff --git a/tests/shoutputs/check_option_descriptions.out b/tests/shoutputs/check_option_descriptions.out
index 17d029f..53aec1c 100644
--- a/tests/shoutputs/check_option_descriptions.out
+++ b/tests/shoutputs/check_option_descriptions.out
@@ -1,7 +1,7 @@
 scripts/cif2json: options "--do-not-unprefix-text", "--do-not-unfold-text", "--fix-duplicate-tags-with-same-values", "--fix-duplicate-tags-with-empty-values", "--fix-data-header", "--fix-datablock-names", "--fix-string-quotes", "--fix-missing-closing-double-quote", "--fix-missing-closing-single-quote", "--fix-ctrl-z", "--allow-uqstring-brackets" are not described in help.
 scripts/cif_cod_check: options "--check-only-bibliography", "--dont-check-bibliography", "--no-check-bibliography", "--do-not-check-bibliography", "--require-only-doi", "--require-full-bibliography", "--check-only-authors", "--dont-check-authors", "--no-check-authors", "--do-not-check-authors", "--check-only-chemical-formula-sum", "--dont-check-chemical-formula-sum", "--no-check-chemical-formula-sum", "--do-not-check-chemical-formula-sum", "--check-only-spacegroup-info", "--dont-check-sp [...]
 scripts/cif_cod_check: options "--check-only-xyz", "--no-check-xyz", "--dont-check-xyz", "--do-not-check-xyz" are described in help, but no longer exist.
-scripts/cif_CODify: options "--authors", "-a", "--journal", "-j", "--volume", "-v", "--issue", "-i", "--page", "-p", "--start-page", "--end-page", "-e", "--year", "-y", "--doi", "-D", "--bibliography", "-B", "--bibliography", "--leave-bibliography", "--discard-bibliography", "--leave-title", "--global-priority", "-g", "--no-global-priority", "-g-", "--exclude-publication-details", "--dont-exclude-publication-details", "--no-exclude-publication-details", "--add-cif-header", "-h", "--estim [...]
+scripts/cif_CODify: options "--authors", "-a", "--journal", "-j", "--volume", "-v", "--issue", "-i", "--page", "-p", "--start-page", "--end-page", "-e", "--year", "-y", "--doi", "-D", "--bibliography", "-B", "--bibliography", "--leave-bibliography", "--discard-bibliography", "--leave-title", "--global-priority", "-g", "--no-global-priority", "-g-", "--exclude-publication-details", "--dont-exclude-publication-details", "--no-exclude-publication-details", "--add-cif-header", "-h", "--estim [...]
 scripts/cif_fix_values: options "--fix-only-misspelled", "--do-not-fix-misspelled", "--no-fix-misspelled", "--dont-fix-misspelled", "--fix-only-temperature", "--do-not-fix-temperature", "--no-fix-temperature", "--dont-fix-temperature", "--fix-only-enums", "--do-not-fix-enums", "--dont-fix-enums", "--no-fix-enums", "--do-not-treat-as-set", "--dont-treat-as-set", "--no-treat-as-set", "--fix-only-density-meas", "--do-not-fix-density-meas", "--no-fix-density-meas", "--dont-fix-density-meas", [...]
 scripts/cif_molecule: options "--no-P1-expand", "--dont-p1-expand", "--do-not-expand-to-P1", "--do-not-P1-expand", "--do-not-p1-expand", "--do-not-merge-disorder-groups", "--no-merge-disorder-groups", "--do-not-split-disorder-groups", "--no-split-disorder-groups", "--always-continue", "-c-", "--always-die", "--die-on-errors", "--continue-on-warnings", "--die-on-warnings", "--continue-on-notes", "--die-on-notes", "--remove-duplicate-molecules", "--no-remove-duplicate-molecules", "--dont-r [...]
 scripts/cif_p1: options "--do-not-simplify-formula", "--no-exclude-zero-occupancies", "--dont-exclude-zero-occupancies", "--do-not-merge-disorder-groups", "--no-merge-disorder-groups", "--do-not-split-disorder-groups", "--no-split-disorder-groups" are not described in help.
diff --git a/tests/shoutputs/cif_print_loop_001.out b/tests/shoutputs/cif_print_loop_001.out
new file mode 100644
index 0000000..d908f64
--- /dev/null
+++ b/tests/shoutputs/cif_print_loop_001.out
@@ -0,0 +1,9 @@
+loop_
+_a
+_b
+_c
+5 1 3
+4 2 3
+3 3 2
+2 4 3
+1 5 3
diff --git a/tests/shoutputs/cif_print_loop_002.out b/tests/shoutputs/cif_print_loop_002.out
new file mode 100644
index 0000000..7d0e45a
--- /dev/null
+++ b/tests/shoutputs/cif_print_loop_002.out
@@ -0,0 +1,16 @@
+WARNING, data item '_a' contains less values than data item '_b' even though they reside in the same loop -- 2 question mark symbols ('?') will be appended to the loop column '_a' instead of the missing values
+WARNING, data item '_c' contains less values than data item '_b' even though they reside in the same loop -- 4 question mark symbols ('?') will be appended to the loop column '_c' instead of the missing values
+WARNING, loop of data items '_d', '_e' does not contain any values -- a question mark symbol ('?') will be added as values for each data item
+loop_
+_a
+_b
+_c
+1 1 2
+4 2 ?
+5 3 ?
+? 4 ?
+? 5 ?
+loop_
+_d
+_e
+? ?
diff --git a/tests/shoutputs/cif_split_002.out b/tests/shoutputs/cif_split_002.out
index 7ec1904..8c823d8 100644
--- a/tests/shoutputs/cif_split_002.out
+++ b/tests/shoutputs/cif_split_002.out
@@ -1,4 +1,10 @@
+scripts/cif_split: -(8,19): WARNING, unallowed symbol in CIF comment.
+scripts/cif_split: -(9,8): WARNING, unallowed symbol in CIF comment.
+scripts/cif_split: -(9,14): WARNING, unallowed symbol in CIF comment.
+scripts/cif_split: -(9,26): WARNING, unallowed symbol in CIF comment.
+scripts/cif_split: -(9,44): WARNING, unallowed symbol in CIF comment.
 scripts/cif_split: -(705) data_2a: ERROR, tag _diffrn_radiation_type appears more than once.
 scripts/cif_split: -(706) data_2a: ERROR, tag _diffrn_radiation_source appears more than once.
 scripts/cif_split: -(707) data_2a: ERROR, tag _diffrn_radiation_monochromator appears more than once.
+scripts/cif_split: -: NOTE, 5 WARNING(s) encountered while parsing the file.
 scripts/cif_split: -: ERROR, 3 ERROR(s) encountered while parsing the file -- die on ERROR(s) requested.
diff --git a/tests/shoutputs/cif_tcod_tree_007.out b/tests/shoutputs/cif_tcod_tree_007.out
new file mode 100644
index 0000000..5b2caf6
--- /dev/null
+++ b/tests/shoutputs/cif_tcod_tree_007.out
@@ -0,0 +1,109 @@
++ tree ./tmp-cif_tcod_tree_007
++ cat ./tmp-cif_tcod_tree_007/main.sh
++ set +x
+./tmp-cif_tcod_tree_007
+├── 0
+│   ├── aiida.err
+│   ├── aiida.in
+│   ├── aiida.out
+│   └── _aiidasubmit.sh
+├── 1
+│   ├── aiida.err
+│   ├── aiida.in
+│   ├── aiida.out
+│   └── _aiidasubmit.sh
+├── 2
+│   ├── aiida.err
+│   ├── aiida.in
+│   ├── aiida.out
+│   ├── _aiidasubmit.sh
+│   └── split
+│       ├── 1000000_molecule_0.cif
+│       └── 1000000_molecule_1.cif
+├── aiida
+│   ├── data.json
+│   ├── metadata.json
+│   └── nodes
+│       ├── 04
+│       │   └── 5a
+│       │       └── e3a9-0c2d-413f-b0f0-76d2af9cd73b
+│       │           └── raw_input
+│       │               ├── aiida.in
+│       │               └── _aiidasubmit.sh
+│       ├── 09
+│       │   ├── 3c
+│       │   │   └── bbf4-9880-4989-b9b2-5416cded56bb
+│       │   │       └── path
+│       │   │           ├── aiida.err
+│       │   │           ├── aiida.out
+│       │   │           ├── _scheduler-stderr.txt
+│       │   │           └── _scheduler-stdout.txt
+│       │   └── f3
+│       │       └── e62f-491a-4290-82c8-01d231016fde
+│       │           └── path
+│       │               └── tmpTELWn8
+│       ├── 24
+│       │   ├── b3
+│       │   │   └── 76f7-5673-4822-8438-7740b7b9e935
+│       │   │       └── path
+│       │   │           └── 1000000_molecule_0.cif
+│       │   └── e1
+│       │       └── 40e8-a41e-42c7-bea9-70d00167068d
+│       │           └── raw_input
+│       │               ├── aiida.in
+│       │               └── _aiidasubmit.sh
+│       ├── 3e
+│       │   └── 35
+│       │       └── c0b6-c486-4172-8f40-7e9391f89b02
+│       │           └── raw_input
+│       │               ├── aiida.in
+│       │               └── _aiidasubmit.sh
+│       ├── 4f
+│       │   └── 9b
+│       │       └── 2efe-be20-4098-b6a5-1d9d7beb43c3
+│       │           └── path
+│       │               ├── aiida.err
+│       │               ├── aiida.out
+│       │               ├── _scheduler-stderr.txt
+│       │               └── _scheduler-stdout.txt
+│       ├── 56
+│       │   └── 93
+│       │       └── da76-6ba4-4bdf-9d4e-bf016fb52e61
+│       │           └── path
+│       │               └── aiida.out
+│       ├── 67
+│       │   └── 49
+│       │       └── e87e-41c4-41a3-846f-fb3e8f9bb77b
+│       │           └── path
+│       │               ├── aiida.err
+│       │               ├── aiida.out
+│       │               ├── _scheduler-stderr.txt
+│       │               ├── _scheduler-stdout.txt
+│       │               └── split
+│       │                   ├── 1000000_molecule_0.cif
+│       │                   └── 1000000_molecule_1.cif
+│       ├── 87
+│       │   └── e7
+│       │       └── b703-837e-4e80-b7eb-cfcf81148e9e
+│       │           └── path
+│       │               └── aiida.out
+│       └── a5
+│           └── 22
+│               └── 4652-5800-47a7-a212-5b629040fe50
+│                   └── path
+│                       └── 1000000_molecule_1.cif
+└── main.sh
+
+49 directories, 42 files
+#!/bin/bash
+
+verdi import aiida
+(
+    cd 0; _aiidasubmit.sh
+)
+(
+    cd 1; _aiidasubmit.sh
+)
+(
+    cd 2; _aiidasubmit.sh
+)
diff --git a/tests/shoutputs/neighbour_list_from_mol_002.out b/tests/shoutputs/neighbour_list_from_mol_002.out
new file mode 100644
index 0000000..715b752
--- /dev/null
+++ b/tests/shoutputs/neighbour_list_from_mol_002.out
@@ -0,0 +1,181 @@
+{
+   "atoms" => [
+      #   0:
+      {
+         "assembly" => ".",
+         "atom_site_occupancy" => "1",
+         "attached_hydrogens" => "1",
+         "cell_label" => "C1",
+         "chemical_type" => "C",
+         "group" => ".",
+         "index" => "0",
+         "name" => "C1",
+         "planarity" => "0",
+         "site_label" => "C1",
+         "symop" => [
+            #   0:
+            [ "1", "0", "0", "0" ],
+            #   1:
+            [ "0", "1", "0", "0" ],
+            #   2:
+            [ "0", "0", "1", "0" ],
+            #   3:
+            [ "0", "0", "0", "1" ],
+         ],
+         "symop_id" => "1",
+         "translation" => [ "0", "0", "0" ],
+         "translation_id" => "555",
+         "unity_matrix_applied" => "1",
+      },
+      #   1:
+      {
+         "assembly" => ".",
+         "atom_site_occupancy" => "1",
+         "attached_hydrogens" => "1",
+         "cell_label" => "C2",
+         "chemical_type" => "C",
+         "group" => ".",
+         "index" => "1",
+         "name" => "C2",
+         "planarity" => "0",
+         "site_label" => "C2",
+         "symop" => [
+            #   0:
+            [ "1", "0", "0", "0" ],
+            #   1:
+            [ "0", "1", "0", "0" ],
+            #   2:
+            [ "0", "0", "1", "0" ],
+            #   3:
+            [ "0", "0", "0", "1" ],
+         ],
+         "symop_id" => "1",
+         "translation" => [ "0", "0", "0" ],
+         "translation_id" => "555",
+         "unity_matrix_applied" => "1",
+      },
+      #   2:
+      {
+         "assembly" => ".",
+         "atom_site_occupancy" => "1",
+         "attached_hydrogens" => "1",
+         "cell_label" => "C3",
+         "chemical_type" => "C",
+         "group" => ".",
+         "index" => "2",
+         "name" => "C3",
+         "planarity" => "0",
+         "site_label" => "C3",
+         "symop" => [
+            #   0:
+            [ "1", "0", "0", "0" ],
+            #   1:
+            [ "0", "1", "0", "0" ],
+            #   2:
+            [ "0", "0", "1", "0" ],
+            #   3:
+            [ "0", "0", "0", "1" ],
+         ],
+         "symop_id" => "1",
+         "translation" => [ "0", "0", "0" ],
+         "translation_id" => "555",
+         "unity_matrix_applied" => "1",
+      },
+      #   3:
+      {
+         "assembly" => ".",
+         "atom_site_occupancy" => "1",
+         "attached_hydrogens" => "1",
+         "cell_label" => "C4",
+         "chemical_type" => "C",
+         "group" => ".",
+         "index" => "3",
+         "name" => "C4",
+         "planarity" => "0",
+         "site_label" => "C4",
+         "symop" => [
+            #   0:
+            [ "1", "0", "0", "0" ],
+            #   1:
+            [ "0", "1", "0", "0" ],
+            #   2:
+            [ "0", "0", "1", "0" ],
+            #   3:
+            [ "0", "0", "0", "1" ],
+         ],
+         "symop_id" => "1",
+         "translation" => [ "0", "0", "0" ],
+         "translation_id" => "555",
+         "unity_matrix_applied" => "1",
+      },
+      #   4:
+      {
+         "assembly" => ".",
+         "atom_site_occupancy" => "1",
+         "attached_hydrogens" => "1",
+         "cell_label" => "C5",
+         "chemical_type" => "C",
+         "group" => ".",
+         "index" => "4",
+         "name" => "C5",
+         "planarity" => "0",
+         "site_label" => "C5",
+         "symop" => [
+            #   0:
+            [ "1", "0", "0", "0" ],
+            #   1:
+            [ "0", "1", "0", "0" ],
+            #   2:
+            [ "0", "0", "1", "0" ],
+            #   3:
+            [ "0", "0", "0", "1" ],
+         ],
+         "symop_id" => "1",
+         "translation" => [ "0", "0", "0" ],
+         "translation_id" => "555",
+         "unity_matrix_applied" => "1",
+      },
+      #   5:
+      {
+         "assembly" => ".",
+         "atom_site_occupancy" => "1",
+         "attached_hydrogens" => "1",
+         "cell_label" => "C6",
+         "chemical_type" => "C",
+         "group" => ".",
+         "index" => "5",
+         "name" => "C6",
+         "planarity" => "0",
+         "site_label" => "C6",
+         "symop" => [
+            #   0:
+            [ "1", "0", "0", "0" ],
+            #   1:
+            [ "0", "1", "0", "0" ],
+            #   2:
+            [ "0", "0", "1", "0" ],
+            #   3:
+            [ "0", "0", "0", "1" ],
+         ],
+         "symop_id" => "1",
+         "translation" => [ "0", "0", "0" ],
+         "translation_id" => "555",
+         "unity_matrix_applied" => "1",
+      },
+   ],
+   "neighbours" => [
+      #   0:
+      [ "1", "5" ],
+      #   1:
+      [ "0", "2" ],
+      #   2:
+      [ "1", "3" ],
+      #   3:
+      [ "2", "4" ],
+      #   4:
+      [ "3", "5" ],
+      #   5:
+      [ "4", "0" ],
+   ],
+},
+#-------------------------
diff --git a/tests/shtests/check_spacegroups_001.sh b/tests/shtests/check_spacegroups_001.sh
index 8623800..91d0ff0 100755
--- a/tests/shtests/check_spacegroups_001.sh
+++ b/tests/shtests/check_spacegroups_001.sh
@@ -14,7 +14,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-21 10:31:14 +0200 (Tue, 21 Feb 2017) $ 
 #$Revision: 4960 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/check_spacegroups_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/check_spacegroups_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Check whether COD::Spacegroups::Builder.pm correctly builds all space groups.
diff --git a/tests/shtests/check_spacegroups_002.sh b/tests/shtests/check_spacegroups_002.sh
index 13500c7..ff45f11 100755
--- a/tests/shtests/check_spacegroups_002.sh
+++ b/tests/shtests/check_spacegroups_002.sh
@@ -14,7 +14,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-21 10:31:14 +0200 (Tue, 21 Feb 2017) $ 
 #$Revision: 4960 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/check_spacegroups_002.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/check_spacegroups_002.sh $
 #------------------------------------------------------------------------------
 #*
 #  Check whether COD::Spacegroups::Builder.pm correctly builds all space groups.
diff --git a/tests/shtests/cif_disorder_groups_001.sh b/tests/shtests/cif_disorder_groups_001.sh
index 377a559..dd6776b 100755
--- a/tests/shtests/cif_disorder_groups_001.sh
+++ b/tests/shtests/cif_disorder_groups_001.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-24 18:38:55 +0200 (Fri, 24 Feb 2017) $
 #$Revision: 4974 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_disorder_groups_002.sh b/tests/shtests/cif_disorder_groups_002.sh
index 8141788..7524f77 100755
--- a/tests/shtests/cif_disorder_groups_002.sh
+++ b/tests/shtests/cif_disorder_groups_002.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-26 23:04:27 +0200 (Sun, 26 Feb 2017) $
 #$Revision: 4975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_002.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_002.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_disorder_groups_003.sh b/tests/shtests/cif_disorder_groups_003.sh
index 3c0aa34..07af63c 100755
--- a/tests/shtests/cif_disorder_groups_003.sh
+++ b/tests/shtests/cif_disorder_groups_003.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-26 23:04:27 +0200 (Sun, 26 Feb 2017) $
 #$Revision: 4975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_003.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_003.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_disorder_groups_004.sh b/tests/shtests/cif_disorder_groups_004.sh
index 2265eae..a138041 100755
--- a/tests/shtests/cif_disorder_groups_004.sh
+++ b/tests/shtests/cif_disorder_groups_004.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-26 23:04:27 +0200 (Sun, 26 Feb 2017) $
 #$Revision: 4975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_004.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_004.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_disorder_groups_005.sh b/tests/shtests/cif_disorder_groups_005.sh
index b5182a7..f5375ba 100755
--- a/tests/shtests/cif_disorder_groups_005.sh
+++ b/tests/shtests/cif_disorder_groups_005.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-26 23:04:27 +0200 (Sun, 26 Feb 2017) $ 
 #$Revision: 4975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_005.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_005.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_disorder_groups_006.sh b/tests/shtests/cif_disorder_groups_006.sh
index e69e849..0cd0991 100755
--- a/tests/shtests/cif_disorder_groups_006.sh
+++ b/tests/shtests/cif_disorder_groups_006.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-26 23:04:27 +0200 (Sun, 26 Feb 2017) $ 
 #$Revision: 4975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_006.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_006.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_disorder_groups_007.sh b/tests/shtests/cif_disorder_groups_007.sh
index a8631e2..59be8a0 100755
--- a/tests/shtests/cif_disorder_groups_007.sh
+++ b/tests/shtests/cif_disorder_groups_007.sh
@@ -9,7 +9,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-02-26 23:04:27 +0200 (Sun, 26 Feb 2017) $ 
 #$Revision: 4975 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/cif_disorder_groups_007.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_disorder_groups_007.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit test for the COD::CIF::Data::AtomList module subroutines that deal
diff --git a/tests/shtests/cif_print_loop_001.sh b/tests/shtests/cif_print_loop_001.sh
new file mode 100755
index 0000000..7fcecaf
--- /dev/null
+++ b/tests/shtests/cif_print_loop_001.sh
@@ -0,0 +1,42 @@
+#! /bin/sh
+
+#BEGIN DEPEND------------------------------------------------------------------
+INPUT_MODULES='src/lib/perl5/COD/CIF/Tags/Print.pm'
+#END DEPEND--------------------------------------------------------------------
+
+perl <<'END_SCRIPT'
+#------------------------------------------------------------------------------
+#$Author: andrius $
+#$Date: 2017-10-25 17:54:33 +0300 (Wed, 25 Oct 2017) $ 
+#$Revision: 5655 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_print_loop_001.sh $
+#------------------------------------------------------------------------------
+#*
+#  Unit test for the COD::CIF::Tags::Print::print_loop() subroutine.
+#**
+
+use strict;
+use warnings;
+
+use COD::CIF::Tags::Print;
+
+# Test the way a properly formed loop is printed
+my $data_block =
+{
+  'tags'   =>   [ '_a', '_b', '_c' ],
+  'loops'  => [ [ '_a', '_b', '_c' ] ],
+  'inloop' => {
+        '_a' => 0,
+        '_b' => 0,
+        '_c' => 0,
+  },
+  'values' => {
+        '_a' => [ 5, 4, 3, 2, 1 ],
+        '_b' => [ 1, 2, 3, 4, 5 ],
+        '_c' => [ 3, 3, 2, 3, 3 ],
+   }
+};
+
+COD::CIF::Tags::Print::print_loop( '_a', 0, $data_block );
+
+END_SCRIPT
diff --git a/tests/shtests/cif_print_loop_002.sh b/tests/shtests/cif_print_loop_002.sh
new file mode 100755
index 0000000..d9d3e32
--- /dev/null
+++ b/tests/shtests/cif_print_loop_002.sh
@@ -0,0 +1,48 @@
+#! /bin/sh
+
+#BEGIN DEPEND------------------------------------------------------------------
+INPUT_MODULES='src/lib/perl5/COD/CIF/Tags/Print.pm'
+#END DEPEND--------------------------------------------------------------------
+
+perl <<'END_SCRIPT'
+#------------------------------------------------------------------------------
+#$Author: andrius $
+#$Date: 2017-10-26 10:16:10 +0300 (Thu, 26 Oct 2017) $ 
+#$Revision: 5666 $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/cif_print_loop_002.sh $
+#------------------------------------------------------------------------------
+#*
+#  Unit test for the COD::CIF::Tags::Print::print_loop() subroutine.
+#**
+
+use strict;
+use warnings;
+
+use COD::CIF::Tags::Print;
+
+# Test the way a malformed data block loop with differing number of data values
+# in the same loop is handled.
+my $data_block =
+{
+  'tags'   =>   [ '_a', '_b', '_c', '_d', '_e' ],
+  'loops'  => [ [ '_a', '_b', '_c' ], [ '_d', '_e' ] ],
+  'inloop' => {
+        '_a' => 0,
+        '_b' => 0,
+        '_c' => 0,
+        '_d' => 1,
+        '_e' => 1,
+  },
+  'values' => {
+        '_a' => [ 1, 4, 5 ],
+        '_b' => [ 1, 2, 3, 4, 5 ],
+        '_c' => [ 2 ],
+        '_d' => [],
+        '_e' => [],
+   }
+};
+
+COD::CIF::Tags::Print::print_loop( '_a', 0, $data_block );
+COD::CIF::Tags::Print::print_loop( '_d', 1, $data_block );
+
+END_SCRIPT
diff --git a/tests/shtests/cif_split_primitive_001.sh b/tests/shtests/cif_split_primitive_001.sh
index 41db385..b9762ee 100755
--- a/tests/shtests/cif_split_primitive_001.sh
+++ b/tests/shtests/cif_split_primitive_001.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_002.sh b/tests/shtests/cif_split_primitive_002.sh
index b500c0b..b529116 100755
--- a/tests/shtests/cif_split_primitive_002.sh
+++ b/tests/shtests/cif_split_primitive_002.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_003.sh b/tests/shtests/cif_split_primitive_003.sh
index 655f643..bdd49cc 100755
--- a/tests/shtests/cif_split_primitive_003.sh
+++ b/tests/shtests/cif_split_primitive_003.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_004.sh b/tests/shtests/cif_split_primitive_004.sh
index de49d10..3fcf0fe 100755
--- a/tests/shtests/cif_split_primitive_004.sh
+++ b/tests/shtests/cif_split_primitive_004.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_005.sh b/tests/shtests/cif_split_primitive_005.sh
index d82cdc5..b03b33c 100755
--- a/tests/shtests/cif_split_primitive_005.sh
+++ b/tests/shtests/cif_split_primitive_005.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_006.sh b/tests/shtests/cif_split_primitive_006.sh
index 595dbc4..7521040 100755
--- a/tests/shtests/cif_split_primitive_006.sh
+++ b/tests/shtests/cif_split_primitive_006.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_007.sh b/tests/shtests/cif_split_primitive_007.sh
index 1f5e6a0..5c6ed01 100755
--- a/tests/shtests/cif_split_primitive_007.sh
+++ b/tests/shtests/cif_split_primitive_007.sh
@@ -32,6 +32,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_008.sh b/tests/shtests/cif_split_primitive_008.sh
index b789b86..a02b327 100755
--- a/tests/shtests/cif_split_primitive_008.sh
+++ b/tests/shtests/cif_split_primitive_008.sh
@@ -36,6 +36,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_009.sh b/tests/shtests/cif_split_primitive_009.sh
index 14d383b..0b93be4 100755
--- a/tests/shtests/cif_split_primitive_009.sh
+++ b/tests/shtests/cif_split_primitive_009.sh
@@ -36,6 +36,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_split_primitive_010.sh b/tests/shtests/cif_split_primitive_010.sh
index 7004dc4..ed55395 100755
--- a/tests/shtests/cif_split_primitive_010.sh
+++ b/tests/shtests/cif_split_primitive_010.sh
@@ -36,6 +36,6 @@ cp ${cif_split} ${TMP_DIR}
     rm ${script_base}
 )
 
-diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR}
+diff --exclude .svn -rs tests/outputs/split/${BASENAME} ${TMP_DIR} || true
 
 rm -rf ${TMP_DIR}
diff --git a/tests/shtests/cif_tcod_tree_007.sh b/tests/shtests/cif_tcod_tree_007.sh
new file mode 100755
index 0000000..cb313dc
--- /dev/null
+++ b/tests/shtests/cif_tcod_tree_007.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -ue
+
+#BEGIN DEPEND------------------------------------------------------------------
+INPUT_SCRIPT=scripts/cif_tcod_tree
+INPUT_CIF=tests/inputs/aiida_exported_gzipped.cif
+#END DEPEND--------------------------------------------------------------------
+
+cif_tcod_tree=${INPUT_SCRIPT}
+
+CIF=${INPUT_CIF}
+
+BASENAME="`basename $0 .sh`"
+
+TMP_DIR="./tmp-${BASENAME}"
+
+mkdir ${TMP_DIR}
+
+perl -lpe 's/(_audit_creation_method)/loop_ $1 "AiiDA version 0.9.1"/' ${CIF} \
+    | ${cif_tcod_tree} --out ${TMP_DIR} || true
+
+set -x
+
+tree ${TMP_DIR}
+cat ${TMP_DIR}/main.sh || true
+
+set +x
+
+rm -rf ${TMP_DIR}
diff --git a/tests/shtests/neighbour_list_from_mol_002.chk b/tests/shtests/neighbour_list_from_mol_002.chk
new file mode 100755
index 0000000..2530a5a
--- /dev/null
+++ b/tests/shtests/neighbour_list_from_mol_002.chk
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if ! perl -MChemistry::Mol -MChemistry::File::SMILES -e '1' 2>/dev/null
+then
+    echo Test skipped - no Chemistry::Mol and/or Chemistry::File::SMILES
+    exit 1
+fi
diff --git a/tests/shtests/neighbour_list_from_mol_002.sh b/tests/shtests/neighbour_list_from_mol_002.sh
new file mode 100755
index 0000000..7627a58
--- /dev/null
+++ b/tests/shtests/neighbour_list_from_mol_002.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+#BEGIN DEPEND------------------------------------------------------------------
+INPUT_MODULES='src/lib/perl5/COD/Escape.pm \
+               src/lib/perl5/COD/AtomNeighbours.pm \
+               src/lib/perl5/COD/Serialise.pm'
+#END DEPEND--------------------------------------------------------------------
+
+perl <<'END_SCRIPT'
+
+use strict;
+use warnings;
+use Chemistry::Mol;
+use Chemistry::File::SMILES;
+use COD::AtomNeighbours qw( neighbour_list_from_chemistry_mol );
+use COD::Serialise qw( serialiseRef );
+
+my $mol = Chemistry::Mol->parse( "c1ccccc1", format => "smiles" );
+serialiseRef( neighbour_list_from_chemistry_mol( $mol ) );
+
+END_SCRIPT
diff --git a/tests/shtests/symop_algebra_001.sh b/tests/shtests/symop_algebra_001.sh
index 6b11ef3..e91d23f 100755
--- a/tests/shtests/symop_algebra_001.sh
+++ b/tests/shtests/symop_algebra_001.sh
@@ -10,7 +10,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-01-24 16:48:31 +0200 (Tue, 24 Jan 2017) $ 
 #$Revision: 4795 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/symop_algebra_001.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/symop_algebra_001.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit-test the Spacegroups::Symop::Algebra module
diff --git a/tests/shtests/symop_algebra_002.sh b/tests/shtests/symop_algebra_002.sh
index 2b0d171..2ec393e 100755
--- a/tests/shtests/symop_algebra_002.sh
+++ b/tests/shtests/symop_algebra_002.sh
@@ -10,7 +10,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-01-24 16:48:31 +0200 (Tue, 24 Jan 2017) $ 
 #$Revision: 4795 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/symop_algebra_002.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/symop_algebra_002.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit-test the Spacegroups::Symop::Algebra module
diff --git a/tests/shtests/symop_algebra_003.sh b/tests/shtests/symop_algebra_003.sh
index e31139d..989788e 100755
--- a/tests/shtests/symop_algebra_003.sh
+++ b/tests/shtests/symop_algebra_003.sh
@@ -10,7 +10,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-01-24 16:48:31 +0200 (Tue, 24 Jan 2017) $ 
 #$Revision: 4795 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/symop_algebra_003.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/symop_algebra_003.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit-test the Spacegroups::Symop::Algebra module
diff --git a/tests/shtests/symop_algebra_004.sh b/tests/shtests/symop_algebra_004.sh
index 5e75dc0..7e0eb42 100755
--- a/tests/shtests/symop_algebra_004.sh
+++ b/tests/shtests/symop_algebra_004.sh
@@ -10,7 +10,7 @@ perl <<'END_SCRIPT'
 #$Author: antanas $
 #$Date: 2017-01-24 16:48:31 +0200 (Tue, 24 Jan 2017) $ 
 #$Revision: 4795 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tests/shtests/symop_algebra_004.sh $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tests/shtests/symop_algebra_004.sh $
 #------------------------------------------------------------------------------
 #*
 #  Unit-test the Spacegroups::Symop::Algebra module
diff --git a/tools/check_option_descriptions b/tools/check_option_descriptions
index d477677..ce7ebf9 100755
--- a/tools/check_option_descriptions
+++ b/tools/check_option_descriptions
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2016-01-19 00:30:36 +0200 (Tue, 19 Jan 2016) $
 #$Revision: 4539 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tools/check_option_descriptions $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tools/check_option_descriptions $
 #------------------------------------------------------------------------------
 #*
 # Parse the command line options from the provided script and its help in
diff --git a/tools/check_symop_canonicality b/tools/check_symop_canonicality
index a600982..a252e25 100755
--- a/tools/check_symop_canonicality
+++ b/tools/check_symop_canonicality
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-18 10:43:00 +0300 (Thu, 18 May 2017) $
 #$Revision: 5272 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tools/check_symop_canonicality $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tools/check_symop_canonicality $
 #------------------------------------------------------------------------------
 #*
 # Check symop string in COD::Spacegroups::Lookup::COD for their canonicality.
diff --git a/tools/duplicate_space_groups b/tools/duplicate_space_groups
index 1837466..81fd5ed 100755
--- a/tools/duplicate_space_groups
+++ b/tools/duplicate_space_groups
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: antanas $
 #$Date: 2017-05-17 17:28:57 +0300 (Wed, 17 May 2017) $
 #$Revision: 5269 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tools/duplicate_space_groups $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tools/duplicate_space_groups $
 #------------------------------------------------------------------------------
 #*
 # Find and print out duplicated space group definitions in COD::Spacegroups::Lookup::COD.
diff --git a/tools/help2man b/tools/help2man
index b888840..afd4da1 100755
--- a/tools/help2man
+++ b/tools/help2man
@@ -19,11 +19,14 @@ use File::Basename qw( basename );
 use COD::SOptions qw( getOptions );
 use COD::SUsage qw( usage options );
 
+my $name;
 my $bugs_url;
 my $bugs_email;
 
 my $format = 'man';
 
+my $read_stdin = 0;
+
 #* USAGE:
 #*     $0 --options script script*
 #*
@@ -37,6 +40,12 @@ my $format = 'man';
 #*     --mdwn, --markdown
 #*          Generate output in Markdown format.
 #*
+#*     --name
+#*          Name of the program.
+#*
+#*     --stdin, --read-stdin
+#*          Read help file from STDIN.
+#*
 #*     --bugs-url
 #*          Specify Web URL for bug reporting.
 #*
@@ -51,6 +60,9 @@ my $format = 'man';
     "--wiki"            => sub { $format = 'wiki' },
     "--mdwn,--markdown" => sub { $format = 'markdown' },
 
+    "--name" => \$name,
+    "--stdin,--read-stdin" => sub { $read_stdin = 1 },
+
     "--bugs-url"   => \$bugs_url,
     "--bugs-email" => \$bugs_email,
 
@@ -58,18 +70,24 @@ my $format = 'man';
     "--help,--usage" => sub { usage; exit }
 );
 
+ at ARGV = ( '-' ) unless @ARGV;
+
 for my $filename (@ARGV) {
-    my $name = basename( $filename );
+    $name = basename( $filename ) unless defined $name;
     my( $help, $errors );
-    do {
-        local *STDOUT;
-        local *STDERR;
-        local $0 = $name;
-        open( STDOUT, '>', \$help );
-        open( STDERR, '>', \$errors );
-        usage( $filename );
-    };
-    die $errors if $errors;
+    if( $read_stdin ) {
+        $help = join '', <>;
+    } else {
+        do {
+            local *STDOUT;
+            local *STDERR;
+            local $0 = $name;
+            open( STDOUT, '>', \$help );
+            open( STDERR, '>', \$errors );
+            usage( $filename );
+        };
+        die $errors if $errors;
+    }
 
     my @help = split( "\n", $help );
 
@@ -174,7 +192,7 @@ for my $filename (@ARGV) {
     }
 
     my $head    = join "\n", @head;
-    my $usage   = join "\n", @usage;
+    my $usage   = join "\n\n", @usage;
 
     my $head_first_line;
     if( $head ) {
diff --git a/tools/mkperldepend b/tools/mkperldepend
index d63f553..2ed77b0 100755
--- a/tools/mkperldepend
+++ b/tools/mkperldepend
@@ -6,7 +6,7 @@ eval 'exec perl -x $0 ${1+"$@"}'
 #$Author: andrius $
 #$Date: 2017-05-15 11:15:53 +0300 (Mon, 15 May 2017) $
 #$Revision: 5250 $
-#$URL: svn://www.crystallography.net/cod-tools/tags/v2.0/tools/mkperldepend $
+#$URL: svn://www.crystallography.net/cod-tools/tags/v2.1/tools/mkperldepend $
 #------------------------------------------------------------------------------
 
 use strict;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cod-tools.git



More information about the debian-science-commits mailing list