Yet Another eXchange Tool  0.9.0
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://doc.redmine.dkrz.de/yaxt/html/
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 
51 
53  USE xt_core, ONLY: xt_stripe, i2, i4, i8, xt_abort
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'
105 CONTAINS
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)))
455  END FUNCTION xt_idxstripes_from_idxlist_new
456 
457 END 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 !
integer, parameter, public i8
Definition: xt_core_f.f90:60
integer, parameter, public i4
Definition: xt_core_f.f90:59
integer, parameter, public i2
Definition: xt_core_f.f90:58
type(xt_idxlist) function, public xt_idxlist_c2f(idxlist)
Xt_idxlist xt_idxstripes_from_idxlist_new(Xt_idxlist idxlist_src)
Xt_idxlist xt_idxstripes_new(struct Xt_stripe const *stripes, int num_stripes)