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.