Contents Manual

A

ABMULT
Forms transmission (=1/absorption) factors or related integrals.
ABSCOR
Applies absorption corrections to groups of equivalent reflections.
ABSOR
Forms a transmission (=1/absorption) factor or related integrals.
ADDANG
Finds an angle in the tables for geometric constraints, or adds it if absent.
ADDATM
Finds an atom in the tables for geometric constraints, or adds it if absent.
ADDBON
Finds a bond in the tables for geometric constraints, or adds it if absent.
ADDCON
Adds a constraint to the list held in LSQ programs.
ADDELM
Adds the element IEL to the subgroup defined by ITAB
ADDFIX
Entry to FIXVAR
ADDFX5
Entry to FIXVAR
ADDPLN
A dummy routine at the moment, called when setting slack constraints
ADDSPC
To pad a word with spaces to length lword
ADDTOR
Finds a torsion angle in the tables for geometric constraints, or adds it if absent.
ADDVAR
Entry to FIXVAR
ADDVR5
Entry to FIXVAR
ADJUST
Applies a (possibly fudged) shift to a given LSQ parameter.
AINOUT
Multiple function routine called by ARRNGE type programs to process sort items.
ALNINT
Performs linear interpolation, suitable for profile backgrounds etc.
ALRPOL
Calculates the reciprocals of Lorentz and polarisation factors.
ANGDIR
Calculates D3 or 4-circle angles from direction cosines.
ANGERS
To calculate esd's in bond angles
ANGLST
Lists all angles at one source atom made by a given list of bonds.
ANGRAD
Calculates the angle in radians between two vectors, in either space.
ANITF
Forms the contribution to the anisotropic temperature factor on an atom N from indices H.
APSHDS
Applies shifts for during d-spacing refinement.
APSHFW
Applies shifts for Forsyth & Wells scattering factor coefficient refinement.
APSHSF
Applies shifts to all variables in single crystal structure factor based LSQ, and prints the results.
APSHT2
Applies shifts for reciprocal cell quadratic products and zero during 2theta refinement.
ARCCOS
Calculates an arc cosine.
ARPRIN
A multi-mode routine to produce the output in ARRNGE type main programs.
ARREAD
Multiple entry routine to deal with reading items for ARRNGE type programs.
ARROW
Writes postscript output to plot an arrow in MAG3D
ASK
Writes a message on unit ITO and reads an interactive answer to /SCRACH/.
ASPHFF
Calculates an aspherical form factor for a cubic space group.
ASUNIT
Produces reflection indices in the asymmetric unit, related to those given.
ATMPLO
Plots atom positions on a map.
ATMPLT
Plots atom positions on a map.
ATOGEN
Generates a set of equivalent positions.
ATOMS
Makes a real space unit cell full of related atomic positions.
ATOPOS
Reads and interprets all given A cards.
ATSPEC
Makes the 16-character specification of a symmetry related atom from its packed specification.
AXIS
Finds the axis of a given rotation matrix.

B

BATCH
Signals batch running, not interactive.
BIGCHA
Writes on unit LPT up to 9 characters in large letters.
BIGGAM
Deals with gammas whose value is greater than one, in SORGAM. There is also the entry SETGAM to set up the calculation.
BINDIG
Tests for the presence of a given binary digit within an integer.
BITSET
Sets or tests a single bit in a word.
BJ
Calculates Bessel functions of order 1 or 2.
BNDLST
Writes out and saves a list of bonds from one atomic position.
BONCOS
Given 3 bonds forming a triangle, calculates the angle opposite the first, its sine and cosine, and its derivatives wrt all 3 bonds.
BONDA
Calculates the angle between two bonds.
BONDER
Calculate a bond and its derivatives for slack constraints.
BONERR
To calculate the esd's in bondlengths
BONTRI
Given two bonds with a common atom, completes the triangle and identifies the atom.
BRILL
Returns the value of the Brillouin function.

C

