| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455 |
- !===============================================================================
- ! Copyright 2005-2022 Intel Corporation.
- !
- ! This software and the related documents are Intel copyrighted materials, and
- ! your use of them is governed by the express license under which they were
- ! provided to you (License). Unless the License provides otherwise, you may not
- ! use, modify, copy, publish, distribute, disclose or transmit this software or
- ! the related documents without Intel's prior written permission.
- !
- ! This software and the related documents are provided as is, with no express
- ! or implied warranties, other than those that are expressly stated in the
- ! License.
- !===============================================================================
- ! Content:
- ! Intel(R) oneAPI Math Kernel Library (Intel(R) oneMKL) interface for
- ! preconditioners, RCI ISS and TR solvers routines
- !******************************************************************************
- ! PARAMETERS
- INTEGER(KIND=4) TR_SUCCESS
- INTEGER(KIND=4) TR_INVALID_OPTION
- INTEGER(KIND=4) TR_OUT_OF_MEMORY
- PARAMETER (TR_SUCCESS = 1501)
- PARAMETER (TR_INVALID_OPTION = 1502)
- PARAMETER (TR_OUT_OF_MEMORY = 1503)
- ! SUBROUTINES
- INTERFACE
- SUBROUTINE DCG(n,x,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request
- DOUBLE PRECISION x( * ), b( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCG_INIT(n,x,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request
- DOUBLE PRECISION x( * ), b( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCG_CHECK(n,x,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request
- DOUBLE PRECISION x( * ), b( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCG_GET(n,x,b,rci_request,ipar,dpar,tmp,itercount)
- INTEGER n, rci_request, itercount
- DOUBLE PRECISION x( * ), b( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCSRILU0(n,a,ia,ja,alu,ipar,dpar,ierr)
- INTEGER n, ierr
- DOUBLE PRECISION a( * ), dpar( * ), alu( * )
- INTEGER ia( * ), ja( * ), ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCSRILUT(n,a,ia,ja,alut,ialut,jalut,tol,maxfil, &
- & ipar,dpar,ierr)
- INTEGER n, maxfil, ierr
- DOUBLE PRECISION tol
- DOUBLE PRECISION a( * ), dpar( * ), alut( * )
- INTEGER ia( * ), ja( * ), ipar( * ), ialut( * )
- INTEGER jalut( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DFGMRES(n,x,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request
- DOUBLE PRECISION x( * ), b( * ), tmp( * ), dpar( * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DFGMRES_INIT(n,x,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request
- DOUBLE PRECISION x( * ), b( * ), tmp( * ), dpar( * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DFGMRES_CHECK(n,x,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request
- DOUBLE PRECISION x( * ), b( * ), tmp( * ), dpar( * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DFGMRES_GET(n,x,b,rci_request,ipar,dpar, &
- & tmp,itercount)
- INTEGER n, rci_request, itercount
- DOUBLE PRECISION x( * ), b( * ), tmp( * ), dpar( * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCGMRHS(n,x,nRhs,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request, nRhs
- DOUBLE PRECISION x( * ), b( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCGMRHS_INIT(n,x,nRhs,b,method,rci_request, &
- & ipar,dpar,tmp)
- INTEGER n, rci_request, nRhs, method
- DOUBLE PRECISION x( * ), b( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCGMRHS_CHECK(n,x,nRhs,b,rci_request,ipar,dpar,tmp)
- INTEGER n, rci_request, nRhs
- DOUBLE PRECISION x( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * ), b( nRhs, * )
- INTEGER ipar( * )
- END SUBROUTINE
- END INTERFACE
- INTERFACE
- SUBROUTINE DCGMRHS_GET(n,x,nRhs,b,rci_request,ipar,dpar, &
- & tmp,itercount)
- INTEGER n, rci_request, nRhs
- DOUBLE PRECISION x( * ), dpar( * )
- DOUBLE PRECISION tmp( n, * ), b( nRhs, * )
- INTEGER ipar( * ), itercount( * )
- END SUBROUTINE
- END INTERFACE
- ! FUNCTIONS
- INTERFACE
- INTEGER FUNCTION DTRNLSP_INIT(handle, n, m, x, eps, &
- & iter1, iter2, rs)
- INTEGER n, m, iter1, iter2
- DOUBLE PRECISION x( * ), eps( * )
- DOUBLE PRECISION rs
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSP_CHECK(handle, n, m, fjac, fvec, &
- & eps, info)
- INTEGER n, m
- INTEGER info( * )
- DOUBLE PRECISION fvec( * ), eps( * )
- DOUBLE PRECISION fjac( m, * )
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSP_SOLVE(handle, fvec, fjac, rci_request)
- INTEGER rci_request
- DOUBLE PRECISION fvec( * )
- DOUBLE PRECISION fjac( 1 , * ) ! ignore 1
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSP_GET(handle, iter, st_cr, r1, r2)
- INTEGER iter, st_cr
- DOUBLE PRECISION r1, r2
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSP_DELETE(handle)
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSPBC_INIT(handle, n, m, x, low, up, e, &
- & iter1, iter2, rs)
- INTEGER n, m, iter1, iter2
- DOUBLE PRECISION x( * ), low( * ), up( * ), e( * )
- DOUBLE PRECISION rs
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSPBC_CHECK(handle, n, m, fjac, fvec, &
- & low, up, eps, info)
- INTEGER n, m
- DOUBLE PRECISION fvec( * ), low( * ), up( * )
- DOUBLE PRECISION fjac( m, * )
- DOUBLE PRECISION eps( * )
- INTEGER info( * )
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSPBC_SOLVE(handle, fjac, fvec, &
- & rci_request)
- INTEGER rci_request
- DOUBLE PRECISION fvec( * )
- DOUBLE PRECISION fjac( 1, * ) ! ignore 1
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSPBC_GET(handle, iter, st_cr, r1, r2)
- INTEGER iter, st_cr
- DOUBLE PRECISION r1, r2
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DTRNLSPBC_DELETE(handle)
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DJACOBI_INIT(handle, n, m, x, fjac, eps)
- INTEGER n, m
- DOUBLE PRECISION x( * )
- DOUBLE PRECISION fjac( m , * )
- DOUBLE PRECISION eps
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DJACOBI_SOLVE(handle, f1, f2, rci_request)
- INTEGER rci_request
- DOUBLE PRECISION f1( * ), f2( * )
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DJACOBI_DELETE(handle)
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DJACOBI(fcn, n, m, fjac, x, eps)
- INTEGER n, m
- DOUBLE PRECISION eps
- DOUBLE PRECISION x( * )
- DOUBLE PRECISION fjac( m , * )
- INTERFACE
- SUBROUTINE fcn(m,n,x,f)
- INTEGER n, m
- DOUBLE PRECISION x( * ), f( * )
- END SUBROUTINE
- END INTERFACE
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION DJACOBIX(fcn, n, m, fjac, x, eps, user_data)
- USE, INTRINSIC :: ISO_C_BINDING
- INTEGER n, m
- DOUBLE PRECISION eps
- DOUBLE PRECISION x( * )
- DOUBLE PRECISION fjac( m , * )
- INTEGER(C_INTPTR_T) user_data
- INTERFACE
- SUBROUTINE fcn(m,n,x,f,user_data)
- USE, INTRINSIC :: ISO_C_BINDING
- INTEGER n, m
- DOUBLE PRECISION x( * ), f( * )
- INTEGER(C_INTPTR_T) user_data
- END SUBROUTINE
- END INTERFACE
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSP_INIT(handle, n, m, x, eps, &
- & iter1, iter2, rs)
- INTEGER n, m, iter1, iter2
- REAL x( * ), eps( * )
- REAL rs
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSP_CHECK(handle, n, m, fjac, fvec, &
- & eps, info)
- INTEGER n, m
- INTEGER info( * )
- REAL fvec( * ), eps( * )
- REAL fjac( m, * )
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSP_SOLVE(handle, fvec, fjac, rci_request)
- INTEGER rci_request
- REAL fvec( * )
- REAL fjac( 1, * ) ! ignore 1
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSP_GET(handle, iter, st_cr, r1, r2)
- INTEGER iter, st_cr
- REAL r1, r2
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSP_DELETE(handle)
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSPBC_INIT(handle, n, m, x, low, up, e, &
- & iter1, iter2, rs)
- INTEGER n, m, iter1, iter2
- REAL x( * ), low( * ), up( * ), e( * )
- REAL rs
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSPBC_CHECK(handle, n, m, fjac, fvec, &
- & low, up, eps, info)
- INTEGER n, m
- REAL fvec( * ), low( * ), up( * )
- REAL fjac( m, * )
- REAL eps( * )
- INTEGER info( * )
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSPBC_SOLVE(handle, fjac, fvec, &
- & rci_request)
- INTEGER rci_request
- REAL fvec( * )
- REAL fjac( 1, * ) ! ignore 1
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSPBC_GET(handle, iter, st_cr, r1, r2)
- INTEGER iter, st_cr
- REAL r1, r2
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION STRNLSPBC_DELETE(handle)
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION SJACOBI_INIT(handle, n, m, x, fjac, eps)
- INTEGER n, m
- REAL x( * )
- REAL fjac( m , * )
- REAL eps
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION SJACOBI_SOLVE(handle, f1, f2, rci_request)
- INTEGER rci_request
- REAL f1( * ), f2( * )
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION SJACOBI_DELETE(handle)
- INTEGER(KIND=8) handle
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION SJACOBI(fcn, n, m, fjac, x, eps)
- INTEGER n, m
- REAL eps
- REAL x( * )
- REAL fjac( m , * )
- INTERFACE
- SUBROUTINE fcn(m,n,x,f)
- INTEGER n, m
- REAL x( * ), f( * )
- END SUBROUTINE
- END INTERFACE
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION SJACOBIX(fcn, n, m, fjac, x, eps, user_data)
- USE, INTRINSIC :: ISO_C_BINDING
- INTEGER n, m
- REAL eps
- REAL x( * )
- REAL fjac( m , * )
- INTEGER(C_INTPTR_T) user_data
- INTERFACE
- SUBROUTINE fcn(m,n,x,f,user_data)
- USE, INTRINSIC :: ISO_C_BINDING
- INTEGER n, m
- REAL x( * ), f( * )
- INTEGER(C_INTPTR_T) user_data
- END SUBROUTINE
- END INTERFACE
- END FUNCTION
- END INTERFACE
|