_____________________The basic operation of the program is to record for each CAGET cycle (which it actually gets from the OBSCOM history, not CAGET), what the timestamp was, the project associated with the scan, the number of tracking antennas, the integration time and whether the source was marked as a calibrator. These data are accumulated into the file AT$LOG:CANDID.DAT.
_____________________At the end of each AEST day, these data are processed and a summary of time expenditure is generated for each project that operated during that day. This information is datestamped with the day in question and appended to the end of a log file called AT$LOG:CANDID.LOG. Later, a postprocessor will be able to read that extended log and generate ATCA downtime and utilisation reports .
_____________________The name CANDID means, of course, "unbiased; not censorious; frank", and it is hoped that this program will, at last, give us a better representation of the downtime at the ATCA. Until now, we have relied on the sketchy reports of the observers; often underestimated or ignored. For those who want to make it an acronym, try: Compact Array Non-Downtime Intelligent Detector (feel free to come up with something better).
_____________________Some "trigger" code has been left in, but commented out. This allows the programmer to test the processing functionality without having to wait for an AEST day cahnge.
Call sequence:
program candid implicit none include 'array$inc:array_gs.inc' include 'caobs$inc:caobs_status.inc'Creation date: 7-Nov-1995
Author: Derek McKay
File: CANDID.FOR
decode_mask
Function:
Converts the mask into the number of antennas tracking and a calcode. Normally the calcode is blank, but may be set to "C" if the cycle was marked as a calibrator field. The working copy of the antenna mask is called "mask", the original is left in its pristine state as "ref_mask".
Call sequence:
subroutine decode_mask(ref_mask,calcode,num_ants) implicit none integer - ref_mask, ! Input. Encoded cycle mask - num_ants ! Returned. Number of tracking antennas character*(*) - calcode ! "C" if a calibratorCreation date: 8-Nov-1995
Author: Derek McKay
File: CANDID.FOR
get_project
Function:
This routine returns the project ID based on the extension of the current RPFITS file.
Call sequence:
character*80 function get_project() implicit none include 'caobs$inc:caobs_status.inc'Creation date: 8-Nov-1995
Author: Derek McKay
File: CANDID.FOR
get_time_stamp()
Function:
This routine derives a time stamp for data to go inot the log files. Basically, it ends up as a number in the range 0000 - FFFF (hexadecimal) that corresponds to the range 0 - 86399 (seconds), i.e. one day. The resolution is about 1.3 seconds, which is fine considering that integration cycles are typically of 10 or 15 seconds each.
Call sequence:
integer function get_time_stamp() implicit noneCreation date: 8-Nov-1995
Author: Derek McKay
File: CANDID.FOR
open_file
Function:
This routine opens a new file for the cycle utililisation log. If one already exists for that day, the routine opens it for appending.
Call sequence:
character*80 function open_file(new) implicit none logical new ! TRUE if we should be opening a new fileCreation date: 8-Nov-1995
Author: Derek McKay
File: CANDID.FOR
process_file
Function:
Processor for analysing UTIL datafiles
Call sequence:
logical function process_file(datestamp) implicit none character*(*) datestampCreation date: 8-Nov-1995
Author: Derek McKay
File: CANDID.FOR
utl$doc:for_html.dat
.
Last updated 14-OCT-1996.