C1MSCA
Multiplies every element of the REAL matrix A by the COMPLEX scalar SCALE.
CALCDS
Calculates d star squared, and its derivatives wrt reciprocal cell quadratic products.
CALCFR
Calculates GCALC = the flipping ratio and its derivatives for twinned crystals
CALCFW
Calculates the Forsyth & Wells exponential function which approximates to observed scattering factor curves.
CALCGR
Gives the calculated function for grouped single crystal Least Squares.
CALCMG
Calculates GCALC and its derivatives for structures which may have mixed magnetic and nuclear reflections.
CALCMP
Makes the calculated function and derivatives for single crystal LSQ with multipoles.
CALCSF
Makes the calculated function and derivatives for single crystal LSQ.
CALDSM
Calculates d star squared, and its derivatives wrt reciprocal cell quadratic products and components of propagation vector.
CALPOL
Calculates scattered polarisations and their derivatives for structures which may have mixed magnetic and nuclear reflections.
CARDIN
Finds the record number IDEN in the DIRECT ACCESS file on unit IO10, which is a copy of the Crystal Data File.
CDFIN
Reads in one Crystal Data File and copies it to direct access unit number IO10, starting at record number ID.
CDSCAN
Finds the next card which starts with the letter given in CH, and has then a word which is one of the collection given in WORDS.
CELDER
From h,k,l calculates d* squared and its derivatives, and sets SSQRD.
CELLMA
Makes the matrix to transform the variance/covariance matrix for the quadratic products to that for a,b,c etc
CELMAT
Sets up the matrix to convert derivatives wrt A,B,C . . (cell quadratic products in real space) to derivatives wrt A*, B*, C*, . . in reciprocal space.
CELNEW
Writes out a new C card after cell parameter refinement.
CELREL
Transfers any relations which exist between cell parameters from their own COMMON to the general "contraint/fixing" COMMON.
CELSDP
Prints the esds of real cell parameters after a cycle of refinement.
CELSHF
Applies a shift to a cell quadratic product.
CELVAR
Entry to CELSHF
CENDIF
Entry to CENTRO
CENTRE
Writes on unit LUNIT the given message, centred & preceded by N empty lines.
CENTRO
Executes the action of the centre of symmetry on a term in the magnetic structure factor for helimagnetic structures.
CGAMMA
Solves the quadratic equation for gamma in terms of the flipping ratio.
CGMADD
Sets COMPLEX matrix C = COMPLEX matrix A + COMPLEX matrix B.
CGMEQ
Sets COMPLEX matrix B equal to COMPLEX matrix A.
CGMPRD
Multiplies together two COMPLEX matrices.
CGMREV
Reverses the signs of the elements of an NI X NJ complex matrix.
CGMSCA
Multiplies every element of a COMPLEX matrix by a COMPLEX scale.
CGMSUB
Sets COMPLEX matrix C = COMPLEX matrix A - COMPLEX matrix B.
CGMUNI
Clears a COMPLEX square matrix to contain the unit matrix.
CGMZER
Clears to zero a complex matrix.
CHGPAR
Indicates whether two real arrays are the same
CHOOSF
Chooses modulus and phase for a particular Fourier.
CIRCLE
Draws a circle of given radius and centre, with various options.
CLOFIL
Closes the FORTRAN unit LUN and returns the CCSL unit to the pool.
CMCONJ
Gives the conjugate of a COMPLEX matrix.
CMIMAG
Gives the imaginary parts of a COMPLEX matrix.
CMREAL
Gives the real parts of a COMPLEX matrix.
CMRSCA
Multiplies every element of a COMPLEX matrix by a REAL scale.
CONATF
Produces for a single coefficient of an anisotropic temperature factor, its conversion factor from the internally used betas, in order to communicate with the user.
CONVMP
Converts between user values and LSQ parameters for multipoles.
COSET
Returns the coset in the full group generated by a given element of one of its sub-grouo
CRMPRD
Performs COMPLEX by REAL matrix multiplication.
CROTO
Entry to ROTOSM
CRSCLP
Finds the COMPLEX scalar product of a COMPLEX with a REAL vector.

D

DEGREE
Converts from radians to degrees.
DEPRIN
Decodes an integer which describes the frequency of LSQ printing required, and outputs this frequency.
DETER3
Forms the determinant of a 3 x 3 matrix.
DFLTMG
Called as a substitute for DEFALT via VARMAK, giving default fix/vary for otherwise unspecified parameters for magnetic structures.
DFLTMP
Called as a substitute for DEFALT out of VARMAK, giving defaults fix/vary for otherwise unspecified parameters of multipole refinements.
DFLTSF
Called as a substitute for DEFALT out of SUBROUTINE VARMAK, giving default fix/vary information for structure parameters.
DFTRUE
Called as a substitute for DEFALT out of VARMAK in main programs, to vary an otherwise unspecified parameter.
DIJROT
Calculates the matrix D(i,j) for the Euler rotations alpha,beta,gamma of the eigenfunctions of angular momentum l.
DOCHI1
Multiple entry subroutine to read and check parameters for paramagnetic structure calculations given on Q cards
DOMAG
Multiple entry subroutine to deal with parameters for magnetic structures on Q cards (but not their fixing/varying).
DOMAG1
Multiple entry subroutine to deal with parameters for magnetic structures on Q cards.
DOMAG2
Multiple entry subroutine to deal with magnetic variables in magnetic structure refinements
DOMPL2
Logical multi-purpose function to deal with multipole variables in least squares structure refinements
DOSIDE
A specialist routine for contour plotting, to help to decide where a contour crosses the side of a square.
DOTWN1

DOTWN2
Routine to process twin parameters
DPLOT
Does plotting in current coordinate system.
DUMMY
Does absolutely nothing; used as a default in routine calls.

E

EA06C
Harwell routine to Find the eigenvalues and eigenvectors of a real symmetric matrix A
EA06D
Harwell routine called by EA06C
EA08C
Harwell routine to find the eigenvalues and eigenvector of a symmetric tridiagonal matrix.
EA09C
Harwell routine used in solution od eigenvalue problem
ELEMAT
Gets a matrix element from the triangular LSQ matrix.
ENTMAG
Entry to MAGDIR
EQOP
Checks whether a rotation matrix and a translation vector of a symmetry operator are already in a list, and adds them if not. Also finds lattice translations.
EQPOS
Checks whether the given atom position already occurs in a given list, and adds the new one if not.
EQPPOS
Checks whether the given position vector is related by lattice translation to one already in the given list.
EQRLV
Checks whether vectors differ by a reciprocal lattice vector.
EQVEC
Finds a given vector in given table of vectors, or adds it as a new one.
ERFNC
Calculates the error function accurate to 3E-7, for + and - X.
ERRATM
Writes an error message to say that the given name is not an atom name; there is a choice of subsequent action.
ERRCH2
Write an error message which involves a given WORD between 2 messages; there is a choice of subsequent action.
ERRCHK
(Possibly increases and) checks a value, giving if appropriate an error message; there is a choice of subsequent action.
ERRIN2
Writes an error message which involves a given integer INT between 2 messages; there is a choice of subsequent action.
ERRMAP
Calculates the standard deviation of the density in a Fourier map.
ERRMES
Writes an error message, with choice of action on exit.
ERRRE2
Writes an error message which involves a given real X between 2 messages; there is a choice of subsequent action.
ESDFMT
Writes X and its esd DX in the form X(DX)
EULSYM
Finds the Euler angles correponding to a symmetry rotation.
EXCLD
Determines whether a number occurs within any of a set of given ranges.
EXPAND
Expands UNIX pathnames by substituting for environment variables
EXPINT
Calculates an exponential radial integral.
EXTIN1
Entry to EXTINC
EXTIN3
Entry to EXTINC
EXTIN4
Entry to EXTINC
EXTIN8
Entry to EXTINC
EXTIN9
Entry to EXTINC
EXTINC
Multi-entry routine to deal with all aspects of single crystal extinction corrections.
EXTPAR
Calculates the theta dependent extinction parameters for reflection H

