PROGRAM FORDAP
(Manual Scanned in by Lachlan M.D. Cranswick (lachlan@melbpc.org.au) -
Mustek Scanner and OCR software (of sorts) - 2nd July 1996)
(Last few pages hand typed as the OCR software was crap -
thus no guarantees)
-------------
PROGRAM FORDAP
January, 1969·
Purpose: Fordap is a combined Fourier summation, peak searching and
plotting program.
Data Sets:
System Unit Data Set Name Purpose
SYS000 SDS000 (a) Expanded input data.
(b) Interpolated peaks for
DANFIG.
SYS001 SDS001 Answers for complete
fourier summation.
SYS002 IED or xxxILS Input data set
(a) xxxILS for Pattersons.
(b) IED for other summations.
Input Data:
Card 1 Title Card (10A8)
Card 2 Master Control Card (10I1, F5.0, E15.6)
column
1 O no fourier summation
1 Fourier summation.
2 O normal option
1 or 2 Sections to be computed
parallel to a general plane.
(See "A"; TRANS Deck).
3 0 no printed output.
1 Printed output with answers
normalised such that 999 is
maximum positive value
(FRPRNT)
4 0 Single-spaced printed output.
2 Double-spaced printed output.
5 0 No plot
1 Plot fourier alphamerically.
(FRPLOT)
6 N 4O*N peaks will be searched
for and listed (if present).
(FRPEAK)
N = 0 for no peak search.
7 N1 4*N1 interpolated peaks will
be punched onto cards in
standard parameter card format.
8 N2 4*N2 negative troughs will
be searched for and listed
(if present)
9&10 No of grid points/line
(may be left blank in which case program sets
to maximum possible) For FRPLOT & FRPEAK
11-15 RMIN The minimum value for an answer
to be considered in the peak
search. (On the normalised scale
i.e. 999 largest positive value).
This may usually be left blank.
16-30 RMAX Usually left blank. I nt roduc ti on
of R'MAX here will cause the
maximum normalised value to be
(999 * RMAXTRU)/ R'MAX
where R MAXTRU is the actual
maximum value.
Card 3 Real cell data in standard format. (6 F10.6)
a, b, c, Cosa, Cos b, Cos c.
A TRANS Deck. Only present if column 2 on master control
card is non-zero.
There are two ways of obtaining new cell constants etc for
a summation parallel to a general plane.
(1) Column 2 is 1
Transformation matrix is supplied.
Input:
Card 1 (9 F8.4) U11, U12, U13, U21 ... U33, the elements of
the transformation matrix
where Anew = U * Aold
Card 2 blank.
Column 2 is 2 Transformation matrix is determined
from equation of general plane. New
axis 1 is set normal to this plane,. axis
2 is parallel to the plane and to the pro-
jection of the original unit cell vector
which has the largest component on this
plane. Axis j completes the orthogonal
right-handed system. The length of each axis
is set to the maximum of the four quantities
(1) 10.0Å
(2) 2*XMAX(I) Å
(3) 2*XMIN(I) Å
(4) CELL(I) Å
The longer the axis the higher tile accuracy in tile fitting
of a non-rational plane.
Input:
Card 1:
(7F10.5) P1, P2, P3, D, CELL(1), CELL(2), CELL(3) where
the plane parallel to which one wishes to compute sections is
P1 x + P2 y + P3 z, = D (D in Å)
(and where CELL(I) has the significance described above)
Card 2 XMIN, XMAX, YMIN, YMAX, ZMIN, ZMAX, DELX, DELY, DELZ(9F8.4)
limit and increment information in Å along the new axes.
For a section through the plane set XMIN = XMAX |D|
B. Rip Deck This is present if column 1 of the master control
card is non-zero.
Card 1: NEQUIV, NREF, NTAPIN, NONTAP, NREJ, SRLMAX (515, F5.2)
1-5 NEQUIV The number of equivalent positions for
the space group not including translational
or symmetry centres.
Laue group NEQUIV Laue group NEQUIV
1 1 3 3
2/m 2 3m 6
mmm 4 6 6
4/m 4 6/mmm 12
4/mmm 8 m/3 12
m3m 24 -- Fd3m
6-10 NREF The number of expanded dnta sets to be
listed. RIP expands into P1. This provides
a useful check, but since it uses paper
keep it small (e.g. 10)
11-15 NTAPIN Code word to indicate source of data and
calculntion desired.
00000 data from cards
00010 data from 1LS file (e.g. out of DP3): Compute Patterson
in general.
In any event take AA to be first word on record, BB to be zero.
The following cases are from file written by LS program in Fourier
format:
(a) F (not F**2) in word 1 on file
00020 compute difference Fourier
00021 compute difference Fourier but delete terms Fo of 0
00022 compute Fourier using Fobs with phases from Fcalc
00023 compute Fourier based on Fcalc
00024 compute Patterson from FOBS
00025 compute Patterson from CALC
00026 compute alpha synthesis: A=OBS**2*CALC&COSalpha
B=OBS**2*CALC&SINalpha
(alpha is phase angle)
(b) F**2 (not F) in word 1 on file options 00020 through 00026
are replace by 00120 through 00126.
16-20 NONTAP 0 all data used in summation: non zero,
use only first NONTAP datta in summation
21-25 NREJ 0 no special subroutine called
not equal 0 call subroutine REJECT
26-30 SALMAX SEE SUBROUTINE REJECT
Card 2: limit and direction card (9F5.5 5X, I3)
XMIN, XMAX, YMIN, YMAX, ZMIN, ZMAX, DELX, DELY, DELZ, NORIEN
where the summation goees for example from XMIN to XMAX in
steps of DELX, etc., and where NORIEN is 100, 010, 001
for sectioin perpendicular to a, b, c. Limits of 1.0000
are not allowed and if one wants to cover a complete cell
in a given direction, then run from -0.500 to 0.500.
Card 2 is not relevant if TRANS option 2 is called; in this
case a blank card must be submitted.
Cards 3: equivalent reflection cards in standard format (3(F15.10,3I3))
column
1-15 translation part of transform x
16-18 multiplier of x; 19-21 multiplier of y;
22-24 multiplier of z.
25-39 translational part of transformed y
40-42 *x; 43-45 *y; 46-48 *z
49-63 translational part of transformed z
64-66 *x; 67-69 *y; 70-72 *z;
[[[[[(hand written text? Patterson{ 1 1 1
-1 -1 -1})]]]]]]
Cards 4: DATA CARDS (if NTAPIN is 00000) (315, 5X, 2F10.4)
h, k, el (fixed), AA, BB
terminate data with h of 999
C FRPRNT & FRPEAK require no extra cards
D FRPLOT Deck (one card)
Present if column 5 on the master control card is non-zero.
This subroutine permits users to simulate cell shape by
specifying the horizontal and vertical grid point interval
for an alphameric plot.
Card 1. NHORT, NVERT, NDISP, CMIN, CINT (3I5, 2F5.0)
1-5 NHORI=<3 No. of print positions between horizontal
grid points.
6-10 NVERT=<3 No. of print positions between vertical
grid points.
11-15 NDISP Right horizontal displacement of print
positions down the page (NDISP may be
negative)
16-20 CMIN Minimum RHO to be plotted (on normalised
scale).
21-25 CINT % plotted area to be left blank. (Unless
the calculation is on a very fine grid and
contouring is desired CINT = 0).
Unless NDISP is positive, the plot will be right justified
(to print position 132) for the number of answers/line specified
in columns 9 and 10 of the master control card. The line printer
always gives 10 print positions/" across the page but may be set
to 6 or 8 line/" down the page.
SUBROUTINE REJECT (J, K, L, SINL, FOBS, COSA, SINA, DEL, N,
AA, BB, SNLMAX)
J, K, L are the indices
SINL is Sin theta/lambda, FOBS, FCALC, COSA, SINA, DEL are Fo, Fc, Cos
and Sin of phase angle, Fo-Fc.N=0 to keep reflection, N not equal to 0
to reject it. AA & BB are the final terms of the fourier summation.
This subroutine is called only if NREJ not equal to 0
The standard version of the program is set up to reject
reflections for which STNL>SNLMAX.
(This will not work if NTAPIN = 0).
Program Structure
The program is structured as a root phase overlay program with
a root phase and seven subsidiary phases. The root phase
FORDAP has overall control of the course of calculation. Phase
FORDAPo1 contains SETUP which reads the first three input cards
and calculates the SIN-COSINE table. It also contains the peak
interpolation routines. phase FORDAP03 contains RIP which expands
the input data into its equivalent forms and writes this data
onto SYS000. Phase FORDAP04 contains SIG100 which reads the
expanded data from SYS000 (once/section) and writes the summation
answers, one line at a time, onto SYS001. Phase FORDAP05 contains
FRPRNT, the printing subroutine. Phase FORDAP06 contains FRPEAK
and it associated routines. Phase FORDAP07 contains FRPLOT (for
an alphameric plot).
-----------------------------------------------------
Notes
1. Limitations on Storage Media
(a) Disc Storage.
SYS000: the program stores 24 expanded reflections for block.
Therefore, the standard size SDS000 (456 blocks) can hold up
to 11,000 expanded reflections.
SYS001: The program will usually use on block on SYS001
for line of output (i.e. a maximum of 85 grid points/line).
(b) Core Storage.
The number of words (4 byte) required for storage of partial
summation answers is
(1 + Jmax) * (Kmax - Kmin +1) * 2
+ (1 + Jmax) * NY * 2
where J is the fastest varying index, K is the next fastest
and NY is the number of lines/section (see NOTE 2.). The
number of workds currently available is 4400. This is
unlikely to be a problem unless TRANS is called (see NOTE 3).
2. The program internally rotates reflection indices, increments,
limits etc. according to the value of NORTEN i.e.
fastest varying slowest varying
NORTEN (across page) (constant for a section)
1 X Z
10 X Y
100 Z X
e.g. NORTEN = 10, YMIN, YMAX etc. are swopped with ZMIN, ZMAX etc.
and for a reflection (JKL) K and L are swopped.
3. Use of the TRANS option is very time consuming and it uses
a brute-force method of calculating the section. In addition,
it is very easy to obtain a large unit cell and thus run out of core
storage (i.e. Jmax, Kmax etc. increase). Use of this option is
not normally recommended.
4. The maximum number of answers/line for printed output is 29.
For plotted output, it depends on the horizontal spacing between
alphanumeric symbols. NB if there are not enough print positions
to accommodate an ablique plot, the program will reset NDISP to
zero.
5. (a) FRPEAK is dimensioned to flter up to 250 peaks/section
and up to 700 in all. Occasionally, one or other of these
dimensions may be exceeded; the solution is to put RMIN to
some positive value.
(b) The peak searching routine will not work on single section
(e.g. a projection). In this case printed or plotted output
should be obtained.
(c) Up to 100 of the peaks found are interpolated and their
final coordinates written onto SYS000 suitable as input to
'DANFIG'.
6. More than one fourier summation can be computed using the same
data sets (i.e. in the same job step) by having a complete new set
of input data cards immediately following the last data card of the
previous fourier.