Note that in the following sections a consistent notation and color code is used for routine synopsis, with a table entry like the following :
| Library | library name | pointer to Fortran or C code |
| Calling sequence | CALL routine(arg1,arg2,arg3) | |
| Arguments | Fortran type | ARG1 for intent=input |
| Fortran type | ARG2 for intent=output (returned values) | |
| Fortran type | ARG3 for intent=inout (modified values) | |
| library name | purpose |
|---|---|
| fotlib | routines specifically used to access SAX telemetry on Final Observation Tapes |
| general | general purpose routines (e.g time-and-date, byteswap etc.) |
| graphserv | low level library for the graphics servers, and the relevant clients |
| hpgslib | routines specific of the SAX HPGSPC instrument |
| lecslib | routines specific of the SAX LECS instrument (unofficially supported) |
| mecslib | routines specific of the SAX MECS instrument |
| pdslib | routines specific of the SAX PDS instrument |
| vos | system dependent routines |
| xasgraph | high level graphics library |
| xaslib | routines independent of SAX data formats, but specific to handle mission-independent XAS data files and features |
Routines which are similar, or are called exclusively one by another, are listed side by side.
| General | [files] [type conversion] [string manipulation] [time] [user i/f] [environment] [miscellanea] [initialization] |
|---|---|
| System | [memory] [pipes] [process control] [misc high level VOS] [misc low level VOS] [environment] |
| XAS file format | [files] [binary tables] [keywords] |
| XAS miscellanea | [time window] [attitude] |
| Graphics | [server communication] [high level] [low level] |
| SAX specific stuff | [FOT tape] [FOT telemetry] [support] [accumulation] |
| SAX instruments | |
| MECS | [calibration parameters] [matrix support] [accumulation] |
| LECS | [everything together] NB : unofficially supported |
| PDS | [everything together] NB : code by ITESRE, no full support by the author |
| HPGSPC | [everything together] NB : most code by IFCAI, no full support by the author ; rest of code unofficially supported |
| file opening | assign logical unit | free_lu |
| convert sys to VOS filename | z_sys_name | |
| open generic file | z_open | |
| open ASCII table | open_xas_ascii | |
| error handling | VOS errors | voserror |
| Fortran errors | z_syserror | |
| file status | (INQUIRE) | z_inquire zc_stat |
| file handling | delete | z_delete_file zc_unlink | rename | z_rename_file zc_rename |
| preliminaries | operating system identification | z_op_sys blksyscommon |
| identify required conversion | conversion_needed | |
| actual conversion | IEEE to VMS and v.v. | z_ieee_to_vms z_vms_to_ieee z_dieee_to_vms z_dvms_to_ieee |
| byte swapping (little-big endian and v.v.) | swapi2 swapi4 swapr8 | |
| miscellanea | unsigned DOUBLE PRECISION | udouble |
| hex formatting | hexi4 |
| string length without trailing blanks | true_length |
| remove multiple blanks | collapse |
| smart replacement for INDEX | bindex |
| Case conversion | lowcase upcase |
| unsupported ? | trimroot |
| time conversion | time array to Unix | time_1970 |
| Unix to time array | time_array | |
| Unix to string | time_ascii | |
| System times | current time | zc_time |
| time of login | z_logintime | |
| Unsupported | HPGSPC routines |
time_70s2mjd
time_a2mjd
time_cldj |
| Basic routines | issue prompt | x_prompt |
| read reply | x_read | |
| parse string arrays | preparse | |
| Low level routines | retrieve and parse run string | z_get_command zx_get_parameter blkxrcommon |
| Unsupported | PDS routines | x_echo x_echo_error |
| Get variable value | get_global_default z_get_global zc_getenv |
| Set variable value | z_set_global zc_putenv |
| Service routines (Unix) | z_aux_envfile z_initenv |
| CURFIT fitting package | curft fchi fder mtinv |
| interpolation | extrp extrpd interpolate |
| matrix/vector operations | dotproduct matproduct |
| Random number generator | ran1 |
| Bit array handling | bit_init_handle |
| Binary table descriptors | blkbincommon |
| Current context | blkctxcommon |
| XAS file buffers | blkhcommon |
| for communication channels | blkpipecommon |
| For data conversion | blksyscommon |
| For user interface | blkxrcommon |
| routines are used to allow dynamic memory allocation in f77. | z_alloc z_dealloc zc_alloc zc_free |
| create/open/delete channel | z_channel zc_mknod z_open_stream zc_fopen |
| close channel | z_close_stream zc_fclose |
| input/output routines | z_read_stream zc_fread z_write_stream zc_fwrite |
| unsupported | z_seek_stream zc_fseek |
| terminate (replaces Fortran STOP) | z_exit |
| Handle interrupt (control-C) | z_break zc_break |
| Chain another process (overlay) | z_run zc_execvp |
| Schedule process in background (no wait) | z_spawn zc_fork |
| Schedule process with wait | z_schedule
zc_system |
| Error handling | voserror | |
| Query functions | user name (GECOS and account) | z_fullname z_username |
| hostname | z_hostname | |
| time of login | z_logintime | |
| terminal name and characteristics | z_terminal z_ttyname | |
| Debugging utilities | checkerr cpuclk | |
| Unsupported | (used by non XAS programs) | z_print_file z_tape_open |
| support to query calls | zc_cuserid zc_getdomainname zc_gethostname zc_pwnam zc_terminal zc_ttyname |
| miscellanea | zc_dtime zc_memcpy |
| Path related routines | locate path for file | buildpath |
| strip path from filename | depath
depath_1 | |
| generic XAS file | create/open | open_new_xas_file
open_old_xas_file |
| close | close_xas_file | |
| image format files | generic images | create_image
open_image
read_image |
| Response matrices | open_matrix xasmatout |
| file opening | creation of new file | create_photon create_spectrum create_time |
| existing file | open_photon open_spectrum open_time | |
| read/write | a generic record | read_bin write_bin |
| preliminaries | handling table descriptors | copy_table_desc get_table_desc set_table_desc |
| space for dummy columns | pad_table | |
| service routines | for FITS-like TFORM keywords | decodetform leftnumber maketform |
| user routines | add and format HISTORY keyword | addhistory |
| add/modify keyword | h_add_keyword h_modify_keyword | |
| read keyword value | h_read_keyword | |
| copy entire header | h_copy_all_header | |
| if file size changed | h_update_datasize | |
| service routines | point to different file | h_current_file |
| load header from disk | h_load_header h_load_minih | |
| flush header to disk | h_flush_header h_flush_minih | |
| Keyword seek support | h_find_keyword h_next_keyword |
| prepare to open time window file | init_timewindow |
| open time window file | openwindow |
| read time window file | loadwindow |
| Determine pointing | get detector pointing | detpointing |
| get spacecraft pointing | satpointing | |
| get/apply misalignments | getmisalign misalign | |
| Eulker matrix to sky coordinates | radecroll | |
| Coordinate conversion | Pixel to mm and v.v. | lintomm unlintomm mmtopix |
| Sky to pixel and v.v. | skytoxy xytosky gnomonic |
| Connection | establishment | connectserver |
| verify channel existence | pipeexist | |
| server registration | isregistered
register deregister | |
| Xlib interface | for X window server | f2x |
| plot annotations | (two styles) | annotate_new annotate_old |
| Default arrangements | axis frame with annotations | df_axes |
| pen colours | df_pen_colours | |
| plotting window and viewport | df_viewport df_window | |
| Setup from environment | clear screen on overtrace | check_overtrace |
| plot style (solid, error bars etc.) | get_datastyle | |
| Axis frames | labelling routines | lb_axis
lb_number
lb_tics |
| various axis styles | nice_axes
nicer_lin_axes
nicer_log_axes | |
| Data array plotting | various forms | plot_xxy_bar plot_xxy_histo plot_xxy_join plot_xy_join |
| Establish communication | (or close) | y_openplot y_closeplot |
| set up | viewport and window | y_clear_viewport y_viewport y_window y_page |
| reference frame | y_coordinates y_scale | |
| look and style | y_colour y_text y_width | |
| Plotting primitives | vector | y_draw y_move y_lines |
| text | y_text | |
| image and 2-d | y_fill y_readlut y_write_image y_writelut | |
| graphics input | y_get_cursor y_readlut |
| service functions | load template | tapechar |
| begin and end operations | add_init add_end | |
| edit template command | edit_cmd | |
| handle specific commands | file copy | add_file |
| tape functions | add_rew_tape add_skip_tape |
| basic type switching | 1 direct mode data (events) 2 indirect (spectra) 3 Housekeeping |
sax_acc_bt_1 sax_acc_bt_2 sax_acc_bt_3 |
| specific type handling | 1 direct event handling | sax_acc_b1s1_i sax_acc_b1s1_y sax_acc_b1s2_i sax_acc_b1s2_y sax_acc_b1s3_y |
| exposure computation | exposure_b1s1 exposure_b1s3 timebin_b1s1 | |
| instrument dep. event correction | correct | |
| 2 indirect | sax_acc_b2s1_y | |
| 3 Housekeeping | sax_acc_b3s1 sax_acc_b3s2 sax_acc_b3s3 sax_acc_b3s4 sax_acc_b3s5 sax_acc_b3s6 | |
| instrument directory | record decoding | rearrange_instrec |
| which packets | are available ? | check_packet |
| load packet info | mission-independent i/f | pktcap_load pktcap_lookup |
| SAX specific i/f | sax_pktcap_load | |
| HK parameter info | similar to above | sax_pcf_load sax_pcf_lookup |
| Open files | instrument telemetry | sax_acc_open_tlm |
| spacecraft telemetry | sax_acc_open_sc_tlm | |
| directory information | sax_open_dir | |
| dispatcher to | packet specific routines | sax_acc_loop |
| operator dialogue | choose packet type | sax_which_data |
| load packetcap information | sax_acc_preload | |
| select fields and ranges | sax_acc_select sax_acc_hkrange sax_acc_other_range sax_acc_range | |
| time profile binning | askbin asktime | |
| initializations | spacecraft to XAS time | time_constants_setup get_start_end update_start_end |
| obaervation chain | get_obs_chain | |
| instrument dep. corrections | init_correct | |
| XAS keywords in output | instr_keywords sax_df_keywords |
| Mirror system | area_mr psf_mir psf_rad |
| Windows and filter incl. materials | abs_co_be bewin_trasp alum kapton2 lexan poly poly_carbo |
| Detector components | coda
cross_sec
escape
gas_cell
spread |
| parameter choices | blsel ein eout |
| service computations | mecs_arf
mecs_rmf
multiply_rmfarf
tetafi_xy |
| Output to XAS or OGIP | fopen_rmf mecs_matkeywords write_arf write_rmf write_rmf_ebo write_rmf_mat |
| corrections | init_correct_me init_correct_me_fast me_gain_time me_init_map mecscorrect |
| keywords | mecs_keywords |
| adapted from SSD | blrng e2fwhm |
| MECS-style corrections | lecscorrect init_correct_le le_gain_time lecs_keywords |
| supplied by IFCAI |
broad2
cofas
fuga
fuga_1
shell_fact
shell_prob
winbe fopen_rmf reader reader_1 write_arf write_rmf_ebo write_rmf_mat effmed filecorr_read fileinp_read parameter tmed tofits buf_read config_read julia toqdp |
| MECS-style corrections | init_correct_hp hpcorrect hp_gain_time hp_keywords |