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.
GENERIC --- A Utility for Preprocessing Generic Fortran and C Subroutines