F

F2NEW
Outputs a new LSQ family 2 (structure parameters) card (for A, T or F cards).
F2PARP
Dummy routine to force inclusion of BLOCK DATA F2PARS
F2RELA
Collects all structure factor type constraints implied by the symmetry.
F2SHFT
Applies a shift to a particular family 2 (structure) parameter.
F2VAR8
Records varying information for a particular family 2 (structure) parameter.
F2VAR9
Entry to F2VAR8
FACGRP
Finds the factor elements which generate a space group from one of its sub-groups.
FACT
Calculates factorial K.
FCALC
Calculates the COMPLEX nuclear structure factor for the reflection H.
FCHALC
Calculates induced magnetic interaction vectors and magnetic structure factors. with anisotropic susceptibilities
FCTOR
Finds the highest common factor of a set of indices and reduces them by that factor.
FETSHF
Fettles a shift and esd for printing and counts, in the application of shifts in LSQ.
FETTLE
Decides field width and fractional part of real number in order to print it.
FF01A
Modified Harwell routine for zero order Bessel functions.
FF02A
Modified Harwell routine for first order Bessel functions.
FGAMMA
Calculates gamma, the ratio of magnetic and nuclear scattering, and its standard deviation.
FILNOM
Returns the name of the file on FORTRAN unit LUN.
FILPRO
Makes sense of general file names, under VMS AND UNIX.
FINDCD
Searches for a card starting with letter CH and with WORD in columns 3-6.
FIXPAR
Records an instruction to fix a LSQ parameter.
FIXREL
Takes a temporary set of fix/relate information and adds it to the permanent information.
FIXUNI
Deals with one potential plane face of asymmetric unit, while the unit is being formed.
FIXVAR
Adds a request to fix (or vary) a parameter to the lists held in setting up LSQ environments.
FLIP
Exchanges the integers I and J.
FMCALC
Calculates magnetic interaction vectors and magnetic structure factors.
FMMPCA
Calculates magnetic interaction vectors and magnetic structure factors with multipole form factors.
FMPCAL
Calculates the COMPLEX nuclear structure factor for the reflection H, using a multipole expansion of the form factor.
FORIER
Controls Fourier calculations.
FORMFA
Calculates form or scattering factors.
FORMFC
Calculates form factor integrals from radial wave functions.
FOUINP
Reads one data item for a given type of Fourier, in a given format.
FOUR1D
Calculates a Fourier along a general line.
FOUR1Z
Calculates 1 layer of Fourier sum : a section if 3D, a projection if 2D, or a bounded section if "4D".
FOURGP
Calculates a Fourier on a general plane.
FRAC3
Makes all 3 elements of a vector fractional
FRACT
Forms the fractional part of a real number.
FRAME
Draws a rectangle in the plotting context.
FT01A
Modification of Harwell Fast Fourier Transform.
FUDGET
Reads a fudge factor from a card having already read a parameter specification.
FUDGIN
Interprets all L FUDG cards.
FVKPAK
Entry to FIXVAR

G

GAMEX
Calculates an extinction corrected gamma from a flipping ratio.
GAUSPT
Sets up Gauss points and weights for use in 3D integration.
GENELM
Finds the generators of a subgroup of a space group.
GENGRP
Generates the product of two subgroups of the space group in SYMTAB
GENMAG
Generates the next set of magnetic h,k,l, scanning the asymmetric unit.
GENMUL
Gives next useful set of h,k,l and multiplicity, scanning the asymmetric unit of reciprocal space.
GENNAM
Finds all the starting letters of an atom name.
GEOMCO
Multiple entry routine for geometric slack constraints.
GEOMIN
Reads L cards for bond slack constraints.
GEOMLS
Calculates bond lengths and derivatives for geometrical slack constraints.
GETDC
Calculates direction cosines of the incident and diffracted beams used by absorption correction type integrals
GETGEN
Gives the next useful set of h,k,l scanning the asymmetric unit of reciprocal space.
GETMAP
Retrieves 1 Fourier map previously filed using SAVMAP.
GETSCL
Chooses a sensible scale for a graph.
GETSQ
Works out where a contour crosses the sides of a square of function values.
GMADD
Sets matrix C = matrix A plus matrix B.
GMATCH
To determine whether the two real matrices A and B are the same
GMEQ
Sets matrix B = matrix A.
GMINV
Inverts matrix A into matrix B.
GMNORM
Normalises the rows of a matrix.
GMPRD
Sets matrix C = matrix A times matrix B.
GMREV
Reverses the signs of the elements of an NI X NJ matrix.
GMSAME
Tells whether one vector is the same as another, to a given tolerance.
GMSCA
Multiplies every element of the matrix A by the scalar SCALE.
GMSUB
Sets matrix C = matrix A minus matrix B.
GMTRAN
Transposes a JJxII matrix A into B.
GMUNI
Writes a unit matrix into the square matrix A.
GMZER
Clears to zero the matrix A.

