56 USE iso_c_binding
, ONLY: c_ptr, c_int
61 MODULE PROCEDURE xt_idxstripes_new_s
62 MODULE PROCEDURE xt_idxstripes_new_a1d
63 MODULE PROCEDURE xt_idxstripes_new_a1d_i2
64 MODULE PROCEDURE xt_idxstripes_new_a1d_i4
65 MODULE PROCEDURE xt_idxstripes_new_a1d_i8
66 MODULE PROCEDURE xt_idxstripes_new_a2d
67 MODULE PROCEDURE xt_idxstripes_new_a2d_i2
68 MODULE PROCEDURE xt_idxstripes_new_a2d_i4
69 MODULE PROCEDURE xt_idxstripes_new_a2d_i8
70 MODULE PROCEDURE xt_idxstripes_new_a3d
71 MODULE PROCEDURE xt_idxstripes_new_a3d_i2
72 MODULE PROCEDURE xt_idxstripes_new_a3d_i4
73 MODULE PROCEDURE xt_idxstripes_new_a3d_i8
74 MODULE PROCEDURE xt_idxstripes_new_a4d
75 MODULE PROCEDURE xt_idxstripes_new_a4d_i2
76 MODULE PROCEDURE xt_idxstripes_new_a4d_i4
77 MODULE PROCEDURE xt_idxstripes_new_a4d_i8
78 MODULE PROCEDURE xt_idxstripes_new_a5d
79 MODULE PROCEDURE xt_idxstripes_new_a5d_i2
80 MODULE PROCEDURE xt_idxstripes_new_a5d_i4
81 MODULE PROCEDURE xt_idxstripes_new_a5d_i8
82 MODULE PROCEDURE xt_idxstripes_new_a6d
83 MODULE PROCEDURE xt_idxstripes_new_a6d_i2
84 MODULE PROCEDURE xt_idxstripes_new_a6d_i4
85 MODULE PROCEDURE xt_idxstripes_new_a6d_i8
86 MODULE PROCEDURE xt_idxstripes_new_a7d
87 MODULE PROCEDURE xt_idxstripes_new_a7d_i2
88 MODULE PROCEDURE xt_idxstripes_new_a7d_i4
89 MODULE PROCEDURE xt_idxstripes_new_a7d_i8
93 FUNCTION xt_idxstripes_new_c(stripes, num_stripes) &
94 bind(c, name=
'xt_idxstripes_new') result(res_ptr)
98 INTEGER(c_int),
VALUE,
INTENT(in) :: num_stripes
99 TYPE(c_ptr) :: res_ptr
100 END FUNCTION xt_idxstripes_new_c
107 FUNCTION xt_idxstripes_new_s(stripe)
RESULT(res)
112 END FUNCTION xt_idxstripes_new_s
114 FUNCTION xt_idxstripes_new_a1d(stripes)
RESULT(res)
115 TYPE(
xt_stripe),
INTENT(in) :: stripes(:)
118 INTEGER(c_int) :: num_stripes_c
120 IF (
SIZE(stripes) > huge(num_stripes_c)) &
124 num_stripes_c = int(
SIZE(stripes), c_int)
126 END FUNCTION xt_idxstripes_new_a1d
128 FUNCTION xt_idxstripes_new_a1d_i2(stripes, num_stripes)
RESULT(res)
129 TYPE(
xt_stripe),
INTENT(in) :: stripes(*)
130 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
134 int(num_stripes, c_int)))
135 END FUNCTION xt_idxstripes_new_a1d_i2
137 FUNCTION xt_idxstripes_new_a1d_i4(stripes, num_stripes)
RESULT(res)
138 TYPE(
xt_stripe),
INTENT(in) :: stripes(*)
139 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
142 INTEGER(c_int) :: num_stripes_c
144 IF (num_stripes > huge(num_stripes_c)) &
148 num_stripes_c = int(num_stripes, c_int)
150 END FUNCTION xt_idxstripes_new_a1d_i4
152 FUNCTION xt_idxstripes_new_a1d_i8(stripes, num_stripes)
RESULT(res)
153 TYPE(
xt_stripe),
INTENT(in) :: stripes(*)
154 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
157 INTEGER(c_int) :: num_stripes_c
159 IF (num_stripes > huge(num_stripes_c)) &
163 num_stripes_c = int(num_stripes, c_int)
165 END FUNCTION xt_idxstripes_new_a1d_i8
167 FUNCTION xt_idxstripes_new_a2d(stripes)
RESULT(res)
168 TYPE(
xt_stripe),
INTENT(in) :: stripes(:,:)
171 INTEGER(c_int) :: num_stripes_c
173 IF (
SIZE(stripes) > huge(num_stripes_c)) &
177 num_stripes_c = int(
SIZE(stripes), c_int)
179 END FUNCTION xt_idxstripes_new_a2d
181 FUNCTION xt_idxstripes_new_a2d_i2(stripes, num_stripes)
RESULT(res)
182 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,*)
183 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
187 int(num_stripes, c_int)))
188 END FUNCTION xt_idxstripes_new_a2d_i2
190 FUNCTION xt_idxstripes_new_a2d_i4(stripes, num_stripes)
RESULT(res)
191 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,*)
192 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
194 INTEGER(c_int) :: num_stripes_c
196 IF (num_stripes > huge(num_stripes_c)) &
200 num_stripes_c = int(num_stripes, c_int)
202 END FUNCTION xt_idxstripes_new_a2d_i4
204 FUNCTION xt_idxstripes_new_a2d_i8(stripes, num_stripes)
RESULT(res)
205 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,*)
206 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
209 INTEGER(c_int) :: num_stripes_c
211 IF (num_stripes > huge(num_stripes_c)) &
215 num_stripes_c = int(num_stripes, c_int)
217 END FUNCTION xt_idxstripes_new_a2d_i8
219 FUNCTION xt_idxstripes_new_a3d(stripes)
RESULT(res)
220 TYPE(
xt_stripe),
INTENT(in) :: stripes(:,:,:)
223 INTEGER(c_int) :: num_stripes_c
225 IF (
SIZE(stripes) > huge(num_stripes_c)) &
229 num_stripes_c = int(
SIZE(stripes), c_int)
231 END FUNCTION xt_idxstripes_new_a3d
233 FUNCTION xt_idxstripes_new_a3d_i2(stripes, num_stripes)
RESULT(res)
234 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,*)
235 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
239 int(num_stripes, c_int)))
240 END FUNCTION xt_idxstripes_new_a3d_i2
242 FUNCTION xt_idxstripes_new_a3d_i4(stripes, num_stripes)
RESULT(res)
243 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,*)
244 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
247 INTEGER(c_int) :: num_stripes_c
249 IF (num_stripes > huge(num_stripes_c)) &
253 num_stripes_c = int(num_stripes, c_int)
255 END FUNCTION xt_idxstripes_new_a3d_i4
257 FUNCTION xt_idxstripes_new_a3d_i8(stripes, num_stripes)
RESULT(res)
258 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,*)
259 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
262 INTEGER(c_int) :: num_stripes_c
264 IF (num_stripes > huge(num_stripes_c)) &
268 num_stripes_c = int(num_stripes, c_int)
270 END FUNCTION xt_idxstripes_new_a3d_i8
272 FUNCTION xt_idxstripes_new_a4d(stripes)
RESULT(res)
273 TYPE(
xt_stripe),
INTENT(in) :: stripes(:,:,:,:)
276 INTEGER(c_int) :: num_stripes_c
278 IF (
SIZE(stripes) > huge(num_stripes_c)) &
282 num_stripes_c = int(
SIZE(stripes), c_int)
284 END FUNCTION xt_idxstripes_new_a4d
286 FUNCTION xt_idxstripes_new_a4d_i2(stripes, num_stripes)
RESULT(res)
287 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,*)
288 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
292 int(num_stripes, c_int)))
293 END FUNCTION xt_idxstripes_new_a4d_i2
295 FUNCTION xt_idxstripes_new_a4d_i4(stripes, num_stripes)
RESULT(res)
296 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,*)
297 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
300 INTEGER(c_int) :: num_stripes_c
302 IF (num_stripes > huge(num_stripes_c)) &
306 num_stripes_c = int(num_stripes, c_int)
308 END FUNCTION xt_idxstripes_new_a4d_i4
310 FUNCTION xt_idxstripes_new_a4d_i8(stripes, num_stripes)
RESULT(res)
311 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,*)
312 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
315 INTEGER(c_int) :: num_stripes_c
317 IF (num_stripes > huge(num_stripes_c)) &
321 num_stripes_c = int(num_stripes, c_int)
323 END FUNCTION xt_idxstripes_new_a4d_i8
325 FUNCTION xt_idxstripes_new_a5d(stripes)
RESULT(res)
326 TYPE(
xt_stripe),
INTENT(in) :: stripes(:,:,:,:,:)
329 INTEGER(c_int) :: num_stripes_c
331 IF (
SIZE(stripes) > huge(num_stripes_c)) &
335 num_stripes_c = int(
SIZE(stripes), c_int)
337 END FUNCTION xt_idxstripes_new_a5d
339 FUNCTION xt_idxstripes_new_a5d_i2(stripes, num_stripes)
RESULT(res)
340 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,*)
341 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
345 int(num_stripes, c_int)))
346 END FUNCTION xt_idxstripes_new_a5d_i2
348 FUNCTION xt_idxstripes_new_a5d_i4(stripes, num_stripes)
RESULT(res)
349 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,*)
350 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
353 INTEGER(c_int) :: num_stripes_c
355 IF (num_stripes > huge(num_stripes_c)) &
359 num_stripes_c = int(num_stripes, c_int)
361 END FUNCTION xt_idxstripes_new_a5d_i4
363 FUNCTION xt_idxstripes_new_a5d_i8(stripes, num_stripes)
RESULT(res)
364 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,*)
365 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
368 INTEGER(c_int) :: num_stripes_c
370 IF (num_stripes > huge(num_stripes_c)) &
374 num_stripes_c = int(num_stripes, c_int)
376 END FUNCTION xt_idxstripes_new_a5d_i8
378 FUNCTION xt_idxstripes_new_a6d(stripes)
RESULT(res)
379 TYPE(
xt_stripe),
INTENT(in) :: stripes(:,:,:,:,:,:)
382 INTEGER(c_int) :: num_stripes_c
384 IF (
SIZE(stripes) > huge(num_stripes_c)) &
388 num_stripes_c = int(
SIZE(stripes), c_int)
390 END FUNCTION xt_idxstripes_new_a6d
392 FUNCTION xt_idxstripes_new_a6d_i2(stripes, num_stripes)
RESULT(res)
393 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,1,*)
394 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
398 int(num_stripes, c_int)))
399 END FUNCTION xt_idxstripes_new_a6d_i2
401 FUNCTION xt_idxstripes_new_a6d_i4(stripes, num_stripes)
RESULT(res)
402 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,1,*)
403 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
406 INTEGER(c_int) :: num_stripes_c
408 IF (num_stripes > huge(num_stripes_c)) &
412 num_stripes_c = int(num_stripes, c_int)
414 END FUNCTION xt_idxstripes_new_a6d_i4
416 FUNCTION xt_idxstripes_new_a6d_i8(stripes, num_stripes)
RESULT(res)
417 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,1,*)
418 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
421 INTEGER(c_int) :: num_stripes_c
423 IF (num_stripes > huge(num_stripes_c)) &
427 num_stripes_c = int(num_stripes, c_int)
429 END FUNCTION xt_idxstripes_new_a6d_i8
431 FUNCTION xt_idxstripes_new_a7d(stripes)
RESULT(res)
432 TYPE(
xt_stripe),
INTENT(in) :: stripes(:,:,:,:,:,:,:)
435 INTEGER(c_int) :: num_stripes_c
437 IF (
SIZE(stripes) > huge(num_stripes_c)) &
441 num_stripes_c = int(
SIZE(stripes), c_int)
443 END FUNCTION xt_idxstripes_new_a7d
445 FUNCTION xt_idxstripes_new_a7d_i2(stripes, num_stripes)
RESULT(res)
446 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,1,1,*)
447 INTEGER(i2),
VALUE,
INTENT(in) :: num_stripes
451 int(num_stripes, c_int)))
452 END FUNCTION xt_idxstripes_new_a7d_i2
454 FUNCTION xt_idxstripes_new_a7d_i4(stripes, num_stripes)
RESULT(res)
455 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,1,1,*)
456 INTEGER(i4),
VALUE,
INTENT(in) :: num_stripes
459 INTEGER(c_int) :: num_stripes_c
461 IF (num_stripes > huge(num_stripes_c)) &
465 num_stripes_c = int(num_stripes, c_int)
467 END FUNCTION xt_idxstripes_new_a7d_i4
469 FUNCTION xt_idxstripes_new_a7d_i8(stripes, num_stripes)
RESULT(res)
470 TYPE(
xt_stripe),
INTENT(in) :: stripes(1,1,1,1,1,1,*)
471 INTEGER(i8),
VALUE,
INTENT(in) :: num_stripes
474 INTEGER(c_int) :: num_stripes_c
476 IF (num_stripes > huge(num_stripes_c)) &
480 num_stripes_c = int(num_stripes, c_int)
482 END FUNCTION xt_idxstripes_new_a7d_i8
488 FUNCTION xt_idxstripes_from_idxlist_new_c(idxlist_src) &
489 bind(c, name=
'xt_idxstripes_from_idxlist_new') result(idxstripes)
491 TYPE(c_ptr),
VALUE,
INTENT(in) :: idxlist_src
492 TYPE(c_ptr) :: idxstripes
493 END FUNCTION xt_idxstripes_from_idxlist_new_c
integer, parameter, public i8
integer, parameter, public i4
Xt_idxlist xt_idxstripes_from_idxlist_new(Xt_idxlist idxlist_src)
type(xt_idxlist) function, public xt_idxlist_c2f(idxlist)
integer, parameter, public i2
Xt_idxlist xt_idxstripes_new(struct Xt_stripe const *stripes, int num_stripes)