dss factor no work

dss factor no work

mrvivaldi's picture

Presently using CVF 6.1
Down loaded mkl trial version install worked fine on my new 3.2 ghz p4

Made small sample project using ddot worked fine
made small sample project using dgemm worked fine

Tried to use sparse solver DSS using the example sym program
resulted in unresolved address constants of type @8, @40 etc

Recompiled mkl_dss.f90 with some aliases added.
See Below
Code:

!*******************************************************************************
!                              INTEL CONFIDENTIAL
!   Copyright(C) 2004 Intel Corporation. All Rights Reserved.
!   The source code contained  or  described herein and all documents related to
!   the source code ("Material") are owned by Intel Corporation or its suppliers
!   or licensors.  Title to the  Material remains with  Intel Corporation or its
!   suppliers and licensors. The Material contains trade secrets and proprietary
!   and  confidential  information of  Intel or its suppliers and licensors. The
!   Material  is  protected  by  worldwide  copyright  and trade secret laws and
!   treaty  provisions. No part of the Material may be used, copied, reproduced,
!   modified, published, uploaded, posted, transmitted, distributed or disclosed
!   in any way without Intel's prior express written permission.
!   No license  under any  patent, copyright, trade secret or other intellectual
!   property right is granted to or conferred upon you by disclosure or delivery
!   of the Materials,  either expressly, by implication, inducement, estoppel or
!   otherwise.  Any  license  under  such  intellectual property  rights must be
!   express and approved by Intel in writing.
!
!*******************************************************************************
!   Content : MKL DSS Fortran-90 header file
!
!           Contains main datatypes, routines and constants definition
!
!*******************************************************************************
!XDEC$ IF .NOT. DEFINED( __MKL_DSS_F90 )

!XDEC$ DEFINE __MKL_DSS_F90 


      MODULE mkl_dss_private
      TYPE MKL_DSS_HANDLE
         REAL(8) DUMMY ! INTEGER(KIND=8) dummy; 
         END TYPE
      END MODULE mkl_dss_private

      MODULE mkl_dss

        USE mkl_dss_private

	INTEGER, PARAMETER :: MKL_DSS_DEFAULTS = 0

!
! Message level option definitions
!

	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_SUCCESS = -2147483647
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_DEBUG   = -2147483646
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_INFO    = -2147483645
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_WARNING = -2147483644
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_ERROR   = -2147483643
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_FATAL   = -2147483642

!
! Termination level option definitions
!

	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TERM_LVL_SUCCESS = 1073741832
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TERM_LVL_DEBUG   = 1073741840
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TERM_LVL_INFO    = 1073741848
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TERM_LVL_WARNING = 1073741856
	INTEGER(KIN
D=4), PARAMETER :: MKL_DSS_TERM_LVL_ERROR   = 1073741864
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TERM_LVL_FATAL   = 1073741872

!
! Structure option definitions
!

	INTEGER(KIND=4), PARAMETER :: MKL_DSS_SYMMETRIC           = 536870976
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_SYMMETRIC_STRUCTURE = 536871040
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_NON_SYMMETRIC       = 536871104

!
! Reordering option definitions
!

	INTEGER(KIND=4), PARAMETER :: MKL_DSS_AUTO_ORDER    = 268435520
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MY_ORDER      = 268435584
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_OPTION1_ORDER = 268435648

!
! Factorization option definitions
!

	INTEGER(KIND=4), PARAMETER :: MKL_DSS_POSITIVE_DEFINITE           = 134217792
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_INDEFINITE                  = 134217856
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_HERMITIAN_POSITIVE_DEFINITE = 134217920
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_HERMITIAN_INDEFINITE        = 134217984

!
! Return status values
!

	INTEGER(KIND=4), PARAMETER :: MKL_DSS_SUCCESS         = 0
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_ZERO_PIVOT      = -1
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_OUT_OF_MEMORY   = -2
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_FAILURE         = -3
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_ROW_ERR         = -4
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_COL_ERR         = -5
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TOO_FEW_VALUES  = -6
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TOO_MANY_VALUES = -7
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_NOT_SQUARE      = -8
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_STATE_ERR       = -9
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_INVALID_OPTION  = -10
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_OPTION_CONFLICT = -11
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_MSG_LVL_ERR     = -12
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_TERM_LVL_ERR    = -13
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_STRUCTURE_ERR   = -14
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_REORDER_ERR     = -15
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_VALUES_ERR      = -16
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_STATISTICS_INVALID_MATRIX = -17
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_STATISTICS_INVALID_STATE  = -18
	INTEGER(KIND=4), PARAMETER :: MKL_DSS_STATISTICS_INVALID_STRING = -19

!
! Function prototypes for DSS routines
!

	INTERFACE
	  FUNCTION dss_create( handle, opt )
!DEC$ ATTRIBUTES STDCALL ,ALIAS:"_DSS_CREATE" ::  dss_create
!DEC$ ATTRIBUTES REFERENCE :: handle, opt
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(OUT)   :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4)                      :: dss_create
	  END FUNCTION dss_create
	END INTERFACE

	INTERFACE
	  FUNCTION dss_define_structure( handle, opt, rowIndex, nRows, rCols, columns, nNonZeros )
