| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823 |
- ! file: mkl_df.f90
- !===============================================================================
- ! Copyright 2006-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.
- !===============================================================================
- !++
- ! Fortran 90 DF interface.
- !--
- MODULE MKL_DF_TYPE
- !++
- ! Definitions for DF functions return values (errors, warnings)
- !--
- ! "No error" status
- INTEGER(KIND=4) DF_STATUS_OK
- PARAMETER (DF_STATUS_OK = 0)
- ! Common errors (-1..-999)
- INTEGER(KIND=4) DF_ERROR_CPU_NOT_SUPPORTED
- PARAMETER (DF_ERROR_CPU_NOT_SUPPORTED = -1)
- ! Data fitting errors (-1000..-1999)
- INTEGER(KIND=4) DF_ERROR_NULL_TASK_DESCRIPTOR
- INTEGER(KIND=4) DF_ERROR_MEM_FAILURE
- INTEGER(KIND=4) DF_ERROR_METHOD_NOT_SUPPORTED
- INTEGER(KIND=4) DF_ERROR_COMP_TYPE_NOT_SUPPORTED
- INTEGER(KIND=4) DF_ERROR_NULL_PTR
- INTEGER(KIND=4) DF_ERROR_BAD_NX
- INTEGER(KIND=4) DF_ERROR_BAD_X
- INTEGER(KIND=4) DF_ERROR_BAD_X_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_NY
- INTEGER(KIND=4) DF_ERROR_BAD_Y
- INTEGER(KIND=4) DF_ERROR_BAD_Y_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_SPLINE_ORDER
- INTEGER(KIND=4) DF_ERROR_BAD_SPLINE_TYPE
- INTEGER(KIND=4) DF_ERROR_BAD_IC_TYPE
- INTEGER(KIND=4) DF_ERROR_BAD_IC
- INTEGER(KIND=4) DF_ERROR_BAD_BC_TYPE
- INTEGER(KIND=4) DF_ERROR_BAD_BC
- INTEGER(KIND=4) DF_ERROR_BAD_PP_COEFF
- INTEGER(KIND=4) DF_ERROR_BAD_PP_COEFF_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_PERIODIC_VAL
- INTEGER(KIND=4) DF_ERROR_BAD_DATA_ATTR
- INTEGER(KIND=4) DF_ERROR_BAD_DATA_IDX
- INTEGER(KIND=4) DF_ERROR_BAD_NSITE
- INTEGER(KIND=4) DF_ERROR_BAD_SITE
- INTEGER(KIND=4) DF_ERROR_BAD_SITE_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_NDORDER
- INTEGER(KIND=4) DF_ERROR_BAD_DORDER
- INTEGER(KIND=4) DF_ERROR_BAD_DATA_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_INTERP
- INTEGER(KIND=4) DF_ERROR_BAD_INTERP_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_CELL_IDX
- INTEGER(KIND=4) DF_ERROR_BAD_NLIM
- INTEGER(KIND=4) DF_ERROR_BAD_LLIM
- INTEGER(KIND=4) DF_ERROR_BAD_RLIM
- INTEGER(KIND=4) DF_ERROR_BAD_INTEGR
- INTEGER(KIND=4) DF_ERROR_BAD_INTEGR_HINT
- INTEGER(KIND=4) DF_ERROR_BAD_LOOKUP_INTERP_SITE
- INTEGER(KIND=4) DF_ERROR_BAD_CHECK_FLAG
- PARAMETER (DF_ERROR_NULL_TASK_DESCRIPTOR = -1000)
- PARAMETER (DF_ERROR_MEM_FAILURE = -1001)
- PARAMETER (DF_ERROR_METHOD_NOT_SUPPORTED = -1002)
- PARAMETER (DF_ERROR_COMP_TYPE_NOT_SUPPORTED = -1003)
- PARAMETER (DF_ERROR_NULL_PTR = -1037)
- PARAMETER (DF_ERROR_BAD_NX = -1004)
- PARAMETER (DF_ERROR_BAD_X = -1005)
- PARAMETER (DF_ERROR_BAD_X_HINT = -1006)
- PARAMETER (DF_ERROR_BAD_NY = -1007)
- PARAMETER (DF_ERROR_BAD_Y = -1008)
- PARAMETER (DF_ERROR_BAD_Y_HINT = -1009)
- PARAMETER (DF_ERROR_BAD_SPLINE_ORDER = -1010)
- PARAMETER (DF_ERROR_BAD_SPLINE_TYPE = -1011)
- PARAMETER (DF_ERROR_BAD_IC_TYPE = -1012)
- PARAMETER (DF_ERROR_BAD_IC = -1013)
- PARAMETER (DF_ERROR_BAD_BC_TYPE = -1014)
- PARAMETER (DF_ERROR_BAD_BC = -1015)
- PARAMETER (DF_ERROR_BAD_PP_COEFF = -1016)
- PARAMETER (DF_ERROR_BAD_PP_COEFF_HINT = -1017)
- PARAMETER (DF_ERROR_BAD_PERIODIC_VAL = -1018)
- PARAMETER (DF_ERROR_BAD_DATA_ATTR = -1019)
- PARAMETER (DF_ERROR_BAD_DATA_IDX = -1020)
- PARAMETER (DF_ERROR_BAD_NSITE = -1021)
- PARAMETER (DF_ERROR_BAD_SITE = -1022)
- PARAMETER (DF_ERROR_BAD_SITE_HINT = -1023)
- PARAMETER (DF_ERROR_BAD_NDORDER = -1024)
- PARAMETER (DF_ERROR_BAD_DORDER = -1025)
- PARAMETER (DF_ERROR_BAD_DATA_HINT = -1026)
- PARAMETER (DF_ERROR_BAD_INTERP = -1027)
- PARAMETER (DF_ERROR_BAD_INTERP_HINT = -1028)
- PARAMETER (DF_ERROR_BAD_CELL_IDX = -1029)
- PARAMETER (DF_ERROR_BAD_NLIM = -1030)
- PARAMETER (DF_ERROR_BAD_LLIM = -1031)
- PARAMETER (DF_ERROR_BAD_RLIM = -1032)
- PARAMETER (DF_ERROR_BAD_INTEGR = -1033)
- PARAMETER (DF_ERROR_BAD_INTEGR_HINT = -1034)
- PARAMETER (DF_ERROR_BAD_LOOKUP_INTERP_SITE = -1035)
- PARAMETER (DF_ERROR_BAD_CHECK_FLAG = -1036)
- ! Internal errors caused by internal routines of the functions
- INTEGER(KIND=4) VSL_DF_ERROR_INTERNAL_C1
- INTEGER(KIND=4) VSL_DF_ERROR_INTERNAL_C2
- PARAMETER (VSL_DF_ERROR_INTERNAL_C1 = -1500)
- PARAMETER (VSL_DF_ERROR_INTERNAL_C2 = -1501)
- ! User-defined callback status
- INTEGER(KIND=4) DF_STATUS_EXACT_RESULT
- PARAMETER (DF_STATUS_EXACT_RESULT = 1000)
- !++
- ! MACROS USED IN DATA FITTING EDIT AND COMPUTE ROUTINES
- !--
- ! DF EditTask routine is way to edit input and output parameters of the task
- ! Macros below define parameters available for modification
- INTEGER DF_X
- INTEGER DF_Y
- INTEGER DF_IC
- INTEGER DF_BC
- INTEGER DF_PP_SCOEFF
- INTEGER DF_NX
- INTEGER DF_XHINT
- INTEGER DF_NY
- INTEGER DF_YHINT
- INTEGER DF_SPLINE_ORDER
- INTEGER DF_SPLINE_TYPE
- INTEGER DF_IC_TYPE
- INTEGER DF_BC_TYPE
- INTEGER DF_PP_COEFF_HINT
- INTEGER DF_CHECK_FLAG
- PARAMETER (DF_X = 1)
- PARAMETER (DF_Y = 2)
- PARAMETER (DF_IC = 3)
- PARAMETER (DF_BC = 4)
- PARAMETER (DF_PP_SCOEFF = 5)
- PARAMETER (DF_NX = 14)
- PARAMETER (DF_XHINT = 15)
- PARAMETER (DF_NY = 16)
- PARAMETER (DF_YHINT = 17)
- PARAMETER (DF_SPLINE_ORDER = 18)
- PARAMETER (DF_SPLINE_TYPE = 19)
- PARAMETER (DF_IC_TYPE = 20)
- PARAMETER (DF_BC_TYPE = 21)
- PARAMETER (DF_PP_COEFF_HINT = 22)
- PARAMETER (DF_CHECK_FLAG = 23)
- !++
- ! SPLINE ORDERS SUPPORTED IN DATA FITTING ROUTINES
- !--
- INTEGER(KIND=4) DF_PP_STD
- INTEGER(KIND=4) DF_PP_LINEAR
- INTEGER(KIND=4) DF_PP_QUADRATIC
- INTEGER(KIND=4) DF_PP_CUBIC
- PARAMETER (DF_PP_STD = 0)
- PARAMETER (DF_PP_LINEAR = 2)
- PARAMETER (DF_PP_QUADRATIC = 3)
- PARAMETER (DF_PP_CUBIC = 4)
- !++
- ! SPLINE TYPES SUPPORTED IN DATA FITTING ROUTINES
- !--
- INTEGER(KIND=4) DF_PP_DEFAULT
- INTEGER(KIND=4) DF_PP_SUBBOTIN
- INTEGER(KIND=4) DF_PP_NATURAL
- INTEGER(KIND=4) DF_PP_HERMITE
- INTEGER(KIND=4) DF_PP_BESSEL
- INTEGER(KIND=4) DF_PP_AKIMA
- INTEGER(KIND=4) DF_LOOKUP_INTERPOLANT
- INTEGER(KIND=4) DF_CR_STEPWISE_CONST_INTERPOLANT
- INTEGER(KIND=4) DF_CL_STEPWISE_CONST_INTERPOLANT
- INTEGER(KIND=4) DF_PP_HYMAN
- PARAMETER (DF_PP_DEFAULT = 0)
- PARAMETER (DF_PP_SUBBOTIN = 1)
- PARAMETER (DF_PP_NATURAL = 2)
- PARAMETER (DF_PP_HERMITE = 3)
- PARAMETER (DF_PP_BESSEL = 4)
- PARAMETER (DF_PP_AKIMA = 5)
- PARAMETER (DF_LOOKUP_INTERPOLANT = 6)
- PARAMETER (DF_CR_STEPWISE_CONST_INTERPOLANT = 7)
- PARAMETER (DF_CL_STEPWISE_CONST_INTERPOLANT = 8)
- PARAMETER (DF_PP_HYMAN = 9)
- !++
- ! TYPES OF BOUNDARY CONDITIONS USED IN SPLINE CONSTRUCTION
- !--
- INTEGER DF_NO_BC
- INTEGER DF_BC_NOT_A_KNOT
- INTEGER DF_BC_FREE_END
- INTEGER DF_BC_1ST_LEFT_DER
- INTEGER DF_BC_1ST_RIGHT_DER
- INTEGER DF_BC_2ND_LEFT_DER
- INTEGER DF_BC_2ND_RIGHT_DER
- INTEGER DF_BC_PERIODIC
- INTEGER DF_BC_Q_VAL
- PARAMETER (DF_NO_BC = 0)
- PARAMETER (DF_BC_NOT_A_KNOT = 1)
- PARAMETER (DF_BC_FREE_END = 2)
- PARAMETER (DF_BC_1ST_LEFT_DER = 4)
- PARAMETER (DF_BC_1ST_RIGHT_DER = 8)
- PARAMETER (DF_BC_2ND_LEFT_DER = 16)
- PARAMETER (DF_BC_2ND_RIGHT_DER = 32)
- PARAMETER (DF_BC_PERIODIC = 64)
- PARAMETER (DF_BC_Q_VAL = 128)
- !++
- ! TYPES OF INTERNAL CONDITIONS USED IN SPLINE CONSTRUCTION
- !--
- INTEGER DF_NO_IC
- INTEGER DF_IC_1ST_DER
- INTEGER DF_IC_2ND_DER
- INTEGER DF_IC_Q_KNOT
- PARAMETER (DF_NO_IC = 0)
- PARAMETER (DF_IC_1ST_DER = 1)
- PARAMETER (DF_IC_2ND_DER = 2)
- PARAMETER (DF_IC_Q_KNOT = 8)
- !++
- ! TYPES OF SUPPORTED HINTS
- !--
- INTEGER(KIND=4) DF_NO_HINT
- INTEGER(KIND=4) DF_NON_UNIFORM_PARTITION
- INTEGER(KIND=4) DF_QUASI_UNIFORM_PARTITION
- INTEGER(KIND=4) DF_UNIFORM_PARTITION
- INTEGER(KIND=4) DF_MATRIX_STORAGE_ROWS
- INTEGER(KIND=4) DF_MATRIX_STORAGE_COLS
- INTEGER(KIND=4) DF_SORTED_DATA
- INTEGER(KIND=4) DF_1ST_COORDINATE
- INTEGER(KIND=4) DF_MATRIX_STORAGE_FUNCS_SITES_DERS
- INTEGER(KIND=4) DF_MATRIX_STORAGE_FUNCS_DERS_SITES
- INTEGER(KIND=4) DF_MATRIX_STORAGE_SITES_FUNCS_DERS
- INTEGER(KIND=4) DF_MATRIX_STORAGE_SITES_DERS_FUNCS
- PARAMETER (DF_NO_HINT = INT(Z"00000000", 4))
- PARAMETER (DF_NON_UNIFORM_PARTITION = INT(Z"00000001", 4))
- PARAMETER (DF_QUASI_UNIFORM_PARTITION = INT(Z"00000002", 4))
- PARAMETER (DF_UNIFORM_PARTITION = INT(Z"00000004", 4))
- PARAMETER (DF_MATRIX_STORAGE_ROWS = INT(Z"00000010", 4))
- PARAMETER (DF_MATRIX_STORAGE_COLS = INT(Z"00000020", 4))
- PARAMETER (DF_SORTED_DATA = INT(Z"00000040", 4))
- PARAMETER (DF_1ST_COORDINATE = INT(Z"00000080", 4))
- PARAMETER (DF_MATRIX_STORAGE_FUNCS_SITES_DERS = &
- & DF_MATRIX_STORAGE_ROWS)
- PARAMETER (DF_MATRIX_STORAGE_FUNCS_DERS_SITES = &
- & DF_MATRIX_STORAGE_COLS)
- PARAMETER (DF_MATRIX_STORAGE_SITES_FUNCS_DERS = &
- & INT(Z"00000100", 4))
- PARAMETER (DF_MATRIX_STORAGE_SITES_DERS_FUNCS = &
- & INT(Z"00000200", 4))
- !++
- ! TYPES OF APRIORI INFORMATION ABOUT DATA STRUCTURE
- !--
- INTEGER(KIND=4) DF_NO_APRIORI_INFO
- INTEGER(KIND=4) DF_APRIORI_MOST_LIKELY_CELL
- PARAMETER (DF_NO_APRIORI_INFO = INT(Z"00000000", 4))
- PARAMETER (DF_APRIORI_MOST_LIKELY_CELL = INT(Z"00000001", 4))
- !++
- ! ESTIMATES TO BE COMUTED WITH DATA FITTING COMPUTE ROUTINE
- !--
- INTEGER(KIND=4) DF_INTERP
- INTEGER(KIND=4) DF_CELL
- INTEGER(KIND=4) DF_INTERP_USER_CELL
- PARAMETER (DF_INTERP = INT(Z"00000001", 4))
- PARAMETER (DF_CELL = INT(Z"00000002", 4))
- PARAMETER (DF_INTERP_USER_CELL = INT(Z"00000004", 4))
- !++
- ! METHODS TO BE USED FOR EVALUATION OF THE SPLINE RELATED ESTIMATES
- !--
- INTEGER DF_METHOD_STD
- INTEGER DF_METHOD_PP
- PARAMETER (DF_METHOD_STD = 0)
- PARAMETER (DF_METHOD_PP = 1)
- !++
- ! POSSIBLE VALUES FOR DF_CHECK_FLAG
- !--
- INTEGER DF_ENABLE_CHECK_FLAG
- INTEGER DF_DISABLE_CHECK_FLAG
- PARAMETER (DF_ENABLE_CHECK_FLAG = 0)
- PARAMETER (DF_DISABLE_CHECK_FLAG = 1)
- !++
- ! SPLINE FORMATS SUPPORTED IN SPLINE CONSTRUCTION ROUTINE
- !--
- INTEGER DF_PP_SPLINE
- PARAMETER (DF_PP_SPLINE = 0)
- !++
- ! VALUES OF FLAG INDICATING WHICH, LEFT OR RIGHT, INTEGRATION LIMITS
- ! ARE PASSED BY INTEGRATION ROUTINE INTO SEARCH CALLBACK
- !--
- INTEGER(KIND=4) DF_INTEGR_SEARCH_CB_LLIM_FLAG
- INTEGER(KIND=4) DF_INTEGR_SEARCH_CB_RLIM_FLAG
- PARAMETER (DF_INTEGR_SEARCH_CB_LLIM_FLAG = INT(Z"00000000", 4))
- PARAMETER (DF_INTEGR_SEARCH_CB_RLIM_FLAG = INT(Z"00000001", 4))
- !++
- ! TYPEDEFS
- !--
- TYPE DF_TASK
- INTEGER(KIND=4) descriptor1
- INTEGER(KIND=4) descriptor2
- END TYPE DF_TASK
- !++
- ! DATA FITTING INTERPOLATION CALLBACK INTERNAL PARAMETERS STRUCTURE
- !--
- TYPE DF_INTERP_CALLBACK_LIBRARY_PARAMS
- INTEGER(KIND=4) ::reserved1
- END TYPE DF_INTERP_CALLBACK_LIBRARY_PARAMS
- !++
- ! DATA FITTING INTEGRATION CALLBACK INTERNAL PARAMETERS STRUCTURE
- !--
- TYPE DF_INTEGR_CALLBACK_LIBRARY_PARAMS
- INTEGER(KIND=4) ::reserved1
- END TYPE DF_INTEGR_CALLBACK_LIBRARY_PARAMS
- !++
- ! DATA FITTING SEARCH CALLBACK INTERNAL PARAMETERS STRUCTURE
- !--
- TYPE DF_SEARCH_CALLBACK_LIBRARY_PARAMS
- INTEGER(KIND=4) ::limit_type_flag
- END TYPE DF_SEARCH_CALLBACK_LIBRARY_PARAMS
- END MODULE MKL_DF_TYPE
- MODULE MKL_DF
- USE MKL_DF_TYPE
- !++
- ! DF CONSTRUCTOR FUNCTION DECLARATIONS.
- !--
- ! NewTask1D - 1d task creation/initialization
- INTERFACE
- INTEGER FUNCTION dfsnewtask1d(task,nx,x,xhint,ny,y,yhint)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: nx
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: x
- INTEGER,INTENT(IN),OPTIONAL :: xhint
- INTEGER,INTENT(IN),OPTIONAL :: ny
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: y
- INTEGER,INTENT(IN),OPTIONAL :: yhint
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdnewtask1d(task,nx,x,xhint,ny,y,yhint)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: nx
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: x
- INTEGER,INTENT(IN),OPTIONAL :: xhint
- INTEGER,INTENT(IN),OPTIONAL :: ny
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: y
- INTEGER,INTENT(IN),OPTIONAL :: yhint
- END FUNCTION
- END INTERFACE
- !++
- ! DF EDITOR FUNCTION DECLARATIONS.
- !--
- ! Modifies a pointer to an array held in a Data Fitting task descriptor
- INTERFACE
- INTEGER FUNCTION dfseditptr(task,ptr_attr,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: ptr
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdeditptr(task,ptr_attr,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: ptr
- END FUNCTION
- END INTERFACE
- ! Modifies a parameter value in a Data Fitting task descriptor
- INTERFACE
- INTEGER FUNCTION dfieditval(task,val_attr,val)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: val_attr
- INTEGER,INTENT(IN) :: val
- END FUNCTION
- END INTERFACE
- ! Modifies a pointer to the memory representing a coordinate of the data
- ! stored in matrix format (function or spline coefficients)
- INTERFACE
- INTEGER FUNCTION dfseditidxptr(task,ptr_attr,idx,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- INTEGER,INTENT(IN) :: idx
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: ptr
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdeditidxptr(task,ptr_attr,idx,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- INTEGER,INTENT(IN) :: idx
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: ptr
- END FUNCTION
- END INTERFACE
- ! Modifies parameters of Piece-wise Polynomial (PP) spline
- INTERFACE
- INTEGER FUNCTION dfseditppspline1d(task,s_order,s_type, &
- & bc_type,bc,ic_type,ic,scoeff,scoeffhint)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: s_order
- INTEGER,INTENT(IN) :: s_type
- INTEGER,INTENT(IN),OPTIONAL :: bc_type
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: bc
- INTEGER,INTENT(IN),OPTIONAL :: ic_type
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: ic
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: scoeff
- INTEGER,INTENT(IN),OPTIONAL :: scoeffhint
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdeditppspline1d(task,s_order,s_type, &
- & bc_type,bc,ic_type,ic,scoeff,scoeffhint)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: s_order
- INTEGER,INTENT(IN) :: s_type
- INTEGER,INTENT(IN),OPTIONAL :: bc_type
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: bc
- INTEGER,INTENT(IN),OPTIONAL :: ic_type
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: ic
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: scoeff
- INTEGER,INTENT(IN),OPTIONAL :: scoeffhint
- END FUNCTION
- END INTERFACE
- !++
- ! DF TASK QUERYING FUNCTION DECLARATIONS.
- !--
- ! Reads a pointer to an array held in a Data Fitting task descriptor
- INTERFACE
- INTEGER FUNCTION dfsqueryptr(task,ptr_attr,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- INTEGER(KIND=8),INTENT(OUT) :: ptr
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdqueryptr(task,ptr_attr,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- INTEGER(KIND=8),INTENT(OUT) :: ptr
- END FUNCTION
- END INTERFACE
- ! Reads a parameter value in a Data Fitting task descriptor
- INTERFACE
- INTEGER FUNCTION dfiqueryval(task,val_attr,val)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: val_attr
- INTEGER,INTENT(OUT) :: val
- END FUNCTION
- END INTERFACE
- ! Reads a pointer to the memory representing a coordinate of the data
- ! stored in matrix format (function or spline coefficients)
- INTERFACE
- INTEGER FUNCTION dfsqueryidxptr(task,ptr_attr,idx,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- INTEGER,INTENT(IN) :: idx
- INTEGER(KIND=8),INTENT(OUT) :: ptr
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdqueryidxptr(task,ptr_attr,idx,ptr)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: ptr_attr
- INTEGER,INTENT(IN) :: idx
- INTEGER(KIND=8),INTENT(OUT) :: ptr
- END FUNCTION
- END INTERFACE
- !++
- ! DF COMPUTE FUNCTION DECLARATIONS.
- !--
- INTERFACE
- INTEGER FUNCTION dfsconstruct1d(task,s_format,method)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: s_format
- INTEGER,INTENT(IN) :: method
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdconstruct1d(task,s_format,method)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: s_format
- INTEGER,INTENT(IN) :: method
- END FUNCTION
- END INTERFACE
- ! Interpolate1d
- INTERFACE
- INTEGER FUNCTION dfsinterpolate1d(task, type, method, nsite, &
- & site, sitehint, ndorder, dorder, datahint, r, rhint, cell)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: type
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- INTEGER,INTENT(IN),OPTIONAL :: ndorder
- INTEGER, DIMENSION(*),INTENT(IN),OPTIONAL :: dorder
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- REAL(KIND=4),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- INTEGER,DIMENSION(*),INTENT(OUT),OPTIONAL :: cell
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdinterpolate1d(task, type, method, nsite, &
- & site, sitehint, ndorder, dorder, datahint, r, rhint, cell)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: type
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- INTEGER,INTENT(IN),OPTIONAL :: ndorder
- INTEGER, DIMENSION(*),INTENT(IN),OPTIONAL :: dorder
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- REAL(KIND=8),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- INTEGER,DIMENSION(*),INTENT(OUT),OPTIONAL :: cell
- END FUNCTION
- END INTERFACE
- ! InterpolateEx1d
- INTERFACE
- INTEGER FUNCTION dfsinterpolateex1d(task, type, method, nsite, &
- & site, sitehint, ndorder, dorder, datahint, r, rhint, cell, &
- & le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, &
- & search_params)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: type
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- INTEGER,INTENT(IN),OPTIONAL :: ndorder
- INTEGER, DIMENSION(*),INTENT(IN),OPTIONAL :: dorder
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- REAL(KIND=4),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- INTEGER,DIMENSION(*),INTENT(OUT),OPTIONAL :: cell
- INTEGER,EXTERNAL,OPTIONAL :: le_cb
- INTEGER,DIMENSION(*),OPTIONAL :: le_params
- INTEGER,EXTERNAL,OPTIONAL :: re_cb
- INTEGER,DIMENSION(*),OPTIONAL :: re_params
- INTEGER,EXTERNAL,OPTIONAL :: i_cb
- INTEGER,DIMENSION(*),OPTIONAL :: i_params
- INTEGER,EXTERNAL,OPTIONAL :: search_cb
- INTEGER,DIMENSION(*),OPTIONAL :: search_params
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdinterpolateex1d(task, type, method, nsite, &
- & site, sitehint, ndorder, dorder, datahint, r, rhint, cell, &
- & le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, &
- & search_params)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: type
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- INTEGER,INTENT(IN),OPTIONAL :: ndorder
- INTEGER, DIMENSION(*),INTENT(IN),OPTIONAL :: dorder
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- REAL(KIND=8),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- INTEGER,DIMENSION(*),INTENT(OUT),OPTIONAL :: cell
- INTEGER,EXTERNAL,OPTIONAL :: le_cb
- INTEGER,DIMENSION(*),OPTIONAL :: le_params
- INTEGER,EXTERNAL,OPTIONAL :: re_cb
- INTEGER,DIMENSION(*),OPTIONAL :: re_params
- INTEGER,EXTERNAL,OPTIONAL :: i_cb
- INTEGER,DIMENSION(*),OPTIONAL :: i_params
- INTEGER,EXTERNAL,OPTIONAL :: search_cb
- INTEGER,DIMENSION(*),OPTIONAL :: search_params
- END FUNCTION
- END INTERFACE
- ! Integrate1d
- INTERFACE
- INTEGER FUNCTION dfsintegrate1d(task, method, nlim, llim, &
- & llimhint, rlim, rlimhint, ldatahint, rdatahint, r, rhint)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nlim
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: llim
- INTEGER,INTENT(IN),OPTIONAL :: llimhint
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: rlim
- INTEGER,INTENT(IN),OPTIONAL :: rlimhint
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: ldatahint
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: rdatahint
- REAL(KIND=4),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdintegrate1d(task, method, nlim, llim, &
- & llimhint, rlim, rlimhint, ldatahint, rdatahint, r, rhint)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nlim
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: llim
- INTEGER,INTENT(IN),OPTIONAL :: llimhint
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: rlim
- INTEGER,INTENT(IN),OPTIONAL :: rlimhint
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: ldatahint
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: rdatahint
- REAL(KIND=8),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- END FUNCTION
- END INTERFACE
- ! IntegrateEx1d
- INTERFACE
- INTEGER FUNCTION dfsintegrateex1d(task, method, nlim, llim, &
- & llimhint, rlim, rlimhint, ldatahint, rdatahint, r, rhint, &
- & le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, &
- & search_params)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nlim
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: llim
- INTEGER,INTENT(IN),OPTIONAL :: llimhint
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: rlim
- INTEGER,INTENT(IN),OPTIONAL :: rlimhint
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: ldatahint
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: rdatahint
- REAL(KIND=4),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- INTEGER,EXTERNAL,OPTIONAL :: le_cb
- INTEGER,DIMENSION(*),OPTIONAL :: le_params
- INTEGER,EXTERNAL,OPTIONAL :: re_cb
- INTEGER,DIMENSION(*),OPTIONAL :: re_params
- INTEGER,EXTERNAL,OPTIONAL :: i_cb
- INTEGER,DIMENSION(*),OPTIONAL :: i_params
- INTEGER,EXTERNAL,OPTIONAL :: search_cb
- INTEGER,DIMENSION(*),OPTIONAL :: search_params
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdintegrateex1d(task, method, nlim, llim, &
- & llimhint, rlim, rlimhint, ldatahint, rdatahint, r, rhint, &
- & le_cb, le_params, re_cb, re_params, i_cb, i_params, search_cb, &
- & search_params)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nlim
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: llim
- INTEGER,INTENT(IN),OPTIONAL :: llimhint
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: rlim
- INTEGER,INTENT(IN),OPTIONAL :: rlimhint
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: ldatahint
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: rdatahint
- REAL(KIND=8),DIMENSION(*),INTENT(OUT) :: r
- INTEGER,INTENT(IN),OPTIONAL :: rhint
- INTEGER,EXTERNAL,OPTIONAL :: le_cb
- INTEGER,DIMENSION(*),OPTIONAL :: le_params
- INTEGER,EXTERNAL,OPTIONAL :: re_cb
- INTEGER,DIMENSION(*),OPTIONAL :: re_params
- INTEGER,EXTERNAL,OPTIONAL :: i_cb
- INTEGER,DIMENSION(*),OPTIONAL :: i_params
- INTEGER,EXTERNAL,OPTIONAL :: search_cb
- INTEGER,DIMENSION(*),OPTIONAL :: search_params
- END FUNCTION
- END INTERFACE
- ! SearchCells1d
- INTERFACE
- INTEGER FUNCTION dfssearchcells1d(task, method, nsite, site, &
- & sitehint, datahint, cell)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- INTEGER,DIMENSION(*),INTENT(OUT) :: cell
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdsearchcells1d(task, method, nsite, site, &
- & sitehint, datahint, cell)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- INTEGER,DIMENSION(*),INTENT(OUT) :: cell
- END FUNCTION
- END INTERFACE
- ! SearchCellsEx1d
- INTERFACE
- INTEGER FUNCTION dfssearchcellsex1d(task, method, nsite, site, &
- & sitehint, datahint, cell, search_cb, search_params)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=4),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- REAL(KIND=4),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- INTEGER,DIMENSION(*),INTENT(OUT) :: cell
- INTEGER,EXTERNAL,OPTIONAL :: search_cb
- INTEGER,DIMENSION(*),OPTIONAL :: search_params
- END FUNCTION
- END INTERFACE
- INTERFACE
- INTEGER FUNCTION dfdsearchcellsex1d(task, method, nsite, site, &
- & sitehint, datahint, cell, search_cb, search_params)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- INTEGER,INTENT(IN) :: method
- INTEGER,INTENT(IN) :: nsite
- REAL(KIND=8),DIMENSION(*),INTENT(IN) :: site
- INTEGER,INTENT(IN),OPTIONAL :: sitehint
- REAL(KIND=8),DIMENSION(*),INTENT(IN),OPTIONAL :: datahint
- INTEGER,DIMENSION(*),INTENT(OUT) :: cell
- INTEGER,EXTERNAL,OPTIONAL :: search_cb
- INTEGER,DIMENSION(*),OPTIONAL :: search_params
- END FUNCTION
- END INTERFACE
- !++
- ! DF DESTRUCTOR FUNCTION DECLARATIONS.
- !--
- INTERFACE
- INTEGER FUNCTION dfdeletetask(task)
- USE MKL_DF_TYPE
- TYPE(DF_TASK) :: task
- END FUNCTION
- END INTERFACE
- END MODULE MKL_DF
|