Authors: Debra Holland and Keith Watenpaugh
Contact: Keith Watenpaugh, Physical and Analytical Chemistry,
The Upjohn Company, Kalamazoo, MI 49007, USA
An existing item can be changed or deleted from a logical record. Similarly, a non-existent item can be added to a logical record.
To delete an item from all logical records of a certain type, only the record type and item number need to be given. A delete request is described using the delitm line. To add an item, the record type, item number and initial value need to be supplied. An addition request is described using the additm line.
An item's value for certain logical records can be changed by specifying the logical record number, the ID of the item to be changed and the new value to replace the existing item value. In addition, a condition can be associated with each of the requested changes such that the change is made only if the condition is satisfied. A change request is described using the change line.
Editing Directory-Driven Records
If the record to be edited is directory-driven (i.e. a record for which an ID is associated with each item in the record), an item belonging to that record is referenced using its appropriate ID number. For example, to add an F-obs value to the lrrefl: record, the item field on the additm line would contain a 1304 value.
Editing Non-Directory Records
If the record to be edited is not directory-driven (i.e. a record for which items are associated with fixed positions), an item belonging to that record is referred to using its appropriate sequence number. It is the responsibility of the program to decide if a given record is directory-driven or not. For example, if the centric/acentric indicator (second item) of the first symmetry record (record 5) is to be changed from a 0 to a 1 then the change line would look like: change 5 2 1 packet 1 1.
Description of Conditional
A conditional expression can be associated with any of the change requests (described by fields 4-6) and can take one of two forms:
(1) The change may be contingent upon a value of that same record; the conditional may involve another item of the record or, perhaps, the item whose value is being changed.
(2) The change may be applied to only certain packets belonging to a logical record by indicating a packet range in place of the conditional expression. In this case, the packet key word is used in field 4 of the change line.
The order of the edit lines (change, additm, delitm) is subject to restriction under only one condition: deletions for any given logical record must precede any other edits for that same record. Unpredictable results may occur if this rule is not followed.
Reads input archive bdf to be modified
Writes modified output archive bdf
change 20 1304 112.0 packet 2 2
change 8 11 O 11 C C
In this run, the value of 1304 (fobs) is changed to 112.0 for packet 2 of lrrefl:. Also, the scattering factor type (item 11) is changed to an 'O' (oxygen) for the lrscat: record currently associated with a scattering type of 'C' (carbon).
additm refl 1309 1.0
Here the scale group item 1309 is added to the lrrefl: record in the bdf and is being given an initial value of 1.0 .