The following sets of routines are available:
Creating and Handling a Rotation Simulation View-Object
The following routines are available:
Create a rotation simulation view-object - xdl_rot_sim
Calculate size requirements - xdl_rot_sim_getsize
Display a new simulation - xdl_rot_sim_new
Fortran call:
CALL XDLF_ROT_SIM (IVH, IVHPARENT, IX, IY, ICSET, ITYPE, ISIZE,
+ IORD, MINDX, ICRYS, IMGNUM, FILMR, SCAX,
+ ROTS, ROTE, ISYN, ETA, DIVV, DIVH, DELAMB,
+ DELCOR, IAX_V, IAX_H, NWMAX, CUR_ROTR,
+ CUR_ETA, CUR_DIVV, CUR_DIVH, CUR_DELAMB,
+ CELL, UMAT, DELPHI, WAVE, LSYS, CTOD,
+ NAME1, LEN1, NAME2, LEN2, MINW, MINH, IERR)
Parameters:
IVH (R) View-object handle (see vh)
IVHPARENT (R) View-object handle for parent 0=none
(see vh_parent)
IX (R) X position (may be -1 if no parent) (see x)
IY (R) Y position (may be -1 if no parent) (see y)
ICSET (R) Colorset number (see cset)
ITYPE (R) Simulation type =1 Colour, = 2 Monochrome with
soft limits options etc. (see type)
ISIZE (R) Half width/height for displayed pattern in
pixels (see size)
IORD (R) Order of local detector axes flag. First axis
along X windows 'x' direction on screen (to
right), second axis along X-windows 'y' direction
(down).
1 +ax1 +ax2
2 +ax1 -ax2
3 -ax1 +ax2
4 -ax1 -ax2
5 +ax2 +ax1
6 +ax2 -ax1
7 -ax2 +ax1
8 -ax2 -ax1
MINDX (R) Index to spot list (as returned from
rpff_reflist_init call)
ICRYS (R) Crystal number
IMGNUM (R) Image number
FILMR (R) Pattern radius in mm (see filmr)
SCAX(3) (R) Rotation (scan) axis vector as used in the
prediction
ROTS (R) Rotation start for current image (degrees) as used
in the prediction
ROTE (R) Rotation end for current image (>ROTS) (degrees)
as used in the prediction
ISYN (R) Flag =1 synchrotron, =0 lab source as used in the
prediction
ETA (R) Mosaicity (halfwidth, radians) as used in the
prediction
DIVV (R) Verical divergence (half width, radians) as used
in the prediction
DIVH (R) Horizontal divergence (half width, radians) as
used in the prediction
DELAMB (R) Delta-lambda/lambda as used in the prediction
DELCOR (R) Correlated dispersion (half width, radians as used in
the prediction
IAX_V (R) No. of vertical axis (lab frame) 1=X, 2=Y, 3=Z
as used in the prediction
IAX_H (R) No. of horizontal axis (lab frame) 1=X, 2=Y, 3=Z
as used in the prediction
NWMAX (R) Maximum no. of images to treat as a non too-wide
partial as used in the prediction
CUR_ROTR (R) Current rotation range for type 2 plots (must
be <= predicted range)
CUR_ETA (R) Current 'eta' value for type 2 plots (must
be <= value used in the prediction)
CUR_DIVV (R) Current 'divv' value for type 2 plots (must
be <= value used in the prediction)
CUR_DIVH (R) Current 'divh' value for type 2 plots (must
be <= value used in the prediction)
CUR_DELAMB(R) Current 'delamb' value for type 2 plots (must
be <= value used in the prediction)
CELL(6) (R) Real cell parameters in Angstroms and degrees
for annotation of type 2 Postscript plots
UMAT(3,3) (R) 'U' matrix for annotation of type 2 Postscript
plots
DELPHI(3) (R) Missetting angles in degrees for annotation of
type 2 Postscript plots
WAVE (R) Wavelength in Angstroms for annotation of type 2
Postscript plots
LSYS(2) (R) Crystal system 1-7, Lattice type 1-7
CTOD (R) Crystal to detector distance (mm)
MINW (R) Minimum width for view-object or 0
(see min_width)
MINH (R) Minimum height for view-object or 0
(see min_height)
NAME1 (R) Character string containing the name of the 1'st
decector axis (max 4 characters in length)
** Pass address using the XDLSTR function **
LEN1 (R) Length of the name string - must be >0
(cf len1) (max 4 chars)
NAME2 (R) Character string containing the name of the 2'nd
detector axis (max 4 characters in length)
** Pass address using the XDLSTR function **
LEN2 (R) Length of the name string - must be >0
(cf len1) (max 4 chars)
IERR (W) Returns status from xdl_rot_sim call
'C' call:
int xdl_rot_sim (int vh, int vh_parent, int x, int y, int cset, int type,
int size, int iord, int mindx, int icrys, int imgnum,
float filmr, float * scax, float rots, float rote,
int isyn, float eta, float divv, float divh, float delamb,
float delcor, int iax_v, int iax_h, int nwmax,
float cur_rotr, float cur_eta, float cur_divv,
float cur_divh, float cur_delamb,
float * cell, float * umat, float * delphi,
float wave, int * lsys, float ctod,
char * name1, int len1, char * name2, int len2,
int min_width, int min_height)
Parameters:
int vh; User selected view-object handle (R)
int vh_parent; View-object handle for the parent base frame,
if 0 then a base level frame is created to
enclose the view-object (R)
int x; x coordinate for the view-object.
If no parent may be -1 to give default x (R)
int y; y coordinate for the view-object.
If no parent may be -1 to give default y (R)
int cset; Number of the colorset to be used; must
have 53 or more colorcells allocated (R)
int type; Simulation type =1 Colour, =2 Monochrome with
soft limit sliders etc.
int size; Pattern display area half width/height in
pixels (R)
int iord; Order of local detector axes flag. First axis
along X windows 'x' direction on screen (to
right), second axis along X-windows 'y'
direction (down).
1 +ax1 +ax2
2 +ax1 -ax2
3 -ax1 +ax2
4 -ax1 -ax2
5 +ax2 +ax1
6 +ax2 -ax1
7 -ax2 +ax1
8 -ax2 -ax1
(R)
int mindx; Reflection list index as returned from
prl_init (R)
int icrys; Crystal number (R)
int imgnum; Image number (R)
float filmr; Pattern radius in mm (R)
float scax[3]; Rotation (scan) axis vector as used in the
prediction (R)
float rots; Rotation start for current image (degrees) as
used in the prediction (R)
float rote; Rotation end for current image (>ROTS)
(degrees) as usedin the prediction (R)
int isyn; Flag =1 synchrotron, =0 lab source as used
in the prediction (R)
float eta; Mosaicity (half width, radians) as used in the
prediction (R)
float divv; Verical divergence (half width) (radians) as
used in the prediction (R)
float divh; Horizontal divergence (half width) (radians)
as used in the prediction (R)
float delamb; Delta-lambda/lambda as used in the
prediction (R)
float delcor; Correlated dispersion (half width) as used
in the prediction (R)
int iax_v; No. of vertical axis (lab frame)
1=X, 2=Y, 3=Z as used in the prediction (R)
int iax_h; No. of horizontal axis (lab frame)
1=X, 2=Y, 3=Z as used in the prediction (R)
int nwmax; Maximum no. of images to treat as a non
too-wide partial as used in the
prediction (R)
float cur_rotr; Current rotation range for type 2 plots (must
be <= predicted range) (R)
float cur_eta; Current 'eta' value for type 2 plots (must
be <= value used in the prediction) (R)
float cur_divv; Current 'divv' value for type 2 plots (must
be <= value used in the prediction) (R)
float cur_divh; Current 'divh' value for type 2 plots (must
be <= value used in the prediction) (R)
float cur_delamb; Current 'delamb' value for type 2 plots (must
be <= value used in the prediction) (R)
float cell[6]; Real cell parameters in Angstroms and degrees
for annotation of type 2 Postscript plots
(R)
float umat[9]; 'U' matrix for annotation of type 2 Postscript
plots (R)
float delphi[3]; Missetting angles in degrees for annotation of
type 2 Postscript plots (R)
float wave; Wavelength in Angstroms for annotation of
type 2 Postscript plots (R)
int lsys[2]; Crystal system 1-7, lattice type 1-7 for
annotation of type 2 Postscript plots (R)
float ctod; Crystal to detector distance in mm for
annotation of type 2 Postscript plots (R)
char *name1; Name of 1'st detector axis (max 4 chars long)
(R)
int len1; Length of name (may give 0 if a null terminated
string is passed) (R)
char *name2; Name of 2'nd detector axis (max 4 chars long)
(R)
int len2; Length of name (may give 0 if a null terminated
string is passed) (R)
int min_width; The program will calculate the width required
for the view-object based on the display area
width, control panel width etc. If this is
less than min_width then min_width will be
used instead and the layout altered to reflect
this (R)
int min_height; minimum height cf min_width (R)
Return: Status flag =0 OK, >0 error
bit 0 set: Requested parent not found in the view-objects list
bit 1 set: Unable to allocate memory for x, y pixel positions
arrays.
Fortran call:
CALL XDLF_ROT_SIM_GETSIZE (ITYPE, ISIZE, IWIDTH, IHEIGHT)
Parameters:
ITYPE (R) Simulation type =1 Colour, = 2 Monochrome with
soft limits options etc. (see type)
ISIZE (R) Half width/height for displayed pattern in
pixels (see size)
IWIDTH (W) Returns the width required (see w)
IHEIGHT (W) Returns the height required (see h)
'C' call: void xdl_rot_sim_getsize (type, size, w, h)
Parameters:
int type; /* Simulation type =1 Colour, =2 Monochrome with
soft limit sliders etc.*/
int size; /* Pattern display area half width/height in
pixels (R)*/
int *w; /* Returns the width required (W)*/
int *h; /* Returns the height required (W)*/
Return: None
Fortran call:
CALL XDLF_ROT_SIM_NEW (IVH, IORD, NAME1, LEN1, NAME2, LEN2,
+ MINDX, ICRYS, IMGNUM,
+ FILMR, SCAX, ROTS, ROTE, ISYN, ETA,
+ DIVV, DIVH, DELAMB, DELCOR,
+ IAX_V, IAX_H, NWMAX, CELL, UMAT,
+ DELPHI, WAVE, LSYS, CTOD, IERR)
Parameters:
IVH (R) View-object handle (see vh)
IORD (R) Order of local detector axes flag 1-8 (0 if no change in
which case axis names will also be left unchanged)
NAME1 (R) Character string containing the name of the 1'st
decector axis (max 4 characters in length)
** Pass address using the XDLSTR function **
LEN1 (R) Length of the name string - must be >0
(cf len1) (max 4 chars)
NAME2 (R) Character string containing the name of the 2'nd
detector axis (max 4 characters in length)
** Pass address using the XDLSTR function **
LEN2 (R) Length of the name string - must be >0
(cf len1) (max 4 chars)
MINDX (R) Index to spot list (as returned from
rpff_reflist_init call)
ICRYS (R) Crystal number
IMGNUM (R) Image number
FILMR (R) Pattern radius in mm (see filmr)
SCAX(3) (R) Rotation (scan) axis vector as used in the
prediction
ROTS (R) Rotation start for current image (degrees) as used
in the prediction
ROTE (R) Rotation end for current image (>ROTS) (degrees)
as used in the prediction
ISYN (R) Flag =1 synchrotron, =0 lab source as used in the
prediction
ETA (R) Mosaicity (radians) as used in the prediction
DIVV (R) Verical divergence (half width) (radians) as used
in the prediction
DIVH (R) Horizontal divergence (half width) (radians) as
used in the prediction
DELAMB (R) Delta-lambda/lambda as used in the prediction
DELCOR (R) Correlated dispersion (half width) as used in
the prediction
IAX_V (R) No. of vertical axis (lab frame) 1=X, 2=Y, 3=Z
as used in the prediction
IAX_H (R) No. of horizontal axis (lab frame) 1=X, 2=Y, 3=Z
as used in the prediction
NWMAX (R) Maximum no. of images to treat as a non too-wide
partial as used in the prediction
CELL(6) (R) Real cell parameters in Angstroms and degrees
for annotation of type 2 Postscript plots
UMAT(3,3) (R) 'U' matrix for annotation of type 2 Postscript
plots
DELPHI(3) (R) Missetting angles in degrees for annotation of
type 2 Postscript plots
WAVE (R) Wavelength in Angstroms for annotation of type 2
Postscript plots
LSYS(2) (R) Crystal system 1-7, Lattice type 1-7
CTOD (R) Crystal to detector distance (mm)
IERR (W) Returns status from xdl_rot_sim_new call
'C' call:
int xdl_rot_sim_new (int vh, int iord, char * name1, int len1,
char * name2, int len2, int mindx, int icrys,
int imgnum, float filmr, float * scax,
float rots, float rote, int isyn, float eta,
float divv, float divh, float delamb, float delcor,
int iax_v, int iax_h, int nwmax, float * cell,
float * umat, float *delphi, float wave, int * lsys,
float ctod)
Parameters:
int vh; User selected view-object handle (R)
int iord; Order of local detector axes flag 1-8 (if
0 then axis order and axis names will
remain unchanged) (R)
char *name1; Name of 1'st detector axis (max 4 chars long)
(R)
int len1; Length of name (may give 0 if a null terminated
string is passed) (R)
char *name2; Name of 2'nd detector axis (max 4 chars long)
(R)
int len2; Length of name (may give 0 if a null terminated
string is passed) (R)
int mindx; Reflection list index as returned from
prl_init (R)
int icrys; Crystal number (R)
int imgnum; Image number (R)
float filmr; Pattern radius in mm (R)
float scax[3]; Rotation (scan) axis vector as used in the
prediction (R)
float rots; Rotation start for current image (degrees) as
used in the prediction (R)
float rote; Rotation end for current image (>ROTS)
(degrees) as usedin the prediction (R)
int isyn; Flag =1 synchrotron, =0 lab source as used
in the prediction (R)
float eta; Mosaicity (radians) as used in the
prediction (R)
float divv; Verical divergence (half width) (radians) as
used in the prediction (R)
float divh; Horizontal divergence (half width) (radians)
as used in the prediction (R)
float delamb; Delta-lambda/lambda as used in the
prediction (R)
float delcor; Correlated dispersion (half width) as used
in the prediction (R)
int iax_v; No. of vertical axis (lab frame)
1=X, 2=Y, 3=Z as used in the prediction (R)
int iax_h; No. of horizontal axis (lab frame)
1=X, 2=Y, 3=Z as used in the prediction (R)
int nwmax; Maximum no. of images to treat as a non
too-wide partial as used in the
prediction (R)
float cell[6]; Real cell parameters in Angstroms and degrees
for annotation of type 2 Postscript plots
(R)
float umat[9]; 'U' matrix for annotation of type 2 Postscript
plots (R)
float delphi[3]; Missetting angles in degrees for annotation of
type 2 Postscript plots (R)
float wave; Wavelength in Angstroms for annotation of
type 2 Postscript plots (R)
int lsys[2]; Crystal system 1-7, lattice type 1-7 for
annotation of type 2 Postscript plots (R)
float ctod; Crystal to detector distance in mm for
annotation of type 2 Postscript plots (R)
Return: Status flag =0 OK, >0 error
bit 0 set: View-object handle not found
bit 1 set: View handle does not match view object
bit 2 set: Unable to allocate required memory