I

IATOM
Identifies an atom name in a given list.
ICDFMT
Interprets I and Q PROP cards for programs reading ARRNGE type data".
IICD1
Interprets basic I cards to drive any LSQ.
IICD3
Interprets I cards for ARRNGE-type MAIN programs, and sets them up.
INBOX
Determines whether the given reflection is inside, on, or outside the reciprocal space asymmetric unit.
INCELL
Sets P to be the position in the central cell equivalent to X.
INCREM
Increments a file name.
INDDIV
Entry to MULIND
INDFIX
Converts 3 real items in H to be integers in K.
INDFLO
Converts 3 integers in K into floating point reals in H.
INDMUL
Entry to MULIND
INITIL
Initialises the CCSL system.
INOBGR
Performs a preliminary pass of observations for GRLSQ, (group refinement, integrated intensity LSQ).
INPLSF
Reads in (nearly) all L cards for the particular LSQ type 'SF', for single crystal work.
INPUAR
Reads the data from files made by ARRNGE and other similar programs.
INPUTA
Reads an A card and prepares it for further processing.
INPUTC
Reads one "C" card.
INPUTD
Reads and interprets all D cards, for general diffraction information.
INPUTE
Reads and interprets an E card, and sets up extinction calculations.
INPUTF
Reads and partially interprets an "F" card.
INPUTG
Reads and interprets all "G" cards, for Gaussian integration of various integrals over a crystal defined by its plane faces.
INPUTI
Gathers information from a user's interactive instruction card.
INPUTJ
Reads individual J cards.
INPUTM
Reads and interprets all "M" cards.
INPUTN
Deals with the "N" card giving the Crystal Data File title.
INPUTQ
Reads individual "Q" cards
INPUTS
Reads and interprets one "S" card containing a space group operator. Can also interpret an S GRUP card containing a space group specification.
INPUTT
Reads and interprets one "T" card.
INPUTU
Reads and interprets a "U" card, giving a typical reflection to define the reciprocal asymmetric unit.
INPUTW
To read the "W" card indicated by ID, as far as atom label and word.
INTCHR
Converts digits to characters, either left- or right-justified.
INTDIG
Unpacks an integer into its individual digits.
INTIND
True if the indices H(3) are integer
INVENT
Given a plane U and an axis H, produces a direction ANS which is in the plane but not parallel to the axis.
IPDONE
Checks whether a the cards labelled CHAR have been read
IPOPE
Machine specific routine to interpret error codes during file opening.
ISCAT
Searches for a potential scattering factor name in the table.
ISPABS
Checks space group absences.
ITPOS
Sets ITPOS=a single bit (a one), in position IPOS, counting from the right.

J

JFIX
Rounds a real to be an integer.
JGMADD
In integers, sets matrix C = matrix A plus matrix B.
JGMEQ
Equates an integer matrix to a given integer matrix.
JGMPRD
In integers, sets matrix C = matrix A times matrix B.
JGMREV
Reverses the signs of the elements of an integer matrix.
JGMSUB
In integers, sets matrix C = matrix A minus matrix B.
JGMZER
Clears an integer matrix to zero.
JMPOL
Writes to unit NEWIN all J MPOL cards after a multipole refinement.
JTERMS
Calculates the terms in the 2D averaged spherically symmetric form factor summation which depend on S,K, and R only.

K

KANGA1
Moves plotter pen (or equivalent) to X,Y in current coordinates.
KANGA2
Writes on a plot a string of characters, or simulates this in order to measure the length of the string.
KANGA3
Plots a special symbol.
KPAK
Pack a LSQ parameter specification on to integer.
KSAME
Tells if two LSQ parameter specifications are the same, allowing wild card elements.
KSTAR
Entry to PROPER
KSTARS
Returns the vectors AKSTAR in the star of the propagation vector.
KUNPAK
Unpacks a LSQ parameter specification from single integer.
KWHOLE
Says if KK is a whole packed parameter specification, or whether there are wild card elements.

L

