This is an archive copy of the IUCr web site dating from 2008. For current content please visit
https://www.iucr.org.
IUCr Validation Procedures
PROC-NAME: ABSMU_01 (CM)
PURPOSE: To check that _exptl_absorpt_coefficient_mu value is
consistent with the cell contents.
PROCEDURE:
SUMMATION
(1) match _atom_type_symbol with element symbol
in table of atomic abs coefficients and
extract the AMU value for _diffrn_radiation_type.
[Attached are AMU values by Z for CuK\a, MoK\a and AgK\a]
>>> AMU for CuK\a in barn/atom (INT TAB VOL C P193-198)
[.0655, .194, .576, 1.66, 4.15, 8.99, 17.3, 30.4, 49.8, 76.8,
114., 161., 222., 297., 388., 497., 624., 772., 940., 1130.,
1350., 1590., 1850., 2130., 2460., 2800., 3140., 476., 547., 629.,
719., 819., 929., 1050., 1180., 1320., 1480., 1650., 1830., 2030.,
2230., 2460., 2700., 2950., 3230., 3520., 3820., 4150., 4500., 4860.,
5250., 5650., 6070., 6520., 7000., 7500., 8030., 8570., 9120., 9680.,
10200., 10800., 11000., 10500., 8470., 9770., 3470., 3670., 3930., 4100.,
4500., 4600., 4850., 5130., 5720., 5800., 6240., 6340., 6690., 6680.,
7540., 7980., 8430., 8810., 8650., 9720., 10200., 10200., 14300., 11800.,
10600., 11200.]
>>> AMU for MoK\a in barn/atom (INT TAB VOL C P193-198)
[.0624, .134, .228, .383, .661, 1.15, 1.96, 3.25, 5.15, 7.86,
11.6, 16.5, 22.9, 31., 41., 53.2, 67.8, 85.1, 105., 129.,
156., 186., 220., 258., 302., 349., 401., 457., 518., 586.,
660., 738., 822., 911., 1000., 1100., 1210., 1320., 1430., 247.,
273., 300., 332., 364., 399., 436., 476., 518., 563., 611.,
662., 716., 773., 834., 898., 965., 1040., 1110., 1190., 1270.,
1350., 1440., 1540., 1630., 1740., 1840., 1950., 2070., 2190., 2310.,
2440., 2580., 2720., 2860., 3010., 3160., 3310., 3480., 3650., 3820.,
4010., 4190., 4380., 4580., 4070., 3980., 3220., 3300., 5400., 3700.,
3870., 4030.]
>>> AMU for AgK\a in barn/atom (INT TAB VOL C P193-198)
[.0614, .128, .206, .313, .479, .745, 1.17, 1.82, 2.77, 4.12,
5.96, 8.42, 11.6, 15.6, 20.6, 26.7, 34.1, 42.9, 53.2, 65.2,
78.9, 94.7, 112., 133., 155., 180., 207., 238., 271., 307.,
346., 387., 433., 482., 535., 592., 652., 715., 780., 847.,
922., 1150., 1070., 192., 210., 230., 251., 273., 297., 323.,
350., 378., 409., 441., 475., 511., 549., 588., 630., 674.,
720., 768., 819., 872., 927., 985., 1040., 1110., 1170., 1240.,
1310., 1390., 1460., 1540., 1620., 1710., 1800., 1890., 1990., 2090.,
2190., 2290., 2400., 2510., 2620., 2730., 2850., 2980., 3110., 3230.,
3420., 3500.]
(2) SUM
TOTAMU = AMU * <number of each type in cell>
(3) CALCULATE
MU = 10 * TOTAMU / _cell_volume (ie. mu/mm)
RMU = _exptl_absorpt_coefficient_mu / MU
TEST
IF RMU is 0.90 <> 1.10 issue ALERT A
0.95 <> 1.05 issue ALERT B
0.99 <> 1.01 issue ALERT C
PROC-NAME: ABSTM_01 (TM)
PURPOSE: To check that _exptl_absorpt_correction_T_min is less
than _exptl_absorpt_correction_T_max.
PROCEDURE:
TEST
IF _exptl_absorpt_correction_T_min >
_exptl_absorpt_correction_T_min
issue ALERT
PROC-NAME: ABSTM_02 (TA)
PURPOSE: To check that _exptl_absorpt_correction_T_min and
_exptl_absorpt_correction_T_max are appropriate to the
_exptl_crystal_size_ and _exptl_absorpt_coefficient_mu
values.
PROCEDURE: DEFINE
mu is the value _exptl_absorpt_coefficient_mu
tmax is the distance _exptl_crystal_size_max
tmid is the distance _exptl_crystal_size_mid
tmin is the distance _exptl_crystal_size_min
trad is the radius _exptl_crystal_size_rad
Tmax(rep) is reported _exptl_absorpt_correction_T_max
Tmin(rep) is reported _exptl_absorpt_correction_T_min
TEST
IF _exptl_absorpt_correction_type ~ "psi-scan"
OR "empirical"
OR "multi-scan"
OR "refdelf"
IF mu * tmid > 3.0 exit with the ERROR message:
"crystal and compound unsuitable for non-numerical corrections"
IF _exptl_absorpt_correction_type ~ "psi-scan"
OR "empirical"
OR "multi-scan"
OR "refdelf"
OR "analytical"
OR "numerical"
OR "gaussian"
OR "none"
CALCULATE
Tmax(shape) = EXP(-tmin * mu)
Tmin(shape) = EXP(-temx * mu)
Tmin(shape)'= EXP(-tmax * mu)
where temx = MAX{tmid, MIN[(1.2*tmid), tmax]}
Tmax(angle) = 1.0
Tmin(angle) = TAB(_diffrn_reflns_theta_max, mu*tmid)
TAB=Lookup value for angular factor
mu*tmid | MoK\a | CuK\a |
0.0 | 1.00 | 1.00 |
0.5 | 1.01 | 1.05 |
1.0 | 1.04 | 1.15 |
1.5 | 1.09 | 1.25 |
2.0 | 1.15 | 1.5 |
2.5 | 1.25 | 1.9 |
3.0 | 1.40 | 2.5 |
Tmax(exp) = Tmax(shape) * Tmax(angle)
Tmin(exp) = Tmin(shape) * Tmin(angle)
Tmin(exp)'= Tmin(shape)'/ Tmin(angle)
RT(rep) = Tmax(rep) / Tmin(rep)
RT(exp) = Tmax(exp) / Tmin(exp)
RT(exp)'= Tmax(exp) / Tmin(exp)'
RR = RT(exp) / RT(rep)
RR'= RT(exp)'/ RT(rep)
TEST
IF _exptl_absorpt_correction_type ~ "refdelf"
OR "empirical"
OR "psi-scan"
OR "multi-scan"
THEN
IF RR' < 0.50 OR RR > 2.00 Issue ALERT A (1)
IF RR' < 0.75 OR RR > 1.50 Issue ALERT B (1)
IF RR' < 0.90 OR RR > 1.10 Issue ALERT C (1)
ELSE IF _exptl_absorpt_correction_type ~ "numerical"
OR "analytical"
OR "gaussian"
THEN
IF RR' < 0.50 OR RR > 2.00 Issue A General ALERT
IF RR' < 0.75 OR RR > 1.50 Issue A General ALERT
IF RR' < 0.90 OR RR > 1.10 Issue A General ALERT
ELSE IF _exptl_absorpt_correction_type ~ "none"
THEN
IF RT(exp) > 1.30 Issue ALERT A (2)
IF RT(exp) > 1.20 Issue ALERT B (2)
IF RT(exp) > 1.10 Issue ALERT C (2)
SCALE
IF _exptl_absorpt_correction_type ~ "refdelf"
OR "empirical"
OR "psi-scan"
OR "multi-scan"
AND IF Tmax(exp)/Tmax(rep) < 0.95 AND > 1.05
THEN
Tmax(scl) = Tmax(exp)
Tmin(scl) = Tmax(exp) / RT(rep)
[[ For printed publication the reported T values will be replaced by the
scaled T values. Since the ratio of scaled T's is identical to the
ratio of reported T values, the scaling does not imply a change to the
absorption corrections used in the study. It simply places the published
T values on an absolute scale with respect to the crystal dimensions
and the crystal mu value. In this way the T values conform to their
definition, and the reader is able to easily deduce the relative
importance of absorption corrections to the study.]]
PROC-NAME: ABSTY_01 (AR)
PURPOSE: To check that _exptl_absorpt_correction_type is one of the
recognised keywords.
CHECKLIST:- none (none applied)
- analytical (analytical from crystal shape)
- integration (integration from crystal shape)
- numerical (numerical from crystal shape)
- gaussian (Gaussian from crystal shape)
- empirical (psi-scan of intensities)
- psi-scan (psi-scan of intensities)
- multi-scan (symmetry-related measurements)
- refdelf (refined from delta-F)
- sphere (spherical)
- cylinder (cylindrical)
PROC-NAME: ABSTY_02
PURPOSE: To check that _exptl_absorpt_correction_type contains
some reference text.
PROCEDURE:
TEST
IF _exptl_absorpt_correction_type !~ 'Ref:'
OR _exptl_absorpt_process_details is missing
issue ALERT
PROC-NAME: CELLK_01 (CT)
PURPOSE: To check that _cell_measurement_temperature has the
correct units ie. Kelvin rather than Celsius.
PROCEDURE:
TEST
IF _cell_measurement_temperature < 25
issue ALERT C (may be in Celcius units).
PROC-NAME: CELLT_01 (CQ)
PURPOSE: To check that _cell_measurement_theta_min is less than
_cell_measurement_theta_max.
PROCEDURE:
TEST
IF _cell_measurement_theta_min >= _cell_measurement_theta_max
issue ALERT
PROC-NAME: CELLV_01 (VC)
PURPOSE: To check that the _cell_volume matches _cell_length_
and _cell_angle_ values.
PROCEDURE:
CALCULATE
S = { _cell_angle_alpha + _cell_angle_beta + _cell_angle_gamma } / 2
VOL = _cell_length_a * _cell_length_b * _cell_length_c * 2 *
SQRT { SIN [S] * SIN [S - _cell_angle_alpha ] * SIN [S - _cell_angle_beta ] * SIN [S - _cell_angle_gamma ] }
RV = _cell_volume / VOL
TEST
IF RV is 0.999 <> 1.001 issue ALERT
PROC-NAME: CELLV_02 (VS)
PURPOSE: To check that the _cell_volume su matches _cell_length_
and _cell_angle_ su values.
PROCEDURE:
CALCULATE
IF _symmetry_cell_setting == 'triclinic'
OR 'monoclinic'
OR 'orthorhombic'
{C1=1, C2=1, C3=1, C4=1}
IF _symmetry_cell_setting == 'tetragonal'
OR 'trigonal'
OR 'hexagonal'
{C1=2, C2=2, C3=1, C4=1}
IF _symmetry_cell_setting == 'rhombohedral'
{C1=3, C2=3, C3=3, C4=3}
IF _symmetry_cell_setting == 'cubic'
{C1=3, C2=3, C3=3, C4=1}
CSA = COSINE [ _cell_angle_alpha ]
CSB = COSINE [ _cell_angle_beta ]
CSG = COSINE [ _cell_angle_gamma ]
RVL = [ _cell_length_a * _cell_length_b * _cell_length_c / _cell_volume ]
SUVOL = _cell_volume * SQRT {
C1 * [ (su of a) / _cell_length_a ]**2 + C2 * [ (su of b) / _cell_length_b ]**2 +
C3 * [ (su of c) / _cell_length_c ]**2 + C4 * RVL**4 *
[ (su of alpha)**2 * (CSA-CSB*CSG)**2 +
(su of beta )**2 * (CSB-CSA*CSG)**2 +
(su of gamma)**2 * (CSG-CSB*CSA)**2 ]}
DSUV = |{su of cell volume} - SUVOL |
TEST
IF DSUV > 8 issue ALERT A
DSUV > 4 issue ALERT B
DSUV > 2 issue ALERT C
PROC-NAME: CELLZ_01 (ZF) Updated 10th May 1999
PURPOSE: To check that the cell contents calculated from
_cell_formula_sum and _cell_formula_units_Z
matches that from the atom sites present in the _atom_site_ list
and the _symmetry_ information.
PROCEDURE:
SUMMATION
(1) For each atomic species in the _cell_formula_sum string, calculate
the number of atoms in the cell using the _cell_formula_sum counts
and the _cell_formula_units_Z.
(2) For each atomic species in the _atom_site_ list, calculate, using the
_atom_site_occupancy value and the symmetry site-multiplicity value
(generated from NSYM), the number of atoms in the cell.
CALCULATE
DN = [cell contents from (1)] - [cell contents from (2)] for each atom type
SUMDN = sum of DN for ALL atom species
TEST
IF SUMDN > 0.05 issue the general warning message:
Difference between formula and atom_site contents detected.
AND THEN
IF SUMDN < 0.5 issue the message:
ALERT: Check formula stoichiometry or atom site occupancies.
IF DN for Hydrogen atoms > 0.5 issue the message:
WARNING: H atoms missing from atom site list. Is this intentional?
ELSE issue the message:
ALERT: Large difference may be due to symmetry error - see SYMMG tests.
PROC-NAME: CHEMM_01
PURPOSE: To check that the moiety formula follows the
CIF-dictionary definition.
PROCEDURE:
Read the formula according to the CIF rules and xcheck
against the sum formula.
PROC-NAME: CHEMM_02
PURPOSE: To xcheck the moiety formula with the geometry.
PROCEDURE:
Work out the geometry from the _atom_site_ data and xcheck
with the moiety formula.
PROC-NAME: CHEMS_01
PURPOSE: To check that the _chemical_formula_sum is properly
constructed. i.e. C H followed by alphabetic.
PROCEDURE:
Read the _chemical_formula_sum and check that the formula is
in the order, carbon count, hydrogen count followed by the
other elements in alphabetic order.
PROC-NAME: CHEMS_02
PURPOSE: To check that the stated category _publ_requested_category
is consistent with the chemical formula of the compound.
PROCEDURE:
- If compound contains no C then inorganic.
- If compound contains C but no H, probably inorganic.
- If compound contains C, H and a metal then metalorganic.
- If compound contains C, H and no metal then organic.
PROC-NAME: CHEMW_01 (WS)
PURPOSE: To check that the _chemical_formula_weight matches that
calculated for the _chemical_formula_sum .
PROCEDURE:
SUMMATION
(1) match the element symbols in _chemical_formula_sum
with values for _atom_type_symbol [NOT USED]
(2) multiply the number of atoms in _chemical_formula_sum
by the mass for this element
CALCULATE
RW = _chemical_formula_weight / SUM of (2)
DW = | _chemical_formula_weight - SUM of (2)|
TEST
IF RW
0.90 <> 1.10 issue ALERT Level A (> 10% difference)
0.95 <> 1.05 issue ALERT Level B (> 5% difference)
0.99 <> 1.01 issue ALERT Level C (> 1% difference)
IF DW > 1.0 and category is FO, FM, CO or CM
issue ALERT
PROC-NAME: CHEMW_02 (WM)
PURPOSE: To check that the _chemical_formula_weight matches that
calculated for the _chemical_formula_moiety .
PROCEDURE:
SUMMATION
(1) match the element symbols in _chemical_formula_moiety
with values for _atom_type_symbol
(2) multiply the number of atoms in _chemical_formula_moiety
by the mass for this element
CALCULATE
RM = _chemical_formula_weight / SUM of (2)
DM = | _chemical_formula_weight - SUM of (2)|
TEST
IF RM
0.90 <> 1.10 issue ALERT Level A (> 10% difference)
0.95 <> 1.05 issue ALERT Level B (> 5% difference)
0.99 <> 1.01 issue ALERT Level C (> 1% difference)
IF DM > 1.0 and category is FO, FM, CO or CM
issue ALERT
PROC-NAME: CHEMW_03 (WA) Updated 10th May 1999
PURPOSE: To check that the _chemical_formula_weight matches that
calculated for the atomic content data from the two lists, _atom_site_
and _atom_type_, using the number of formula units per cell and the
number of symmetry equivalent positions {NSYM from procedure SM}.
PROCEDURE:
SUMMATION
(1) Match the element symbol with the _atom_site_label in the
_atom_site_ list and sum the atomic weights for all sites,
multiplying by the _atom_site_occupancy value and the symmetry
site-multiplicity value (generated from NSYM).
(2) Additionally, if the _atom_type_ list is present in the CIF,
sum the atomic weights for the
_atom_type_number_in_cell for each element.
CALCULATE
XX = SUM of (1)[or (2)] / _cell_formula_units_Z
WT = XX * NSYM
RC = _chemical_formula_weight / WT
TEST
IF RC
0.90 <> 1.10 issue ALERT Level A (> 10% difference)
0.95 <> 1.05 issue ALERT Level B (> 5% difference)
0.99 <> 1.01 issue ALERT Level C (> 1% difference)
PROC-NAME: CRYSC_01 (CC)
PURPOSE: To check that _exptl_crystal_colour is consistent
with expected colour code combinations.
PROCEDURE:
TEST
IF _exptl_crystal_colour != (qualifier)(intensity)(base-colour)
issue ALERT B
where allowed values are:
(qualifier)
blank, metallic, lusterous, translucent, fluorescent, clear
(intensity)
blank, dark, light, intense, pale
(base-colour)
white, black, blue, violet, red, pink, yellow, gold, silver, bronze, grey,
orange, green, colourless, brown, purple
PROC-NAME: CRYSR_01
PURPOSE: To check that the radius of the crystal is given for a
spherical or cylinderical crystal.
PROCEDURE:
(1) If the _exptl_crystal_description contains either 'cylinder' or
'radius' check for a value of _exptl_crystal_size_rad
PROC-NAME: CRYSS_01 (CS)
PURPOSE: To check that _exptl_crystal_size_min value is consistent
with _exptl_crystal_size_mid and _exptl_crystal_size_max.
PROCEDURE:
TEST
IF _exptl_crystal_size_min > _exptl_crystal_size_mid
OR _exptl_crystal_size_mid > _exptl_crystal_size_max
issue ALERT B
PROC-NAME: CRYSS_02
PURPOSE: To check that ther values of _exptl_crystal_size_* are not
larger than expected.
PROCEDURE:
(1) IF _exptl_crystal_size_min > 0.6 && _diffrn_radiation_type != neutron
issue ALERT B
(2) IF _exptl_crystal_size_mid > 0.8 && _diffrn_radiation_type != neutron
issue ALERT B
(3) IF _exptl_crystal_size_max > 1.0 && _diffrn_radiation_type != neutron
issue ALERT B
PROC-NAME: DENSD_01 (DD)
PURPOSE: To check that the _exptl_crystal_density_diffrn matches
the _cell_volume and _chemical_formula_weight values
PROCEDURE:
CALCULATE
DEN = 1.66042 * _chemical_formula_weight * _cell_formula_units_Z / _cell_volume
RD = _exptl_crystal_density_diffrn / DEN
TEST
IF RD 0.9 <> 1.1 issue ALERT A
RD 0.95 <> 1.05 issue ALERT B
RD 0.99 <> 1.01 issue ALERT C
PROC-NAME: DENSM_01
PURPOSE: To check that the _exptl_crystal_density_meas is supplied
the _exptl_crystal_density_method is present.
PROCEDURE: IF _exptl_crystal_density_method != 'none'
OR != 'not measured'
OR != '?'
AND _exptl_crystal_density_meas == '?'
issue ALERT B
PROC-NAME: DENSX_01 (DX)
PURPOSE: To check that the _exptl_crystal_density_meas matches
the _exptl_crystal_density_diffrn.
PROCEDURE:
CALCULATE
RD = _exptl_crystal_density_diffrn / _exptl_crystal_density_meas
TEST
IF RD is 0.80 <> 1.20 issue ALERT A
RD is 0.90 <> 1.10 issue ALERT B
RD is 0.95 <> 1.05 issue ALERT C
PROC-NAME: DIFMN_01 (DN)
PURPOSE: To check that _refine_diff_density_min is less than
_refine_diff_density_max.
PROCEDURE:
TEST
IF _refine_diff_density_min >= _refine_diff_density_min
issue ALERT C
PROC-NAME: DIFMN_02 (DA)
PURPOSE: To check that _refine_diff_density_min is within expected limits.
PROCEDURE:
DMIN = _refine_diff_density_min
DTEST = 0.1 * ZMAX
TEST
IF DMIN < -DTEST*2 issue ALERT A
< -DTEST issue ALERT B
< -DTEST*.75 issue ALERT C
IF DMIN > 0.0 issue ALERT A
PROC-NAME: DIFMN_03
PURPOSE: To check that if _refine_diff_density_min is not within expected
limits that the adjacent site is identified.
PROCEDURE:
DMIN = _refine_diff_density_min
DTEST = 0.1 * ZMAX
TEST
IF DMIN < -DTEST*.75 atom site should be identified.
PROC-NAME: DIFMX_01 (DB)
PURPOSE: To check that _refine_diff_density_max is within expected limits.
PROCEDURE:
DMAX = _refine_diff_density_max
DTEST = 0.1 * ZMAX
TEST
IF DMAX > DTEST*2 issue ALERT A
> DTEST issue ALERT B
> DTEST*.75 issue ALERT C
IF DMAX < 0.0 issue ALERT A
PROC-NAME: DIFMX_02
PURPOSE: To check that if _refine_diff_density_max is not within expected
limits that the adjacent site is identified.
PROCEDURE:
DMAX = _refine_diff_density_max
DTEST = 0.1 * ZMAX
TEST
IF DMAX > DTEST*.75 atom site should be identified.
PROC-NAME: FCOEF_01
PURPOSE: Check that the value of _refine_ls_structure_factor_coef is
recognised.
CHECKLIST:
- Inet (net intensity)
- Fsqd (structure factor squared)
- F (structure factor magnitude)
PROC-NAME: FORMU_01 (WS)
PURPOSE: To check that the total sum formulae derived from the _chemical_formula_sum
_chemical_formula_moiety, _atom_site_ and _atom_type_ data all match.
PROCEDURE:
CALCULATE
(1). Sum formula derived from the _chemical_formula_moiety using the rules in the CIF-dictionary.
(2). Sum formula from the _atom_site_ items taking into account the _atom_site_occupancy and
symmetry as appropriate.
(3). Sum formula form the _atom_type_ items (if present).
TEST
IF atom count is > 0.01 atom, from that given by the _chemical_formula_sum
THEN issue a General ALERT
PROC-NAME: GOODF_01 (GF)
PURPOSE: To check that _refine_ls_goodness_of_fit_ref is
within expected limits.
PROCEDURE:
TEST
IF _refine_ls_goodness_of_fit_ref < 0.4 OR > 6.0 issue ALERT A
< 0.6 OR > 4.0 issue ALERT B
< 0.8 OR > 2.0 issue ALERT C
PROC-NAME: HYDTR_01
PURPOSE: Check that the value of _refine_ls_hydrogen_treatment
is recognised.
CHECKLIST:
- refall (all H parameters refined)
- refxyz (only H coordinates refined)
- refU (only H U values refined)
- noref (no H parameters refined)
- undef (H parameters not determined)
- constr (H sites constrained by attached site)
- none
- mixed
PROC-NAME: RADNT_01
PURPOSE: Check that the radiation type is recognised.
PROCEDURE:
(1). Check that the _diffrn_radiation_type contains one of the
following.
CHECKLIST:
- 'Cu K\a'
- 'Mo K\a'
- 'Ag K\a'
- neutron
- synchrotron
PROC-NAME: RADNW_01 (RW1)
PURPOSE: To check that the _diffrn_radiation_wavelength matches
the _diffrn_radiation_type.
PROCEDURE:
TEST
IF _diffrn_radiation_type == 'Cu K\a'
AND {
_diffrn_radiation_wavelength > 1.54180
OR _diffrn_radiation_wavelength < 1.54175 } issue ALERT C
IF _diffrn_radiation_type == 'Mo K\a'
AND {
_diffrn_radiation_wavelength > 0.71075
OR _diffrn_radiation_wavelength < 0.71065 } issue ALERT C
IF _diffrn_radiation_type == 'Ag K\a'
AND {
_diffrn_radiation_wavelength > 0.56085
OR _diffrn_radiation_wavelength < 0.56080 } issue ALERT C
PROC-NAME: REFLE_01 (TS)
PURPOSE: To check that _reflns_threshold_expression contains a
multiplier which is below the limit.
PROCEDURE:
TEST
IF _reflns_threshold_expression ~ 'I'
OR _reflns_threshold_expression ~ 'F^2^'
AND {
_reflns_threshold_expression >= '6' issue ALERT A
_reflns_threshold_expression >= '5' issue ALERT B
_reflns_threshold_expression >= '4' issue ALERT C}
OR
IF _reflns_threshold_expression ~ 'F'
AND {
_reflns_threshold_expression >= '12' issue ALERT A
_reflns_threshold_expression >= '10' issue ALERT B
_reflns_threshold_expression >= '8' issue ALERT C}
PROC-NAME: REFLG_01 (RO)
PURPOSE: To check that _reflns_number_gt less than or equal to
the _diffrn_reflns_number.
PROCEDURE:
TEST
IF _reflns_number_gt > _diffrn_reflns_number
issue ALERT
PROC-NAME: REFLL_01 (MI)
PURPOSE: To check that _diffrn_reflns_limit_ values are in the
correct order.
PROCEDURE:
TEST
IF _diffrn_reflns_limit_h_min >= _diffrn_reflns_limit_h_max
OR _diffrn_reflns_limit_k_min >= _diffrn_reflns_limit_k_max
OR _diffrn_reflns_limit_l_min >= _diffrn_reflns_limit_l_max
issue ALERT
PROC-NAME: REFLT_01 (RN)
PURPOSE: To check that _reflns_number_total is less than or equal to
the _diffrn_reflns_number.
PROCEDURE:
TEST
IF _reflns_number_total > _diffrn_reflns_number
issue ALERT
PROC-NAME: REFLT_02 (RT)
PURPOSE: To check that _reflns_number_total is greater than or equal to
the _reflns_number_gt.
PROCEDURE:
TEST
IF _reflns_number_total < _reflns_number_gt
issue ALERT
PROC-NAME: REFLT_03 (RV) Updated 10th May 1999
PURPOSE: To check that _reflns_number_total is close to that expected
for the cell volume, symmetry and theta max.
PROCEDURE:
CALCULATE
S = SIN [_diffrn_reflns_theta_max] / _diffrn_radiation_wavelength
NREF = The number of the reflections in the SYMMETRY-UNIQUE portion of
reciprocal space out to a maximum of S. All symmetry absent reflections
have been removed from this count.
NREFRAT = _reflns_number_total / NREF
NREF% = NREFRAT * 100
NFRIED = MAX ( _reflns_number_total - NREF, 0)
NFDRAT = NFRIED / NREF
TEST_1 :
In the calculation of NREF the maximum and minumum h,k,l indices in the
in the unque portion of reciprocal space are saved. These are compared
with the _diffrn_reflns_limit_ values in the CIF. If the estimated
maximum h,k,l values do not match either the CIF _max or the absolute
_min values a general ALERT is issued.
TEST_2 :
Test the completeness of the reflection count in the symmetry unique
portion of reciprocal space.
IF NREF%
< 85 issue ALERT A
< 90 issue ALERT B
< 95 issue ALERT C
If the space group is centrosymmetric also test if the expected
reflection count is exceeded (perhaps because symmetry absent or
equivalent reflections were mistakenly counted).
IF NREF%
> 115 issue ALERT A
> 110 issue ALERT B
> 105 issue ALERT C
TEST_3 :
For noncentrosymmetric structures, test if the _reflns_number_total count
includes any Friedel-related reflections, and estimate how may and what
fraction they are of the symmetry-unique count NREF. The test is divided
into "heavy atom" structures (heavier atoms than Si are present) and "light
atom" structures. The light-atom test includes the radiation used in order
to establish if anomalous scattering is sufficient to permit
the reliable determination of the absolute structure.
IF Z > Si .and. NFDRAT < 0.5 issue the message:
WARNING: Large fraction of Friedel related reflns needed to determine
absolute structure.
IF Z < Si .and. radiation is CuKa .and. NFDRAT < 0.5 issue the message:
WARNING: CuKa measured Friedel data can be used to determine absolute
structure in a light-atom study only if the Friedel fraction is large.
IF Z < Si .and. radiation is MoKa .and. NFDRAT > 0.05 issue the message:
ALERT: MoKa measured Friedel data cannot be used to determine absolute
structure in a light-atom study EXCEPT under VERY special conditions.
PROC-NAME: REFNR_01 (RP)
PURPOSE: To check that the ratio of _refine_ls_number_reflns and
_refine_ls_number_parameters is acceptable.
PROCEDURE:
CALCULATE
S = SIN [_diffrn_reflns_theta_max] / _diffrn_radiation_wavelength
RRRT = _refine_ls_number_reflns / _refine_number_total
RRTP = _refine_ls_number_reflns / _refine_ls_number_parameters
TEST
IF S < 0.59 OR RRRT < 0.95
IF CENTROSYMMETRIC
RRTP < 10 issue ALERT C
RRTP < 8 issue ALERT B
RRTP < 6 issue ALERT A
IF NON-CENTROSYMMETRIC
IF ZMAX > 18
RRTP < 10 issue ALERT C
RRTP < 8 issue ALERT B
RRTP < 6 issue ALERT A
ELSE
RRTP < 8 issue ALERT C
RRTP < 6 issue ALERT B
RRTP < 4 issue ALERT A
PROC-NAME: RFACG_01 (RR)
PURPOSE: To check that _refine_ls_R_factor_gt is within
expected limits.
PROCEDURE:
TEST
IF _refine_ls_R_factor_gt > 0.20 issue ALERT A
> 0.15 issue ALERT B
> 0.10 issue ALERT C
PROC-NAME: RFACR_01 (RW)
PURPOSE: To check that _refine_ls_wR_factor_ref is within
expected limits.
PROCEDURE:
TEST
IF _refine_ls_wR_factor_ref > 0.45 issue ALERT A
> 0.35 issue ALERT B
> 0.25 issue ALERT C
PROC-NAME: RINT_01 (RE)
PURPOSE: To check that _diffrn_reflns_av_R_equivalents is within
expected limits.
PROCEDURE:
TEST
IF _diffrn_reflns_av_R_equivalents > 0.20 issue ALERT A
> 0.15 issue ALERT B
> 0.10 issue ALERT C
< 0.0 issue ALERT A
PROC-NAME: SHFSU_01 (SS)
PURPOSE: To check that _refine_ls_shift/su_max is within expected limits.
PROCEDURE:
TEST
IF |_refine_ls_shift/su_max| > 0.20 issue ALERT A
> 0.10 issue ALERT B
> 0.05 issue ALERT C
PROC-NAME: STRDET_01
PURPOSE: To check that _refine_ls_abs_structure_details is present if
necessary.
PROCEDURE:
(1) For NON-CENTROSYMMETRIC structures only, _refine_ls_abs_structure_details
should be present if either Flack or Rogers parameter is given.
PROC-NAME: STRVAL_01 (FL)
PURPOSE: To check that _refine_ls_abs_structure_flack is within expected
limits.
PROCEDURE:
FLACK = _refine_ls_abs_structure_flack
SFLACK = su of _refine_ls_abs_structure_flack
TEST
IF FLACK > 0.7 issue ALERT C
Chirality of atom sites is inverted?
ELSE IF FLACK > 0.3 AND FLACK < 0.7 issue ALERT C
Flack test results are ambiguous.
ELSE IF FLACK < -0.2 issue ALERT C
Flack parameter is too small.
ELSE IF SFLACK > 0.5 issue ALERT C
Flack test results are meaningless.
PROC-NAME: STRVAL_02
PURPOSE: To check that _refine_ls_abs_structure_rogers is within expected
limits.
PROCEDURE:
ROGERS = _refine_ls_abs_structure_flack
TEST
IF ABS(ROGERS) > 1.2 issue ALERT C
Rogers value is too large
IF ROGERS > -0.5 AND ROGERS < 0.5 issue ALERT C
Rogers value is inconclusive
IF ROGERS < -1.2 issue ALERT C
Rogers value is too low
IF ROGERS < -0.5 issue ALERT C
Rogers value suggests reverse chirality
PROC-NAME: SYMMG_01 (SM)
PURPOSE: To check that the _symmetry_space_group_name_H-M value
is recognised as a legitimate symmetry symbol.
PROCEDURE:
(1) ATTACH list of H-M symbols, in all settings (e.g.
'symmap' STAR-format file of R Grosse-Kunstleve)
(2) SEARCH for a match of _symmetry_space_group_name_H-M
with an entry in the list.
(3) EXTRACT the space group number of the matched symbol.
(4) EXTRACT the number of symmetry equivalent positions.
TEST
IF (2) fails, issue ALERT that symbol unrecognied.
IF the number from (3) != _symmetry_space_group_number,
issue an ALERT of mismatch.
PROC-NAME: SYMMG_02
PURPOSE: To check that the _symmetry_space_group_name_H-M given is
consistent with the _symmetry_equiv_pos_as_xyz if given.
PROCEDURE:
(1). Search the symmap file to produce a Hall symbol from the
H-M symbol. Generate the xyz from this and convert back into
a H-M symbol via the Hall symbol and symmap file.
(2). Generate a H-M symbol from the xyz via the Hall symbol and
symmap file.
(3). xcheck the H-M symbols generated from (1) and (2).
SUMMARY:
h-m --> (symmap) --> hall --> xyz --> hall --> (symmap) --> h-m
hall --> xyz --> hall --> (symmap) --> h-m
xyz --> hall --> (symmap) --> h-m
PROC-NAME: SYMMS_01
PURPOSE: To check that the _symmetry_cell_setting matches one of
the keywords.
CHECKLIST:
- triclinic
- monoclinic
- orthorhombic
- tetragonal
- rhombohedral
- trigonal
- hexagonal
- cubic
PROC-NAME: SYMMS_02 (SC)
PURPOSE: To check that the _symmetry_cell_setting is consistent
with the _cell_length_ and _cell_angle_ values.
PROCEDURE:
IF _symmetry_cell_setting == 'triclinic'
AND { _cell_length_a == _cell_length_b
OR _cell_length_a == _cell_length_c
OR any _cell_angle values == 90. } issue ALERT B
IF _symmetry_cell_setting == 'monoclinic'
AND { _cell_length_a == _cell_length_b
OR _cell_length_a == _cell_length_c
OR all _cell_angle_ values == 90.
OR two _cell_angle_ values != 90. } issue ALERT B
IF _symmetry_cell_setting == 'orthorhombic'
AND { _cell_length_a == _cell_length_b
OR _cell_length_a == _cell_length_c
OR all _cell_angle_ values != 90. } issue ALERT B
IF _symmetry_cell_setting == 'tetragonal'
AND { _cell_length_a != _cell_length_b
OR all _cell_angle_ values != 90. } issue ALERT B
IF _symmetry_cell_setting == 'rhombohedral'
AND { _cell_length_a != _cell_length_b
OR _cell_length_a != _cell_length_c
OR _cell_angle_alpha != _cell_length_beta
OR _cell_angle_alpha != _cell_length_gamma
OR _cell_angle_ values == 90. } issue ALERT B
IF _symmetry_cell_setting == 'trigonal' OR 'hexagonal'
AND { _cell_length_a != _cell_length_b
OR _cell_angle_alpha != 90.
OR _cell_angle_beta != 90.
OR _cell_angle_gamma != 120. } issue ALERT B
IF _symmetry_cell_setting == 'cubic'
AND { _cell_length_a != _cell_length_b
OR _cell_length_a != _cell_length_c
OR all _cell_angle_ values != 90. } issue ALERT B
PROC-NAME: THETM_01 (TL)
PURPOSE: To check that _diffrn_reflns_theta_max is greater than
expected limits.
PROCEDURE:
CALCULATE
S = SIN [_diffrn_reflns_theta_max] / _diffrn_radiation_wavelength
TEST
IF S < 0.55 issue ALERT A
< 0.575 issue ALERT B
< 0.59 issue ALERT C
PROC-NAME: WEIGH_01
PURPOSE: Check that the value of _refine_ls_weighting_scheme
is recognised.
CHECKLIST: - sigma (based on measured intensity su's)
- unit (unit or no weights applied)
- calc (calculated weights applied)
issue ALERT B if no scheme present.