Contents Prev Manual

SUBROUTINE BATCH

Signals batch running, not interactive.

Output:

Sets NBATCH in COMMON /GLOBAL to be the distinctive value 42

Notes:

BATCH should be called AFTER INITIL, but before anything else.
The relevant input/output unit numbers should also be set up in MAIN, AFTER BATCH, if they differ from the following settings:

Calls:

MESS

Common blocks used:

/CARDRC/ to use ICRYDA
/GLOBAL/ to use NBATCH
/IOUNIT/ to use LPT LUNI
/MAPGT/ to use IDUMPG
/MAPRD/ to use IDUMPR
/MAPSV/ to use NDUMPS
/NEWOLD/ to use NEWIN
/PRSTAT/ to use IOP1 IOP2

*** BATCH by JCM 27 Jun 86 ***

Classification:

Miscellaneous . . . . . . . Utility

SUBROUTINE BIGCHA(BWORD)

Writes on unit LPT up to 9 characters in large letters.

Arguments:

On entry, BWORD is the required word

Output:

Writes (up to 9) characters of BWORD to output LPT in letters/digits 12 characters wide by 12 lines high, composed of the relevant character and finishes with 2 blank lines

Notes:

Turns lower case into upper

Calls:

LENGT LETTER NDIGIT

Common blocks used:

/BIGONE/ to use all members
/IOUNIT/ to use LPT

*** BIGCHA corrected by PJB 31-May-1994 ***

Classification:

CCSL Input/Output Routines . . . . . . . Utility

SUBROUTINE BIGGAM(K,IQ,CSMAX,LBIG)

Deals with gammas whose value is greater than one, in SORGAM.
There is also the entry SETGAM to set up the calculation.

Arguments:

On entry K is a set of reflection indices to be tested
IQ is returned as 1 if gamma for this reflection is greater than 1
returned as 0 otherwise

CSMAX is the maximum value of cos(rho) for which the effective gamma
is >1

Entry SETGAM SOME is a logical which is set true if a GAMA 1 is found
on an I card . It is false otherwise.

LBIG is the unit from which the indices are read, it is set by SETGAM
and used by BIGGAM, the value tranferred via the calling program.

Entries:

SETGAM called by: SORGAM

Calls:

ASK FILNOM JFIX MESS NOPFIL ONCARD

Called by:

SORGAM

Common blocks used:

/BIGAM/ to use all members
/IOUNIT/ to use LPT ITO

*** BIGGAM updated by PJB 24-May-2000 ***

Classification:

Data Collection and Reduction . . . . . . . Crystallographic

LOGICAL FUNCTION BINDIG(N,NBIN)

Tests for the presence of a given binary digit within an integer.

Arguments:

On entry N is the integer to be tested
NBIN is a binary digit (in decimal form, e.g. 1, 2, 4, 8 etc)

On exit BINDIG is TRUE if N contains NBIN, FALSE if not.

Notes:

NBIN is not checked; if it is not pure binary there will be strange results.

Calls:

PARITY

Called by:

POLUNI PRMTIV SETGEN SYMGEN SYMTID

*** BINDIG by JCM 13 Nov 91 ***

Classification:

Tests . . . . . . . Utility

SUBROUTINE BITSET(I,NC,TEST,SET)

Sets or tests a single bit in a word.

Arguments:

On entry I,NC pick out the required bit in array IBIT
SET is a LOGICAL.

On exit, if SET is TRUE, sets relevant single bit into array IBIT.
if FALSE, sets LOGICAL TEST to indicate whether relevant bit is
already present in IBIT, and removes it if it is.

Calls:

ITPOS LOGAND LOGOR

Called by:

MAKEBM PLOTCT

Common blocks used:

/BITMAP/ to use all members
/IOUNIT/ to use LPT ITO
/LENINT/ to use all members

*** BITSET by JCM 25 Nov 82 ***

Classification:

Logical Operations . . . . . . . Utility

FUNCTION BJ(N,X)