LATABS
Checks h,k,l for being a (nuclear) lattice absence.
LATGEN
Generates points on a lattice.
LATVCS
Determines whether STEP defines a primitive lattice and if not returns the non-primitive vectors.
LATVEC
Tests for the presence of a lattice vector.
LCOLPG
Returns the number of color NAME, or 0 if NAME not in PGNAME
LDUMMY
A dummy function to be called by APSHSF,VARSSF etc in simple structure factor LSQ
LENG
Determines the length of a text string, omitting trailing spaces.
LENGT
Determines the length of a character variable, omitting the final spaces.
LERCHK
FALSE or TRUE according to whether NVALUE (possibly incremented) is greater than NBOUND
LETTER
Determines whether a character is a letter.
LFCALC
Calculates a nuclear structure factor and its derivatives.
LISPEC
Reads files from the ILL data base
LLSCAL
Multiple entry routine which deals with scale factors in Least Squares.
LLTFAC
Multiple entry routine which deals with overall isotropic temperature factors in Least Squares.
LMAGPR
Gives the fix/vary information for one of the family 2 parameters for magnetic atoms.
LMATCH
Matches an A4 item in given table, adding it if it is not there already.
LMCALC
Calculates a magnetic structure factor and its derivatives.
LMMPCA
Calculates magnetic structure factor and its derivatives using multipole description of the form factors.
LMPCAL
Calculates a structure factor and its derivatives using a multipole description of the form factors.
LOCBIT
A specialist routine for contour plotting, which finds the "next" bit in the bit-map, removes it, and indicates where on the picture it was.
LOGAND
Performs logical "and" on 2 whole integers.
LOGMAG
Sets mnemonic logicals from the type of magnetic structure.
LOGOR
Performs logical "or" on 2 whole integers.
LSCAL8
Entry to LLSCAL
LSCAL9
Entry to LLSCAL
LSETSF
Sets up vocabulary for a specific LSQ problem involving structure factors.
LSETUP
Sets up specific LSQ problem - copies the vocabulary to standard COMMON.
LSTCTS
Calculates a dead time correction
LSYMPG
Returns the symbol type as defined by KANGA3 for NAME and FILL
LTFAC8
Entry to LLTFAC
LTFAC9
Entry to LLTFAC

M

MAGABS
Tests for systematic absence of magnetic reflections.
MAGCNC
To find magnetic constraints in a non-least squares calculation.
MAGCNL
Does the fixing associated with constraints found by MAGCON and PSICON.
MAGCON
Finds and reports the symmetry constraints on magnetic parameters.
MAGDIR
Calculates various geometric corrections for various magnetic states. The ENTRY ENTMAG sets up the COMMON.
MAGDOM
In Least Squares refinement with magnetic scattering, forms the matrix needed for derivatives of Q with respect to a spin direction.
MAGSYM
Routine with 4 named entry points, MAGSYM, MELIN, NELIN and ROTMAG, to deal generally with magnetic symmetry. MAGSYM sets magnetic symmetry, MELIN puts in an operator for a generator, NELIN puts in non-symmetric rotation and ROTMAG rotates with a magnetic operator.
MAGVAR
Records the initial fixing, or subsequent varying of magnetic parameters.
MAJUST
A specialist routine used in the input of the Crystal Data File needing previously stored Fourier maps.
MAKEBM
A specialist contour plotting routine which makes a bit map to show where the contours are.
MAKGRP
Generates the subgroup of a space group from the given generators.
MAKNAM
Makes an A4 name from the given character and the digits of the given number.
MAPCON
After a Fourier map has been plotted, sends to the plotter the list of contours which were plotted, with a frame.
MAPDRW
Draws an unframed contour map, in predetermined place.
MAPFRA
Draws a black frame round a potential contoured map, adding the labels X Y and a 1A scale.
MAPKEY
Plots a key to the atoms found by ATMPLO.
MAPTIT
Writes a title over a plotted map, with a frame.
MATCEL
After a cycle of LSQ gives variance-covariance matrix for cell A* B* etc in both real and reciprocal space, and the same for abc, alpha,beta,gamma.
MATCH
Checks to see whether two sets of reflection indices match.
MATCHF
Checks to see whether two sets of floating point reflection indices match.
MATCOR
After a Least Squares cycle, prints correlations from the inverse matrix.
MATINV
Inverts the matrix in ALSQ, of which the upper triangle only is held.
MATSET
Sets up pointers into a Least Squares matrix, and clears the matrix and the corresponding right hand side vector.
MATSHF
From an inverted Least Squares matrix, calculates shifts in basic variables.
MATTOT
Add in contributions to LSQ matrix and RHS for one observation.
MB11A
Inverts a rectangular matrix whose order is the smaller dimension; used by the Harwell refinement routine VA05A.
MC04B
Harwell routine to perform Householder reduction of a symmetric matrix to tri-diagonal form.
MELIN
Entry to MAGSYM
MESS
Writes on unit LUNIT the given message, preceded by N empty lines.
MF5ADD
A specialist routine to deal with the refinement of multipoles. Converts each type of LSQ family 5 (multipoles) addressing to the other.
MINIM
Finds the position and value of the minimum in a list of integers.
MOLORB
To read molecular orbital wave-functions from "W atom-name FUNC" card.
MPCON
Finds the symmetry constraints on multipoles.
MPFORM
Finds out which radial form factors to apply to which atom and L value.
MPOVAR
Records whether each multipole parameter is fixed or varied.
MTPROD
Puts entries into the table of time inversion operators.
MUCALC
To calculate induced moments from anisotropic susceptibilities and elipsoid orientation
MULBOX
Tests indices for being in the asymmetric unit, and gives multiplicity.
MULIND
Used by ARRNGE for data whose indices may be submultiples of integers

N

