22 use,
intrinsic :: iso_c_binding
60 real(c_double) :: oct_gamma
61 real(c_double),
intent(in) :: x
62 end function oct_gamma
66 function oct_incomplete_gamma(a, x)
69 real(c_double) :: oct_incomplete_gamma
70 real(c_double),
intent(in) :: a, x
71 end function oct_incomplete_gamma
75 function oct_bessel(n, x)
78 real(c_double) :: oct_bessel
79 integer,
intent(in) :: n
80 real(c_double),
intent(in) :: x
81 end function oct_bessel
85 function oct_bessel_in(n, x)
88 real(c_double) :: oct_bessel_in
89 integer,
intent(in) :: n
90 real(c_double),
intent(in) :: x
91 end function oct_bessel_in
95 function oct_sph_bessel(l, x)
98 real(c_double) :: oct_sph_bessel
99 integer,
intent(in) :: l
100 real(c_double),
intent(in) :: x
101 end function oct_sph_bessel
105 function oct_bessel_j0(x)
108 real(c_double) :: oct_bessel_j0
109 real(c_double),
intent(in) :: x
110 end function oct_bessel_j0
114 function oct_bessel_j1(x)
117 real(c_double) :: oct_bessel_j1
118 real(c_double),
intent(in) :: x
119 end function oct_bessel_j1
123 function oct_bessel_k0(x)
126 real(c_double) :: oct_bessel_k0
127 real(c_double),
intent(in) :: x
128 end function oct_bessel_k0
132 function oct_bessel_k1(x)
135 real(c_double) :: oct_bessel_k1
136 real(c_double),
intent(in) :: x
137 end function oct_bessel_k1
144 real(c_double) :: oct_erf
145 real(c_double),
intent(in) :: x
153 real(c_double) oct_erfc
154 real(c_double),
intent(in) :: x
155 end function oct_erfc
159 function oct_legendre_sphplm(l, m, x)
162 real(c_double) :: oct_legendre_sphplm
163 integer,
intent(in) :: l, m
164 real(c_double),
intent(in) :: x
165 end function oct_legendre_sphplm
169 function oct_sf_laguerre_n(n, a, x)
172 real(c_double) :: oct_sf_laguerre_n
173 integer,
intent(in) :: n
174 real(c_double),
intent(in) :: a
175 real(c_double),
intent(in) :: x
176 end function oct_sf_laguerre_n
180 subroutine oct_ylm(n, x, y, z, l, m, ylm)
183 integer,
intent(in) :: n
184 real(c_double),
intent(in) :: x, y, z
185 integer,
intent(in) :: l, m
186 real(c_double),
intent(out) :: ylm
187 end subroutine oct_ylm
188 subroutine oct_ylm_vector(n, xx, rr, l, m, ylm)
191 integer,
intent(in) :: n
192 real(c_double),
intent(in) :: xx, rr
193 integer,
intent(in) :: l, m
194 real(c_double),
intent(out) :: ylm
195 end subroutine oct_ylm_vector
201 subroutine oct_combination_init(c, n, k)
204 type(c_ptr),
intent(out) :: c
205 integer,
intent(in) :: n, k
206 end subroutine oct_combination_init
210 subroutine oct_combination_end(c)
213 type(c_ptr),
intent(in) :: c
214 end subroutine oct_combination_end
218 subroutine oct_combination_next(c, next)
221 type(c_ptr),
intent(inout) :: c
222 integer,
intent(out) :: next
223 end subroutine oct_combination_next
229 type(c_ptr),
intent(in) :: c
230 integer,
intent(out) :: comb
237 subroutine oct_ran_init(r)
240 type(c_ptr),
intent(out) :: r
241 end subroutine oct_ran_init
245 subroutine oct_ran_end(r)
248 type(c_ptr),
intent(inout) :: r
249 end subroutine oct_ran_end
253 function oct_ran_gaussian(r, sigma)
256 real(c_double) :: oct_ran_gaussian
257 type(c_ptr),
intent(in) :: r
258 real(c_double),
intent(in) :: sigma
259 end function oct_ran_gaussian
263 function oct_ran_flat(r, a, b)
266 real(c_double) :: oct_ran_flat
267 type(c_ptr),
intent(in) :: r
268 real(c_double),
intent(in) :: a
269 real(c_double),
intent(in) :: b
270 end function oct_ran_flat
274 subroutine oct_fft_optimize(n, par)
276 integer,
intent(inout) :: n
277 integer,
intent(in) :: par
278 end subroutine oct_fft_optimize
285 type(c_ptr),
intent(in) :: c
286 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)