#define EXP             d
/*  definition of type and intrinsic functions */
#define DCOMPLEX        real(KIND=dp)
#define DREAL           real(KIND=dp)
#define SQROOT          dsqrt
#define REALPART
#define CONJUG

/*  definition of own types */
#define XSP_MATRIX      DSP_MATRIX
#define XSPMAT          dspmat
#define ACCESSDATA_XSP  accessdata_dsp
#define NEW_XSP         new_dsp
#define DEL_XSP         del_dsp
#define XSP_DATA        dsp_data
#define XSP_HANDLE      dsp_handle
#define XSP_LINKNODE    dsp_linknode
#define XINS_INIT       dins_init
#define XSP_INIT        dsp_init
#define XSP_FIRST       dsp_first
#define XSP_LAST        dsp_last
#define X_MATRIX        d_matrix
#define XMATRIX         dmatrix
#define X_MATRIX_start  d_matrix_start
#define X_ELEMENT_start d_element_start
#define X_INELEMENT     d_inelement
#define X_ELEMENT       d_element 
#define XPMATRIX        dpmatrix
#define XTYPES          dtypes

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

/*  definition of own routines */
#define XLMBV_BCO       dlmbv_bco
#define XLMBV_BDI       dlmbv_bdi
#define XLMBV_BSC       dlmbv_bsc
#define XLMBV_BSR       dlmbv_bsr
#define XLMBV_COO       dlmbv_coo
#define XLMBV_CSC       dlmbv_csc
#define XLMBV_CSR       dlmbv_csr
#define XLMBV_DIA       dlmbv_dia
#define XLMBV_VBR       dlmbv_vbr
#define XLSBV_BCO       dlsbv_bco
#define XLSBV_BDI       dlsbv_bdi
#define XLSBV_BSC       dlsbv_bsc
#define XLSBV_BSR       dlsbv_bsr
#define XLSBV_COO       dlsbv_coo
#define XLSBV_CSC       dlsbv_csc
#define XLSBV_CSR       dlsbv_csr
#define XLSBV_DIA       dlsbv_dia
#define XLSBV_VBR       dlsbv_vbr
#define XRMBV_BCO       drmbv_bco
#define XRMBV_BDI       drmbv_bdi
#define XRMBV_BSC       drmbv_bsc
#define XRMBV_BSR       drmbv_bsr
#define XRMBV_COO       drmbv_coo
#define XRMBV_CSC       drmbv_csc
#define XRMBV_CSR       drmbv_csr
#define XRMBV_DIA       drmbv_dia
#define XRMBV_VBR       drmbv_vbr
#define XRSBV_BCO       drsbv_bco
#define XRSBV_BDI       drsbv_bdi
#define XRSBV_BSC       drsbv_bsc
#define XRSBV_BSR       drsbv_bsr
#define XRSBV_COO       drsbv_coo
#define XRSBV_CSC       drsbv_csc
#define XRSBV_CSR       drsbv_csr
#define XRSBV_DIA       drsbv_dia
#define XRSBV_VBR       drsbv_vbr
#define XUSCR_BCO       duscr_bco
#define XUSCR_BDI       duscr_bdi
#define XUSCR_BSC       duscr_bsc
#define XUSCR_BSR       duscr_bsr
#define XUSCR_COO       duscr_coo
#define XUSCR_CSC       duscr_csc
#define XUSCR_CSR       duscr_csr
#define XUSCR_DIA       duscr_dia
#define XUSCR_VBR       duscr_vbr
#define XUSMV           dusmv
#define XUSMM           dusmm
#define XUSSV           dussv
#define XUSSM           dussm
#define XBLOCK_MULT     dblock_mult_vec
#define XBLOCK_Z_MULT   dblock_Z_mult_vec
#define XBLOCK_T_MULT   dblock_T_mult_vec
#define XBLOCK_H_MULT   dblock_H_mult_vec
#define XINV_LL         dinvert_left_lower
#define XINV_T_LL       dinvert_T_left_lower
#define XINV_RU         dinvert_right_upper
#define XINV_T_RU       dinvert_T_right_upper
#define XBLOCK_R_MULT   dblock_r_mult_vec
#define XBLOCK_L_MULT   dblock_l_mult_vec
#define XINV_R_LL       dinvert_r_left_lower
#define XINV_L_LL       dinvert_l_left_lower
#define XINV_L_RU       dinvert_l_right_upper
#define XINV_R_RU       dinvert_r_right_upper
#define XUSDOT          dusdot 
#define XUSAXPY         dusaxpy
#define XUSGA           dusga
#define XUSGZ           dusgz
#define XUSSC           dussc
#define XB_UP_ORDER     db_up_order
#define XA_ROW_COL      dA_row_col
#define XDETECT_DIAG    ddetect_diag
#define XAB_ROW_COL     dAb_row_col
#define XDETECT_BDIAG   ddetect_bdiag
#define XPRE_COO2DIA    dpre_usconv_coo2dia
#define XPRE_DIA2COO    dpre_usconv_dia2coo
#define XPRE_BCO2BDI    dpre_usconv_bco2bdi
#define XPRE_BDI2BCO    dpre_usconv_bdi2bco 
#define XPRE_COO2CSR    dpre_usconv_coo2csr
#define XPRE_COO2CSC    dpre_usconv_coo2csc
#define XPRE_BCO2BSR    dpre_usconv_bco2bsr
#define XPRE_BCO2BSC    dpre_usconv_bco2bsc
#define XBCO2BDI        dusconv_bco2bdi
#define XBDI2BCO        dusconv_bdi2bco 
#define XCOO2CSR        dusconv_coo2csr
#define XCOO2CSC        dusconv_coo2csc
#define XBCO2BSR        dusconv_bco2bsr
#define XBCO2BSC        dusconv_bco2bsc
#define XCOO2DIA        dusconv_coo2dia
#define XDIA2COO        dusconv_dia2coo
#define XCSR2COO        dusconv_csr2coo
#define XCSC2COO        dusconv_csc2coo
#define XBSC2BCO        dusconv_bsc2bco
#define XBSR2BCO        dusconv_bsr2bco
#define NEW_X_MATRIX    new_d_matrix
#define DELOC_X_MATRIX  dealloc_d_matrix
#define XACCESS_MATRIX  daccess_matrix
#define NEW_X_ELEMENT   new_d_element
#define DELOC_X_ELEMENT dealloc_d_element
#define XACCESS_ELEMENT daccess_element
#define X_ELEMENT_NUM   d_element_num
#define X_DEALLOC       d_dealloc
#define XINS_entry      dINS_entry
#define XINS_bl_entr    dINS_bl_entr
#define XINS_block      dINS_block
#define XINS_varblock   dINS_varblock
#define XINS_varbl_entr dINS_varbl_entr
#define XUSCR_varend    duscr_varend
#define XUSCR_normend   duscr_normend
#define XUSCR_blockend  duscr_blockend
#define XUSCR_BEGIN     duscr_begin
#define XUSCR_BLOCK_BEGIN  duscr_block_begin
#define XUSCR_V_B_BEGIN  duscr_variable_block_begin
#define XUSCR_INSERT_ENTRY duscr_insert_entry
#define XUSCR_INSERT_ENTRIES duscr_insert_entries
#define XUSCR_INSERT_COL duscr_insert_col
#define XUSCR_INSERT_ROW duscr_insert_row
#define XUSCR_INSERT_CLIQUE duscr_insert_clique
#define XUSCR_INSERT_BLOCK  duscr_insert_block
#define XUSCR_END        duscr_end
#define  XUSGP           dusgp
#define  XUSSP           dussp
