B A Full List of Conversion Functions

This appendix gives the conversion functions which are available using the DCV utility, and describes which ones are statement functions and which ones are external.

The following conversions are defined as in-line statement functions in ‘DCV_FUN’. (They are either trivial, or are mentioned in the Fortran manual as legal conversions).

Function name Conversion



DCV_BTOB BYTE to BYTE
DCV_UBTOUB UNSIGNED BYTE to UNSIGNED BYTE
DCV_UBTOD UNSIGNED BYTE to DOUBLE PRECISION
DCV_DTOD DOUBLE PRECISION to DOUBLE PRECISION
DCV_ITOD INTEGER to DOUBLE PRECISION
DCV_RTOD REAL to DOUBLE PRECISION
DCV_WTOD WORD to DOUBLE PRECISION
DCV_UWTOD UNSIGNED WORD to DOUBLE PRECISION
DCV_UBTOI UNSIGNED BYTE to INTEGER
DCV_DTOI DOUBLE PRECISION to INTEGER
DCV_ITOI INTEGER to INTEGER
DCV_RTOI REAL to INTEGER
DCV_UWTOI UNSIGNED WORD to INTEGER
DCV_UBTOR UNSIGNED BYTE to REAL
DCV_DTOR DOUBLE PRECISION to REAL
DCV_ITOR INTEGER to REAL
DCV_RTOR REAL to REAL
DCV_WTOR WORD to REAL
DCV_UWTOR UNSIGNED WORD to REAL
DCV_UBTOW UNSIGNED BYTE to WORD
DCV_DTOW DOUBLE PRECISION to WORD ***
DCV_RTOW REAL to WORD ***
DCV_WTOW WORD to WORD
DCV_UBTOUW UNSIGNED BYTE to UNSIGNED WORD
DCV_UWTOUW UNSIGNED WORD to UNSIGNED WORD

Overflow errors are possible from the conversions marked “***”

The following conversions are also defined as in-line statement functions in ‘DCV_FUN’. However, they are not mentioned in the Fortran manual and should be used with caution. Trial and error has shown that the Fortran compliers on all Starlink supported systems will make the conversions successfully :-

Function name Conversion



DCV_UBTOB UNSIGNED BYTE to BYTE ***
DCV_DTOB DOUBLE PRECISION to BYTE ***
DCV_ITOB INTEGER to BYTE ***
DCV_RTOB REAL to BYTE ***
DCV_WTOB WORD to BYTE ***
DCV_UWTOB UNSIGNED WORD to BYTE ***
DCV_BTOD BYTE to DOUBLE PRECISION
DCV_BTOI BYTE to INTEGER
DCV_WTOI WORD to INTEGER
DCV_BTOR BYTE to REAL
DCV_BTOW BYTE to WORD
DCV_ITOW INTEGER to WORD ***

Overflow errors are possible from the conversions marked “***”

The following conversions are defined as external functions in the DCV object library :-

Function name Conversion


DCV_BTOUB BYTE to UNSIGNED BYTE
DCV_DTOUB DOUBLE PRECISION to UNSIGNED BYTE
DCV_ITOUB INTEGER to UNSIGNED BYTE
DCV_RTOUB REAL to UNSIGNED BYTE
DCV_WTOUB WORD to UNSIGNED BYTE
DCV_UWTOUB UNSIGNED WORD to UNSIGNED BYTE
DCV_BTOUW BYTE to UNSIGNED WORD
DCV_UBTOUW UNSIGNED BYTE to UNSIGNED WORD
DCV_DTOUW DOUBLE PRECISION to UNSIGNED WORD
DCV_ITOUW INTEGER to UNSIGNED WORD
DCV_RTOUW REAL to UNSIGNED WORD
DCV_WTOUW WORD to UNSIGNED WORD

Overflow errors are possible in ALL these conversions, so range checking is essential.