22 use,
intrinsic :: iso_c_binding
54 function oct_incomplete_gamma(a, x)
57 real(c_double) :: oct_incomplete_gamma
58 real(c_double),
intent(in) :: a, x
59 end function oct_incomplete_gamma
63 function oct_bessel(n, x)
66 real(c_double) :: oct_bessel
67 integer,
intent(in) :: n
68 real(c_double),
intent(in) :: x
69 end function oct_bessel
73 function oct_bessel_in(n, x)
76 real(c_double) :: oct_bessel_in
77 integer,
intent(in) :: n
78 real(c_double),
intent(in) :: x
79 end function oct_bessel_in
83 function oct_sph_bessel(l, x)
86 real(c_double) :: oct_sph_bessel
87 integer,
intent(in) :: l
88 real(c_double),
intent(in) :: x
89 end function oct_sph_bessel
93 function oct_bessel_j0(x)
96 real(c_double) :: oct_bessel_j0
97 real(c_double),
intent(in) :: x
98 end function oct_bessel_j0
102 function oct_bessel_j1(x)
105 real(c_double) :: oct_bessel_j1
106 real(c_double),
intent(in) :: x
107 end function oct_bessel_j1
111 function oct_bessel_k0(x)
114 real(c_double) :: oct_bessel_k0
115 real(c_double),
intent(in) :: x
116 end function oct_bessel_k0
120 function oct_bessel_k1(x)
123 real(c_double) :: oct_bessel_k1
124 real(c_double),
intent(in) :: x
125 end function oct_bessel_k1
129 function oct_legendre_sphplm(l, m, x)
132 real(c_double) :: oct_legendre_sphplm
133 integer,
intent(in) :: l, m
134 real(c_double),
intent(in) :: x
135 end function oct_legendre_sphplm
139 function oct_sf_laguerre_n(n, a, x)
142 real(c_double) :: oct_sf_laguerre_n
143 integer,
intent(in) :: n
144 real(c_double),
intent(in) :: a
145 real(c_double),
intent(in) :: x
146 end function oct_sf_laguerre_n
150 subroutine oct_ylm(n, x, y, z, l, m, ylm)
153 integer,
intent(in) :: n
154 real(c_double),
intent(in) :: x, y, z
155 integer,
intent(in) :: l, m
156 real(c_double),
intent(out) :: ylm
157 end subroutine oct_ylm
158 subroutine oct_ylm_vector(n, xx, rr, l, m, ylm)
161 integer,
intent(in) :: n
162 real(c_double),
intent(in) :: xx, rr
163 integer,
intent(in) :: l, m
164 real(c_double),
intent(out) :: ylm
165 end subroutine oct_ylm_vector
171 subroutine oct_combination_init(c, n, k)
174 type(c_ptr),
intent(out) :: c
175 integer,
intent(in) :: n, k
176 end subroutine oct_combination_init
180 subroutine oct_combination_end(c)
183 type(c_ptr),
intent(in) :: c
184 end subroutine oct_combination_end
188 subroutine oct_combination_next(c, next)
191 type(c_ptr),
intent(inout) :: c
192 integer,
intent(out) :: next
193 end subroutine oct_combination_next
199 type(c_ptr),
intent(in) :: c
200 integer,
intent(out) :: comb
207 subroutine oct_ran_init(r)
210 type(c_ptr),
intent(out) :: r
211 end subroutine oct_ran_init
215 subroutine oct_ran_end(r)
218 type(c_ptr),
intent(inout) :: r
219 end subroutine oct_ran_end
223 function oct_ran_gaussian(r, sigma)
226 real(c_double) :: oct_ran_gaussian
227 type(c_ptr),
intent(in) :: r
228 real(c_double),
intent(in) :: sigma
229 end function oct_ran_gaussian
233 function oct_ran_flat(r, a, b)
236 real(c_double) :: oct_ran_flat
237 type(c_ptr),
intent(in) :: r
238 real(c_double),
intent(in) :: a
239 real(c_double),
intent(in) :: b
240 end function oct_ran_flat
244 subroutine oct_fft_optimize(n, par)
246 integer,
intent(inout) :: n
247 integer,
intent(in) :: par
248 end subroutine oct_fft_optimize
255 type(c_ptr),
intent(in) :: c
256 integer,
intent(out) :: comb(0:)
Functions to generate combinations.
Define which routines can be seen from the outside.
Functions to generate random numbers.
subroutine, public loct_get_combination(c, comb)