!DEC$ ATTRIBUTES STDCALL ,ALIAS:"_DSS_DEFINE_STRUCTURE" ::  dss_define_structure
!DEC$ ATTRIBUTES REFERENCE :: handle, opt, rowIndex, nRows, rCols, columns, nNonZeros
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(INOUT) :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4),       INTENT(IN)    :: nRows
	    INTEGER(KIND=4),       INTENT(IN)    :: rCols
	    INTEGER(KIND=4),       INTENT(IN)    :: nNonZeros
	    INTEGER(KIND=4),       INTENT(IN)    :: rowIndex( * ) ! * = min(nRows, nCols)+1
	    INTEGER(KIND=4),       INTENT(IN)    :: columns( * ) ! * = nNonZeros
	    INTEGER(KIND=4)                      :: dss_defin
e_structure
	  END FUNCTION dss_define_structure
	END INTERFACE

	INTERFACE
	  FUNCTION dss_reorder( handle, opt, perm )
!DEC$ ATTRIBUTES STDCALL ,ALIAS:"_DSS_REORDER" ::  dss_reorder
!DEC$ ATTRIBUTES REFERENCE :: handle, opt, perm
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(INOUT) :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4),       INTENT(IN)    :: perm( * )
	    INTEGER(KIND=4)                      :: dss_reorder
	  END FUNCTION dss_reorder
	END INTERFACE

	INTERFACE
	  FUNCTION dss_factor_real( handle, opt, rValues )
!DEC$ ATTRIBUTES STDCALL ,ALIAS:"_DSS_FACTOR_REAL" ::  dss_factor_real
!DEC$ ATTRIBUTES REFERENCE :: handle, opt, rValues
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(INOUT)  :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    REAL(KIND=8),          INTENT(INOUT) :: rValues( * )
	    INTEGER(KIND=4)                      :: dss_factor_real
	  END FUNCTION dss_factor_real
	END INTERFACE

	INTERFACE
	  FUNCTION dss_factor_complex( handle, opt, rValues )
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(INOUT) :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    COMPLEX(KIND=8),       INTENT(IN)    :: rValues( * )
	    INTEGER(KIND=4)                      :: dss_factor_complex
	  END FUNCTION dss_factor_complex
	END INTERFACE

	INTERFACE
	  FUNCTION dss_solve_real( handle, opt, rRhsValues, nRhs, rSolValues )
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(INOUT) :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4),       INTENT(IN)    :: nRhs
	    REAL(KIND=8),          INTENT(IN)    :: rRhsValues( * )
	    REAL(KIND=8),          INTENT(OUT)   :: rSolValues( * )
	    INTEGER(KIND=4)                      :: dss_solve_real
	  END FUNCTION dss_solve_real
	END INTERFACE

	INTERFACE
	  FUNCTION dss_solve_complex( handle, opt, rRhsValues, nRhs, rSolValues )
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(INOUT) :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4),       INTENT(IN)    :: nRhs
	    COMPLEX(KIND=8),       INTENT(IN)    :: rRhsValues( * )
	    COMPLEX(KIND=8),       INTENT(OUT)   :: rSolValues( * )
	    INTEGER(KIND=4)                      :: dss_solve_complex
	  END FUNCTION dss_solve_complex
	END INTERFACE

	INTERFACE
	  FUNCTION dss_delete( handle, opt )
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE), INTENT(IN)    :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4)                      :: dss_delete
	  END FUNCTION dss_delete
	END INTERFACE

	INTERFACE
	  FUNCTION dss_statistics( handle, opt, stat, ret )
!DEC$ ATTRIBUTES STDCALL ,ALIAS:"_DSS_STATISTICS" ::  dss_statistics
!DEC$ ATTRIBUTES REFERENCE :: handle, opt, stat, ret
	    USE mkl_dss_private
	    TYPE(MKL_DSS_HANDLE),  INTENT(IN)    :: handle
	    INTEGER(KIND=4),       INTENT(IN)    :: opt
	    INTEGER(KIND=4),       INTENT(IN)    :: stat( * )
	    REAL(KIND=8),          INTENT(OUT)   :: ret( * )
	    INTEGER(KIND=4)                      :: dss_statistics
	  END FUNCTION dss_statistics
	END INTERFACE


  INTERFACE
   SUBROUTINE mkl_cvt_to_null_terminated_str (destStr, destLen, srcStr,LEN_SRCSTR)
!DEC$ ATTRIBUTES STDCALL ,ALIAS:"_MKL_CVT_TO_NULL_TERMINATED_STR" ::  mkl_cvt_to_null_terminated_str
!DEC$ ATTRIBUTES REFERENCE :: destStr, destLen
!DEC$ ATTRIBUTES value :: sr
cStr,LEN_SRCSTR
   INTEGER(KIND=4),    INTENT(IN)  :: DESTLEN
   INTEGER(KIND=4),    INTENT(OUT)  :: DESTSTR(DESTLEN)
   INTEGER(KIND=4),    INTENT(IN)  :: srcStr
   integer(kind=4),    INTENT(IN)  :: LEN_SRCSTR
   END SUBROUTINE mkl_cvt_to_null_terminated_str
 END INTERFACE





      END MODULE mkl_dss


!XDEC$ ENDIF



Worked fine as unresolved externals did not show up.

Had also to add likage for "mkl_cvt_to_null_terminated" and modify call. This also seemed to work as I varied parameters and wrote out the resulting string changes. And then Used ;subroutine gain info about reorder time.

Here is my problem
routines dss_create, dss_define_structure, dss_reorder all woked or at; least returned zero error level.

Routine dss_factor_real resulted in "access violation" program termination

Anybody got any Ideas?

1 post / 0 new
For more complete information about compiler optimizations, see our Optimization Notice.