mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2024-12-22 12:23:56 +01:00
82 lines
2.9 KiB
Fortran
82 lines
2.9 KiB
Fortran
module qmckl_probes_f
|
|
interface
|
|
logical(c_bool) function qmckl_probe_c &
|
|
(testName, varName, val) &
|
|
bind(C, name="qmckl_probe")
|
|
|
|
use, intrinsic :: iso_c_binding
|
|
import
|
|
implicit none
|
|
|
|
character(C_CHAR), dimension(*) :: testName
|
|
character(C_CHAR), dimension(*) :: varName
|
|
|
|
real(C_DOUBLE), value :: val
|
|
end function qmckl_probe_c
|
|
|
|
logical(c_bool) function qmckl_probe_check_c &
|
|
(testName, varName, val, expectedValue, accuracyTarget) &
|
|
bind(C, name="qmckl_probe_check")
|
|
|
|
use, intrinsic :: iso_c_binding
|
|
import
|
|
implicit none
|
|
|
|
character(C_CHAR), dimension(*) :: testName
|
|
character(C_CHAR), dimension(*) :: varName
|
|
|
|
real(C_DOUBLE), value :: val
|
|
real(C_DOUBLE), value :: expectedValue
|
|
real(C_DOUBLE), value :: accuracyTarget
|
|
end function qmckl_probe_check_c
|
|
|
|
logical(c_bool) function qmckl_probe_check_relative_c &
|
|
(testName, varName, val, expectedValue, accuracyTarget) &
|
|
bind(C, name="qmckl_probe_check_relative")
|
|
|
|
use, intrinsic :: iso_c_binding
|
|
import
|
|
implicit none
|
|
|
|
character(C_CHAR), dimension(*) :: testName
|
|
character(C_CHAR), dimension(*) :: varName
|
|
|
|
real(C_DOUBLE), value :: val
|
|
real(C_DOUBLE), value :: expectedValue
|
|
real(C_DOUBLE), value :: accuracyTarget
|
|
end function qmckl_probe_check_relative_c
|
|
end interface
|
|
|
|
logical function qmckl_probe (testName, varName, val)
|
|
implicit none
|
|
character, dimension(*) :: testName
|
|
character, dimension(*) :: varName
|
|
double precision :: val
|
|
return qmckl_probe_c(testName//C_NULL_CHAR, varName//C_NULL_CHAR, val)
|
|
end function qmckl_probe
|
|
|
|
logical function qmckl_probe_check
|
|
(testName, varName, val, expectedValue, accuracyTarget)
|
|
implicit none
|
|
character, dimension(*) :: testName
|
|
character, dimension(*) :: varName
|
|
double precision :: val
|
|
double precision :: expectedValue
|
|
double precision :: accuracyTarget
|
|
return qmckl_probe_check_c(testName//C_NULL_CHAR, varName//C_NULL_CHAR, &
|
|
val, expectedValue, accuracyTarget)
|
|
end function qmckl_probe_check
|
|
|
|
logical function qmckl_probe_check_relative &
|
|
(testName, varName, val, expectedValue, accuracyTarget)
|
|
implicit none
|
|
character, dimension(*) :: testName
|
|
character, dimension(*) :: varName
|
|
double precision :: val
|
|
double precision :: expectedValue
|
|
double precision :: accuracyTarget
|
|
return qmckl_probe_check_relative_c(testName//C_NULL_CHAR, varName//C_NULL_CHAR, &
|
|
val, expectedValue, accuracyTarget)
|
|
end function qmckl_probe_check_relative
|
|
end module qmckl_probes_f
|