I'm a little uncomfortable with this.  Perhaps what you're doing here should be moved to a function inside dict_header.F90?  I'd prefer if ElemKeyValueII isn't accessed outside of dict_header, and developers don't need to remember to deallocate the linked list - for the future it's all self-contained in dict_header.  I realize something similar is also done in prepare_universes in initialize.F90 (and I'm not immediately sure if/how I would want to change it there), so it's probably fine to leave this as-is for now.