Yet Another eXchange Tool 0.11.3
Loading...
Searching...
No Matches
xt_idxstripes_f.f90
Go to the documentation of this file.
1
13
14!
15! Keywords:
16! Maintainer: Jörg Behrens <behrens@dkrz.de>
17! Moritz Hanke <hanke@dkrz.de>
18! Thomas Jahns <jahns@dkrz.de>
19! URL: https://dkrz-sw.gitlab-pages.dkrz.de/yaxt/
20!
21! Redistribution and use in source and binary forms, with or without
22! modification, are permitted provided that the following conditions are
23! met:
24!
25! Redistributions of source code must retain the above copyright notice,
26! this list of conditions and the following disclaimer.
27!
28! Redistributions in binary form must reproduce the above copyright
29! notice, this list of conditions and the following disclaimer in the
30! documentation and/or other materials provided with the distribution.
31!
32! Neither the name of the DKRZ GmbH nor the names of its contributors
33! may be used to endorse or promote products derived from this software
34! without specific prior written permission.
35!
36! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
37! IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
38! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
39! PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
40! OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
41! EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
42! PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
43! PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
44! LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
45! NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
46! SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47!
48#include "fc_feature_defs.inc"
49
52MODULE xt_idxstripes
53 USE xt_core, ONLY: xt_stripe, i2, i4, i8, xt_abort
54 USE xt_idxlist_abstract, ONLY: xt_idxlist, xt_idxlist_c2f, xt_idxlist_f2c
55 USE iso_c_binding, ONLY: c_ptr, c_int
56 IMPLICIT NONE
57 PRIVATE
58 PUBLIC :: xt_idxstripes_new
59 INTERFACE xt_idxstripes_new
60 MODULE PROCEDURE xt_idxstripes_new_s
61 MODULE PROCEDURE xt_idxstripes_new_a1d
62 MODULE PROCEDURE xt_idxstripes_new_a1d_i2
63 MODULE PROCEDURE xt_idxstripes_new_a1d_i4
64 MODULE PROCEDURE xt_idxstripes_new_a1d_i8
65 MODULE PROCEDURE xt_idxstripes_new_a2d
66 MODULE PROCEDURE xt_idxstripes_new_a2d_i2
67 MODULE PROCEDURE xt_idxstripes_new_a2d_i4
68 MODULE PROCEDURE xt_idxstripes_new_a2d_i8
69 MODULE PROCEDURE xt_idxstripes_new_a3d
70 MODULE PROCEDURE xt_idxstripes_new_a3d_i2
71 MODULE PROCEDURE xt_idxstripes_new_a3d_i4
72 MODULE PROCEDURE xt_idxstripes_new_a3d_i8
73 MODULE PROCEDURE xt_idxstripes_new_a4d
74 MODULE PROCEDURE xt_idxstripes_new_a4d_i2
75 MODULE PROCEDURE xt_idxstripes_new_a4d_i4
76 MODULE PROCEDURE xt_idxstripes_new_a4d_i8
77 MODULE PROCEDURE xt_idxstripes_new_a5d
78 MODULE PROCEDURE xt_idxstripes_new_a5d_i2
79 MODULE PROCEDURE xt_idxstripes_new_a5d_i4
80 MODULE PROCEDURE xt_idxstripes_new_a5d_i8
81 MODULE PROCEDURE xt_idxstripes_new_a6d
82 MODULE PROCEDURE xt_idxstripes_new_a6d_i2
83 MODULE PROCEDURE xt_idxstripes_new_a6d_i4
84 MODULE PROCEDURE xt_idxstripes_new_a6d_i8
85 MODULE PROCEDURE xt_idxstripes_new_a7d
86 MODULE PROCEDURE xt_idxstripes_new_a7d_i2
87 MODULE PROCEDURE xt_idxstripes_new_a7d_i4
88 MODULE PROCEDURE xt_idxstripes_new_a7d_i8
89 END INTERFACE xt_idxstripes_new
90
91 INTERFACE
92 FUNCTION xt_idxstripes_new_c(stripes, num_stripes) &
93 bind(c, name='xt_idxstripes_new') result(res_ptr)
94 import:: xt_idxlist, xt_stripe, c_ptr, c_int
95 IMPLICIT NONE
96 TYPE(xt_stripe), INTENT(in) :: stripes(*)
97 INTEGER(c_int), VALUE, INTENT(in) :: num_stripes
98 TYPE(c_ptr) :: res_ptr
99 END FUNCTION xt_idxstripes_new_c
100 END INTERFACE
101
103
104 CHARACTER(len=*), PARAMETER :: filename = 'xt_idxstripes_f.f90'
105CONTAINS
106
107 FUNCTION xt_idxstripes_new_s(stripe) RESULT(res)
108 TYPE(xt_stripe), INTENT(in) :: stripe
109 TYPE(xt_idxlist) :: res
110
111 res = xt_idxlist_c2f(xt_idxstripes_new_c((/ stripe /), 1_c_int))
112 END FUNCTION xt_idxstripes_new_s
113
114 FUNCTION xt_idxstripes_new_a1d(stripes) RESULT(res)
115 TYPE(xt_stripe), INTENT(in) :: stripes(:)
116 TYPE(xt_idxlist) :: res
117
118 INTEGER(c_int) :: num_stripes_c
119
120 IF (SIZE(stripes) > huge(num_stripes_c)) &
121 CALL xt_abort("too many idxstripes elements", filename, __line__)
122 num_stripes_c = int(SIZE(stripes), c_int)
123 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
124 END FUNCTION xt_idxstripes_new_a1d
125
126 FUNCTION xt_idxstripes_new_a1d_i2(stripes, num_stripes) RESULT(res)
127 TYPE(xt_stripe), INTENT(in) :: stripes(*)
128 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
129 TYPE(xt_idxlist) :: res
130
131 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
132 int(num_stripes, c_int)))
133 END FUNCTION xt_idxstripes_new_a1d_i2
134
135 FUNCTION xt_idxstripes_new_a1d_i4(stripes, num_stripes) RESULT(res)
136 TYPE(xt_stripe), INTENT(in) :: stripes(*)
137 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
138 TYPE(xt_idxlist) :: res
139
140 INTEGER(c_int) :: num_stripes_c
141
142 IF (num_stripes > huge(num_stripes_c)) &
143 CALL xt_abort("too many idxstripes elements", filename, __line__)
144 num_stripes_c = int(num_stripes, c_int)
145 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
146 END FUNCTION xt_idxstripes_new_a1d_i4
147
148 FUNCTION xt_idxstripes_new_a1d_i8(stripes, num_stripes) RESULT(res)
149 TYPE(xt_stripe), INTENT(in) :: stripes(*)
150 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
151 TYPE(xt_idxlist) :: res
152
153 INTEGER(c_int) :: num_stripes_c
154
155 IF (num_stripes > huge(num_stripes_c)) &
156 CALL xt_abort("too many idxstripes elements", filename, __line__)
157 num_stripes_c = int(num_stripes, c_int)
158 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
159 END FUNCTION xt_idxstripes_new_a1d_i8
160
161 FUNCTION xt_idxstripes_new_a2d(stripes) RESULT(res)
162 TYPE(xt_stripe), INTENT(in) :: stripes(:,:)
163 TYPE(xt_idxlist) :: res
164
165 INTEGER(c_int) :: num_stripes_c
166
167 IF (SIZE(stripes) > huge(num_stripes_c)) &
168 CALL xt_abort("too many idxstripes elements", filename, __line__)
169 num_stripes_c = int(SIZE(stripes), c_int)
170 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
171 END FUNCTION xt_idxstripes_new_a2d
172
173 FUNCTION xt_idxstripes_new_a2d_i2(stripes, num_stripes) RESULT(res)
174 TYPE(xt_stripe), INTENT(in) :: stripes(1,*)
175 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
176 TYPE(xt_idxlist) :: res
177
178 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
179 int(num_stripes, c_int)))
180 END FUNCTION xt_idxstripes_new_a2d_i2
181
182 FUNCTION xt_idxstripes_new_a2d_i4(stripes, num_stripes) RESULT(res)
183 TYPE(xt_stripe), INTENT(in) :: stripes(1,*)
184 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
185 TYPE(xt_idxlist) :: res
186 INTEGER(c_int) :: num_stripes_c
187
188 IF (num_stripes > huge(num_stripes_c)) &
189 CALL xt_abort("too many idxstripes elements", filename, __line__)
190 num_stripes_c = int(num_stripes, c_int)
191 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
192 END FUNCTION xt_idxstripes_new_a2d_i4
193
194 FUNCTION xt_idxstripes_new_a2d_i8(stripes, num_stripes) RESULT(res)
195 TYPE(xt_stripe), INTENT(in) :: stripes(1,*)
196 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
197 TYPE(xt_idxlist) :: res
198
199 INTEGER(c_int) :: num_stripes_c
200
201 IF (num_stripes > huge(num_stripes_c)) &
202 CALL xt_abort("too many idxstripes elements", filename, __line__)
203 num_stripes_c = int(num_stripes, c_int)
204 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
205 END FUNCTION xt_idxstripes_new_a2d_i8
206
207 FUNCTION xt_idxstripes_new_a3d(stripes) RESULT(res)
208 TYPE(xt_stripe), INTENT(in) :: stripes(:,:,:)
209 TYPE(xt_idxlist) :: res
210
211 INTEGER(c_int) :: num_stripes_c
212
213 IF (SIZE(stripes) > huge(num_stripes_c)) &
214 CALL xt_abort("too many idxstripes elements", filename, __line__)
215 num_stripes_c = int(SIZE(stripes), c_int)
216 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
217 END FUNCTION xt_idxstripes_new_a3d
218
219 FUNCTION xt_idxstripes_new_a3d_i2(stripes, num_stripes) RESULT(res)
220 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,*)
221 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
222 TYPE(xt_idxlist) :: res
223
224 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
225 int(num_stripes, c_int)))
226 END FUNCTION xt_idxstripes_new_a3d_i2
227
228 FUNCTION xt_idxstripes_new_a3d_i4(stripes, num_stripes) RESULT(res)
229 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,*)
230 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
231 TYPE(xt_idxlist) :: res
232
233 INTEGER(c_int) :: num_stripes_c
234
235 IF (num_stripes > huge(num_stripes_c)) &
236 CALL xt_abort("too many idxstripes elements", filename, __line__)
237 num_stripes_c = int(num_stripes, c_int)
238 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
239 END FUNCTION xt_idxstripes_new_a3d_i4
240
241 FUNCTION xt_idxstripes_new_a3d_i8(stripes, num_stripes) RESULT(res)
242 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,*)
243 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
244 TYPE(xt_idxlist) :: res
245
246 INTEGER(c_int) :: num_stripes_c
247
248 IF (num_stripes > huge(num_stripes_c)) &
249 CALL xt_abort("too many idxstripes elements", filename, __line__)
250 num_stripes_c = int(num_stripes, c_int)
251 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
252 END FUNCTION xt_idxstripes_new_a3d_i8
253
254 FUNCTION xt_idxstripes_new_a4d(stripes) RESULT(res)
255 TYPE(xt_stripe), INTENT(in) :: stripes(:,:,:,:)
256 TYPE(xt_idxlist) :: res
257
258 INTEGER(c_int) :: num_stripes_c
259
260 IF (SIZE(stripes) > huge(num_stripes_c)) &
261 CALL xt_abort("too many idxstripes elements", filename, __line__)
262 num_stripes_c = int(SIZE(stripes), c_int)
263 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
264 END FUNCTION xt_idxstripes_new_a4d
265
266 FUNCTION xt_idxstripes_new_a4d_i2(stripes, num_stripes) RESULT(res)
267 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,*)
268 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
269 TYPE(xt_idxlist) :: res
270
271 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
272 int(num_stripes, c_int)))
273 END FUNCTION xt_idxstripes_new_a4d_i2
274
275 FUNCTION xt_idxstripes_new_a4d_i4(stripes, num_stripes) RESULT(res)
276 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,*)
277 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
278 TYPE(xt_idxlist) :: res
279
280 INTEGER(c_int) :: num_stripes_c
281
282 IF (num_stripes > huge(num_stripes_c)) &
283 CALL xt_abort("too many idxstripes elements", filename, __line__)
284 num_stripes_c = int(num_stripes, c_int)
285 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
286 END FUNCTION xt_idxstripes_new_a4d_i4
287
288 FUNCTION xt_idxstripes_new_a4d_i8(stripes, num_stripes) RESULT(res)
289 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,*)
290 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
291 TYPE(xt_idxlist) :: res
292
293 INTEGER(c_int) :: num_stripes_c
294
295 IF (num_stripes > huge(num_stripes_c)) &
296 CALL xt_abort("too many idxstripes elements", filename, __line__)
297 num_stripes_c = int(num_stripes, c_int)
298 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
299 END FUNCTION xt_idxstripes_new_a4d_i8
300
301 FUNCTION xt_idxstripes_new_a5d(stripes) RESULT(res)
302 TYPE(xt_stripe), INTENT(in) :: stripes(:,:,:,:,:)
303 TYPE(xt_idxlist) :: res
304
305 INTEGER(c_int) :: num_stripes_c
306
307 IF (SIZE(stripes) > huge(num_stripes_c)) &
308 CALL xt_abort("too many idxstripes elements", filename, __line__)
309 num_stripes_c = int(SIZE(stripes), c_int)
310 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
311 END FUNCTION xt_idxstripes_new_a5d
312
313 FUNCTION xt_idxstripes_new_a5d_i2(stripes, num_stripes) RESULT(res)
314 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,*)
315 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
316 TYPE(xt_idxlist) :: res
317
318 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
319 int(num_stripes, c_int)))
320 END FUNCTION xt_idxstripes_new_a5d_i2
321
322 FUNCTION xt_idxstripes_new_a5d_i4(stripes, num_stripes) RESULT(res)
323 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,*)
324 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
325 TYPE(xt_idxlist) :: res
326
327 INTEGER(c_int) :: num_stripes_c
328
329 IF (num_stripes > huge(num_stripes_c)) &
330 CALL xt_abort("too many idxstripes elements", filename, __line__)
331 num_stripes_c = int(num_stripes, c_int)
332 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
333 END FUNCTION xt_idxstripes_new_a5d_i4
334
335 FUNCTION xt_idxstripes_new_a5d_i8(stripes, num_stripes) RESULT(res)
336 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,*)
337 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
338 TYPE(xt_idxlist) :: res
339
340 INTEGER(c_int) :: num_stripes_c
341
342 IF (num_stripes > huge(num_stripes_c)) &
343 CALL xt_abort("too many idxstripes elements", filename, __line__)
344 num_stripes_c = int(num_stripes, c_int)
345 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
346 END FUNCTION xt_idxstripes_new_a5d_i8
347
348 FUNCTION xt_idxstripes_new_a6d(stripes) RESULT(res)
349 TYPE(xt_stripe), INTENT(in) :: stripes(:,:,:,:,:,:)
350 TYPE(xt_idxlist) :: res
351
352 INTEGER(c_int) :: num_stripes_c
353
354 IF (SIZE(stripes) > huge(num_stripes_c)) &
355 CALL xt_abort("too many idxstripes elements", filename, __line__)
356 num_stripes_c = int(SIZE(stripes), c_int)
357 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
358 END FUNCTION xt_idxstripes_new_a6d
359
360 FUNCTION xt_idxstripes_new_a6d_i2(stripes, num_stripes) RESULT(res)
361 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,1,*)
362 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
363 TYPE(xt_idxlist) :: res
364
365 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
366 int(num_stripes, c_int)))
367 END FUNCTION xt_idxstripes_new_a6d_i2
368
369 FUNCTION xt_idxstripes_new_a6d_i4(stripes, num_stripes) RESULT(res)
370 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,1,*)
371 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
372 TYPE(xt_idxlist) :: res
373
374 INTEGER(c_int) :: num_stripes_c
375
376 IF (num_stripes > huge(num_stripes_c)) &
377 CALL xt_abort("too many idxstripes elements", filename, __line__)
378 num_stripes_c = int(num_stripes, c_int)
379 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
380 END FUNCTION xt_idxstripes_new_a6d_i4
381
382 FUNCTION xt_idxstripes_new_a6d_i8(stripes, num_stripes) RESULT(res)
383 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,1,*)
384 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
385 TYPE(xt_idxlist) :: res
386
387 INTEGER(c_int) :: num_stripes_c
388
389 IF (num_stripes > huge(num_stripes_c)) &
390 CALL xt_abort("too many idxstripes elements", filename, __line__)
391 num_stripes_c = int(num_stripes, c_int)
392 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
393 END FUNCTION xt_idxstripes_new_a6d_i8
394
395 FUNCTION xt_idxstripes_new_a7d(stripes) RESULT(res)
396 TYPE(xt_stripe), INTENT(in) :: stripes(:,:,:,:,:,:,:)
397 TYPE(xt_idxlist) :: res
398
399 INTEGER(c_int) :: num_stripes_c
400
401 IF (SIZE(stripes) > huge(num_stripes_c)) &
402 CALL xt_abort("too many idxstripes elements", filename, __line__)
403 num_stripes_c = int(SIZE(stripes), c_int)
404 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
405 END FUNCTION xt_idxstripes_new_a7d
406
407 FUNCTION xt_idxstripes_new_a7d_i2(stripes, num_stripes) RESULT(res)
408 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,1,1,*)
409 INTEGER(i2), VALUE, INTENT(in) :: num_stripes
410 TYPE(xt_idxlist) :: res
411
412 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, &
413 int(num_stripes, c_int)))
414 END FUNCTION xt_idxstripes_new_a7d_i2
415
416 FUNCTION xt_idxstripes_new_a7d_i4(stripes, num_stripes) RESULT(res)
417 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,1,1,*)
418 INTEGER(i4), VALUE, INTENT(in) :: num_stripes
419 TYPE(xt_idxlist) :: res
420
421 INTEGER(c_int) :: num_stripes_c
422
423 IF (num_stripes > huge(num_stripes_c)) &
424 CALL xt_abort("too many idxstripes elements", filename, __line__)
425 num_stripes_c = int(num_stripes, c_int)
426 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
427 END FUNCTION xt_idxstripes_new_a7d_i4
428
429 FUNCTION xt_idxstripes_new_a7d_i8(stripes, num_stripes) RESULT(res)
430 TYPE(xt_stripe), INTENT(in) :: stripes(1,1,1,1,1,1,*)
431 INTEGER(i8), VALUE, INTENT(in) :: num_stripes
432 TYPE(xt_idxlist) :: res
433
434 INTEGER(c_int) :: num_stripes_c
435
436 IF (num_stripes > huge(num_stripes_c)) &
437 CALL xt_abort("too many idxstripes elements", filename, __line__)
438 num_stripes_c = int(num_stripes, c_int)
439 res = xt_idxlist_c2f(xt_idxstripes_new_c(stripes, num_stripes_c))
440 END FUNCTION xt_idxstripes_new_a7d_i8
441
442 FUNCTION xt_idxstripes_from_idxlist_new(idxlist_src) RESULT(idxstripes)
443 TYPE(xt_idxlist), INTENT(in) :: idxlist_src
444 TYPE(xt_idxlist) :: idxstripes
445 INTERFACE
446 FUNCTION xt_idxstripes_from_idxlist_new_c(idxlist_src) &
447 bind(c, name='xt_idxstripes_from_idxlist_new') result(idxstripes)
448 IMPORT :: c_ptr
449 TYPE(c_ptr), VALUE, INTENT(in) :: idxlist_src
450 TYPE(c_ptr) :: idxstripes
451 END FUNCTION xt_idxstripes_from_idxlist_new_c
452 END INTERFACE
453 idxstripes = xt_idxlist_c2f(&
454 xt_idxstripes_from_idxlist_new_c(xt_idxlist_f2c(idxlist_src)))
456
457END MODULE xt_idxstripes
458!
459! Local Variables:
460! f90-continuation-indent: 5
461! coding: utf-8
462! indent-tabs-mode: nil
463! show-trailing-whitespace: t
464! require-trailing-newline: t
465! End:
466!
Xt_idxlist xt_idxstripes_from_idxlist_new(Xt_idxlist idxlist_src)
Xt_idxlist xt_idxstripes_new(struct Xt_stripe const *stripes, int num_stripes)
Xt_idxlist xt_idxlist_f2c(struct xt_idxlist_f *p)
Definition yaxt_f2c.c:180