#define EXP             e
/*  definition of type and intrinsic functions */
#define DCOMPLEX        real(KIND=sp)
#define DREAL           real(KIND=sp)
#define SQROOT          sqrt
#define REALPART
#define CONJUG

/*  definition of own types */
#define XSP_MATRIX      SSP_MATRIX
#define XSPMAT          sspmat
#define ACCESSDATA_XSP  accessdata_ssp
#define NEW_XSP         new_ssp
#define DEL_XSP         del_ssp
#define XSP_DATA        ssp_data
#define XSP_HANDLE      ssp_handle
#define XSP_LINKNODE    ssp_linknode
#define XINS_INIT       sins_init
#define XSP_INIT        ssp_init
#define XSP_FIRST       ssp_first
#define XSP_LAST        ssp_last
#define X_MATRIX        s_matrix
#define XMATRIX         smatrix
#define X_MATRIX_start  s_matrix_start
#define X_ELEMENT_start s_element_start
#define X_INELEMENT     s_inelement
#define X_ELEMENT       s_element 
#define XPMATRIX        spmatrix
#define XTYPES          stypes

/* definition of the constants */
#define ZZERO           0.0e0
#define ZONE            1.0e0
#define ZEROREAL        0.0e0
#define ONEREAL         1.0e0

/*  definition of own routines */
#define XLMBV_BCO       slmbv_bco
#define XLMBV_BDI       slmbv_bdi
#define XLMBV_BSC       slmbv_bsc
#define XLMBV_BSR       slmbv_bsr
#define XLMBV_COO       slmbv_coo
#define XLMBV_CSC       slmbv_csc
#define XLMBV_CSR       slmbv_csr
#define XLMBV_DIA       slmbv_dia
#define XLMBV_VBR       slmbv_vbr
#define XLSBV_BCO       slsbv_bco
#define XLSBV_BDI       slsbv_bdi
#define XLSBV_BSC       slsbv_bsc
#define XLSBV_BSR       slsbv_bsr
#define XLSBV_COO       slsbv_coo
#define XLSBV_CSC       slsbv_csc
#define XLSBV_CSR       slsbv_csr
#define XLSBV_DIA       slsbv_dia
#define XLSBV_VBR       slsbv_vbr
#define XRMBV_BCO       srmbv_bco
#define XRMBV_BDI       srmbv_bdi
#define XRMBV_BSC       srmbv_bsc
#define XRMBV_BSR       srmbv_bsr
#define XRMBV_COO       srmbv_coo
#define XRMBV_CSC       srmbv_csc
#define XRMBV_CSR       srmbv_csr
#define XRMBV_DIA       srmbv_dia
#define XRMBV_VBR       srmbv_vbr
#define XRSBV_BCO       srsbv_bco
#define XRSBV_BDI       srsbv_bdi
#define XRSBV_BSC       srsbv_bsc
#define XRSBV_BSR       srsbv_bsr
#define XRSBV_COO       srsbv_coo
#define XRSBV_CSC       srsbv_csc
#define XRSBV_CSR       srsbv_csr
#define XRSBV_DIA       srsbv_dia
#define XRSBV_VBR       srsbv_vbr
#define XUSCR_BCO       suscr_bco
#define XUSCR_BDI       suscr_bdi
#define XUSCR_BSC       suscr_bsc
#define XUSCR_BSR       suscr_bsr
#define XUSCR_COO       suscr_coo
#define XUSCR_CSC       suscr_csc
#define XUSCR_CSR       suscr_csr
#define XUSCR_DIA       suscr_dia
#define XUSCR_VBR       suscr_vbr
#define XUSMV           susmv
#define XUSMM           susmm
#define XUSSV           sussv
#define XUSSM           sussm
#define XBLOCK_MULT     sblock_mult_vec
#define XBLOCK_Z_MULT   sblock_Z_mult_vec
#define XBLOCK_T_MULT   sblock_T_mult_vec
#define XBLOCK_H_MULT   sblock_H_mult_vec
#define XINV_LL         sinvert_left_lower
#define XINV_T_LL       sinvert_T_left_lower
#define XINV_RU         sinvert_right_upper
#define XINV_T_RU       sinvert_T_right_upper
#define XBLOCK_R_MULT   sblock_r_mult_vec
#define XBLOCK_L_MULT   sblock_l_mult_vec
#define XINV_R_LL       sinvert_r_left_lower
#define XINV_L_LL       sinvert_l_left_lower
#define XINV_L_RU       sinvert_l_right_upper
#define XINV_R_RU       sinvert_r_right_upper
#define XUSDOT          susdot
#define XUSAXPY         susaxpy 
#define XUSGA           susga
#define XUSGZ           susgz
#define XUSSC           sussc
#define XB_UP_ORDER     sb_up_order
#define XA_ROW_COL      sA_row_col
#define XDETECT_DIAG    sdetect_diag
#define XAB_ROW_COL     sAb_row_col
#define XDETECT_BDIAG   sdetect_bdiag
#define XPRE_COO2DIA    spre_usconv_coo2dia
#define XPRE_DIA2COO    spre_usconv_dia2coo
#define XPRE_BCO2BDI    spre_usconv_bco2bdi
#define XPRE_BDI2BCO    spre_usconv_bdi2bco 
#define XPRE_COO2CSR    spre_usconv_coo2csr
#define XPRE_COO2CSC    spre_usconv_coo2csc
#define XPRE_BCO2BSR    spre_usconv_bco2bsr
#define XPRE_BCO2BSC    spre_usconv_bco2bsc
#define XBCO2BDI        susconv_bco2bdi
#define XBDI2BCO        susconv_bdi2bco 
#define XCOO2CSR        susconv_coo2csr
#define XCOO2CSC        susconv_coo2csc
#define XBCO2BSR        susconv_bco2bsr
#define XBCO2BSC        susconv_bco2bsc
#define XCOO2DIA         susconv_coo2dia
#define XDIA2COO         susconv_dia2coo
#define XCSR2COO        susconv_csr2coo
#define XCSC2COO        susconv_csc2coo
#define XBSC2BCO        susconv_bsc2bco
#define XBSR2BCO        susconv_bsr2bco
#define NEW_X_MATRIX    new_s_matrix
#define DELOC_X_MATRIX  dealloc_s_matrix
#define XACCESS_MATRIX  saccess_matrix
#define NEW_X_ELEMENT   new_s_element
#define X_ELEMENT_start s_element_start
#define DELOC_X_ELEMENT dealloc_s_element
#define XACCESS_ELEMENT saccess_element
#define X_ELEMENT_NUM   s_element_num
#define X_DEALLOC       s_dealloc
#define XINS_entry      sINS_entry
#define XINS_block      sINS_block
#define XINS_bl_entr    sINS_bl_entr
#define XINS_varblock   sINS_varblock
#define XINS_varbl_entr sINS_varbl_entr
#define XUSCR_varend    suscr_varend
#define XUSCR_normend   suscr_normend
#define XUSCR_blockend  suscr_blockend
#define XUSCR_BEGIN     suscr_begin
#define XUSCR_BLOCK_BEGIN  suscr_block_begin
#define XUSCR_V_B_BEGIN  suscr_variable_block_begin
#define XUSCR_INSERT_ENTRY suscr_insert_entry
#define XUSCR_INSERT_ENTRIES suscr_insert_entries
#define XUSCR_INSERT_COL suscr_insert_col
#define XUSCR_INSERT_ROW suscr_insert_row
#define XUSCR_INSERT_CLIQUE suscr_insert_clique
#define XUSCR_INSERT_BLOCK  suscr_insert_block
#define XUSCR_END        suscr_end
#define  XUSGP           susgp
#define  XUSSP           sussp
