bpm_get_locations

	status.i4.v = bpm_get_locations(horz_locations.r4a.r
					[,vert_locations.r4a.r]
					[,data_view.u4.v])

	This routine retrieves BPM detector locations for the machine last
	requested by a call to bpm_machine_c.  (Note:  For Main Injector
	only, if the "off" plane is currently selected for the BPMs, this
	routine will return the "off" plane locations.)

	horz_locations	 array of horizontal detector location values
	[vert_locations] array of vertical detector location values
			 (default is NULL)
	[data_view]	data view requested which may result in data being
			returned for multiple machines
			(BPM_VIEW_DEFAULT -> single machine view (default),
			 BPM_VIEW_P1_ONLY -> P1 Line only (P1 Line),
			 BPM_VIEW_P1_P2 -> P1 and P2 lines (P1 Line),
			 BPM_VIEW_P1_P2_M1 -> P1, P2, and M1 lines (P1 Line),
			 BPM_VIEW_P1_P2_M1_M3 -> P1, P2, M1, amd M3 lines
						 (P1 Line),
			 BPM_VIEW_P1_P2_P3 -> P1, P2, and P3 lines (P1 Line),
			 BPM_VIEW_M1_ONLY -> M1 Line only (M1 Line),
			 BPM_VIEW_M1_M3 -> M1 and M3 lines (M1 Line))

	This function returns ACNET status values as follows:

	OK			success
	CBS_NOTYET		not yet supported for the active machine
	SQL_xxx			database access error

	This function requires the following include files:

	ul_cbsaux/bpmuti.h, acnet_errors_h

	Related functions:

	bpm_machine_c, bpm_get_names, bpm_query, bpm_name_to_index_c,
	bpm_get_offsets, blm_get_locations, bpm_get_detector_status,
	bpm_get_crates_and_channels

	C/C++ usage:

	int		status;
	int		num_horizontal;
	int		num_vertical;
	unsigned int	data_view = BPM_VIEW_DEFAULT;
	float		*horz_locations;
	float		*vert_locations;

	bpm_query(&num_horizontal,&num_vertical);

	horz_locations = (float *) malloc(num_horizontal*(sizeof(float)));
	vert_locations = (float *) malloc(num_vertical*(sizeof(float)));

	status = bpm_get_locations(horz_locations,vert_locations,data_view);