Calculates Bessel functions of order 1 or 2.

Arguments:

On entry N is the order required
X is the argument

On exit BJ holds the required Bessel function

Description:

Uses Harwell Library FF01A or FF02A, which have been included as part of the CCSL.

Calls:

ERRIN2 FF01A FF02A

Called by:

JTERMS

*** BJ by JCM 17 Jan 85 ***

Classification:

Mathematical Functions . . . . . . . Utility

SUBROUTINE BNDLST(NAME1,NAME2)

Writes out and saves a list of bonds from one atomic position.

Arguments:

On entry NAME1 is the name of source atom in list in /POSNS/,
NOT a general atom name (i.e. all letters) because that would not group together bonds from a single atom, to be used in angles.

NAME2 is EITHER the name of one destination atom,
OR a general atom name.

Prerequisite calls:

In /BONDLA/ BMAX and BMIN give the limits of bonds to consider.

Description:

To find both NAME1 and NAME2, scans the list in ATNAME. Accepts a complete match; also for NAME2 accepts a match of a general atom name with ALL the starting letters of a name in the list.
So, e.g. for NAME2, Si2 matches with ONLY Si2 (not Si23)
Si matches with Si, Si1, Si2 etc (not SiA)

Makes from atom 2 all useful destination atoms related by symmetry to it.
Because bonds are also used as slack constraints in LSQ, the destination atom formed by a particular symmetry operation, which may well fall outside the original unit cell (i.e. have coordinates < 0 or > 1) is NOT now put back into the original cell. Previously it was, and the resulting 3x3x3 cube of cells was scanned. This makes a terrible mess of refined coordinates which themselves hop over a cell edge.
So now a symmetry related position is formed, and the surrounding 5x5x5 cube of unit cells is scanned.
A list of found bonds (and related information) is held in /BONDLA/ for use when rejecting duplicate bonds, and perhaps later if angles are required. by including a B BESD card .

Output:

Writes found bonds to unit LPT with their esd's if these were requested
Writes generated cards to unit LSK

Calls:

ADDATM ADDBON ATSPEC BONERR DEGREE ERRCHK GENNAM GMADD GMREV GMSUB IATOM JGMZER MESS NPACK ORTHO ROTSYM UNIVEC VCTMOD

Called by:

BONDS

Common blocks used:

/ATNAM/ to use ATNAME
/ATNMPK/ to use all members
/BANERR/ to use IATS IOP BNDESD
/BONDLA/ to use NB BSAVE DXSAVE NBSAVE N2SAVE N3SAVE I1LAST BMAX BMIN BON2 SD2 BONOUT LSK SLK LBOND
/IOUNIT/ to use LPT
/NSYM/ to use NCENT NOPC NLAT
/POSNS/ to use NATOM
/SLKGEC/ to use ATTNAM BONNAM
/SLKGEO/ to use NUMBON NTARNM
/SYMDA/ to use TRANS ALAT

*** BNDLST updated by PJB 22 Apr 2003 C123 ***

Classification:

Crystal Geometry . . . . . . . Crystallographic

SUBROUTINE BONCOS(B1,B2,B3,ANGLE,COSTH,SINTH,
DADB)

Given 3 bonds forming a triangle, calculates the angle opposite
the first, its sine and cosine, and its derivatives wrt all 3 bonds.

Arguments:

On entry B1, B2, B3 are the values of the bonds (not their pointers)
On exit ANGLE is the angle opposite B1 in radians
COSTH is its sine
SINTH is its cosine
DADB is a 1x3 array holding the derivatives of ANGLE wrt B1,B2,B3

Calls:

ARCCOS SINCOS

Called by:

GEOMLS

*** BONCOS by JCM 18 Oct 90 ***

Classification:

Crystal Geometry . . . . . . . Crystallographic

FUNCTION BONDA(I1,I2,I3)

Calculates the angle between two bonds.

Arguments:

On entry I1 is the serial number of one atom in list in /POSNS/
I2 is the serial number of the central atom
I3 is the serial number of the third atom