NAMPOL
Creates the label for a given multipole.
NB01A
Harwell routine NB01A to find the zero of a function.
NCFIND
Searches for a particular word in a table of words.
NCHINT
Converts an ASCII character into an integer
NDIGIT
Identifies a character as a digit or not.
NELIN
Entry to MAGSYM
NEWCD
Opens a file on to which to write a new Crystal Data File after a Least Squares refinement.
NEWCRY
Writes a new crystal data file in which the "LET" cards are modified
NEWLIN
Writes a newline to the output unit LUNIT
NEWPAG
Writes a newpage carriage control ('1') to the output unit LUNIT
NEXCON
Sets up the "next" contour value to plot for Fouriers.
NFIND
Searches for integer N in a table.
NOPFIL
Opens a file on a FORTRAN unit for the first time in this job.
NORDER
Returns the order of the Jth symmetry operator.
NPACK
Deals with the packing and unpacking of up to 10 integers in/out of one integer.
NSIGFG
Returns the number of figures to print after the decimal point based on the ESD dx
NSYMBL
Finds whether the character I is one of the symbols recognised by the system.
NTICK
Advances its argument by 1 and sets the function to that value also.
NUMA1
Prepares a number for writing, probably on a plotter.
NUMDEN
Converts a real number to the numerator and denominator of a fraction.
NUMJGM
Returns the number of non-zero elements in the IxJ integer matrix K
NWINDS
Outputs to unit NEWIN a new input dataset at the end of a refinement of cell parameters and propagation vector from d spacing values.
NWINFW
Writes out a new Crystal Data File for main program FWLSQ.
NWINSF
Outputs a replacement Crystal Data File after single crystal refinement.
NWINT2
Writes out a new Crystal Data File for main program T2LSQ.

O

ONCARD
Finds a card which starts with the given letter and word, and reads one number from it.
OPMSYM
Prints out the magnetic symmetry operations.
OPNFIL
Opens file L according to requirements given in M; L may be preset.
OPSYM
Prints out the symmetry operators in either real or reciprocal space.
ORTFUN
Finds the best set of orthonormal functions compatible with symmetry based on the users input, and hence defines the multipoles to refine.
ORTHG
Calculates matrices for the transformation of vectors in real or reciprocal space, between crystallographic and orthogonal axes.
ORTHO
Carries out conversions between crystallographic and orthogonal axes.
OTPUTI
Outputs a new I card after a LSQ refinement, updating the cycle number.

P

PARITY
Finds out whether N is odd or even.
PARNAM
Obtains the printing name of a LSQ parameter.
PARRD
Reads a LSQ parameter specification from a given card at given point.
PARRUN
Controls the cycling over all parameters in LSQ (not for Profile Refinement).
PARSDS
Collects together all parameter fixing and varying information for LSQ refinement of cell parameters using d spacings.
PARSFW
An older routine to set up variables from parameters for FWLSQ.
PARSSF
Collects all parameter fix and vary information for single crystal LSQ.
PFORMF
Calculates radial form factors for multipole refinement.
PFOUT
Reports the allocation of multipole form factors
PFSET
Directs the reading of J and W cards for multipole calculations.
PICMOV
If plotting to Tektronix, do nothing; if to plotter, move to next picture.
PIGLET
A complete set of device-specific plotting commands.
PINITL
Initialises the system in order to make graphical output.
PLCONV
Performs the transformation of coordinates between different plotter spaces.
PLN3AD
A specialist routine used during the formation of the reciprocal unit cell, to offer up 3 planes as boundaries, in cubic space groups.
PLOTCT
Plots a single contour throughout a given array.
PLOTIT
Plots the graph of given vector y against x, with esds.
PLOTO
A multi-purpose graph-drawing routine.
PLTRIN
Defines a new coordinate transformation for plotting.
PLTTXT
Plots a block of explanatory text under a plotted Fourier map.
PMTINV
Specialist routine to invert a 2x3 matrix, such as those which transform plotting coordinates from one space to another.
PMTMUL
Specialist routine to multiply together two 2x3 matrices, such as those which transform plotting coordinates from one space to another.
POLUNI
A specialist routine to "polish" the edges of a found asymmetric unit by specifying exactly how its faces and edges should be treated.
PRBLOK
Prints a block of shifts in parameters all relating to the same atom in LSQ applications involving structure parameters.
PREFIN
Makes the Crystal Data File readable in a random order by writing it to a scratch file.
PRILIS
Prints a list of real numbers held in an array, 5 per line.
PRIPLN
Given the normal to a plane face in A, prints the equation of the plane.
PRIVAR
Prints a list of basic variables, and constraint relations, for LSQ.
PRIWRD
Finds the name of the packed (possibly part) LSQ parameter from the built-in table of parameter names.
PRMBLK
Applies shifts to multipole parameters, in both program and user units.
PRMTIV
A specialist routine for use in generating h,k,l indices where the natural stepping vectors do not define a primitive cell.
PRNCYC
Decides whether printing (of various different quantities in LSQ) is needed during the current LSQ cycle.
PRNTMP
Prints out a Fourier projection or one layer of a 3D Fourier.
PROPAG
Multiple entry subroutine for propagation vector refinement
PROPDR
Makes derivatives of d*sqrd with respect to the magnetic propagation vector
PROPER
Determines whether the satellites generated by the propagation vector PROP have integer indices, and generates its "star".
PSFILE
Generates a name for a postscript file
PSICON
Determines which atoms need phase factors in modulated structures.
PUNPAK
Unpacks a parameter specification from single integer.
PUTPAR
Distributes parameters read by RDNUMS amongst individually named variables.

Q

QARRIN
In the library, simply a dummy routine. If the user wishes some special new input format for "ARRNGE" type main programs, he provides a new version of QARRIN.
QFOUIN
In the library, simply a dummy routine. If the user wishes some special new input format for Fourier routines, he provides a new version of QFOUIN.
QLSQIN
In the library, simply a dummy routine. If the user wishes some special new input format for Least Squares routines, he provides a new version QLSQIN.

