34 use,
intrinsic ::
iso_c_binding,
only:
c_char,
c_funptr,
c_null_char, c_f_procpointer
77 character(:,SKG) ,
allocatable :: description
78 character(:,SKG) ,
allocatable :: domain
79 character(:,SKG) ,
allocatable :: domainAxisName(:)
80 real(
RKH) ,
allocatable :: domainBallAvg(:)
81 real(
RKH) ,
allocatable :: domainBallCor(:,:)
82 real(
RKH) ,
allocatable :: domainBallCov(:,:)
83 real(
RKH) ,
allocatable :: domainBallStd(:)
84 real(
RKH) ,
allocatable :: domainCubeLimitLower(:)
85 real(
RKH) ,
allocatable :: domainCubeLimitUpper(:)
86 integer(
IK) ,
allocatable :: domainErrCount
87 integer(
IK) ,
allocatable :: domainErrCountMax
88 character(:,SKG) ,
allocatable :: inputFile
/ / /
152 character(:,SKG) ,
allocatable :: outputChainFileFormat
153 integer(
IK) ,
allocatable :: outputColumnWidth
154 character(:,SKG) ,
allocatable :: outputFileName
155 character(:,SKG) ,
allocatable :: outputStatus
156 integer(
IK) ,
allocatable :: outputPrecision
157 integer(
IK) ,
allocatable :: outputReportPeriod
158 character(:,SKG) ,
allocatable :: outputRestartFileFormat
159 integer(
IK) ,
allocatable :: outputSampleSize
160 character(:,SKG) ,
allocatable :: outputSeparator
161 character(:,SKG) ,
allocatable :: outputSplashMode
162 character(:,SKG) ,
allocatable :: parallelism
163 logical(
LK) ,
allocatable :: parallelismMpiFinalizeEnabled
164 integer(
IK) ,
allocatable :: parallelismNumThread
165 integer(
IK) ,
allocatable :: randomSeed
166 character(:,SKG) ,
allocatable :: sysInfoFilePath
167 real(
RKH) ,
allocatable :: targetAcceptanceRate(:)
205 integer(
IK) ,
allocatable :: outputChainSize
206 integer(
IK) ,
allocatable :: outputSampleRefinementCount
207 character(:,SKG) ,
allocatable :: outputSampleRefinementMethod
208 character(:,SKG) ,
allocatable :: proposal
209 real(
RKH) ,
allocatable :: proposalCor(:,:)
210 real(
RKH) ,
allocatable :: proposalCov(:,:)
211 character(:,SKG) ,
allocatable :: proposalScale
212 real(
RKH) ,
allocatable :: proposalStart(:)
213 real(
RKH) ,
allocatable :: proposalStartDomainCubeLimitLower(:)
214 real(
RKH) ,
allocatable :: proposalStartDomainCubeLimitUpper(:)
215 logical(
LK) ,
allocatable :: proposalStartRandomized
216 real(
RKH) ,
allocatable :: proposalStd(:)
245 real(
RKH) ,
allocatable :: proposalAdaptationBurnin
246 integer(
IK) ,
allocatable :: proposalAdaptationCount
247 integer(
IK) ,
allocatable :: proposalAdaptationCountGreedy
248 integer(
IK) ,
allocatable :: proposalAdaptationPeriod
249 integer(
IK) ,
allocatable :: proposalDelayedRejectionCount
250 real(
RKH) ,
allocatable :: proposalDelayedRejectionScale(:)
308 integer(
IK) ,
allocatable :: domainPartitionAdaptationCount
309 integer(
IK) ,
allocatable :: domainPartitionAdaptationPeriod
310 logical(
LK) ,
allocatable :: domainPartitionBiasCorrectionEnabled
311 integer(
IK) ,
allocatable :: domainPartitionCountMax
312 real(
RKH) ,
allocatable :: domainPartitionFactorExpansion
313 real(
RKH) ,
allocatable :: domainPartitionFactorShrinkage
314 integer(
IK) ,
allocatable :: domainPartitionKmeansClusterCountMax
315 integer(
IK) ,
allocatable :: domainPartitionKmeansClusterSizeMin
316 logical(
LK) ,
allocatable :: domainPartitionKmeansNormalizationEnabled
317 integer(
IK) ,
allocatable :: domainPartitionKmeansNumFailMax
318 integer(
IK) ,
allocatable :: domainPartitionKmeansNumRecursionMax
319 integer(
IK) ,
allocatable :: domainPartitionKmeansNumTry
320 integer(
IK) ,
allocatable :: domainPartitionKvolumeNumRecursionMax
321 real(
RKH) ,
allocatable :: domainPartitionKvolumeWeightExponent
322 character(:,SKG) ,
allocatable :: domainPartitionMethod
323 character(:,SKG) ,
allocatable :: domainPartitionObject
324 logical(
LK) ,
allocatable :: domainPartitionOptimizationScaleEnabled
325 logical(
LK) ,
allocatable :: domainPartitionOptimizationShapeEnabled
326 logical(
LK) ,
allocatable :: domainPartitionOptimizationShapeScaleEnabled
327 real(
RKH) ,
allocatable :: domainPartitionScaleFactor
328 character(:,SKG) ,
allocatable :: domainSampler
329 integer(
IK) ,
allocatable :: liveSampleSize
330 real(
RKH) ,
allocatable :: tolerance
341#if OMP_ENABLED && (MATLAB_ENABLED || PYTHON_ENABLED || R_ENABLED)
346 function getLogFunc_proc_RK5(logFuncState, avgTimePerFunCall, avgCommPerFunCall)
result(mold)
347#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
348 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK5
351 real(RKG),
intent(inout),
contiguous :: logFuncState(
0:,:)
352 real(
RKD),
intent(inout) :: avgTimePerFunCall, avgCommPerFunCall
358 function getLogFunc_proc_RK4(logFuncState, avgTimePerFunCall, avgCommPerFunCall)
result(mold)
359#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
360 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK4
363 real(RKG),
intent(inout),
contiguous :: logFuncState(
0:,:)
364 real(
RKD),
intent(inout) :: avgTimePerFunCall, avgCommPerFunCall
370 function getLogFunc_proc_RK3(logFuncState, avgTimePerFunCall, avgCommPerFunCall)
result(mold)
371#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
372 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK3
375 real(RKG),
intent(inout),
contiguous :: logFuncState(
0:,:)
376 real(
RKD),
intent(inout) :: avgTimePerFunCall, avgCommPerFunCall
382 function getLogFunc_proc_RK2(logFuncState, avgTimePerFunCall, avgCommPerFunCall)
result(mold)
383#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
384 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK2
387 real(RKG),
intent(inout),
contiguous :: logFuncState(
0:,:)
388 real(
RKD),
intent(inout) :: avgTimePerFunCall, avgCommPerFunCall
394 function getLogFunc_proc_RK1(logFuncState, avgTimePerFunCall, avgCommPerFunCall)
result(mold)
395#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
396 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK1
399 real(RKG),
intent(inout),
contiguous :: logFuncState(
0:,:)
400 real(
RKD),
intent(inout) :: avgTimePerFunCall, avgCommPerFunCall
412 function getLogFunc_proc_RK5(state)
result(logFunc)
413#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
414 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK5
417 real(RKG),
intent(in),
contiguous :: state(:)
423 function getLogFunc_proc_RK4(state)
result(logFunc)
424#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
425 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK4
428 real(RKG),
intent(in),
contiguous :: state(:)
434 function getLogFunc_proc_RK3(state)
result(logFunc)
435#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
436 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK3
439 real(RKG),
intent(in),
contiguous :: state(:)
445 function getLogFunc_proc_RK2(state)
result(logFunc)
446#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
447 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK2
450 real(RKG),
intent(in),
contiguous :: state(:)
456 function getLogFunc_proc_RK1(state)
result(logFunc)
457#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
458 !DEC$ ATTRIBUTES DLLEXPORT :: getLogFunc_proc_RK1
461 real(RKG),
intent(in),
contiguous :: state(:)
657 impure module function getErrParaDRAM_RK5(sampler, getLogFunc, ndim)
result(err)
658#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
659 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDRAM_RK5
662 procedure(getLogFunc_proc_RK5) :: getLogFunc
663 type(paradram_type),
intent(in) :: sampler
664 integer(IK),
intent(in) :: ndim
665 type(err_type) :: err
670 impure module function getErrParaDRAM_RK4(sampler, getLogFunc, ndim)
result(err)
671#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
672 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDRAM_RK4
675 procedure(getLogFunc_proc_RK4) :: getLogFunc
676 type(paradram_type),
intent(in) :: sampler
677 integer(IK),
intent(in) :: ndim
678 type(err_type) :: err
683 impure module function getErrParaDRAM_RK3(sampler, getLogFunc, ndim)
result(err)
684#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
685 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDRAM_RK3
688 procedure(getLogFunc_proc_RK3) :: getLogFunc
689 type(paradram_type),
intent(in) :: sampler
690 integer(IK),
intent(in) :: ndim
691 type(err_type) :: err
696 impure module function getErrParaDRAM_RK2(sampler, getLogFunc, ndim)
result(err)
697#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
698 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDRAM_RK2
701 procedure(getLogFunc_proc_RK2) :: getLogFunc
702 type(paradram_type),
intent(in) :: sampler
703 integer(IK),
intent(in) :: ndim
704 type(err_type) :: err
709 impure module function getErrParaDRAM_RK1(sampler, getLogFunc, ndim)
result(err)
710#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
711 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDRAM_RK1
714 procedure(getLogFunc_proc_RK1) :: getLogFunc
715 type(paradram_type),
intent(in) :: sampler
716 integer(IK),
intent(in) :: ndim
717 type(err_type) :: err
724 impure module function getErrParaDISE_RK5(sampler, getLogFunc, ndim)
result(err)
725#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
726 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDISE_RK5
729 procedure(getLogFunc_proc_RK5) :: getLogFunc
730 type(paradise_type),
intent(in) :: sampler
731 integer(IK),
intent(in) :: ndim
732 type(err_type) :: err
737 impure module function getErrParaDISE_RK4(sampler, getLogFunc, ndim)
result(err)
738#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
739 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDISE_RK4
742 procedure(getLogFunc_proc_RK4) :: getLogFunc
743 type(paradise_type),
intent(in) :: sampler
744 integer(IK),
intent(in) :: ndim
745 type(err_type) :: err
750 impure module function getErrParaDISE_RK3(sampler, getLogFunc, ndim)
result(err)
751#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
752 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDISE_RK3
755 procedure(getLogFunc_proc_RK3) :: getLogFunc
756 type(paradise_type),
intent(in) :: sampler
757 integer(IK),
intent(in) :: ndim
758 type(err_type) :: err
763 impure module function getErrParaDISE_RK2(sampler, getLogFunc, ndim)
result(err)
764#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
765 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDISE_RK2
768 procedure(getLogFunc_proc_RK2) :: getLogFunc
769 type(paradise_type),
intent(in) :: sampler
770 integer(IK),
intent(in) :: ndim
771 type(err_type) :: err
776 impure module function getErrParaDISE_RK1(sampler, getLogFunc, ndim)
result(err)
777#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
778 !DEC$ ATTRIBUTES DLLEXPORT :: getErrParaDISE_RK1
781 procedure(getLogFunc_proc_RK1) :: getLogFunc
782 type(paradise_type),
intent(in) :: sampler
783 integer(IK),
intent(in) :: ndim
784 type(err_type) :: err
905 function runParaDRAML(getLogFunc, ndim, input)
result(stat) bind(C, name = "runParaDRAML")
906#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
909 use,
intrinsic ::
iso_c_binding,
only: SK
=> c_char, IK
=> c_int32_t,
c_long_double
910 integer,
parameter :: RKG
= merge(
c_long_double, RKH,
any(
c_long_double == RKALL))
911 character(
1, SK),
intent(in),
optional :: input(
*)
912 type(c_funptr),
intent(in),
value :: getLogFunc
913 integer(IK),
intent(in),
value :: ndim
915#define runParaDRAM_ENABLED 1
916#include "pm_sampling@routines.inc.F90"
917#undef runParaDRAM_ENABLED
920 function runParaDRAMD(getLogFunc, ndim, input)
result(stat) bind(C, name = "runParaDRAMD")
921#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
924 use,
intrinsic ::
iso_c_binding,
only: SK
=> c_char, IK
=> c_int32_t,
c_double
925 integer,
parameter :: RKG
= merge(
c_double, RKD,
any(
c_double == RKALL))
926 character(
1, SK),
intent(in),
optional :: input(
*)
927 type(c_funptr),
intent(in),
value :: getLogFunc
928 integer(IK),
intent(in),
value :: ndim
930#define runParaDRAM_ENABLED 1
931#include "pm_sampling@routines.inc.F90"
932#undef runParaDRAM_ENABLED
935 function runParaDRAMF(getLogFunc, ndim, input)
result(stat) bind(C, name = "runParaDRAMF")
936#if __INTEL_COMPILER && DLL_ENABLED && (_WIN32 || _WIN64)
940 use,
intrinsic ::
iso_c_binding,
only:
SK => c_char,
IK => c_int32_t,
c_float
941 integer,
parameter :: RKG
= merge(
c_float,
RKL,
any(
c_float == RKALL))
942 character(
1,
SK),
intent(in),
optional :: input(
*)
943 type(c_funptr),
intent(in),
value :: getLogFunc
944 integer(
IK),
intent(in),
value :: ndim
946#define runParaDRAM_ENABLED 1
947#include "pm_sampling@routines.inc.F90"
948#undef runParaDRAM_ENABLED
Generate and return .true. if the procedure fails to fully accomplish the task of Monte Carlo samplin...
Generate and return a scalar string resulting from the concatenation of the individual elements (sing...
This module contains classes and procedures for reporting and handling errors.
character(*, SK), parameter MODULE_NAME
This module defines the relevant Fortran kind type-parameters frequently used in the ParaMonte librar...
integer, dimension(*), parameter RKALL
The integer vector containing all defined real kinds within the ParaMonte library.
integer, parameter LK
The default logical kind in the ParaMonte library: kind(.true.) in Fortran, kind(....
integer, parameter RKL
The scalar integer constant of intrinsic default kind, representing the lowest-precision real kind ty...
integer, parameter IK
The default integer kind in the ParaMonte library: int32 in Fortran, c_int32_t in C-Fortran Interoper...
integer, parameter RKD
The double precision real kind in Fortran mode. On most platforms, this is an 64-bit real kind.
integer, parameter SK
The default character kind in the ParaMonte library: kind("a") in Fortran, c_char in C-Fortran Intero...
integer, parameter RKH
The scalar integer constant of intrinsic default kind, representing the highest-precision real kind t...
This module contains procedures and generic interfaces for the ParaMonte library sampler routines.
integer(IK) function runParaDRAML(getLogFunc, ndim, input)
integer(IK) function runParaDRAMF(getLogFunc, ndim, input)
integer(IK) function runParaDRAMD(getLogFunc, ndim, input)
This module contains classes and procedures for various string manipulations and inquiries.
This module contains classes and procedures for manipulating system file/folder paths.
integer(IK), parameter MAX_LEN_FILE_PATH
The scalar integer constant of default kind IK, representing the maximum system-allowed path length (...
This is the derived type for generating objects to gracefully and verbosely handle runtime unexpected...
This is a derived type for constructing objects containing the optional simulation properties of the ...
This is a derived type for constructing objects containing the optional simulation properties of the ...
This is a derived type for constructing objects containing the optional simulation properties of the ...
This is a derived type for constructing objects containing the optional simulation properties of the ...
This is a derived type for constructing objects containing the optional simulation properties of the ...