[occ_merge $sites [occ_merge_radius !E]]…

occ_merge rewrites the site occupancy of the sites defined in $sites in terms of their fractional atomic coordinates (Favre-Nicolin and R. Cerny 2002). This is useful during structure solution for merging ocathedra or other types of defined rigid bodies. It is also useful for identifying special positions as seen in the example PBSO4-DECOMPOSE.INP.

In the present implementation $sites are thought of as spheres with a radius occ_merge_radius. When two atoms approach within a distance less than the sum of their respective occ_merge_radius’s then the spheres intersect. The occupancies of the sites, occ_xyz,  thus become:

occ_xyz = 1 / (1 + Intersection fractional volumes)

In this way any number of sites can be merged.

Sites appearing in $sites cannot have their occupancies refined. On termination of refinement the occ parameter values are updated with their corresponding occ_xyz.

[omit_hkls !E]

Allows for the filtering of hkls using the reserved parameter names of H, K, L and D_spacing. More than one omit_hkls can be defined, for example:

omit_hkls = If(And(H==0, K==0), 1, 0);

omit_hkls = And(H==0, K==1);

omit_hkls = D_spacing < 1;

[one_on_x_conv E]…

Defines em  in the convolution function:

(4 ½em e½) -½            for e = 0 to em

that is convoluted into phase peaks. emcan be greater than or less than zero. one_on_x_conv is used for example by the Divergence macro.


Instructs the minimization procedure to minimize on penalty functions only. The only_penalties switch is assumed when there are only penalties to minimize, i.e. when there are no observed data. Note, parameters that are not functions of penalties are not refined.

[out_A_matrix $file]

[A_matrix_prm_filter $filter]

out_A_matrix outputs the least squares A matrix to the file $file; used in the Out_for_cf macro. Output can be limited by using A_matrix_prm_filter, here’s an example for outputting A matrix elements corresponding to parameters with names starting with ‘q’:

out_A_matrix file.a

A_matrix_prm_filter q*

[out $file [append] ]…


[out_eqn !E]

[out_fmt $c_fmt_string]

[out_fmt_err $c_fmt_string]…

Used for writing parameter details to a file. The details are appended to $file when append is defined. out_eqn defines the equation or parameter to be written to $file using the out_fmt. $c_fmt_string describes a format string in c syntax containing a single format specified for a double precision number. out_fmt_err defines the $c_fmt_string used for formatting the error of eqn.

Both out_fmt and out_fmt_err requires an out_eqn definition. out_fmt can be used without out_eqn for writing strings. The order of out_fmt and out_fmt_err determines which is written to file first; thus if out_fmt_err is defined first then it will be operated on first.

The following example illustrates the use of out using the Out macros.


out “sample output.txt” append


CS_L(cs_l, 1000)

Out_String(“\tCrystallite Size Results:\n”)


Out(cs_l, “\tCrystallite Size (nm):\t%11.5f”,

          “\tError in Crystallite Size:\t%11.5f\n”)

out provides a means of defining individual refinement result files, see example OUT-1.INP.

[out_rwp $file]

Outputs a list of Rwp values encountered during refinement to the file $file.

[out_prm_vals_per_iteration $file]… | [out_prm_vals_on_convergence $file]…

[out_prm_vals_filter $filter]

Outputs refined parameter values per iteration or on convergence into the file $file. In the absence of out_prm_vals_filter then all parameters are outputted otherwise only parameters with names defined in out_prm_vals_filter are considered where $fliter can contain the wild card charatcter ’*’ and the negation character ’!’, for example:

out_prm_vals_per_iteration PRM_VALES.TXT

out_prm_vals_filter “* !u*”

More than one out_prm_vals_per_iteration/out_prm_vals_on_convergence can be defined outputting different parameters into different files depending on the corresponding out_prm_vals_filter.

Personal Tools