R

RADFUN
Reads coefficients for the expansion of an atomic wave function.
RADIAN
Converts from degrees to radians.
RANGE
Puts a number into a given range.
RATFRC
To make a rational fraction of the form F**2=I/J out of F
RCMPRD
Performs the multiplication of a COMPLEX by a REAL matrix.
RDANGL
Reads a specification of a bond angle, by reading the names of 2 intersecting bonds; makes the third bond involved.
RDATOM
Reads the specification of an atom for slack constraint purposes
RDBOND
Reads a specification of a bond, by reading the names of the atoms at each end.
RDDATA
Reads in free format h,k,l (possibly floating) and a list of values, allowing for a possible title.
RDFV
Reads all the user's L FIX and L VARY cards in sequence.
RDINTG
Reads an integer in free format from a character string.
RDNUMS
Reads all the numbers on a line in free format.
RDREAL
Reads a real number in free format from a character string.
RDRELA
Reads and interprets all user-supplied L RELA cards for constraints.
RDWORD
Reads the next word from a character string.
RDWRDS
Reads all the words on a line from column 3 onwards.
READMP
Reads into the array DENS a map previously written to file, unformatted.
READRT
Reads whatever follows on a "W atom-name ROTN" card.
REAORB
To change the orbital basis from Ylm and Yl-m to (Ylm +- Yl-m).
REAPOL
Reads polarisations from the .pol file written by CRYPAD
RECELL
Makes real or reciprocal space cell parameters from the others.
RECIP
Reads the lattice parameters and forms the reciprocal cell.
RECISD
Interprets a "C SD" card and calculates ESD's in both the cell parameters and their quadratic products
REINDX
To reindex a set of reflections after a least squares cycle in which the propagation vector changes
REJECT
Decides for ARRNGE-type main programs whether the record number of a reflection occurs in a list of those to be rejected.
RELATE
In LSQ programs, converts a vector of derivatives wrt variables into the vector of derivatives wrt basic variables.
RELCL6
Determines the constraint matrix for the cell quadratic products needed for determining esd's of bond lengths and angles
RELCON
Entry to ADDCON
RELMT3
Determines symmetry constraints in the calculation of the esd's of bond lengths and angles
RELMTX
Makes the matrix relating the coordinates of NA atoms, which may or may not be equivalent to one-another, to a set of basic variables
RELPAR
In the setting up of LSQ applications, relates two parameters by a simple linear relationship.
RELPOS
Gets the constraints imposed by the symmetry on a set of atomic positions.
RELSM3
Forms a complete set of relations imposed by symmetry on the given 3 parameters of a LSQ application.
RELSM6
Forms a complete set of relations imposed by symmetry on the given 6 parameters of a LSQ application.
RESHUF
Reorders a real array, given a parallel pointer array out of SORTX.
RESOL
Calculates a resolution function for use with Fourier inversion.
RFACS
A multiple entry routine to deal with all aspects of R Factor calculations and statistics for single crystal observations, and
RGAUSS
Returns a value random number with a gaussian distribution.
ROTMAG
Entry to MAGSYM
ROTOSM
Calculates the effect of the rotation matrix of a symmetry operator, on a vector given on orthogonal axes.
ROTSYM
Rotates the vector H into RH by the given symmetry operator.
RREFSF
A common interface for reading reflection data in structure factor LSQ
RSCALP
Forms the scalar product of two COMPLEX vectors.

S