On exit BONDA is the angle between the bonds, in degrees

Description:

Calculates the angle between bonds joining atoms I1-I2 and I2-I3.
Does no symmetry operations at all.

Notes:

It would probably be useful also to have a routine which accepts as arguments X1(1:3), X2(1:3) and X3(1:3), position coordinates.

Calls:

DEGREE SCLPRD SINCOS VCTMOD

Called by:

BONDS

Common blocks used:

*** BONDA by JCM 1 Oct 86 ***

Classification:

Crystal Geometry . . . . . . . Crystallographic

SUBROUTINE BONDER(N)

Calculate a bond and its derivatives for slack constraints.

Arguments:

On entry N points to which bond of the list in /SLKGEO is wanted

Description:

On exit, in /SLKGEO, BCALC(N) = bond length
Also sets up the 12 derivatives (whether needed or not) in /SLKGEO
DERPOS(3,N,2)=derivatives of BCALC wrt x,y,z (in original
atom lists), both ends.

DERCEL(6,N) =derivatives of BCALC wrt A*, B*, C* etc
the cell quadratic products in reciprocal space

Calls:

GMEQ GMPRD GMREV GMSUB ROTSYM VCTMOD

Called by:

GEOMLS

Common blocks used:

/CELPAR/ to use CELL
/SLKGEO/ to use IATM ISYM XSLAK COSIN TOSTAR BCALC DERCEL DERPOS

*** BONDER updated by JCM 22 Oct 90 ***

Classification:

Crystal Geometry . . . . . . . Crystallographic

SUBROUTINE BONERR(I1,I2,IS,XBON,BL,BERR)

To calculate the esd's in bondlengths

Arguments:

On entry I1 and I2 are the source and destination atoms
XBON is the vector in real space coordinates joining the two atoms
IS is the operator creating I2, negative if reversed
BL is the bondlength

On exit BERR is the esd

Description:

The subroutine calculates the esd of the bondlength using both the esd's in the atomic coordinates and those in the cell quadratic products The result is stored in COMMON BESDS as BERR(IB)

Calls:

GMEQ GMPRD GMSUB GMZER RELMT3 RELMTX RELPOS

Called by:

BNDLST

Common blocks used:

/BANERR/ to use IPFIX APFIX RELMT IATS IOP
/CELFIX/ to use RCLMAT
/CELPAR/ to use CPARS CELESD SDCELL
/POSNS/ to use SDX ATESDS

*** BONERR corrected by PJB C98 Oct-2000 ***

Classification:

Crystal Geometry . . . . . . . Crystallographic

SUBROUTINE BONTRI(N1,N2,N3,K,IE)

Given two bonds with a common atom, completes the triangle and
identifies the atom.

Arguments:

On entry N1 and N2 are the pointers to 2 bonds (in the list generated by
L ATOM and L BOND cards )

On exit N3 points to the third bond completing the triangle
K points to the common atom, opposite N3 in the triangle. and N1 and N2 are possibly interchanged; the result is N1 < N2.
IE is an error indicator, set = 0 if OK, non-zero if error.

Calls:

ADDBON FLIP

Called by:

ADDTOR ANGLST RDANGL

Common blocks used:

/IOUNIT/ to use LPT ITO
/SLKGEC/ to use BONNAM
/SLKGEO/ to use IATM

*** BONTRI by JCM 17 Oct 1990 ***

Classification:

Crystal Geometry . . . . . . . Crystallographic

FUNCTION BRILL(T,TN,S)

Returns the value of the Brillouin function.

Arguments:

On entry T is the absolute temperature at which the function is required,
TN the transition temperature,
S is the spin.

Notes:

Uses the subprogram NB01A from the Harwell library.

Calls:

NB01A

Common blocks used:

/IOUNIT/ to use LPT ITO

*** BRILL from PJB 14 Jun 88 ***

Classification:

Mathematical Functions . . . . . . . Utility


Contents Manual

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