Note that this subroutine library is not yet used in the suite.
Given cell and orthogonalisation code, calculate orthogonalising and fractionalising matrices Arguments : cell(6) (I) REAL cell dimensions NCODE (I) INTEGER orthogonalisation code RO(4,4) (O) REAL orthogonalising matrix RF(4,4) (O) REAL fractionalising matrix
Get reciprocal cell from real cell Arguments : cell(6) (I) REAL cell dimensions vol (I) REAL cell volume rcell(6) (O) REAL reciprocal cell dimensions rvol (O) REAL reciprocal cell volume
Check requested item type against dictionary Arguments : ITMNAM (I) CHARACTER Item name BTYPE_EXP (I) INTEGER Expected btype SLINE_EXP (I) INTEGER Expected sline
Given a block_id, convert NPACK sets of coordinates from orthogonal to fractional, or vice versa. Arguments : BLK_ID (I) INTEGER block ID of data X (I) REAL input X coordinates with array dimension of at least NPACK Y (I) REAL input Y coordinates with array dimension of at least NPACK Z (I) REAL input Z coordinates with array dimension of at least NPACK XX (O) REAL output X coordinates with array dimension of at least NPACK YY (O) REAL output Y coordinates with array dimension of at least NPACK ZZ (O) REAL output Z coordinates with array dimension of at least NPACK NPACK (I/O) INTEGER Number of coordinate sets to convert. On output, number actually converted. IFLAG (I) INTEGER Flag =0, Convert coordinates from fractional to orthogonal =1, Convert coordinates from orthogonal to fractional
Use a supplied matrix to convert NPACK sets of coordinates from orthogonal to fractional, or vice versa. Arguments : X (I) REAL input X coordinates with array dimension of at least NPACK Y (I) REAL input Y coordinates with array dimension of at least NPACK Z (I) REAL input Z coordinates with array dimension of at least NPACK XX (O) REAL output X coordinates with array dimension of at least NPACK YY (O) REAL output Y coordinates with array dimension of at least NPACK ZZ (O) REAL output Z coordinates with array dimension of at least NPACK NPACK (I/O) INTEGER Number of coordinate sets to convert. On output, number actually converted. RR(4,4) (I) REAL fractionalising/orthogonalising matrix as appropriate
Given a block_id, get the next npack sets of atom coords. Reading of atomic coordinates will abort if the end of the loop is encountered, or if the coordinates are missing from a row. On exit, NPACK gives the number of coordinate sets actually read. Arguments : BLK_ID (I) INTEGER block ID of data X (O) REAL X coordinates with array dimension of at least NPACK Y (O) REAL Y coordinates with array dimension of at least NPACK Z (O) REAL Z coordinates with array dimension of at least NPACK NPACK (I/O) INTEGER Number of coordinates to read. On output, number actually read. IFAIL (O) INTEGER = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Given a block_id, get the next set of ADPs. Search several possible sets of data items. Arguments : BLK_ID (I) INTEGER block ID of data U_ANISO(6) (O) REAL anisotropic U factor IFAIL (O) INTEGER = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Given a block_id, get the next set of atom info. Arguments : BLK_ID (I) INTEGER block ID of data ATOMNO (O) CHARACTER '_atom_site.id' ATOMID (O) CHARACTER '_atom_site.label_atom_id' ALTID (O) CHARACTER '_atom_site.label_alt_id' RESID (O) CHARACTER '_atom_site.label_comp_id' CHAINID (O) CHARACTER '_atom_site.label_asym_id' RESNO (O) CHARACTER '_atom_site.auth_seq_id' SYMBOL (O) CHARACTER '_atom_site.type_symbol' IRES (O) INTEGER '_atom_site.label_seq_id' X (O) REAL array dimension 3 with x,y,z BISO (O) REAL isotropic B factor U_aniso(6) (O) REAL anisotropic U factor OCCUP (O) REAL occupancy IFAIL(12) (O) INTEGER array of IFAILs for arguments = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Given a block_id, get the next set of atom labels. Arguments : BLK_ID (I) INTEGER block ID of data ATOMNO (O) CHARACTER '_atom_site.id' ATOMID (O) CHARACTER '_atom_site.label_atom_id' ALTID (O) CHARACTER '_atom_site.label_alt_id' RESID (O) CHARACTER '_atom_site.label_comp_id' CHAINID (O) CHARACTER '_atom_site.label_asym_id' RESNO (O) CHARACTER '_atom_site.auth_seq_id' SYMBOL (O) CHARACTER '_atom_site.type_symbol' IRES (O) INTEGER '_atom_site.label_seq_id' IFAIL(8) (O) INTEGER array of IFAILs for arguments = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Given a block_id, get the next isotropic B factor. Arguments : BLK_ID (I) INTEGER block ID of data BISO (O) REAL isotropic B factor IFAIL (O) INTEGER = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Get cell information for given data block. Arguments : BLK_ID (I) INTEGER block ID of data cell(6) (O) REAL cell dimensions vol (O) REAL cell volume IFAIL (O) INTEGER =0 OK
Given a block_id, get the next set of x, y, z coords. Arguments : BLK_ID (I) INTEGER block ID of data X(3) (O) REAL X,Y,Z coordinates IFAIL (O) INTEGER = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Get entity information for given data block. Arguments : BLK_ID (I) INTEGER block ID of data entityid (O) CHARACTER entity identifier entitytype (O) CHARACTER entity type: 'polymer', 'non-polymer' or 'water' IFAIL (O) INTEGER =0 OK
Get fractionalising matrix for given data block. Arguments : BLK_ID (I) INTEGER block ID of data RF(4,4) (O) REAL fractionalising matrix IFAIL (O) INTEGER =0 OK =1 not found in file
Given a block_id, read specified integer data item Arguments : BLK_ID (I) INTEGER block ID of data CATNAM (I) CHARACTER category name ITMNAM (I) CHARACTER item name IITEM (I) INTEGER item integer value CITEM (I) CHARACTER item character value IFAIL (I) INTEGER = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned
Get orthogonalising and fractionalising matrices for given data block. Arguments : BLK_ID (I) INTEGER block ID of data RO(4,4) (O) REAL orthogonalising matrix RF(4,4) (O) REAL fractionalising matrix If file has only one, this is used to derive other. If file has neither, both are derived from cell assuming NCODE = 1.
Given a block_id, get the next occupancy. Arguments : BLK_ID (I) INTEGER block ID of data OCCUP (O) REAL occupancy IFAIL (O) INTEGER = 0 value specified in CIF returned = 1 dictionary default returned = -1 '.' returned = -2 nothing or '?' returned LEND (O) LOGICAL .TRUE. if end of loop
Get orthogonalising matrix for given data block. Arguments : BLK_ID (I) INTEGER block ID of data RO(4,4) (O) REAL orthogonalising matrix IFAIL (O) INTEGER =0 OK =1 not found in file
Get reciprocal cell information for given data block. Arguments : BLK_ID (I) INTEGER block ID of data rcell(6) (O) REAL reciprocal cell dimensions rvol (O) REAL reciprocal cell volume IFAIL (O) INTEGER =0 OK
Get information about the contents of the a.s.u. for given data block. Arguments : BLK_ID (I) INTEGER block ID of data asymid (O) CHARACTER _struct_asym.id parent of _atom_site.label_asym_id asymentityid (O) CHARACTER _struct_asym.entity_id child of _entity.id entitytype (O) CHARACTER _entity.type entity type: 'polymer', 'non-polymer' or 'water' IFAIL (O) INTEGER =0 OK
Get symmetry information for given data block. Arguments : BLK_ID (I) INTEGER block ID of data NumSpaceGroup (O) INTEGER spacegroup number SpaceGroupName (O) CHARACTER spacegroup name IFAIL (O) INTEGER =0 OK
This subroutine initialises things and loads the CIF dictionary. This subroutine must be called before any other in cciflib.f !!
Subroutine to invert 4*4 matrices for conversion between fractional and orthogonal axes. Arguments : A(4,4) (I) REAL MATRIX TO BE INVERTED AI(4,4) (O) REAL INVERSE MATRIX
Given a block_id, put the next set of atom info. Arguments : BLK_ID (I) INTEGER block ID of data ATOMNO (I) CHARACTER '_atom_site.id' ATOMID (I) CHARACTER '_atom_site.label_atom_id' ALTID (I) CHARACTER '_atom_site.label_alt_id' RESID (I) CHARACTER '_atom_site.label_comp_id' CHAINID (I) CHARACTER '_atom_site.label_asym_id' RESNO (I) CHARACTER '_atom_site.auth_seq_id' SYMBOL (I) CHARACTER '_atom_site.type_symbol' IRES (I) INTEGER '_atom_site.label_seq_id' X (I) REAL array dimension 3 with x,y,z BISO (I) REAL isotropic B factor OCCUP (I) REAL occupancy NEWROW (I) LOGICAL .TRUE. if data for new row .FALSE. if for existing row IFAIL(13) (I) INTEGER = 0 OK = -1 write out '?' = -2 write out '.'
Given a block_id, put a set of atom labels. Arguments : BLK_ID (I) INTEGER block ID of data ATOMNO (I) CHARACTER '_atom_site.id' ATOMID (I) CHARACTER '_atom_site.label_atom_id' ALTID (I) CHARACTER '_atom_site.label_alt_id' RESID (I) CHARACTER '_atom_site.label_comp_id' CHAINID (I) CHARACTER '_atom_site.label_asym_id' RESNO (I) CHARACTER '_atom_site.auth_seq_id' SYMBOL (I) CHARACTER '_atom_site.type_symbol' IRES (I) INTEGER '_atom_site.label_seq_id' NEWROW (I) LOGICAL .TRUE. if data for new row .FALSE. if for existing row IFAIL(8) (I) INTEGER = 0 OK = -1 write out '?' = -2 write out '.'
Put audit information for given data block. If there is not yet an audit category for the data block, a new one will be written. This includes simple strings for _audit.revision_id and _audit.creation_method, the current date for _audit.creation_date, and the subroutine argument as _audit.update_record If an audit category does exist, then the subroutine argument is appended to _audit.update_record while other data items are left alone. Arguments : BLK_ID (I) INTEGER block ID of data update_record (I) CHARACTER line of text to be included in _audit.update_record
Given a block_id, put an isotropic B factor. Arguments : BLK_ID (I) INTEGER block ID of data BISO (I) REAL isotropic B factor NEWROW (I) LOGICAL .TRUE. if data for new row .FALSE. if for existing row IFAIL (I) INTEGER = 0 OK = -1 write out '?' = -2 write out '.'
Put cell information for given data block. Arguments : BLK_ID (I) INTEGER Block ID of data cell(6) (I) REAL Cell dimensions. Cell volume is derived from these.
Given a block_id, put a set of x, y, z coords. Arguments : BLK_ID (I) INTEGER block ID of data X(3) (I) REAL x,y,z coordinates NEWROW (I) LOGICAL .TRUE. if data for new row .FALSE. if for existing row IFAIL(3) (I) INTEGER = 0 OK = -1 write out '?' = -2 write out '.'
Put entity information for given data block. Arguments : BLK_ID (I) INTEGER block ID of data entityid (I) CHARACTER entity identifier entitytype (I) CHARACTER entity type: 'polymer', 'non-polymer' or 'water' NENTITY (I) INTEGER number of entities
Put fractionalising matrix for given data block. Arguments : BLK_ID (I) INTEGER block ID of data RF(4,4) (I) REAL fractionalising matrix
Given a block_id, put an occupancy. Arguments : BLK_ID (I) INTEGER block ID of data OCCUP (I) REAL occupancy NEWROW (I) LOGICAL .TRUE. if data for new row .FALSE. if for existing row IFAIL (I) INTEGER = 0 OK = -1 write out '?' = -2 write out '.'
Get symmetry information for given data block. Arguments : BLK_ID (I) INTEGER block ID of data NumSpaceGroup (I) INTEGER spacegroup name SpaceGroupName (I) CHARACTER spacegroup number Only one of NumSpaceGroup,SpaceGroupName need be given. If either is unknown, set it to 0 or ' ' respectively and it will be inferred from the other.
Close a CIF file opened for reading. Arguments : LOGNAM (I) CHARACTER logical name of file to be closed
Open a CIF file for reading. Arguments : LOGNAM (I) CHARACTER logical name of file to be opened REQUESTED_BLOCK (I) CHARACTER name of data block to be opened. If blank, then first one in file is opened. BLK_ID (O) INTEGER block ID of data for future reference
Wrap-around for ccif_setup_context catnam_in (i) CHARACTER name of category or item blk_id (i) INTEGER block id of data ncntxt (o) INTEGER number of assigned context istat_exp (i/o) INTEGER On input: 0 = category not necessarily expected to be present 1 = loop expected 2 = item expected 3 = loop or item expected On output: 0 = category not found 1 = loop found 2 = item found disposition (i) CHARACTER 'RO' or 'LOOP'
Close a CIF file opened for writing. Arguments : LOGNAM (I) CHARACTER logical name of file to be closed
Open a CIF file for writing. Arguments : LOGNAM (I) CHARACTER logical name of file to be opened for writing. LOGNAMIN (I) CHARACTER logical name of corresponding file opened for reading. If this is given, output file is initialised with contents of input file. REQUESTED_BLOCK (I) CHARACTER name of data block to be written. BLK_ID (O) INTEGER block ID of data for future reference
libccif.a : Peter Keller (keller@ebi.ac.uk)