1 | ************************************************************************ |
---|
2 | * * |
---|
3 | * Copyright 1987-1995 Michael M. J. Treacy and Michael W. Deem * |
---|
4 | * * |
---|
5 | ************************************************************************ |
---|
6 | ******************* Source file DIFFaX.inc ****************** |
---|
7 | ************************************************************************ |
---|
8 | * * |
---|
9 | * This file contains the declaration of COMMON variables used * |
---|
10 | * throughout DIFFaX. * |
---|
11 | * * |
---|
12 | * Some DIFFaX routines require static storage of variables. Not all * |
---|
13 | * compilers will automatically declare variables to be static (in fact * |
---|
14 | * the fortran77 standard implies that non static allocation should be * |
---|
15 | * the default). To be safe, use a 'static' compiler option, if * |
---|
16 | * available. Alternatively, uncomment the 'save' statement at the * |
---|
17 | * beginning of the declaration section of this file, and also at the * |
---|
18 | * beginning of those subroutines and functions which do not include * |
---|
19 | * this file, such as RAN3. If variables are not 'saved', results will * |
---|
20 | * be unpredictable. * |
---|
21 | * * |
---|
22 | ************************************************************************ |
---|
23 | ************* Description of variables in COMMON ************ |
---|
24 | ************************************************************************ |
---|
25 | * * |
---|
26 | * d-> indicates that the variable is read in * |
---|
27 | * from the user's data file. * |
---|
28 | * * |
---|
29 | * i-> indicates that the variable is acquired * |
---|
30 | * interactively at run_time, either by * |
---|
31 | * prompting the user for keyboard input, or * |
---|
32 | * (if present) by reading the control file. * |
---|
33 | * * |
---|
34 | * s-> indicates that the variable is read in * |
---|
35 | * from the atomic scattering factor data file. * |
---|
36 | * Normally, this data should never change. * |
---|
37 | * * |
---|
38 | ************************************************************************ |
---|
39 | *********************** logical variables ********************** |
---|
40 | ************************************************************************ |
---|
41 | * any_sharp - TRUE if DIFFaX suspects there are any sharp * |
---|
42 | * peaks. * |
---|
43 | * all_Bs_zero - TRUE when all Bs_zero(i,j) = TRUE * |
---|
44 | * Bs_zero(MAX_L, MAX_L) * |
---|
45 | * - TRUE if all layer stacking uncertainty factors in * |
---|
46 | * one transition are all zero. * |
---|
47 | * CFile - TRUE if there is a file named 'control.dif' * |
---|
48 | * in the current directory. This is the so-called * |
---|
49 | * 'control file' that automates the running of * |
---|
50 | * DIFFaX. * |
---|
51 | * check_sym - TRUE if user specified a point group symmetry * |
---|
52 | * to test against. If the user's choice is * |
---|
53 | * incompatible with the input data, then this * |
---|
54 | * will be reset to FALSE. * |
---|
55 | * debug - TRUE for printouts to appear on screen (RVD) * |
---|
56 | * DoDatdump - TRUE if the user wants a dump of the data file * |
---|
57 | * DoSymDump - TRUE if the user wants to dump the output of * |
---|
58 | * the symmetry tests * |
---|
59 | *d-> finite_width - TRUE if layer widths are finite. * |
---|
60 | * has_l_mirror TRUE if the diffraction data has a mirror * |
---|
61 | * perpendicular to c* (along fault axis) * |
---|
62 | * h_mirror - TRUE if diffraction data has a mirror across * |
---|
63 | * the a*-c* plane * |
---|
64 | * hk_mirror - TRUE if diffraction data has a mirror across * |
---|
65 | * the a*=b*, c* plane * |
---|
66 | * k_mirror - TRUE if diffraction data has a mirror across * |
---|
67 | * the b*-c* plane * |
---|
68 | * intp_F - TRUE if the form factors are to be interpolated * |
---|
69 | * for the purposes of the Gauss-Legendre adaptive * |
---|
70 | * quadrature integration. * |
---|
71 | * inf_thick - TRUE if crystal is to be treated as if it has * |
---|
72 | * an infinite number of layers * |
---|
73 | * one_B(MAX_L) - TRUE if all Debye-Waller factors are the * |
---|
74 | * same. * |
---|
75 | * one_occup(MAX_L) * |
---|
76 | * - TRUE if all occupancy factors are the * |
---|
77 | * same. * |
---|
78 | * only_real TRUE if all layers are centrosymmetric * |
---|
79 | *d-> recrsv - TRUE if the recursive model is to be used to * |
---|
80 | * calculate diffraction from a statistical * |
---|
81 | * ensemble of crystallites. * |
---|
82 | *d-> rndm - TRUE if 'xplcit' is TRUE, and if the user wishes * |
---|
83 | * the computer to generate a random sequence of * |
---|
84 | * layers biassed by the transition probabilities * |
---|
85 | * 'l_alpha'. * |
---|
86 | * rot_only - TRUE if diffraction point group symmetry * |
---|
87 | * has no vertical mirrors. * |
---|
88 | * same_Bs - TRUE if all layer stacking uncertainty * |
---|
89 | * factors are identical. * |
---|
90 | * same_layer - TRUE if all of the explicitly defined * |
---|
91 | * layers are identical. * |
---|
92 | * same_rz - TRUE if all stacking vectors have the same * |
---|
93 | * z-component. * |
---|
94 | * there(MAX_L,MAX_L) * |
---|
95 | * - TRUE if the transition j to i is non-zero * |
---|
96 | *d-> xplcit - TRUE if the user specifies a layer sequence * |
---|
97 | * explicitly. * |
---|
98 | * 'recrsv' and 'xplcit' cannot both be TRUE * |
---|
99 | * trim_origin - If TRUE, intensity near the origin will be * |
---|
100 | * ignored for the purposes of applying * |
---|
101 | * instrumental broadening. * |
---|
102 | ************************************************************************ |
---|
103 | ********************** integer*4 variables ********************* |
---|
104 | ************************************************************************ |
---|
105 | *d-> a_number(MAX_A,MAX_L) * |
---|
106 | * - numeric label of atom in the layer. * |
---|
107 | *d-> a_type(MAX_A,MAX_L) * |
---|
108 | * - type of each atom in each layer. * |
---|
109 | * (a_type <= MAX_TA). * |
---|
110 | *i-> bitdepth - The bit-depth of the selected area diffraction. * |
---|
111 | * pattern (sadp) data. Can equal 8 or 16. * |
---|
112 | *d-> blurring - Type of instrumental broadening to simulate. * |
---|
113 | * Choices are; PS_VGT, GAUSS, LORENZ * |
---|
114 | * CENTRO - numeric constant (= 1) indicating layer has * |
---|
115 | * a center of symmetry. * |
---|
116 | * cntrl - The device number to read input from. * |
---|
117 | * If the file 'control.dif' is present, this file * |
---|
118 | * becomes the default input. Otherwise, it is the * |
---|
119 | * keyboard. * |
---|
120 | *s-> e_sf(MAX_TA) - Electron scattering factors. * |
---|
121 | * ELECTN - numeric constant (= 2) indicating radiation * |
---|
122 | * type is electrons. * |
---|
123 | *i-> full_brd - 1 if full adaptive integration is to be carried * |
---|
124 | * out on the sharp spots. * |
---|
125 | *i-> full_shrp - 1 if full adaptive integration is to be carried * |
---|
126 | * out on the streaks. * |
---|
127 | * GAUSS - numeric constant (= 1) indicating user wishes * |
---|
128 | * to simulate Gaussian instrumental * |
---|
129 | * broadening, with a constant half width * |
---|
130 | * h_bnd - Maximum value of h to explore. * |
---|
131 | * k_bnd - Maximum value of k to explore. * |
---|
132 | * l_actual(MAX_L) * |
---|
133 | * - Contains the layer number that layer i is * |
---|
134 | * structurally identical to. If all layers are * |
---|
135 | * unique, l_actual(i) = i; * |
---|
136 | * else, l_actual(i) <= i. * |
---|
137 | * l_cnt - Number of layers in explicit sequence. This is * |
---|
138 | * tallied by DIFFaX, by counting the layers. * |
---|
139 | * l_n_atoms(MAX_L) * |
---|
140 | * - number of atoms in each layer * |
---|
141 | *d-> l_symmetry(MAX_L) * |
---|
142 | * - symmetry of layer (NONE or CENTRO) * |
---|
143 | *d-> l_seq(XP_MAX) * |
---|
144 | * - array containing the explicitly defined * |
---|
145 | * sequence of layers. Used only if * |
---|
146 | * 'xplcit' = TRUE * |
---|
147 | *i-> loglin - 1 if logarithmic scaling of SADP data is * |
---|
148 | * required * |
---|
149 | * LORENZ - numeric constant (= 2) indicating user wishes * |
---|
150 | * to simulate Lorentzian instrumental * |
---|
151 | * broadening, with a constant half width * |
---|
152 | * maxsad - Maximum intensity of sadp patterns. * |
---|
153 | * n_actual - Number of unique layers ( <= n_layers). * |
---|
154 | * n_atoms - Temporary variable holding the number of unique * |
---|
155 | * atoms in a given layer. * |
---|
156 | *d-> n_layers - Number of user-defined layers. n_layers <= MAX_L * |
---|
157 | * NEUTRN - Numeric constant (= 1) indicating radiation * |
---|
158 | * type is neutrons. * |
---|
159 | * no_trials - Number of reciprocal space points to sample. * |
---|
160 | * whilst evaluating diffraction symmetry. * |
---|
161 | * NONE - numeric constant (= 0) indicating layer has * |
---|
162 | * no center of symmetry. * |
---|
163 | * PS_VGT - numeric constant (= 3) indicating user wishes * |
---|
164 | * to simulate pseudo-Voigt instrumental * |
---|
165 | * broadening. * |
---|
166 | * PV_LRN - numeric constant (= 5) indicating user wishes * |
---|
167 | * to simulate Lorentzian instrumental * |
---|
168 | * broadening, with a variable half width * |
---|
169 | * PV_GSS - numeric constant (= 4) indicating user wishes * |
---|
170 | * to simulate Gaussian instrumental * |
---|
171 | * broadening, with a variable half width * |
---|
172 | *d-> rad_type - Type of radiation for which to calculate * |
---|
173 | * diffraction intensities. Choices are; * |
---|
174 | * X_RAY, NEUTRN, ELECTN * |
---|
175 | * sadblock - Length of a row of SADP data * |
---|
176 | *d-> SymGrpNo - Numeric descriptor of diffraction symmetry. * |
---|
177 | * X_RAY - numeric constant (= 0) indicating radiation * |
---|
178 | * type is X-rays. * |
---|
179 | * * |
---|
180 | ************************************************************************ |
---|
181 | ********************** character variables ********************* |
---|
182 | ************************************************************************ |
---|
183 | *d-> a_name(MAX_A,MAX_L)*4 * |
---|
184 | * - Name of each atom. DIFFaX expects 4 * |
---|
185 | * characters. See file 'data.sfc' for * |
---|
186 | * allowed names. * |
---|
187 | * atom_l(MAX_TA) * |
---|
188 | * - The name of each type of atom found in the * |
---|
189 | * structure data file * |
---|
190 | * cfname*16 - The name of the control file containing the * |
---|
191 | * automated responses to DIFFaX's prompts * |
---|
192 | * (usually set to 'control.dif'). * |
---|
193 | *d-> pnt_grp*12 - Symbolic name of the point group symmetry of * |
---|
194 | * the diffraction data. * |
---|
195 | * sfname*16 - The name of the data file containing the * |
---|
196 | * atomic scattering factor data (usually set to * |
---|
197 | * 'data.sfc') * |
---|
198 | * * |
---|
199 | ************************************************************************ |
---|
200 | *********************** real*8 variables *********************** |
---|
201 | ************************************************************************ |
---|
202 | * a0 - One of seven reciprocal lattice constants * |
---|
203 | *d-> a_B(MAX_A,MAX_L) * |
---|
204 | * - isotropic Debye-Waller factor for each * |
---|
205 | * atom in each layer. * |
---|
206 | *d-> a_occup(MAX_A,MAX_L) * |
---|
207 | * - Occupancy of each atom in each layer. * |
---|
208 | * (Normally this will lie between 0 and 1). * |
---|
209 | *d-> a_pos(3,MAX_A,MAX_L) * |
---|
210 | * - x,y,z relative coordinates of each atom * |
---|
211 | * in each layer. * |
---|
212 | * a_B11,a_B22,a_B33,a_B12,a_B23,a_B31 * |
---|
213 | * - The average values of the r_Bij arrays * |
---|
214 | * ab0 - One of seven reciprocal lattice constants * |
---|
215 | * b0 - One of seven reciprocal lattice constants * |
---|
216 | * bc0 - One of seven reciprocal lattice constants * |
---|
217 | * bnds_wt - Equals 1.0 if rot_only is TRUE, otherwise * |
---|
218 | * equals 0.5 if rot_only is FALSE (ie there is * |
---|
219 | * a vertical mirror * |
---|
220 | * brd_spc(MAX_SP) * |
---|
221 | * - Array holding the powder diffraction data * |
---|
222 | * after instrumental broadening has been * |
---|
223 | * applied. * |
---|
224 | * c0 - One of seven reciprocal lattice constants * |
---|
225 | * ca0 - One of seven reciprocal lattice constants * |
---|
226 | *d-> cell_a - Unit cell a axis dimension. * |
---|
227 | *d-> cell_b - Unit cell b axis dimension. * |
---|
228 | *d-> cell_c - Unit cell c axis dimension. * |
---|
229 | *d-> cell_gamma - Angle between a and b axes. Angle between b and * |
---|
230 | * c, and a and c axes is 90 degrees by default. * |
---|
231 | * d0 - One of seven reciprocal lattice constants * |
---|
232 | *d-> d_theta - Angular increment in PXD spectrum. * |
---|
233 | * DEG2RAD - Conversion factor for degrees to radians * |
---|
234 | * detune(MAX_L,MAX_L) * |
---|
235 | * - Array of small positive numbers whose * |
---|
236 | * purpose is to prevent the determinant of the * |
---|
237 | * recursion array 'mat' from becoming zero at the * |
---|
238 | * sharp peaks. This produces a singularity which * |
---|
239 | * is hard to integrate accurately over. In essence, * |
---|
240 | * the 'detune' parameters are small stacking * |
---|
241 | * uncertainty factors. The result is to reduce * |
---|
242 | * the value of l_alpha(j,i) by an amount * |
---|
243 | * detune(j,i), such that the sum over the alphas * |
---|
244 | * for stacking from a given layer do not quite * |
---|
245 | * add to unity. * |
---|
246 | * fatsWalla_hk - temporary storage for Fats-Waller factor * |
---|
247 | * ffact_scale - Angular scale (radians) of array 'formfactor'. * |
---|
248 | * ffhkcnst - Constant associated with the form-factor half- * |
---|
249 | * width. Depends on reflection indices h and k, as * |
---|
250 | * well as Wx and Wy. * |
---|
251 | * ffwdth - Form factor half width in reciprocal Angstroms. * |
---|
252 | * formfactor(FFACT_SIZE) * |
---|
253 | * - Array containing a normalized Lorentzian profile, * |
---|
254 | * the form factor due to in-plane size broadening. * |
---|
255 | * The profile is Lorentzian out to N_SIGMAS half- * |
---|
256 | * widths, and linear to zero from there. The linear * |
---|
257 | * portion has the same gradient as the last point * |
---|
258 | * of the Lorentzian portion, thus the sampling step * |
---|
259 | * is governed by N_SIGMAS as well as FFACT_SIZE. * |
---|
260 | * h_end - (h_end,k_end) is a vector in the * |
---|
261 | * h-k plane of reciprocal space defining the * |
---|
262 | * upper boundary of the wedge in reciprocal space * |
---|
263 | * to integrate within. This is defined by the * |
---|
264 | * symmetry of the diffraction data. * |
---|
265 | * high_atom(MAX_L) * |
---|
266 | * - The highest atomic z-rel position in each layer * |
---|
267 | * h_start - (h_start,k_start) is a vector in the * |
---|
268 | * h-k plane of reciprocal space defining the * |
---|
269 | * lower boundary of the wedge in reciprocal space * |
---|
270 | * to integrate within. This is defined by the * |
---|
271 | * symmetry of the diffraction data. * |
---|
272 | *d-> FWHM - Full width half maximum of instrumental * |
---|
273 | * broadening. * |
---|
274 | * hx_ky(MAX_A,MAX_L) * |
---|
275 | * - Temporary storage of h*Rx + k*Ry, whilst * |
---|
276 | * l*Rz is being computed along the streaks. * |
---|
277 | * k_end - (h_end,k_end) is a vector in the * |
---|
278 | * h-k plane of reciprocal space defining the * |
---|
279 | * upper boundary of the wedge in reciprocal space * |
---|
280 | * to integrate within. This is defined by the * |
---|
281 | * symmetry of the diffraction data. * |
---|
282 | * k_start - (h_start,k_start) is a vector in the * |
---|
283 | * h-k plane of reciprocal space defining the * |
---|
284 | * lower boundary of the wedge in reciprocal space * |
---|
285 | * to integrate within. This is defined by the * |
---|
286 | * symmetry of the diffraction data. * |
---|
287 | *d-> l_alpha(MAX_L,MAX_L) * |
---|
288 | * - Array of layer transition probabilities. * |
---|
289 | * The order is (column, row). * |
---|
290 | * l_bnd - Maximum value of l to explore. * |
---|
291 | * l_g(MAX_L) - Array of layer existence probabilities. * |
---|
292 | * These are determined by the transition * |
---|
293 | * probabilities 'l_alpha' entered by the user. * |
---|
294 | * low_atom(MAX_L) * |
---|
295 | * - The lowest atomic z-rel position in each layer * |
---|
296 | *d-> l_r(3,MAX_L,MAX_L) * |
---|
297 | * - Array of layer stacking vectors. * |
---|
298 | * The order is (column, row). * |
---|
299 | * l_rz - Value of Rz if same_rz = TRUE. * |
---|
300 | *d-> lambda - Radiation wavelength. * |
---|
301 | * max_angle - Maximum angle that intensity information is to * |
---|
302 | * be taken from for the purposes of evaluating * |
---|
303 | * diffraction symmetry. * |
---|
304 | * max_var - Maximum mean variation of intensities when a * |
---|
305 | * given symmetry operator was applied. * |
---|
306 | * mltplcty - 1/mltplcty is the fraction of reciprocal space * |
---|
307 | * necessary to integrate over, as determined by * |
---|
308 | * the diffraction point group symmetry. * |
---|
309 | *s-> n_sf(MAX_TA) - Neutron scattering factors. * |
---|
310 | * PI - The value of pi, 3.141592653589793..... * |
---|
311 | * PI2 - The value of 2*pi * |
---|
312 | *d-> pv_gamma - Pseudo-Voigt gamma parameter. * |
---|
313 | *d-> pv_u - Pseudo-Voigt u parameter. * |
---|
314 | *d-> pv_v - Pseudo-Voigt v parameter. * |
---|
315 | *d-> pv_w - Pseudo-Voigt w parameter. * |
---|
316 | *d-> r_B11(MAX_L,MAX_L) * |
---|
317 | *d-> r_B22(MAX_L,MAX_L) * |
---|
318 | *d-> r_B33(MAX_L,MAX_L) * |
---|
319 | *d-> r_B12(MAX_L,MAX_L) * |
---|
320 | *d-> r_B23(MAX_L,MAX_L) * |
---|
321 | *d-> r_B31(MAX_L,MAX_L) * |
---|
322 | * - The 6 components of the anisotropic layer * |
---|
323 | * stacking uncertainties. These are * |
---|
324 | * equivalent to the atomic Debye-Waller * |
---|
325 | * factors, except they apply to the stacking * |
---|
326 | * vectors. These parameters allow for * |
---|
327 | * 'turbostratic' disorder such as is found * |
---|
328 | * in liquid crystals. These parameters are * |
---|
329 | * optional, and can be entered by the user * |
---|
330 | * in the PARAMETERS section enclosed in * |
---|
331 | * parentheses. * |
---|
332 | * RAD2DEG - Conversion factor for radians to degrees * |
---|
333 | * scaleint - Intensity scaling factor used in calculating * |
---|
334 | * the selected area diffraction patterns. * |
---|
335 | * spec(MAX_SP) - Array holding the unbroadened powder * |
---|
336 | * diffraction data. This array also holds * |
---|
337 | * the SADP image data. * |
---|
338 | *d-> th2_max - Upper bound of angle in PXD spectrum. * |
---|
339 | *d-> th2_min - Lower bound of angle in PXD spectrum. * |
---|
340 | * theta1 - angle relative to (1,0,0) of lower wedge bound * |
---|
341 | * theta2 - angle relative to (1,0,0) of upper wedge bound * |
---|
342 | *d-> tolerance - Maximum deviation that intensities can have * |
---|
343 | * from symmetry related points if intensities are * |
---|
344 | * to be considered equal. * |
---|
345 | * tiny_inty - a small intensity value used in the diffraction * |
---|
346 | * symmetry checking routines. Intensities lower * |
---|
347 | * than tiny_inty are treated as being close to zero.* |
---|
348 | * - X-ray scattering factors. * |
---|
349 | *s-> x_sf(9,MAX_TA) * |
---|
350 | * - X-ray scattering factors. * |
---|
351 | *i-> Wa - In-plane width of crystal along a-direction. * |
---|
352 | *i-> Wb - In-plane width of crystal perpendicular to * |
---|
353 | * a-direction. Wx and Wy in Angstroms. * |
---|
354 | * * |
---|
355 | ************************************************************************ |
---|
356 | ********************* complex*16 variables ********************* |
---|
357 | ************************************************************************ |
---|
358 | * l_phi(MAX_L,MAX_L) * |
---|
359 | * - Phases of components of 'mat' * |
---|
360 | * mat(MAX_L,MAX_L) * |
---|
361 | * - Recursion matrix relating the scattering * |
---|
362 | * from crystals centered on different layers * |
---|
363 | * mat1(MAX_L,MAX_L) * |
---|
364 | * - Storage for intermediate 'mat' results. * |
---|
365 | * wavefn - Coherent wavefunction calculated for an * |
---|
366 | * explicitly defined sequence of layers (if * |
---|
367 | * requested) * |
---|
368 | * * |
---|
369 | ************************************************************************ |
---|
370 | *************** Declaration of COMMON variables ************** |
---|
371 | ************************************************************************ |
---|
372 | * |
---|
373 | * save |
---|
374 | * |
---|
375 | character*4 a_name(MAX_A,MAX_L), atom_l(MAX_TA) |
---|
376 | character*12 pnt_grp |
---|
377 | * character*16 sfname, cfname |
---|
378 | * |
---|
379 | logical one_B(MAX_L), one_occup(MAX_L), Bs_zero(MAX_L, MAX_L), |
---|
380 | | there(MAX_L,MAX_L) |
---|
381 | logical only_real, same_Bs, all_Bs_zero, rot_only, CFile, |
---|
382 | | DoDatdump, DoSymDump, intp_F, trim_origin, recrsv, |
---|
383 | | xplcit, rndm, inf_thick, has_l_mirror, h_mirror, |
---|
384 | | k_mirror, hk_mirror, check_sym, same_rz, any_sharp, |
---|
385 | | same_layer, finite_width,debug |
---|
386 | * |
---|
387 | integer*4 l_seq(XP_MAX), pow(MAX_BIN), a_type(MAX_A,MAX_L), |
---|
388 | | l_n_atoms(MAX_L), l_symmetry(MAX_L), l_actual(MAX_L), |
---|
389 | | a_number(MAX_A,MAX_L), e_sf(MAX_TA) |
---|
390 | integer*4 SymGrpNo, no_trials, h_bnd, k_bnd, cntrl, max_pow, |
---|
391 | | l_cnt,full_brd, full_shrp, sadblock, loglin, bitdepth, |
---|
392 | | rad_type, n_layers, n_actual, blurring, n_atoms, maxsad |
---|
393 | integer*4 NONE, CENTRO, GAUSS, LORENZ, PS_VGT, PV_GSS, PV_LRN, |
---|
394 | | X_RAY, NEUTRN, ELECTN |
---|
395 | * |
---|
396 | real*8 l_alpha(MAX_L,MAX_L), l_r(3,MAX_L,MAX_L), l_g(MAX_L), |
---|
397 | | a_pos(3,MAX_A,MAX_L), a_B(MAX_A,MAX_L), |
---|
398 | | a_occup(MAX_A,MAX_L), high_atom(MAX_L), low_atom(MAX_L), |
---|
399 | | r_B11(MAX_L,MAX_L),r_B22(MAX_L,MAX_L),r_B33(MAX_L,MAX_L), |
---|
400 | | r_B12(MAX_L,MAX_L),r_B23(MAX_L,MAX_L),r_B31(MAX_L,MAX_L), |
---|
401 | | hx_ky(MAX_A,MAX_L), spec(MAX_SP), brd_spc(MAX_SP), |
---|
402 | | detune(MAX_L,MAX_L), x_sf(9,MAX_TA) |
---|
403 | real*8 a_B11,a_B22,a_B33,a_B12,a_B23,a_B31 |
---|
404 | real*8 tolerance, max_var, max_angle, l_bnd, l_rz, |
---|
405 | | PI, PI2, RAD2DEG, DEG2RAD, scaleint, brightness, lambda, |
---|
406 | | th2_min, th2_max, d_theta, h_start, k_start,h_end, k_end, |
---|
407 | | cell_a, cell_b, cell_c, cell_gamma, pv_u, pv_v, pv_w, |
---|
408 | | pv_gamma, FWHM, mltplcty, bnds_wt, theta1, theta2, a0, b0, |
---|
409 | | c0, d0, ab0, bc0, ca0, tiny_inty, fatsWalla_hk |
---|
410 | real*8 formfactor(FFACT_SIZE),ffact_scale,Wa,Wb,ffhkcnst,ffwdth |
---|
411 | real*8 n_sf(MAX_TA) |
---|
412 | * |
---|
413 | complex*16 mat(MAX_L,MAX_L), mat1(MAX_L,MAX_L), |
---|
414 | | l_phi(MAX_L,MAX_L), wavefn |
---|
415 | * |
---|
416 | common /chars1/ a_name, atom_l |
---|
417 | common /chars2/ pnt_grp |
---|
418 | * common /chars3/ sfname, cfname |
---|
419 | * |
---|
420 | common /logic1/ one_B, one_occup, Bs_zero, there |
---|
421 | common /logic2/ only_real, same_Bs, all_Bs_zero, rot_only, CFile, |
---|
422 | | DoDatdump, DoSymDump, intp_F, trim_origin, |
---|
423 | | recrsv, xplcit, rndm, inf_thick, has_l_mirror, |
---|
424 | | h_mirror, k_mirror, hk_mirror, check_sym, |
---|
425 | | same_rz, any_sharp, same_layer, finite_width, |
---|
426 | | debug |
---|
427 | * |
---|
428 | common /integ1/ l_seq, pow, a_type, l_n_atoms, l_symmetry, |
---|
429 | | l_actual, a_number, e_sf |
---|
430 | common /integ2/ SymGrpNo, no_trials, h_bnd, k_bnd, cntrl, |
---|
431 | | max_pow, l_cnt, full_brd, full_shrp, sadblock, |
---|
432 | | loglin, bitdepth, rad_type, n_layers, n_actual, |
---|
433 | | blurring, n_atoms, maxsad |
---|
434 | * |
---|
435 | *The common block /consts/ is initialized in the block data section |
---|
436 | common /consts/ NONE, CENTRO, GAUSS, LORENZ, PS_VGT, PV_GSS, |
---|
437 | | PV_LRN, X_RAY, NEUTRN, ELECTN |
---|
438 | * |
---|
439 | common /reals1/ l_alpha, l_r, l_g, a_pos, a_B,a_occup, high_atom, |
---|
440 | | low_atom, r_B11,r_B22,r_B33, r_B12,r_B23,r_B31, |
---|
441 | | hx_ky,spec, brd_spc, detune, x_sf |
---|
442 | common /reals2/ a_B11,a_B22,a_B33,a_B12,a_B23,a_B31 |
---|
443 | common /reals3/ tolerance, max_var, max_angle, l_bnd, l_rz, |
---|
444 | | PI, PI2, RAD2DEG, DEG2RAD, scaleint, |
---|
445 | | brightness, lambda, th2_min, th2_max, d_theta, |
---|
446 | | h_start, k_start,h_end, k_end, cell_a, cell_b, |
---|
447 | | cell_c, cell_gamma, pv_u, pv_v, pv_w, pv_gamma, |
---|
448 | | FWHM, mltplcty, bnds_wt, theta1, theta2, a0, b0, |
---|
449 | | c0, d0, ab0, bc0, ca0, tiny_inty, fatsWalla_hk |
---|
450 | common /reals4/ formfactor, ffact_scale, Wa, Wb, ffhkcnst, ffwdth |
---|
451 | * |
---|
452 | common /cmplx1/ mat, mat1, l_phi, wavefn |
---|
453 | * |
---|
454 | equivalence (n_sf, x_sf) |
---|
455 | * |
---|