Tests for systematic absence of magnetic reflections.
Arguments:
-
On entry H is a 1x3 array holding h,k,l
On exit MAGABS = .TRUE. if absent, .FALSE. if present
- IK is +1 if the indices correspond to a r.l.v + the
- propagation vector ie h=g+k
IK is -1 if h=g-k
IK is 0 if this is irrelevant.
Prerequisite calls:
-
The space group symmetry should have been set up by SYMOP
The propagation vector PROP should have been set up by DOMAG1
Calls:
- GMADD
GMSUB
LATABS
Called by:
- CALCFR
FCHALC
FMCALC
FMMPCA
LMCALC
LMMPCA
LMTCAL
SATFND
TCHALC
CALMSF
GETMSF
MAGPOW
TCHMPC
Common blocks used:
-
- /SATELL/ to use PROP IPROP
*** MAGABS modified by PJB Jan 91 ***
Classification:
Magnetic Structure Factors . . . . . . . Crystallographic
To find magnetic constraints in a non-least squares calculation.
Prerequisite calls:
-
The magnetic symmetry must have been set up by calls to SYMOP and
DOMAG1
Calls:
- MAGCON
SPHELI
SPHPOL
Called by:
- CALMSF
CALQSF
GETMSF
MAG3D
MAGPOW
MG3DGL
Common blocks used:
-
- /MAGDAT/ to use NMAG ANGM SPIND
- /SYMMAG/ to use FERO FERA HELI
*** MAGCNC Updated for PSI's C141 March 2006 ***
Classification:
Magnetic Structure Factors . . . . . . . Setting Up
Does the fixing associated with constraints found by MAGCON and
PSICON.
Calls:
- MAGCON
SPHELI
SPHPOL
Called by:
- DOMAG2
DOMPL2
MMPLSQ
PALSQ
Common blocks used:
-
- /MAGDAT/ to use MAGAT ANGM NPHI SPIND
- /PHASE/ to use JPHASE
- /POSNS/ to use NATOM
- /SYMMAG/ to use FERO FERA HELI MODUL
*** MAGCNL Updated for PSI's C141 and FERA C4.1 December 2006 ***
Classification:
Magnetic Structure Factors . . . . . . . Setting Up
Finds and reports the symmetry constraints on magnetic parameters.
Arguments:
-
IATO is the number of the magnetic atom in question
LMFIX(I) is set to TRUE if parameter I for this atom is fixed by symmetry
FIRST is TRUE if no constraints have yet been found
Calls:
- DEGREE
DUMMY
ERRCH2
ERRIN2
FACGRP
GMADD
GMEQ
GMREV
GMSUB
MAKGRP
MESS
PSICON
RANGE
RELSM3
ROTSYM
SCALPR
SPHPOL
Called by:
- MAGCNC
MAGCNL
Common blocks used:
-
- /ATNAM/ to use ATNAME
- /IOUNIT/ to use LPT ITO
- /MAGDAT/ to use JMAGAT ANGM SMOD FCENT
- /NSYM/ to use NOPC CENTRC
- /POSNS/ to use ISGEN
- /SATELL/ to use PROP KSTAB IPROP
- /SYMDA/ to use TRANS
- /SYMMAG/ to use MTSYM MSTAB OTRSYM HELI MODUL
*** ***
Classification:
Magnetic Structure Factors . . . . . . . Setting Up
Calculates various geometric corrections for various magnetic
states. The ENTRY ENTMAG sets up the COMMON.
Arguments:
-
On exit QLAM is the cosine of the angle between the scattering vector
- and the polarisation direction.
QQ is the sine of the angle between the magnetisation direction
and the scattering vector.
Description:
-
ENTMAG sets up /MOMDIR/ to contain the magnetisation direction in AMD,
and MM to specify the option:
- MM = 1 magnetisation parallel to the omega axis
MM = 2 magnetisation parallel to an axis given on an
I card
MM = 3 magnetisation between 1 and 2 at cos-1(csphi) to 2
MM = 4 Schwinger scattering
Entries:
- ENTMAG called by: SORGAM
Calls:
- DEGREE
GMADD
GMEQ
GMSCA
JFIX
MESS
ONCARD
ORTHO
RADIAN
SCALPR
SINCOS
UNIVEC
VECPRD
Called by:
- SORGAM
Common blocks used:
-
- /DGEOM/ to use UM
- /IOUNIT/ to use LPT
- /MOMDIR/ to use all members
*** MAGDIR corrected by PJB 12-Sept-1998 ***
Classification:
Magnetic Structure Factors . . . . . . . Crystallographic
In Least Squares refinement with magnetic scattering, forms the
matrix needed for derivatives of Q with respect to a spin direction.
Arguments:
-
On entry H is the scattering vector
- IOP is the symmetry operator to be used on H
On exit the 3x3 matrix HK contains the required matrix.
- LOGICAL SKIP is set to indicate
Prerequisite calls:
-
MTYP must indicate the type of magnetic structure.
NORD, MSTAB and KSTAB entries for IOP must be set.
Description:
-
HK is formed, such that Q=KxSxK=S[HK]
Calls:
- GMREV
ORTHO
ROTSYM
UNIVEC
Called by:
- FMCALC
FMMPCA
LMCALC
LMMPCA
LMTCAL
Common blocks used:
-
- /SATELL/ to use KSTAB
- /SYMMAG/ to use MSTAB FERO
- /SYMTAB/ to use NORD
*** MAGDOM by PJB Apr 87 ***
Classification:
Magnetic Structure Factors . . . . . . . Crystallographic
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.
Arguments:
-
On entry to MAGSYM MODE = 0 to initialise
- 1 to generate the remaining operators and the
- orthogonal spin rotations in OTRSYM
On entry to MELIN IOP = which operator
- VAL = + or - 1, its value
On entry to ROTMAG S is the 3x3 array to be rotated
- IOP = which operator
On exit from ROTMAG RS is the 3x3 rotated array
On entry to NELIN IOP = which operator
Entries:
- MELIN called by: DOMAG
DOMAG1
- NELIN called by: DOMAG
DOMAG1
- ROTMAG called by: FMCALC
FMMPCA
LMCALC
LMMPCA
LMTCAL
Calls:
- COSET
ERRIN2
ERRMES
FACGRP
GENGRP
GMEQ
GMPRD
GMREV
GMUNI
JGMEQ
JGMZER
MESS
MTPROD
OPMSYM
TRANSQ
Called by:
- DOMAG
DOMAG1
Common blocks used:
-
- /CARDRC/ to use IERR
- /CELPAR/ to use ORTH
- /IOUNIT/ to use LPT
- /NSYM/ to use NOPC CENTRC
- /SATELL/ to use KSTAB
- /SYMDA/ to use SYM
- /SYMMAG/ to use MTSYM MSTAB OTRSYM NDOM FERO FERA
- /SYMTAB/ to use MULTAB INVERS NORD
*** MAGSYM touched up by PJB C141 March 2006 ***
Classification:
Magnetic Structure Factors . . . . . . . Crystallographic
Records the initial fixing, or subsequent varying of magnetic
parameters.
Arguments:
-
On entry IG is the genus of the parameter (which atom)
- IS is the species (13-16 PHIH, 17-20 ANGM, 21,22 SMOD)
NV is 0 if the while lot of parameters are to be initially fixed
- the number of the variable, if it is to be varied.
Called by:
- VARSMG
Common blocks used:
-
- /MAGDAT/ to use NMAG MAGAT KANGM KSMOD KPHIH
*** MAGVAR updated by JCM 3 Jun 92 ***
Classification:
Magnetic Structure Factors . . . . . . . Crystallographic
A specialist routine used in the input of the Crystal Data File
needing previously stored Fourier maps.
Description:
-
MAJUST is called from PREFIN, on discovering that the user has given an
"M GE
T" card
. It adjusts file IO10 so that it contains mainly cards from the
previously dumped run (to be found on named file), updated to include
any new
"M" cards
presented for this run. The rule for "M" cards belonging
to the "old" and "new" sets is:
- take only new cards for PRIN, PLOT, SAVE and GET;
take only old cards for NDIM, FTYP, MESH, DTYP, DELT, SCAL, SMAX and AXES.
For CM/A and CONT:
- if the card type occurs in "old" but not "new", accept it
if card type occurs in "new" but not "old", accept it
if card type occurs in both, accept the "new" only.
Also takes a new
"N" card
, unless there is only an old one.
Notes:
-
All the cards capable of being telescoped happen to occur in the "take only
old" category, so should not pose a problem by hiding something other than
in columns 3-6, but - care will be needed with any newly defined cards.
Calls:
- CARDIN
FILNOM
LETTER
OPNFIL
RDWORD
Called by:
- CDFIN
Common blocks used:
-
- /CARDRC/ to use NYZ IO10
- /IOUNIT/ to use LPT
- /MAPGT/ to use IDUMPG
- /SCRACH/ to use all members
*** MAJUST updated by JCM May 88 ***
Classification:
Fourier Calculations . . . . . . . Setting Up
A specialist contour plotting routine which makes a bit map to
show where the contours are.
Calls:
- BITSET
Called by:
- PLOTCT
*** MAKEBM by JCM 24 Nov 82 ***
Classification:
Logical Operations . . . . . . . Utility
Generates the subgroup of a space group from the given generators.
Arguments:
-
On entry, IGSB holds the generators
- IABS(IGSB(1)) is the number of operators in the subgroup, divided
- by 2 if the group contains a centre of symmetry.
If 1 it may indicate that the number of operators in
the sub-group is not known and should be calculated
by the subroutine
IGSB(1) is negative if the group contains a centre of symmetry
IGSB(2) is the identifying number of the first generator; it is
- negative if it is the centrosymmetrically related one.
IGSB(3) is as IGSB(2) but for the second generator if there is one
If MODE=1 the subroutine PRODCT is called with to allow evaluation
- of a possible representation of the group.
PRODCT is an externally defined subroutine. May be DUMMY.
On exit, IOPS is a table which contains an entry for each operator of the
- full group. It is positive and non-zero if the operator
belongs to the sub-group, and negative if it is only the
centro-symmetric operator which is in the sub-group.
IGSB(1) is set as above using the multiplicity of the sub-group
- found by the sub-routine.
Prerequisite calls:
-
SYMOP
Calls:
- JGMZER
Called by:
- MAGCON
MPCON
MUCALC
Common blocks used:
-
- /NSYM/ to use NOPC
- /SYMTAB/ to use MULTAB NORD
*** MAKGRP modified by PJB 31-May-1994 ***
Classification:
Basic Crystallography . . . . . . . Setting Up
Makes an A4 name from the given character and the digits of the
given number.
Arguments:
-
On entry CHAR holds either a single character, to fill the name from the
- left, repeatedly, or 2,3 or 4 characters, which are used to
fill in on the left unchanged.
N is an integer
On exit MAKNAM is a *4 name with the digits of N at the right hand side,
- filled with the characters from CHAR.
Called by:
- ADDANG
ADDATM
ADDBON
*** MAKNAM BY JCM 8 JUL 91 ***
Classification:
CCSL Input/Output Routines . . . . . . . Utility
After a Fourier map has been plotted, sends to the plotter the
list of contours which were plotted, with a frame.
Arguments:
-
On entry CFOUND is a real array containing the contour values to write,
- IC is the number of elements in CFOUND,
IBMAX and IFMAX are handed over to indicate general size of numbers.
Prerequisite calls:
-
STPLOT shuld set this up, and MPPLOT should call it, having made the list
Calls:
- FRAME
GMZER
KANGA1
KANGA2
NUMA1
PIGLET
PLTRIN
SPCSET
Called by:
- FOURPL
Common blocks used:
-
- /PLODAT/ to use ASPECT CHUNIT
- /PLOMAP/ to use WIDPIC HGTMAP HGTTXT WIDCON HGTCON XMARG YMARG YWHITE CHSCAL
- /PLTRAN/ to use PMTRIX
*** MAPCON by JCM 22 Aug 86 ***
Classification:
Fourier Calculations . . . . . . . Crystallographic
Draws an unframed contour map, in predetermined place.
Arguments:
-
On exit CFOUND is a real array which holds all the found contour values.
- IC is the number of found contours.
IBMAX and IFMAX are sensible sizes for later contour list printing.
Prerequisite calls:
-
STPLOT must have set up the map contouring
Calls:
- FETTLE
NEXCON
PLOTCT
SPCSET
Called by:
- FORFIG
FOURPL
Common blocks used:
-
- /CONTUR/ to use NCONT
- /IOUNIT/ to use LPT ITO
- /MAPDA/ to use NX NY DENS
*** MAPDRW by JCM 22 Aug 86 ***
Classification:
Fourier Calculations . . . . . . . Crystallographic
Draws a black frame round a potential contoured map, adding the
labels X Y and a 1A scale.
Prerequisite calls:
-
Needs to be set up within a whole picture by STPLOT
Output:
-
Causes (possibly skew) frame to be drawn via PIGLET, with labels X and
Y (and therefore implicit origin), and a one-angstrom scale underneath.
Calls:
- FRAME
KANGA1
KANGA2
PIGLET
PLCONV
SPCSET
Called by:
- FORFIG
FOURPL
Common blocks used:
-
- /MAPDA/ to use NX NY
- /PLODAT/ to use CHUNIT
- /PLOMAP/ to use YWHITE SCALMP
*** MAPFRA by JCM 22 Aug 86 ***
Classification:
Fourier Calculations . . . . . . . Crystallographic
Plots a key to the atoms found by ATMPLO.
Calls:
- FRAME
GMZER
KANGA1
KANGA2
KANGA3
PIGLET
PLCONV
PLTRIN
SPCSET
Called by:
- FORFIG
Common blocks used:
-
- /ATNAM/ to use ATNAME
- /MAPDA/ to use NX NY
- /PLODAT/ to use ASPECT CHUNIT
- /PLOMAP/ to use WIDPIC HGTMAP HGTTXT WIDCON HGTCON XMARG YWHITE CHSCAL
*** MAPKEY updated by JCM Sep 91 ***
Classification:
Fourier Calculations . . . . . . . Crystallographic
Writes a title over a plotted map, with a frame.
Prerequisite calls:
-
The picture must be initialised by a call of STPLOT, setting up in particular
space 6 to be "character type 2" space, measured for suitability for title.
The title must have been read by INPUTN.
Calls:
- FRAME
KANGA2
SPCSET
Called by:
- FORFIG
FOURPL
Common blocks used:
-
- /NTITL/ to use NTITLE
- /PLODAT/ to use CHUNIT
- /TITLE/ to use all members
*** MAPTIT by JCM 22 Aug 86 ***
Classification:
Fourier Calculations . . . . . . . Crystallographic
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.
Arguments:
-
The Least Squares matrix ALSQ(MATSZ) must be handed throughout the system
as the argument of routine calls in order to make it easily altered.
Prerequisite calls:
-
The LSQ matrix ALSQ is assumed to hold the inverse matrix after a
cycle of refinement.
Description:
-
Fills in array CELESD(6,6,2) for the variance-covariances of the
quadratic products in both spaces, and CELLSD(6,6) for a,b,etc.
Calls:
- CELMAT
ELEMAT
GMINV
GMPRD
GMTRAN
GMZER
RADIAN
Common blocks used:
-
- /CELPAR/ to use CELL CPARS KCPARS CELESD CELLSD
- /CONSTR/ to use JROWPT JCMAT AMOUNT
- /POINTS/ to use LVRBS LBSVR
*** MATCEL corrected by PJB 2-Jan-96 ***
Classification:
General Least Squares Refinement . . . . . . . Crystallographic
Checks to see whether two sets of reflection indices match.
Arguments:
-
On entry K(3,2) holds the two sets of indices, hkl1 hkl2.
Description:
-
The function is set to zero if the indices match
- to 1 if hkl1 comes before hkl2 in the standard order
- of reflection indices in which h varies fastest
then k then l
to 2 if hkl2 comes before hkl1
Notes:
-
See also MATCHF for floating indices
*** MATCH by PJB 1 Jul 86 ***
Classification:
Manipulation of Reflection Indices . . . . . . . Utility
Checks to see whether two sets of floating point reflection
indices match.
Arguments:
-
On entry F(3,2) holds the two sets of indices, hkl1 hkl2.
Description:
-
The function is set to zero if the indices match
- to 1 if hkl1 comes before hkl2 in the standard order
- of reflection indices in which h varies fastest
then k then l
to 2 if hkl2 comes before hkl1
Notes:
-
See MATCH for fixed point indices
Called by:
- PALSQ
*** MATCHF by JBF 19 Jun 87 ***
Classification:
Manipulation of Reflection Indices . . . . . . . Utility
After a Least Squares cycle, prints correlations from the inverse
matrix.
Arguments:
-
The matrix ALSQ is dimensioned everywhere except in MAIN programs as
ALSQ(MATSZ), and handed through as a routine argument.
Calls:
- ELEMAT
JFIX
MESS
NEWLIN
PARNAM
Called by:
- CHILSQ
MAGLSQ
MMPLSQ
MPCLSQ
MPLSQ
PALSQ
SFLSQ
SFTLSQ
SNPLSQ
Common blocks used:
-
- /DERBAS/ to use LVARB
- /IOUNIT/ to use LPT
- /MATDAT/ to use BLSQ
- /REFINE/ to use MAXCOR SIMUL
*** MATCOR updated by JCM 11 Aug 88 **
Classification:
General Least Squares Refinement . . . . . . . Utility
Inverts the matrix in ALSQ, of which the upper triangle only is
held.
Arguments:
-
ALSQ has the dimension MATSZ, which is set in MAIN programs and handed down
to here as a parameter of the routine calls.
Notes:
-
No interchanges are done - a positive definite matrix should not need them.
This should be modified some day to operate on the right hand side BLSQ also.
It is intended to replace it by a QR inversion routine.
Calls:
- PARNAM
TESTOV
Called by:
- CHILSQ
MAGLSQ
MMPLSQ
MPCLSQ
MPLSQ
PALSQ
SFLSQ
SFTLSQ
SNPLSQ
Common blocks used:
-
- /DERBAS/ to use all members
- /IOUNIT/ to use LPT ITO
- /MATDAT/ to use MATPNT BLSQ
- /PHASE/ to use KPHASE
- /REFINE/ to use SIMUL
- /SOURCE/ to use KSOURC
*** MATINV updated by JCM 2 Jun 89 ***
Classification:
General Least Squares Refinement . . . . . . . Utility
Sets up pointers into a Least Squares matrix, and clears the
matrix and the corresponding right hand side vector.
Arguments:
-
The matrix ALSQ is dimensioned everywhere except in MAIN programs as
ALSQ(MATSZ).
Calls:
- GMZER
Called by:
- CHILSQ
MAGLSQ
MMPLSQ
MPCLSQ
MPLSQ
PALSQ
SFLSQ
SFTLSQ
SNPLSQ
Common blocks used:
-
- /DERBAS/ to use LVARB
- /IOUNIT/ to use LPT ITO
- /MATDAT/ to use MATPNT BLSQ
- /REFINE/ to use SIMUL
*** MATSET updated by JCM 11 Aug 88 ***
Classification:
General Least Squares Refinement . . . . . . . Utility
From an inverted Least Squares matrix, calculates shifts in basic
variables.
Arguments:
-
The Least Squares matrix ALSQ is dimensioned everywhere except in MAIN
programs as ALSQ(MATSZ), and both ALSQ and MATSZ are then handed through the
system as the arguments of routines.
On entry ALSQ must contain the inverse of the LSQ matrix.
Prerequisite calls:
-
The vector BLSQ must hold the rhs of the Least Squares equations.
SUMWD in /OBSCAL/ holds the sum of weighted differences,
NOBS in /OBSCAL/ = number of observations used,
LVARB in /DERBAS/= number of basic variables.
Description:
-
Calculates shifts from the inverse matrix (ALSQ) and the rhs (BLSQ),
putting the answers in BLSQ and the esds in DERIVB.
Notes:
-
Eventually MATINV will modify BLSQ to give shifts, but for now we must
form them separately.
Calls:
- PARNAM
Called by:
- CHILSQ
MAGLSQ
MMPLSQ
MPCLSQ
MPLSQ
PALSQ
SFLSQ
SFTLSQ
SNPLSQ
Common blocks used:
-
- /DERBAS/ to use all members
- /IOUNIT/ to use LPT ITO
- /MATDAT/ to use BLSQ
- /OBSCAL/ to use SUMWD NOBS CSQTOT
- /REFINE/ to use SIMUL
- /RSTATS/ to use CHI2
- /SLAKDA/ to use NSKTOT
*** MATSHF updated by JCM 30 Sep 88 ***
Classification:
General Least Squares Refinement . . . . . . . Utility
Add in contributions to LSQ matrix and RHS for one observation.
Arguments:
-
All reference to the lsq matrix ALSQ is made through routines with
arguments ALSQ and MATSZ.
This enables ALSQ to be dimensioned everywhere except in MAIN as ALSQ(MATSZ)
Prerequisite calls:
-
On entry DERIVB holds the derivatives wrt all basic variables
- DIFF holds OBS-CALC
SQRTWT holds the square root of the weight
SIMUL is TRUE if this is only a simulation cycle
Called by:
- GEOMLS
CHILSQ
MAGLSQ
MMPLSQ
MPCLSQ
MPLSQ
PALSQ
SFLSQ
SFTLSQ
SNPLSQ
Common blocks used:
-
- /DERBAS/ to use all members
- /MATDAT/ to use BLSQ
- /OBSCAL/ to use DIFF SQRTWT
- /REFINE/ to use SIMUL
*** MATTOT updated by JCM 17 Oct 89 ***
Classification:
General Least Squares Refinement . . . . . . . Utility
Inverts a rectangular matrix whose order is the smaller dimension;
used by the Harwell refinement routine VA05A.
Calls:
- ERRIN2
Called by:
- VA05A
*** MB11A from HARWELL 25 May 79 ***
Classification:
Matrices and Vectors . . . . . . . Utility
Harwell routine to perform Householder reduction of a symmetric
matrix to tri-diagonal form.
Notes:
-
Called by EA06C when finding eigenvalues
Called by:
- EA06C
Classification:
Mathematical Functions . . . . . . . Utility
Writes on unit LUNIT the given message, preceded by N empty lines.
Arguments:
-
On entry TXT is a CHARACTER variable holding the message,
- N is in integer requesting N empty lines before the message, and
- may be 0, for no lines
or > 98, for a page throw.
Output:
-
Writes to unit LUNIT N empty lines or a page throw, then the given text with
a "space" carriage control.
Calls:
- LENGT
Called by:
- AINOUT
ANGLST
APSHSF
ARREAD
ASK
ATOPOS
BATCH
BIGGAM
BNDLST
CDFIN
CELSDP
DEPRIN
DOCHI1
DOMAG
DOMAG1
DOMPL2
ERRATM
ERRCHK
ERRMES
FILPRO
FIXVAR
FUDGIN
GEOMCO
GEOMIN
GEOMLS
ICDFMT
IICD1
IICD3
INPLSF
INPUTD
INPUTE
INPUTG
INPUTM
LERCHK
LLSCAL
LLTFAC
MAGCON
MAGDIR
MAGSYM
MATCOR
MOLORB
MPCON
NOPFIL
OPMSYM
OPSYM
ORTFUN
PARSFW
PLREAD
PRIVAR
PRNTMP
RADFUN
REAORB
RECIP
REPMOD
REPREF
RFACS
RREFLS
RREFSF
SAVMAP
SETABS
SETANI
SETFOR
SETFOU
SETLP
SETPOL
STLSSF
SUBSYM
SYMBAK
SYMFRI
SYMOP
SYMTID
UNITID
VA05A
WGHTLS
ARISNP
ARRINC
ARRNGE
ARRSNP
BONDS
CALMSF
CALQSF
FORFAC
GETMSF
GETSFZ
GRAFIC
MAG3D
MAGPOW
PALSQ
POWDER
SFLSQ
SFTLSQ
SORGAM
*** MESS updated by JCM 12 Sep 92 ***
Classification:
CCSL Input/Output Routines . . . . . . . Utility
A specialist routine to deal with the refinement of multipoles.
Converts each type of LSQ family 5 (multipoles) addressing to the other.
Arguments:
-
On entry N=1 requests "give answer in in ISPC genus 1 from IG,IS"
- N=-1 requests "give answers as IG, IS from species ISPC"
So for N=1 IG, IS are set on entry to genus and species
- for N=-1, ISPC is set on entry to contain "species" in one long genus.
Prerequisite calls:
-
Table MPNAM must have been set up to contain species names, and
- MPTAB to point in it for each genus of family 5.
Called by:
- PARNAM
Common blocks used:
-
- /MPODA/ to use NMPAT MPTAB
*** MF5ADD by JCM 13 Jun 88 ***
Classification:
Multipole Form Factors . . . . . . . Crystallographic
Finds the position and value of the minimum in a list of integers.
Arguments:
-
On entry LIST is a list of integers
- N is the number of entries in the list
On exit MINIM is set to the value of the smallest menber of LIST
- where LIST(M)=MINIM
Called by:
- ADDCON
Common blocks used:
-
- /LENINT/ to use all members
*** MINIM by JCM 15 Jan 88 ***
Classification:
Tests . . . . . . . Utility
To read molecular orbital wave-functions from "W atom-name
FUN
C" card
.
Arguments:
-
IAT on entry gives which atom
IPTI on entry is the pointer in ICARD in /SCRACH/ from which to read
- unless IPTI=-ve, when it signals a request for initialisation
or IPTI=0, which asks for the functions to be checked and printed
Calls:
- ERRMES
JGMZER
MESS
RDINTG
RDREAL
RDWORD
Common blocks used:
-
- /CARDRC/ to use IERR
- /IOUNIT/ to use LPT ITO
- /POSNS/ to use NATOM
- /SCRAT/ to use all members
- /WAVEFN/ to use AMP NFUN NEIG
*** MOLORB by PJB 6 Apr 87 ***
Classification:
Magnetic Structure Factors . . . . . . . Crystallographic
Finds the symmetry constraints on multipoles.
Arguments:
-
MAT the multipole atom number
KMAX = 2l+1
Calls:
- DEGREE
DIJROT
DUMMY
EULSYM
GMADD
GMEQ
GMNORM
GMPRD
GMREV
GMSCA
GMZER
MAKGRP
MESS
REAORB
TRANSQ
TRINV3
Called by:
- PFSET
Common blocks used:
-
- /IOUNIT/ to use LPT IOUT
- /MPODA/ to use MPATAB
- /NSYM/ to use NOPC
- /POSNS/ to use ISGEN
- /QROT/ to use all members
- /SCRAT2/ to use all members
- /SYMDA/ to use SYM
- /SYMTAB/ to use INVERS NORD
*** MPCON by PJB ***
Classification:
Multipole Form Factors . . . . . . . Setting Up
Finds out which radial form factors to apply to which atom and L
value.
Arguments:
-
IDT is the position in the CDF of the first
J card
NJ the number of
J cards
Prerequisite calls:
-
ATOPOS etc.
Description:
-
Called normally by PFSET
factor to use for multipole atom I and L value J, if negative a radial
wave function is to be used to compute the form factors
Calls:
- ERRCHK
ERRMES
INPUTJ
ISCAT
JGMZER
LERCHK
NFIND
RDINTG
RDWORD
Called by:
- PFSET
Common blocks used:
-
- /CARDRC/ to use NYZ IERR
- /FORMDA/ to use NUMFNM
- /FONAM/ to use FONAME
- /MAGDAT/ to use NMAG NMFORM
- /POLFOR/ to use MPFOR NMPFOR MPLFOR NUMGEN
- /REFINE/ to use MAG
*** MPFORM updated by PJB C128 Feb 2004 ***
Classification:
Multipole Form Factors . . . . . . . Setting Up
Records whether each multipole parameter is fixed or varied.
Arguments:
-
On entry I=which parameter (or 0 if it is the initial entry to fix all)
- J=which variable it will be (or 0 if it is the initial entry)
Description:
-
If this is the initial entry records all multipoles fixed by clearing the
array KPOLMP in /MPODA. Otherwise, records there that parameter I is
variable J.
Common blocks used:
-
- /MPODA/ to use NMPOL KPOLMP
*** MPOVAR by JCM 9 Feb 91 ***
Classification:
Multipole Form Factors . . . . . . . Setting Up
Puts entries into the table of time inversion operators.
Arguments:
-
I, J, and N are operator numbers. The entry in MTSYM for N is
- set to the product of that for I and J.
Notes:
-
Called from MAGSYM through MAKGRP using the internal subroutine
name PRODCT.
Called by:
- MAGSYM
Common blocks used:
-
- /SYMMAG/ to use MTSYM
*** MTPROD new by PJB Nov 90 ***
Classification:
Magnetic Structure Factors . . . . . . . Utility
To calculate induced moments from anisotropic susceptibilities and
elipsoid orientation
Arguments:
-
MH is the index of the magnetic field in SRCPAR
Calls:
- DUMMY
FACGRP
GMADD
GMEQ
GMPRD
GMSCA
JGMZER
MAKGRP
ROTSYM
SORTX
TQLI
TRED2
Called by:
- CHILSQ
MPCLSQ
Common blocks used:
-
- /ATNAM/ to use ATNAME
- /DSOURC/ to use NUMSRC MSRC SRCPAR
- /IOUNIT/ to use LPT
- /MAGCHI/ to use CHISYM
- /MAGDAT/ to use NMAG JMAGAT
- /NSYM/ to use NOPC
- /POSNS/ to use ISGEN
- /SYMDA/ to use TRANS
*** MUCALC correction fC4.9 PJB May 2008 ***
Tests indices for being in the asymmetric unit, and gives
multiplicity.
Arguments:
-
On entry H(3) is a real 1x3 vector holding the reflection indices.
Description:
-
The function is set to the multiplicity of the reflection if the reciprocal
lattice point represented by H is inside the exact asymmetric unit.
If the point is not inside the function is returned as zero.
Calls:
- INBOX
SCALPR
Called by:
- ASUNIT
GENMAG
GENMUL
GETGEN
MULPCY
SATGEN
GETSFZ
Common blocks used:
-
- /FUNIT/ to use NASYM EDGE NMUL
- /GUNIT/ to use MARK BSYM IBOX
*** MULBOX updated by JCM 14 Jun 88 ***
Classification:
Manipulation of Reflection Indices . . . . . . . Utility
Used by ARRNGE for data whose indices may be submultiples of
integers
Arguments:
-
MUL is a logical which is set to .TRUE. if the indices are submultiples
For the entries INDMUL and INDDIV the 3 component vectors HI and HO
are the input and output indices respectively.
Prerequisite calls:
-
INPUT I to set up the commons /IINFO/ and /IINFOW/.
Description:
-
MULIND interprets the numbers following MULH, MULK, and MULL entries
on
I cards
to be the numbers by which to multiply H,K,L respectively
in order to obtain integer indices. These numbers are placed in AMUL in
common /MULPLY/.
ENTRY INDMUL returns HO(I),I=1,3 = HI(I)*AMUL(I)
ENTRY MULDIV returns HO(I),I=1,3 = HI(I)/AMUL(I)
Entries:
- INDMUL called by: ARRNGE
ARRSNP
- INDDIV called by: ARRNGE
ARRSNP
Calls:
- JFIX
TESTOV
Called by:
- ARRNGE
ARRSNP
AVEXAR
Common blocks used:
-
- /IINFO/ to use all members
- /IINFOW/ to use all members
- /IOUNIT/ to use LPT
- /MULPLY/ to use all members
*** MULIND new by PJB 14-Nov-1997 ***
Classification:
Data Collection and Reduction . . . . . . . Utility
To calculate reflection multiplicities
Arguments:
-
H holds the reflection indices
Prerequisite calls:
-
SYMOP must hace been called
Calls:
- GMREV
MULBOX
ROTSYM
Called by:
- RREFSA
Common blocks used:
-
- /NSYM/ to use NOPC
*** MULPCY new by PJB C4.17 July 2009 ***
Classification:
Data Collection and Reduction . . . . . . . Utility
P. Jane Brown
Institut Laue Langevin,
Grenoble, FRANCE