SAID
Decides whether the character variables INCHAR and WANT are the same, ignoring any distinction between upper and lower case.
SATFND
Finds the indices HS of the satellite equivalent to H, offset by the propagation vector PROP from a reciprocal lattice point.
SATGEN
Generates a set of magnetic satellite reflections.
SAVMAP
Writes 1 layer of map to given file, plus information for later retrieval.
SAYS
Decides whether the string WANT matches a string of the same length,just read into /SCRACH/ ignoring any distinction between upper and lower case.
SCALPR
Forms the scalar product of two orthogonal vectors (or of one from real space with one from reciprocal space).
SCLCHN
A specialist routine used during the setting up of constraints on LSQ variables. Scales a chain of connected variables by the given constant.
SCLPRD
Forms the scalar product of two vectors referred to crystal axes.
SERROR
Called after VA05A to give the standard deviations of the parameters.
SETABS
Sets up data for the calculation of absorption (or related) integrals.
SETANI
Reads "T" cards to set up for calculation of anisotropic temperature factors.
SETDC
Reads D cards to set up crystal orientation and diffraction geometry.
SETFC
Calls all the setting up routines needed for nuclear structure factor calculations.
SETFCM
Calls the routines needed to set up magnetic structure factor calculations (or non-magnetic also).
SETFOR
Sets up data for scattering or form factor calculations.
SETFOU
Sets up data for Fourier map calculations.
SETGAM
Entry to BIGGAM
SETGAU
Sets up the COMMON /GAUSS/ for Gaussian integration (for use in absorption correction type integrals).
SETGEN
Sets up the generation of a complete set of reflection indices.
SETLP
Prepares to calculate (X-ray) Lorentz and polarisation corrections.
SETPOL
Reads the up and down polarisations of a polarised neutron beam.
SHFESD
During the application of LSQ shifts, calculates the shift and ESD for a "redundant" variable.
SID
Solves a set of simultaneous linear equations.
SINCOS
Calculates sin from cos or vice-versa.
SORTN
Sorts pointers to an integer array using Heapsort.
SORTX
Sorts pointers to a real array using Heapsort.
SPACE
Interprets symbols from an S card which are the space group name.
SPCSET
Defines the "space" in which coordinates will be given for plotting.
SPGNAM
Decodes space group symbol or integer from S GRUP card
SPHARM
Calculates spherical harmonics.
SPHELI
Imposes perpendicularity on the two components of a helix.
SPHPOL
Sets up spherical polar spin directions for magnetic structures.
SPLINE
Sets up a cubic spline to fit a curve.
SPLINT
Evaluates a cubic spline given spline values and first derivative values at the given knots.
STATIS
Calculates means and other statistics for a set of measurements of a single quantity.
STERMS
Calculates a term in the spherically symmetric form factor summation, for a 3D averaged form-factor involving Sk and r only.
STLSFW
Sets up the main program FWLSQ to perform LSQ on Forsyth & Wells scattering factor coefficients.
STLSSF
Sets up any main program which does single crystal structure factor LSQ.
STPLOT
Sets up the plotting of maps; fits elements of a picture together.
SUBCON
Entry to ADDCON
SUBSYM
Replaces all the symmetry parameters by those of a subgroup.
SUMVEC
Calculates the sum of elements of a real array
SYMBAK
Restores the original symmetry operators after a call to SUBSYM.
SYMCEN
A specialist routine used during the input of space group symmetry to discover whether there is a centre of symmetry.
SYMEQU
Generates new indices and a phase, in Fourier calculations.
SYMFIX
Says whether a LSQ parameter is fixed by symmetry or not.
SYMFRI
Reads and interprets an item "FRIE" on an I card.
SYMGEN
Produces the generators of a space group which has been read by SYMOP.
SYMOP
Reads all the symmetry operators or a space group specification from "S" cards, and generates the space group.
SYMREF
Generates a set of equivalent reflections and related phases.
SYMTID
Tidies all the arrays connected with the space group symmetry.
SYMUNI
Selects a reciprocal space asymmetric unit fitting the symmetry.

T

TB02A
Interpolates in non-equal interval table.
TBLFND
Looks for an A4 NAME in every table it can find, trying to identify it as part of a LSQ parameter name.
TBOUND
A specialist routine used duing the plotting of atomic positions in main program ATMPLO.
TESTOV
Tests a floating division for potential overflow.
TESTP
Puts a given heading at top of every printer page, counting lines.
THREEJ
RETURNS A 3J COEFFICIENT
TQLI
Performs the QL algorithm for eigenvalues and vectors of a real symmetric matrix previously reduced to tridiagonal form.
TRANSC
Replaces a COMPLEX square matrix by its transposed conjugate.
TRANSQ
Replaces a real square matrix by its transpose.
TRED2
Performs the Householder reduction of a real symmetric matrix to tridiagonal form.
TRIAN1
Applies the cosine formula for the solution of spherical triangles.
TRIG
Sets up cos(nx) and sin(nx) for a range of n by recursion.
TRINV3
Replaces a 3x3 matrix by the transpose of its inverse.
TRYUNI
A specialist routine used in the setting up of the asymmetric unit, to try out a given set of planes as faces of the unit.

U

UNITID
A specialist routine called when an asymmetric unit has been found, to tidy the unit, its faces and edges.
UNIVEC
Replaces a vector by a parallel unit vector, and gives its length.
UNUSYM
Undoes the transformsation of symmetry operators by pre- and post-multiplying them by the inverse of the orientation matrix for a Fourier map.
UPLOW
Makes first letter of C upper case, and any subsequent letters lower case.
UPONE
Puts character strings into all uppercase or all lower case depending on ISYS
UPPER
Replaces any lower case letters in C by upper case
USYM
Transforms all the symmetry operators by pre- and post-multiplying them by U, the orientation matrix for a Fourier map.

V

VA05A
Minimises the sum of squares of given functions without requiring the explicit calculation of derivatives.
VARMAK
Makes variables for a LSQ cycle from given FIX/VARY and CONSTRAINT lists.
VARSDS
Makes variables for cell parameters and propagation vector for d-spacing LSQ.
VARSMG
Records variable pointers for all variables in magnetic structure-factor LSQ.
VARSSF
Records variable pointers for all variables in structure-factor LSQ.
VARST2
Makes variables for zero and cell for T2 type LSQ
VCTMOD
Calculates the modulus of the vector H, in either space.
VECOUP
Calculates Clebsch-Gordon vector coupling coefficient
VECPRD
Calculates the vector product of two 1x3 vectors.
VOCAB
Adds a given set of vocabulary and meanings to the Least Squares total vocabulary.
VOIGT
Calculates normalised Voigt function

W

WERF
Weighted error function ???
WGHTLS
Performs various operations to do with weights for LSQ, either for PR or simpler applications. applications.
WGHTSF
Deals with weights of LSQ observations for single crystal.
WIYPOS
Returns \$\exp(y^2){\textrm errf}(y)\$ for positive \$y\$ only
WTMEAN
Multiple entry routine for the calculation of weighted averages.

X

XROOT
Finds the symmetry operations which take the given source atom into the given coordinates.
XTRANS
Transforms a given atomic position by given symmetry operator and lattice and cell translations.
XYZREL
Collects all position parameter constraints implied by the symmetry.


Contents Manual

P. Jane Brown e-mail: brown@ill.fr
Institut Laue Langevin,
Grenoble, FRANCE