#### Description:

This attribute specifies whether default values should be used internally for object attributes which have not been assigned a value explicitly. If a non-zero value (the default) is supplied for UseDefs, then default values will be used for attributes which have not explicitly been assigned a value. If zero is supplied for UseDefs, then an error will be reported if an attribute for which no explicit value has been supplied is needed internally within AST.

Many attributes (including the UseDefs attribute itself) are unaffected by the setting of the UseDefs attribute, and default values will always be used without error for such attributes. The `"` Applicability:`"` section below lists the attributes which are affected by the setting of UseDefs.

Note, UseDefs only affects access to attributes internally within AST. The public accessor functions such as astGetC is unaffected by the UseDefs attribute - default values will always be returned if no value has been set. Application code should use the astTest function if required to determine if a value has been set for an attribute.

Type:

  Integer (boolean).

#### Applicability

##### Object

All Objects have this attribute, but ignore its setting except as described below for individual classes.

##### FrameSet

The default value of UseDefs for a FrameSet is redefined to be the UseDefs value of its current Frame.

##### CmpFrame

The default value of UseDefs for a CmpFrame is redefined to be the UseDefs value of its first component Frame.

##### Region

The default value of UseDefs for a Region is redefined to be the UseDefs value of its encapsulated Frame.

##### Frame

If UseDefs is zero, an error is reported when aligning Frames if the Epoch, ObsLat or ObsLon attribute is required but has not been assigned a value explicitly.

##### SkyFrame

If UseDefs is zero, an error is reported when aligning SkyFrames if any of the following attributes are required but have not been assigned a value explicitly: Epoch, Equinox.

##### SpecFrame

If UseDefs is zero, an error is reported when aligning SpecFrames if any of the following attributes are required but have not been assigned a value explicitly: Epoch, RefRA, RefDec, RestFreq, SourceVel, StdOfRest.

##### DSBSpecFrame

If UseDefs is zero, an error is reported when aligning DSBSpecFrames or when accessing the ImagFreq attribute if any of the following attributes are required but have not been assigned a value explicitly: Epoch, DSBCentre, IF.
Copyright (C) 2021 East Asian Observatory