source: XIOS2/trunk/src/interface/fortran/idata.F90 @ 2634

Last change on this file since 2634 was 2623, checked in by jderouillat, 4 months ago

Modify fortran-C interfaces to manage logical-bool conversion, the optimizations of OneAPI could produce bugs regarding the logical-bool encodings.

  • Property copyright set to
    Software name : XIOS (Xml I/O Server)
    http://forge.ipsl.jussieu.fr/ioserver
    Creation date : January 2009
    Licence : CeCCIL version2
    see license file in root directory : Licence_CeCILL_V2-en.txt
    or http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
    Holder : CEA/LSCE (Laboratoire des Sciences du CLimat et de l'Environnement)
    CNRS/IPSL (Institut Pierre Simon Laplace)
    Project Manager : Yann Meurdesoif
    yann.meurdesoif@cea.fr
File size: 83.9 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE IDATA
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE ICONTEXT
6   USE IFIELD
7   USE LOGICAL_BOOL_CONVERSION
8
9   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
10
11      SUBROUTINE  cxios_init_server() BIND(C)
12      END SUBROUTINE cxios_init_server
13
14     SUBROUTINE cxios_init_client(client_id, len_client_id, f_local_comm, f_return_comm) BIND(C)
15         USE ISO_C_BINDING
16         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: client_id
17         INTEGER  (kind = C_INT)     , VALUE        :: len_client_id
18         INTEGER  (kind = C_INT)                    :: f_local_comm
19         INTEGER  (kind = C_INT)                    :: f_return_comm
20      END SUBROUTINE cxios_init_client
21
22      SUBROUTINE  cxios_context_initialize(context_id,len_context_id,f_comm) BIND(C)
23         USE ISO_C_BINDING
24         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: context_id
25         INTEGER  (kind = C_INT)     , VALUE        :: len_context_id
26         INTEGER  (kind = C_INT)                    :: f_comm
27      END SUBROUTINE cxios_context_initialize
28
29      SUBROUTINE cxios_context_is_initialized(context_id,len_context_id,initialized) BIND(C)
30         USE ISO_C_BINDING
31         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: context_id
32         INTEGER  (kind = C_INT)     , VALUE        :: len_context_id
33         LOGICAL  (kind = C_BOOL)                   :: initialized
34      END SUBROUTINE cxios_context_is_initialized
35
36
37       SUBROUTINE  cxios_context_close_definition() BIND(C)
38         USE ISO_C_BINDING
39      END SUBROUTINE cxios_context_close_definition
40
41
42       SUBROUTINE  cxios_context_finalize() BIND(C)
43         USE ISO_C_BINDING
44      END SUBROUTINE cxios_context_finalize
45
46      SUBROUTINE  cxios_oasis_enddef() BIND(C)
47         USE ISO_C_BINDING
48      END SUBROUTINE cxios_oasis_enddef
49     
50      SUBROUTINE  cxios_finalize() BIND(C)
51      END SUBROUTINE cxios_finalize
52
53      SUBROUTINE  cxios_solve_inheritance() BIND(C)
54      END SUBROUTINE cxios_solve_inheritance
55
56      SUBROUTINE cxios_write_data_k80_hdl(field_hdl, data_k8, data_Xsize) BIND(C)
57         USE ISO_C_BINDING
58         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
59         REAL     (kind = C_DOUBLE)               :: data_k8
60         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
61      END SUBROUTINE cxios_write_data_k80_hdl
62
63      SUBROUTINE cxios_write_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
64         USE ISO_C_BINDING
65         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
66         REAL     (kind = C_DOUBLE)               :: data_k8
67         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
68         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
69      END SUBROUTINE cxios_write_data_k80
70
71      SUBROUTINE cxios_write_data_k81_hdl(field_hdl, data_k8, data_Xsize, tileid) BIND(C)
72         USE ISO_C_BINDING
73         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
74         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
75         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
76         INTEGER  (kind = C_INT)   , VALUE        :: tileid
77      END SUBROUTINE cxios_write_data_k81_hdl
78
79      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize, tileid) BIND(C)
80         USE ISO_C_BINDING
81         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
82         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
83         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
84         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
85         INTEGER  (kind = C_INT)   , VALUE        :: tileid
86      END SUBROUTINE cxios_write_data_k81
87
88      SUBROUTINE cxios_write_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, tileid) BIND(C)
89         USE ISO_C_BINDING
90         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
91         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
92         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
93         INTEGER  (kind = C_INT)   , VALUE        :: tileid
94      END SUBROUTINE cxios_write_data_k82_hdl
95
96      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, tileid) BIND(C)
97         USE ISO_C_BINDING
98         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
99         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
100         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
101         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
102         INTEGER  (kind = C_INT)   , VALUE        :: tileid
103      END SUBROUTINE cxios_write_data_k82
104
105      SUBROUTINE cxios_write_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C)
106         USE ISO_C_BINDING
107         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
108         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
109         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
110         INTEGER  (kind = C_INT)   , VALUE        :: tileid
111      END SUBROUTINE cxios_write_data_k83_hdl
112
113      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize, &
114                                      tileid) BIND(C)
115         USE ISO_C_BINDING
116         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
117         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
118         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
119         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
120         INTEGER  (kind = C_INT)   , VALUE        :: tileid
121      END SUBROUTINE cxios_write_data_k83
122
123      SUBROUTINE cxios_write_data_k84_hdl(field_hdl, data_k8, &
124                                      data_0size, data_1size, data_2size, &
125                                      data_3size, tileid) BIND(C)
126         USE ISO_C_BINDING
127         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
128         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
129         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
130         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
131         INTEGER  (kind = C_INT)   , VALUE        :: tileid
132      END SUBROUTINE cxios_write_data_k84_hdl
133
134      SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, &
135                                      data_0size, data_1size, data_2size, &
136                                      data_3size, tileid) BIND(C)
137         USE ISO_C_BINDING
138         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
139         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
140         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
141         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
142         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
143         INTEGER  (kind = C_INT)   , VALUE        :: tileid
144      END SUBROUTINE cxios_write_data_k84
145
146      SUBROUTINE cxios_write_data_k85_hdl(field_hdl, data_k8, &
147                                      data_0size, data_1size, data_2size, &
148                                      data_3size, data_4size, tileid) BIND(C)
149         USE ISO_C_BINDING
150         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
151         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
152         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
153         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
154         INTEGER  (kind = C_INT)   , VALUE        :: tileid
155      END SUBROUTINE cxios_write_data_k85_hdl
156
157      SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, &
158                                      data_0size, data_1size, data_2size, &
159                                      data_3size, data_4size, tileid) BIND(C)
160         USE ISO_C_BINDING
161         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
162         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
163         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
164         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
165         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
166         INTEGER  (kind = C_INT)   , VALUE        :: tileid
167      END SUBROUTINE cxios_write_data_k85
168
169      SUBROUTINE cxios_write_data_k86_hdl(field_hdl, data_k8, &
170                                      data_0size, data_1size, data_2size, &
171                                      data_3size, data_4size, data_5size, tileid) BIND(C)
172         USE ISO_C_BINDING
173         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
174         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
175         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
176         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
177         INTEGER  (kind = C_INT)   , VALUE        :: tileid
178      END SUBROUTINE cxios_write_data_k86_hdl
179
180      SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, &
181                                      data_0size, data_1size, data_2size, &
182                                      data_3size, data_4size, data_5size, tileid) BIND(C)
183         USE ISO_C_BINDING
184         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
185         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
186         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
187         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
188         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
189         INTEGER  (kind = C_INT)   , VALUE        :: tileid
190      END SUBROUTINE cxios_write_data_k86
191
192      SUBROUTINE cxios_write_data_k87_hdl(field_hdl, data_k8, &
193                                      data_0size, data_1size, data_2size, &
194                                      data_3size, data_4size, data_5size, &
195                                      data_6size, tileid) BIND(C)
196         USE ISO_C_BINDING
197         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
198         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
199         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
200         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
201         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
202         INTEGER  (kind = C_INT)   , VALUE        :: tileid
203      END SUBROUTINE cxios_write_data_k87_hdl
204
205      SUBROUTINE cxios_write_data_k87(fieldid, fieldid_size, data_k8, &
206                                      data_0size, data_1size, data_2size, &
207                                      data_3size, data_4size, data_5size, &
208                                      data_6size, tileid) BIND(C)
209         USE ISO_C_BINDING
210         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
211         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
212         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
213         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
214         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
215         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
216         INTEGER  (kind = C_INT)   , VALUE        :: tileid
217      END SUBROUTINE cxios_write_data_k87
218
219      SUBROUTINE cxios_write_data_k40_hdl(field_hdl, data_k4, data_Xsize) BIND(C)
220         USE ISO_C_BINDING
221         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
222         REAL     (kind = C_FLOAT)                :: data_k4
223         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
224      END SUBROUTINE cxios_write_data_k40_hdl
225
226      SUBROUTINE cxios_write_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
227         USE ISO_C_BINDING
228         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
229         REAL     (kind = C_FLOAT)                :: data_k4
230         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
231         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
232      END SUBROUTINE cxios_write_data_k40
233
234      SUBROUTINE cxios_write_data_k41_hdl(field_hdl, data_k4, data_Xsize, tileid) BIND(C)
235         USE ISO_C_BINDING
236         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
237         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
238         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
239         INTEGER  (kind = C_INT)   , VALUE        :: tileid
240      END SUBROUTINE cxios_write_data_k41_hdl
241
242      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize, tileid) BIND(C)
243         USE ISO_C_BINDING
244         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
245         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
246         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
247         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
248         INTEGER  (kind = C_INT)   , VALUE        :: tileid
249      END SUBROUTINE cxios_write_data_k41
250
251      SUBROUTINE cxios_write_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, tileid) BIND(C)
252         USE ISO_C_BINDING
253         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
254         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
255         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
256         INTEGER  (kind = C_INT)   , VALUE        :: tileid
257      END SUBROUTINE cxios_write_data_k42_hdl
258 
259      SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, tileid) BIND(C)
260         USE ISO_C_BINDING
261         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
262         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
263         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
264         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
265         INTEGER  (kind = C_INT)   , VALUE        :: tileid
266      END SUBROUTINE cxios_write_data_k42
267
268      SUBROUTINE cxios_write_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C)
269         USE ISO_C_BINDING
270         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
271         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
272         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
273         INTEGER  (kind = C_INT)   , VALUE        :: tileid
274      END SUBROUTINE cxios_write_data_k43_hdl
275
276      SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize, tileid) BIND(C)
277         USE ISO_C_BINDING
278         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
279         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
280         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
281         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
282         INTEGER  (kind = C_INT)   , VALUE        :: tileid
283      END SUBROUTINE cxios_write_data_k43
284
285      SUBROUTINE cxios_write_data_k44_hdl(field_hdl, data_k4, &
286                                      data_0size, data_1size, data_2size, &
287                                      data_3size, tileid) BIND(C)
288         USE ISO_C_BINDING
289         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
290         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
291         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
292         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
293         INTEGER  (kind = C_INT)   , VALUE        :: tileid
294      END SUBROUTINE cxios_write_data_k44_hdl
295
296      SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, &
297                                      data_0size, data_1size, data_2size, &
298                                      data_3size, tileid) BIND(C)
299         USE ISO_C_BINDING
300         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
301         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
302         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
303         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
304         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
305         INTEGER  (kind = C_INT)   , VALUE        :: tileid
306      END SUBROUTINE cxios_write_data_k44
307
308      SUBROUTINE cxios_write_data_k45_hdl(field_hdl, data_k4, &
309                                      data_0size, data_1size, data_2size, &
310                                      data_3size, data_4size, tileid) BIND(C)
311         USE ISO_C_BINDING
312         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
313         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
314         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
315         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
316         INTEGER  (kind = C_INT)   , VALUE        :: tileid
317      END SUBROUTINE cxios_write_data_k45_hdl
318
319      SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, &
320                                      data_0size, data_1size, data_2size, &
321                                      data_3size, data_4size, tileid) BIND(C)
322         USE ISO_C_BINDING
323         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
324         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
325         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
326         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
327         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
328         INTEGER  (kind = C_INT)   , VALUE        :: tileid
329      END SUBROUTINE cxios_write_data_k45
330
331      SUBROUTINE cxios_write_data_k46_hdl(field_hdl, data_k4, &
332                                      data_0size, data_1size, data_2size, &
333                                      data_3size, data_4size, data_5size, tileid) BIND(C)
334         USE ISO_C_BINDING
335         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
336         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
337         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
338         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
339         INTEGER  (kind = C_INT)   , VALUE        :: tileid
340      END SUBROUTINE cxios_write_data_k46_hdl
341 
342      SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, &
343                                      data_0size, data_1size, data_2size, &
344                                      data_3size, data_4size, data_5size, tileid) BIND(C)
345         USE ISO_C_BINDING
346         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
347         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
348         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
349         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
350         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
351         INTEGER  (kind = C_INT)   , VALUE        :: tileid
352      END SUBROUTINE cxios_write_data_k46
353
354      SUBROUTINE cxios_write_data_k47_hdl(field_hdl, data_k4, &
355                                      data_0size, data_1size, data_2size, &
356                                      data_3size, data_4size, data_5size, &
357                                      data_6size, tileid) BIND(C)
358         USE ISO_C_BINDING
359         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
360         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
361         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
362         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
363         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
364         INTEGER  (kind = C_INT)   , VALUE        :: tileid
365      END SUBROUTINE cxios_write_data_k47_hdl
366
367      SUBROUTINE cxios_write_data_k47(fieldid, fieldid_size, data_k4, &
368                                      data_0size, data_1size, data_2size, &
369                                      data_3size, data_4size, data_5size, &
370                                      data_6size, tileid) BIND(C)
371         USE ISO_C_BINDING
372         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
373         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
374         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
375         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
376         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
377         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
378         INTEGER  (kind = C_INT)   , VALUE        :: tileid
379      END SUBROUTINE cxios_write_data_k47
380
381
382      ! Read data
383      SUBROUTINE cxios_read_data_k80_hdl(field_hdl, data_k8, data_Xsize) BIND(C)
384         USE ISO_C_BINDING
385         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
386         REAL     (kind = C_DOUBLE)               :: data_k8
387         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
388      END SUBROUTINE cxios_read_data_k80_hdl
389
390      SUBROUTINE cxios_read_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
391         USE ISO_C_BINDING
392         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
393         REAL     (kind = C_DOUBLE)               :: data_k8
394         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
395         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
396      END SUBROUTINE cxios_read_data_k80
397
398      SUBROUTINE cxios_read_data_k81_hdl(field_hdl, data_k8, data_Xsize) BIND(C)
399         USE ISO_C_BINDING
400         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
401         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
402         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
403      END SUBROUTINE cxios_read_data_k81_hdl
404
405      SUBROUTINE cxios_read_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
406         USE ISO_C_BINDING
407         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
408         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
409         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
410         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
411      END SUBROUTINE cxios_read_data_k81
412
413      SUBROUTINE cxios_read_data_k82_hdl(field_hdl, data_k8, data_Xsize, data_Ysize) BIND(C)
414         USE ISO_C_BINDING
415         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
416         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
417         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
418      END SUBROUTINE cxios_read_data_k82_hdl
419
420      SUBROUTINE cxios_read_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C)
421         USE ISO_C_BINDING
422         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
423         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
424         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
425         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
426      END SUBROUTINE cxios_read_data_k82
427
428      SUBROUTINE cxios_read_data_k83_hdl(field_hdl, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
429         USE ISO_C_BINDING
430         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
431         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
432         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
433      END SUBROUTINE cxios_read_data_k83_hdl
434
435       SUBROUTINE cxios_read_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
436         USE ISO_C_BINDING
437         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
438         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
439         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
440         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
441      END SUBROUTINE cxios_read_data_k83
442
443     SUBROUTINE cxios_read_data_k84_hdl(field_hdl, data_k8, &
444                                      data_0size, data_1size, data_2size, &
445                                      data_3size) BIND(C)
446         USE ISO_C_BINDING
447         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
448         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
449         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
450         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
451      END SUBROUTINE cxios_read_data_k84_hdl
452
453     SUBROUTINE cxios_read_data_k84(fieldid, fieldid_size, data_k8, &
454                                      data_0size, data_1size, data_2size, &
455                                      data_3size) BIND(C)
456         USE ISO_C_BINDING
457         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
458         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
459         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
460         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
461         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
462      END SUBROUTINE cxios_read_data_k84
463
464      SUBROUTINE cxios_read_data_k85_hdl(field_hdl, data_k8, &
465                                      data_0size, data_1size, data_2size, &
466                                      data_3size, data_4size) BIND(C)
467         USE ISO_C_BINDING
468         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
469         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
470         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
471         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
472      END SUBROUTINE cxios_read_data_k85_hdl
473
474      SUBROUTINE cxios_read_data_k85(fieldid, fieldid_size, data_k8, &
475                                      data_0size, data_1size, data_2size, &
476                                      data_3size, data_4size) BIND(C)
477         USE ISO_C_BINDING
478         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
479         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
480         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
481         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
482         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
483      END SUBROUTINE cxios_read_data_k85
484
485      SUBROUTINE cxios_read_data_k86_hdl(field_hdl, data_k8, &
486                                      data_0size, data_1size, data_2size, &
487                                      data_3size, data_4size, data_5size) BIND(C)
488         USE ISO_C_BINDING
489         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
490         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
491         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
492         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
493      END SUBROUTINE cxios_read_data_k86_hdl
494 
495      SUBROUTINE cxios_read_data_k86(fieldid, fieldid_size, data_k8, &
496                                      data_0size, data_1size, data_2size, &
497                                      data_3size, data_4size, data_5size) BIND(C)
498         USE ISO_C_BINDING
499         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
500         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
501         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
502         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
503         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
504      END SUBROUTINE cxios_read_data_k86
505
506      SUBROUTINE cxios_read_data_k87_hdl(field_hdl, data_k8, &
507                                      data_0size, data_1size, data_2size, &
508                                      data_3size, data_4size, data_5size, &
509                                      data_6size) BIND(C)
510         USE ISO_C_BINDING
511         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
512         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
513         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
514         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
515         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
516      END SUBROUTINE cxios_read_data_k87_hdl
517
518      SUBROUTINE cxios_read_data_k87(fieldid, fieldid_size, data_k8, &
519                                      data_0size, data_1size, data_2size, &
520                                      data_3size, data_4size, data_5size, &
521                                      data_6size) BIND(C)
522         USE ISO_C_BINDING
523         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
524         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
525         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
526         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
527         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
528         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
529      END SUBROUTINE cxios_read_data_k87
530
531      SUBROUTINE cxios_read_data_k40_hdl(field_hdl, data_k4, data_Xsize) BIND(C)
532         USE ISO_C_BINDING
533         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
534         REAL     (kind = C_FLOAT)                :: data_k4
535         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
536      END SUBROUTINE cxios_read_data_k40_hdl
537
538      SUBROUTINE cxios_read_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
539         USE ISO_C_BINDING
540         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
541         REAL     (kind = C_FLOAT)                :: data_k4
542         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
543         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
544      END SUBROUTINE cxios_read_data_k40
545
546      SUBROUTINE cxios_read_data_k41_hdl(field_hdl, data_k4, data_Xsize) BIND(C)
547         USE ISO_C_BINDING
548         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
549         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
550         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
551      END SUBROUTINE cxios_read_data_k41_hdl
552
553      SUBROUTINE cxios_read_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
554         USE ISO_C_BINDING
555         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
556         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
557         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
558         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
559      END SUBROUTINE cxios_read_data_k41
560
561      SUBROUTINE cxios_read_data_k42_hdl(field_hdl, data_k4, data_Xsize, data_Ysize) BIND(C)
562         USE ISO_C_BINDING
563         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
564         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
565         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
566      END SUBROUTINE cxios_read_data_k42_hdl
567
568      SUBROUTINE cxios_read_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C)
569         USE ISO_C_BINDING
570         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
571         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
572         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
573         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
574      END SUBROUTINE cxios_read_data_k42
575
576      SUBROUTINE cxios_read_data_k43_hdl(field_hdl, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
577         USE ISO_C_BINDING
578         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
579         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
580         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
581      END SUBROUTINE cxios_read_data_k43_hdl
582
583      SUBROUTINE cxios_read_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
584         USE ISO_C_BINDING
585         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
586         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
587         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
588         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
589      END SUBROUTINE cxios_read_data_k43
590
591      SUBROUTINE cxios_read_data_k44_hdl(field_hdl, data_k4, &
592                                      data_0size, data_1size, data_2size, &
593                                      data_3size) BIND(C)
594         USE ISO_C_BINDING
595         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
596         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
597         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
598         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
599      END SUBROUTINE cxios_read_data_k44_hdl
600 
601      SUBROUTINE cxios_read_data_k44(fieldid, fieldid_size, data_k4, &
602                                      data_0size, data_1size, data_2size, &
603                                      data_3size) BIND(C)
604         USE ISO_C_BINDING
605         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
606         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
607         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
608         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
609         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
610      END SUBROUTINE cxios_read_data_k44
611
612      SUBROUTINE cxios_read_data_k45_hdl(field_hdl, data_k4, &
613                                      data_0size, data_1size, data_2size, &
614                                      data_3size, data_4size) BIND(C)
615         USE ISO_C_BINDING
616         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
617         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
618         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
619         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
620      END SUBROUTINE cxios_read_data_k45_hdl
621
622      SUBROUTINE cxios_read_data_k45(fieldid, fieldid_size, data_k4, &
623                                      data_0size, data_1size, data_2size, &
624                                      data_3size, data_4size) BIND(C)
625         USE ISO_C_BINDING
626         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
627         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
628         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
629         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
630         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
631      END SUBROUTINE cxios_read_data_k45
632
633      SUBROUTINE cxios_read_data_k46_hdl(field_hdl, data_k4, &
634                                      data_0size, data_1size, data_2size, &
635                                      data_3size, data_4size, data_5size) BIND(C)
636         USE ISO_C_BINDING
637         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
638         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
639         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
640         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
641      END SUBROUTINE cxios_read_data_k46_hdl
642 
643      SUBROUTINE cxios_read_data_k46(fieldid, fieldid_size, data_k4, &
644                                      data_0size, data_1size, data_2size, &
645                                      data_3size, data_4size, data_5size) BIND(C)
646         USE ISO_C_BINDING
647         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
648         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
649         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
650         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
651         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
652      END SUBROUTINE cxios_read_data_k46
653
654      SUBROUTINE cxios_read_data_k47_hdl(field_hdl, data_k4, &
655                                      data_0size, data_1size, data_2size, &
656                                      data_3size, data_4size, data_5size, &
657                                      data_6size) BIND(C)
658         USE ISO_C_BINDING
659         INTEGER  (kind = C_INTPTR_T), VALUE      :: field_hdl
660         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
661         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
662         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
663         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
664      END SUBROUTINE cxios_read_data_k47_hdl
665
666      SUBROUTINE cxios_read_data_k47(fieldid, fieldid_size, data_k4, &
667                                      data_0size, data_1size, data_2size, &
668                                      data_3size, data_4size, data_5size, &
669                                      data_6size) BIND(C)
670         USE ISO_C_BINDING
671         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
672         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
673         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
674         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
675         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
676         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
677      END SUBROUTINE cxios_read_data_k47
678
679      ! Binding C and Fortran interface of get_variable (icdata.cpp)
680      SUBROUTINE cxios_get_variable_data_k8(vardid, varid_size, data_k8, is_var_existed) BIND(C)
681         USE ISO_C_BINDING
682         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
683         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
684         REAL     (kind = C_DOUBLE)               :: data_k8
685         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
686      END SUBROUTINE cxios_get_variable_data_k8
687
688      SUBROUTINE cxios_get_variable_data_k4(vardid, varid_size, data_k4, is_var_existed) BIND(C)
689         USE ISO_C_BINDING
690         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
691         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
692         REAL     (kind = C_FLOAT)                :: data_k4
693         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
694      END SUBROUTINE cxios_get_variable_data_k4
695
696      SUBROUTINE cxios_get_variable_data_int(vardid, varid_size, data_int, is_var_existed) BIND(C)
697         USE ISO_C_BINDING
698         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
699         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
700         INTEGER  (kind = C_INT)                  :: data_int
701         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
702      END SUBROUTINE cxios_get_variable_data_int
703
704      SUBROUTINE cxios_get_variable_data_logic(vardid, varid_size, data_logic, is_var_existed) BIND(C)
705         USE ISO_C_BINDING
706         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
707         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
708         LOGICAL  (kind = C_BOOL)                 :: data_logic
709         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
710      END SUBROUTINE cxios_get_variable_data_logic
711
712      SUBROUTINE cxios_get_variable_data_char(vardid, varid_size, data_char, data_size_in, is_var_existed) BIND(C)
713         USE ISO_C_BINDING
714         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
715         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
716         INTEGER  (kind = C_INT)   , VALUE        :: data_size_in
717         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: data_char
718         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
719      END SUBROUTINE cxios_get_variable_data_char
720
721      ! Binding C and Fortran interface of set_variable (icdata.cpp)
722      SUBROUTINE cxios_set_variable_data_k8(vardid, varid_size, data_k8, is_var_existed) BIND(C)
723         USE ISO_C_BINDING
724         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
725         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
726         REAL     (kind = C_DOUBLE), VALUE        :: data_k8
727         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
728      END SUBROUTINE cxios_set_variable_data_k8
729
730      SUBROUTINE cxios_set_variable_data_k4(vardid, varid_size, data_k4, is_var_existed) BIND(C)
731         USE ISO_C_BINDING
732         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
733         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
734         REAL     (kind = C_FLOAT) , VALUE        :: data_k4
735         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
736      END SUBROUTINE cxios_set_variable_data_k4
737
738      SUBROUTINE cxios_set_variable_data_int(vardid, varid_size, data_int, is_var_existed) BIND(C)
739         USE ISO_C_BINDING
740         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
741         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
742         INTEGER  (kind = C_INT)   , VALUE        :: data_int
743         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
744      END SUBROUTINE cxios_set_variable_data_int
745
746      SUBROUTINE cxios_set_variable_data_logic(vardid, varid_size, data_logic, is_var_existed) BIND(C)
747         USE ISO_C_BINDING
748         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
749         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
750         LOGICAL  (kind = C_BOOL)       , VALUE   :: data_logic
751         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
752      END SUBROUTINE cxios_set_variable_data_logic
753
754      SUBROUTINE cxios_set_variable_data_char(vardid, varid_size, data_char, data_size_in, is_var_existed) BIND(C)
755         USE ISO_C_BINDING
756         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
757         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
758         INTEGER  (kind = C_INT)   , VALUE        :: data_size_in
759         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: data_char
760         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
761      END SUBROUTINE cxios_set_variable_data_char
762
763   END INTERFACE
764
765
766   CONTAINS ! Fonctions disponibles pour les utilisateurs.
767
768   SUBROUTINE  xios(init_server)()
769   IMPLICIT NONE
770     CALL cxios_init_server()
771   END SUBROUTINE xios(init_server)
772
773   SUBROUTINE  xios(initialize)(client_id, local_comm, return_comm)
774   IMPLICIT NONE
775   INCLUDE 'mpif.h'
776   CHARACTER(LEN=*),INTENT(IN) :: client_id
777   INTEGER,INTENT(IN),OPTIONAL         :: local_comm
778   INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
779   INTEGER :: f_local_comm
780   INTEGER :: f_return_comm
781
782      IF (PRESENT(local_comm)) THEN
783        f_local_comm=local_comm
784      ELSE
785        f_local_comm = MPI_COMM_NULL
786      ENDIF
787
788      CALL cxios_init_client(client_id,LEN(client_id),f_local_comm,f_return_comm)
789
790      IF (PRESENT(return_comm)) return_comm=f_return_comm
791
792   END SUBROUTINE  xios(initialize)
793
794
795   SUBROUTINE  xios(context_initialize)(context_id,comm)
796   IMPLICIT NONE
797   CHARACTER(LEN=*),INTENT(IN)  :: context_id
798   INTEGER, INTENT(IN)          :: comm
799
800      CALL cxios_context_initialize(context_id,LEN(context_id),comm)
801
802    END SUBROUTINE  xios(context_initialize)
803
804
805   LOGICAL FUNCTION  xios(context_is_initialized)(context_id)
806   USE ISO_C_BINDING
807   IMPLICIT NONE
808   CHARACTER(LEN=*),INTENT(IN)  :: context_id
809   LOGICAL(KIND=C_BOOL) :: is_init
810
811      CALL cxios_context_is_initialized(context_id, LEN(context_id), is_init)
812      CALL xios_bool_to_logical_0d(is_init)
813      xios(context_is_initialized) = is_init
814
815    END FUNCTION xios(context_is_initialized)
816
817
818   SUBROUTINE  xios(finalize)
819   IMPLICIT NONE
820
821      CALL cxios_finalize
822
823    END SUBROUTINE  xios(finalize)
824
825   SUBROUTINE  xios(oasis_enddef)
826   IMPLICIT NONE
827
828      CALL cxios_oasis_enddef
829
830    END SUBROUTINE  xios(oasis_enddef)
831
832   SUBROUTINE xios(close_context_definition)()
833   IMPLICIT NONE
834      CALL cxios_context_close_definition()
835   END SUBROUTINE xios(close_context_definition)
836
837
838   SUBROUTINE xios(context_finalize)()
839   IMPLICIT NONE
840      CALL cxios_context_finalize()
841   END SUBROUTINE xios(context_finalize)
842
843   SUBROUTINE xios(solve_inheritance)()
844   IMPLICIT NONE
845      CALL cxios_solve_inheritance()
846   END SUBROUTINE xios(solve_inheritance)
847
848   ! Send field functions
849   SUBROUTINE xios(send_field_r8_0d_hdl)(field_hdl, data_k8)
850   IMPLICIT NONE
851      TYPE(txios(field))              :: field_hdl
852      REAL     (kind = 8), INTENT(IN) :: data_k8
853      CALL cxios_write_data_k80_hdl(field_hdl%daddr, data_k8, 1)
854   END SUBROUTINE xios(send_field_r8_0d_hdl)
855
856   SUBROUTINE xios(send_field_r8_0d)(fieldid, data_k8)
857   IMPLICIT NONE
858      CHARACTER(len = *) , INTENT(IN) :: fieldid
859      REAL     (kind = 8), INTENT(IN) :: data_k8
860      CALL cxios_write_data_k80(fieldid, len(fieldid), data_k8, 1)
861   END SUBROUTINE xios(send_field_r8_0d)
862
863   SUBROUTINE xios(send_field_r8_1d_hdl)(field_hdl, data1d_k8)
864   IMPLICIT NONE
865      TYPE(txios(field))              :: field_hdl
866      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
867      INTEGER, PARAMETER                            :: tileid = -1
868      CALL cxios_write_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1), tileid)
869   END SUBROUTINE xios(send_field_r8_1d_hdl)
870
871   SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8)
872   IMPLICIT NONE
873      CHARACTER(len = *)               , INTENT(IN) :: fieldid
874      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
875      INTEGER, PARAMETER                            :: tileid = -1
876      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid)
877   END SUBROUTINE xios(send_field_r8_1d)
878
879   SUBROUTINE xios(send_field_tiled_r8_1d)(fieldid, data1d_k8, tileid)
880   IMPLICIT NONE
881      CHARACTER(len = *)               , INTENT(IN) :: fieldid
882      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
883      INTEGER                          , INTENT(IN) :: tileid
884      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1), tileid)
885   END SUBROUTINE xios(send_field_tiled_r8_1d)
886
887   SUBROUTINE  xios(send_field_r8_2d_hdl)(field_hdl, data2d_k8)
888   IMPLICIT NONE
889      TYPE(txios(field))              :: field_hdl
890      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
891      INTEGER, PARAMETER                            :: tileid = -1
892      CALL cxios_write_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2), tileid)
893   END SUBROUTINE  xios(send_field_r8_2d_hdl)
894
895   SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8)
896   IMPLICIT NONE
897      CHARACTER(len = *)               , INTENT(IN) :: fieldid
898      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
899      INTEGER, PARAMETER                            :: tileid = -1
900      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), &
901                                size(data2d_k8, 2), tileid)
902   END SUBROUTINE  xios(send_field_r8_2d)
903
904   SUBROUTINE  xios(send_field_tiled_r8_2d)(fieldid, data2d_k8, tileid)
905   IMPLICIT NONE
906      CHARACTER(len = *)               , INTENT(IN) :: fieldid
907      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
908      INTEGER                          , INTENT(IN) :: tileid
909      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), &
910                                size(data2d_k8, 2), tileid)
911   END SUBROUTINE  xios(send_field_tiled_r8_2d)
912
913   SUBROUTINE  xios(send_field_r8_3d_hdl)(field_hdl, data3d_k8)
914   IMPLICIT NONE
915      TYPE(txios(field))              :: field_hdl
916      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
917      INTEGER, PARAMETER                            :: tileid = -1
918      CALL cxios_write_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), &
919                                    tileid)
920   END SUBROUTINE  xios(send_field_r8_3d_hdl)
921
922   SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8)
923   IMPLICIT NONE
924      CHARACTER(len = *)               , INTENT(IN) :: fieldid
925      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
926      INTEGER, PARAMETER                            :: tileid = -1
927      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3), &
928                                tileid)
929   END SUBROUTINE  xios(send_field_r8_3d)
930
931   SUBROUTINE  xios(send_field_tiled_r8_3d)(fieldid, data3d_k8, tileid)
932   IMPLICIT NONE
933      CHARACTER(len = *)               , INTENT(IN) :: fieldid
934      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
935      INTEGER                          , INTENT(IN) :: tileid
936      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), &
937                                      size(data3d_k8, 2), size(data3d_k8, 3), tileid)
938   END SUBROUTINE  xios(send_field_tiled_r8_3d)
939
940   SUBROUTINE  xios(send_field_r8_4d_hdl)(field_hdl, data4d_k8)
941   IMPLICIT NONE
942      TYPE(txios(field))              :: field_hdl
943      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
944      INTEGER, PARAMETER                            :: tileid = -1
945      CALL cxios_write_data_k84_hdl(field_hdl%daddr, data4d_k8, &
946                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
947                                size(data4d_k8, 4), tileid)
948   END SUBROUTINE  xios(send_field_r8_4d_hdl)
949
950   SUBROUTINE  xios(send_field_r8_4d)(fieldid, data4d_k8)
951   IMPLICIT NONE
952      CHARACTER(len = *)               , INTENT(IN) :: fieldid
953      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
954      INTEGER, PARAMETER                            :: tileid = -1
955      CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, &
956                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
957                                size(data4d_k8, 4), tileid)
958   END SUBROUTINE  xios(send_field_r8_4d)
959
960   SUBROUTINE  xios(send_field_tiled_r8_4d)(fieldid, data4d_k8, tileid)
961   IMPLICIT NONE
962      CHARACTER(len = *)               , INTENT(IN) :: fieldid
963      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
964      INTEGER                          , INTENT(IN) :: tileid
965      CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, &
966                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
967                                size(data4d_k8, 4), tileid)
968   END SUBROUTINE  xios(send_field_tiled_r8_4d)
969
970   SUBROUTINE  xios(send_field_r8_5d_hdl)(field_hdl, data5d_k8)
971   IMPLICIT NONE
972      TYPE(txios(field))              :: field_hdl
973      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
974      INTEGER, PARAMETER                            :: tileid = -1
975      CALL cxios_write_data_k85_hdl(field_hdl%daddr, data5d_k8, &
976                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
977                                size(data5d_k8, 4), size(data5d_k8, 5), tileid)
978   END SUBROUTINE  xios(send_field_r8_5d_hdl)
979
980   SUBROUTINE  xios(send_field_r8_5d)(fieldid, data5d_k8)
981   IMPLICIT NONE
982      CHARACTER(len = *)               , INTENT(IN) :: fieldid
983      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
984      INTEGER, PARAMETER                            :: tileid = -1
985      CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, &
986                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
987                                size(data5d_k8, 4), size(data5d_k8, 5), tileid)
988   END SUBROUTINE  xios(send_field_r8_5d)
989
990   SUBROUTINE  xios(send_field_tiled_r8_5d)(fieldid, data5d_k8, tileid)
991   IMPLICIT NONE
992      CHARACTER(len = *)               , INTENT(IN) :: fieldid
993      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
994      INTEGER                          , INTENT(IN) :: tileid
995      CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, &
996                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
997                                size(data5d_k8, 4), size(data5d_k8, 5), tileid)
998   END SUBROUTINE  xios(send_field_tiled_r8_5d)
999
1000   SUBROUTINE  xios(send_field_r8_6d_hdl)(field_hdl, data6d_k8)
1001   IMPLICIT NONE
1002      TYPE(txios(field))              :: field_hdl
1003      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
1004      INTEGER, PARAMETER                            :: tileid = -1
1005      CALL cxios_write_data_k86_hdl(field_hdl%daddr, data6d_k8, &
1006                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
1007                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid)
1008   END SUBROUTINE  xios(send_field_r8_6d_hdl)
1009
1010   SUBROUTINE  xios(send_field_r8_6d)(fieldid, data6d_k8)
1011   IMPLICIT NONE
1012      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1013      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
1014      INTEGER, PARAMETER                            :: tileid = -1
1015      CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, &
1016                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
1017                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid)
1018   END SUBROUTINE  xios(send_field_r8_6d)
1019
1020   SUBROUTINE  xios(send_field_tiled_r8_6d)(fieldid, data6d_k8, tileid)
1021   IMPLICIT NONE
1022      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1023      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
1024      INTEGER                          , INTENT(IN) :: tileid
1025      CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, &
1026                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
1027                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6), tileid)
1028   END SUBROUTINE  xios(send_field_tiled_r8_6d)
1029
1030   SUBROUTINE  xios(send_field_r8_7d_hdl)(field_hdl, data7d_k8)
1031   IMPLICIT NONE
1032      TYPE(txios(field))              :: field_hdl
1033      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
1034      INTEGER, PARAMETER                            :: tileid = -1
1035      CALL cxios_write_data_k87_hdl(field_hdl%daddr, data7d_k8, &
1036                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
1037                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
1038                                size(data7d_k8, 7), tileid)
1039   END SUBROUTINE  xios(send_field_r8_7d_hdl)
1040
1041   SUBROUTINE  xios(send_field_r8_7d)(fieldid, data7d_k8)
1042   IMPLICIT NONE
1043      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1044      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
1045      INTEGER, PARAMETER                            :: tileid = -1
1046      CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, &
1047                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
1048                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
1049                                size(data7d_k8, 7), tileid)
1050   END SUBROUTINE  xios(send_field_r8_7d)
1051
1052   SUBROUTINE  xios(send_field_tiled_r8_7d)(fieldid, data7d_k8, tileid)
1053   IMPLICIT NONE
1054      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1055      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
1056      INTEGER                          , INTENT(IN) :: tileid
1057      CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, &
1058                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
1059                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
1060                                size(data7d_k8, 7), tileid)
1061   END SUBROUTINE  xios(send_field_tiled_r8_7d)
1062
1063   SUBROUTINE xios(send_field_r4_0d_hdl)(field_hdl, data_k4)
1064   IMPLICIT NONE
1065      TYPE(txios(field))              :: field_hdl
1066      REAL     (kind = 4), INTENT(IN) :: data_k4
1067      CALL cxios_write_data_k40_hdl(field_hdl%daddr, data_k4, 1)
1068   END SUBROUTINE xios(send_field_r4_0d_hdl)
1069
1070   SUBROUTINE xios(send_field_r4_0d)(fieldid, data_k4)
1071   IMPLICIT NONE
1072      CHARACTER(len = *) , INTENT(IN) :: fieldid
1073      REAL     (kind = 4), INTENT(IN) :: data_k4
1074      CALL cxios_write_data_k40(fieldid, len(fieldid), data_k4, 1)
1075   END SUBROUTINE xios(send_field_r4_0d)
1076
1077   SUBROUTINE xios(send_field_r4_1d_hdl)(field_hdl, data1d_k4)
1078   IMPLICIT NONE
1079      TYPE(txios(field))              :: field_hdl
1080      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
1081      INTEGER, PARAMETER                            :: tileid = -1
1082      CALL cxios_write_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1), tileid)
1083   END SUBROUTINE xios(send_field_r4_1d_hdl)
1084
1085   SUBROUTINE xios(send_field_r4_1d)(fieldid, data1d_k4)
1086   IMPLICIT NONE
1087      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1088      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
1089      INTEGER, PARAMETER                            :: tileid = -1
1090      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid)
1091   END SUBROUTINE xios(send_field_r4_1d)
1092
1093   SUBROUTINE xios(send_field_tiled_r4_1d)(fieldid, data1d_k4, tileid)
1094   IMPLICIT NONE
1095      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1096      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
1097      INTEGER                          , INTENT(IN) :: tileid
1098      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1), tileid)
1099   END SUBROUTINE xios(send_field_tiled_r4_1d)
1100
1101   SUBROUTINE xios(send_field_r4_2d_hdl)(field_hdl, data2d_k4)
1102   IMPLICIT NONE
1103      TYPE(txios(field))              :: field_hdl
1104      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
1105      INTEGER, PARAMETER                            :: tileid = -1
1106      CALL cxios_write_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid)
1107   END SUBROUTINE xios(send_field_r4_2d_hdl)
1108
1109   SUBROUTINE xios(send_field_r4_2d)(fieldid, data2d_k4)
1110   IMPLICIT NONE
1111      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1112      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
1113      INTEGER, PARAMETER                            :: tileid = -1
1114      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid)
1115   END SUBROUTINE xios(send_field_r4_2d)
1116
1117   SUBROUTINE xios(send_field_tiled_r4_2d)(fieldid, data2d_k4, tileid)
1118   IMPLICIT NONE
1119      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1120      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
1121      INTEGER                          , INTENT(IN) :: tileid
1122      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2), tileid)
1123   END SUBROUTINE xios(send_field_tiled_r4_2d)
1124
1125   SUBROUTINE xios(send_field_r4_3d_hdl)(field_hdl, data3d_k4)
1126   IMPLICIT NONE
1127      TYPE(txios(field))              :: field_hdl
1128      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
1129      INTEGER, PARAMETER                            :: tileid = -1
1130      CALL cxios_write_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), &
1131                                    tileid)
1132   END SUBROUTINE xios(send_field_r4_3d_hdl)
1133
1134   SUBROUTINE xios(send_field_r4_3d)(fieldid, data3d_k4)
1135   IMPLICIT NONE
1136      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1137      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
1138      INTEGER, PARAMETER                            :: tileid = -1
1139      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), &
1140                                tileid)
1141   END SUBROUTINE xios(send_field_r4_3d)
1142
1143   SUBROUTINE xios(send_field_tiled_r4_3d)(fieldid, data3d_k4, tileid)
1144   IMPLICIT NONE
1145      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1146      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
1147      INTEGER                          , INTENT(IN) :: tileid
1148      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3), &
1149                                tileid)
1150   END SUBROUTINE xios(send_field_tiled_r4_3d)
1151
1152   SUBROUTINE  xios(send_field_r4_4d_hdl)(field_hdl, data4d_k4)
1153   IMPLICIT NONE
1154      TYPE(txios(field))              :: field_hdl
1155      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
1156      INTEGER, PARAMETER                            :: tileid = -1
1157      CALL cxios_write_data_k44_hdl(field_hdl%daddr, data4d_k4, &
1158                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
1159                                size(data4d_k4, 4), tileid)
1160   END SUBROUTINE  xios(send_field_r4_4d_hdl)
1161
1162   SUBROUTINE  xios(send_field_r4_4d)(fieldid, data4d_k4)
1163   IMPLICIT NONE
1164      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1165      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
1166      INTEGER, PARAMETER                            :: tileid = -1
1167      CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, &
1168                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
1169                                size(data4d_k4, 4), tileid)
1170   END SUBROUTINE  xios(send_field_r4_4d)
1171
1172   SUBROUTINE  xios(send_field_tiled_r4_4d)(fieldid, data4d_k4, tileid)
1173   IMPLICIT NONE
1174      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1175      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
1176      INTEGER                          , INTENT(IN) :: tileid
1177      CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, &
1178                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
1179                                size(data4d_k4, 4), tileid)
1180   END SUBROUTINE  xios(send_field_tiled_r4_4d)
1181
1182   SUBROUTINE  xios(send_field_r4_5d_hdl)(field_hdl, data5d_k4)
1183   IMPLICIT NONE
1184      TYPE(txios(field))              :: field_hdl
1185      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
1186      INTEGER, PARAMETER                            :: tileid = -1
1187      CALL cxios_write_data_k45_hdl(field_hdl%daddr, data5d_k4, &
1188                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
1189                                size(data5d_k4, 4), size(data5d_k4, 5), tileid)
1190   END SUBROUTINE  xios(send_field_r4_5d_hdl)
1191
1192   SUBROUTINE  xios(send_field_r4_5d)(fieldid, data5d_k4)
1193   IMPLICIT NONE
1194      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1195      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
1196      INTEGER, PARAMETER                            :: tileid = -1
1197      CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, &
1198                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
1199                                size(data5d_k4, 4), size(data5d_k4, 5), tileid)
1200   END SUBROUTINE  xios(send_field_r4_5d)
1201
1202   SUBROUTINE  xios(send_field_tiled_r4_5d)(fieldid, data5d_k4, tileid)
1203   IMPLICIT NONE
1204      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1205      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
1206      INTEGER                          , INTENT(IN) :: tileid
1207      CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, &
1208                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
1209                                size(data5d_k4, 4), size(data5d_k4, 5), tileid)
1210   END SUBROUTINE  xios(send_field_tiled_r4_5d)
1211
1212   SUBROUTINE  xios(send_field_r4_6d_hdl)(field_hdl, data6d_k4)
1213   IMPLICIT NONE
1214      TYPE(txios(field))              :: field_hdl
1215      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
1216      INTEGER, PARAMETER                            :: tileid = -1
1217      CALL cxios_write_data_k46_hdl(field_hdl%daddr, data6d_k4, &
1218                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
1219                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid)
1220   END SUBROUTINE  xios(send_field_r4_6d_hdl)
1221   
1222   SUBROUTINE  xios(send_field_r4_6d)(fieldid, data6d_k4)
1223   IMPLICIT NONE
1224      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1225      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
1226      INTEGER, PARAMETER                            :: tileid = -1
1227      CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, &
1228                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
1229                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid)
1230   END SUBROUTINE  xios(send_field_r4_6d)
1231
1232   SUBROUTINE  xios(send_field_tiled_r4_6d)(fieldid, data6d_k4, tileid)
1233   IMPLICIT NONE
1234      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1235      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
1236      INTEGER                          , INTENT(IN) :: tileid
1237      CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, &
1238                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
1239                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6), tileid)
1240   END SUBROUTINE  xios(send_field_tiled_r4_6d)
1241
1242   SUBROUTINE  xios(send_field_r4_7d_hdl)(field_hdl, data7d_k4)
1243   IMPLICIT NONE
1244      TYPE(txios(field))              :: field_hdl
1245      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
1246      INTEGER, PARAMETER                            :: tileid = -1
1247      CALL cxios_write_data_k47_hdl(field_hdl%daddr, data7d_k4, &
1248                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
1249                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
1250                                size(data7d_k4, 7), tileid)
1251   END SUBROUTINE  xios(send_field_r4_7d_hdl)
1252   
1253   SUBROUTINE  xios(send_field_r4_7d)(fieldid, data7d_k4)
1254   IMPLICIT NONE
1255      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1256      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
1257      INTEGER, PARAMETER                            :: tileid = -1
1258      CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, &
1259                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
1260                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
1261                                size(data7d_k4, 7), tileid)
1262   END SUBROUTINE  xios(send_field_r4_7d)
1263
1264   SUBROUTINE  xios(send_field_tiled_r4_7d)(fieldid, data7d_k4, tileid)
1265   IMPLICIT NONE
1266      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1267      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
1268      INTEGER                          , INTENT(IN) :: tileid
1269      CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, &
1270                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
1271                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
1272                                size(data7d_k4, 7), tileid)
1273   END SUBROUTINE  xios(send_field_tiled_r4_7d)
1274
1275   ! Receive field functions
1276   SUBROUTINE xios(recv_field_r8_0d_hdl)(field_hdl, data0d_k8)
1277   IMPLICIT NONE
1278      TYPE(txios(field))              :: field_hdl
1279      REAL     (kind = 8)              , INTENT(OUT):: data0d_k8
1280      CALL cxios_read_data_k80_hdl(field_hdl%daddr, data0d_k8, 1)
1281   END SUBROUTINE xios(recv_field_r8_0d_hdl)
1282
1283   SUBROUTINE xios(recv_field_r8_0d)(fieldid, data0d_k8)
1284   IMPLICIT NONE
1285      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1286      REAL     (kind = 8)              , INTENT(OUT):: data0d_k8
1287      CALL cxios_read_data_k80(fieldid, len(fieldid), data0d_k8, 1)
1288   END SUBROUTINE xios(recv_field_r8_0d)
1289
1290   SUBROUTINE xios(recv_field_r8_1d_hdl)(field_hdl, data1d_k8)
1291   IMPLICIT NONE
1292      TYPE(txios(field))              :: field_hdl
1293      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data1d_k8(:)
1294      CALL cxios_read_data_k81_hdl(field_hdl%daddr, data1d_k8, size(data1d_k8, 1))
1295   END SUBROUTINE xios(recv_field_r8_1d_hdl)
1296
1297   SUBROUTINE xios(recv_field_r8_1d)(fieldid, data1d_k8)
1298   IMPLICIT NONE
1299      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1300      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data1d_k8(:)
1301      CALL cxios_read_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1))
1302   END SUBROUTINE xios(recv_field_r8_1d)
1303
1304   SUBROUTINE  xios(recv_field_r8_2d_hdl)(field_hdl, data2d_k8)
1305   IMPLICIT NONE
1306      TYPE(txios(field))              :: field_hdl
1307      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data2d_k8(:,:)
1308      CALL cxios_read_data_k82_hdl(field_hdl%daddr, data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
1309   END SUBROUTINE  xios(recv_field_r8_2d_hdl)
1310
1311   SUBROUTINE  xios(recv_field_r8_2d)(fieldid, data2d_k8)
1312   IMPLICIT NONE
1313      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1314      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data2d_k8(:,:)
1315      CALL cxios_read_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
1316   END SUBROUTINE  xios(recv_field_r8_2d)
1317
1318   SUBROUTINE  xios(recv_field_r8_3d_hdl)(field_hdl, data3d_k8)
1319   IMPLICIT NONE
1320      TYPE(txios(field))              :: field_hdl
1321      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data3d_k8(:,:,:)
1322      CALL cxios_read_data_k83_hdl(field_hdl%daddr, data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
1323   END SUBROUTINE  xios(recv_field_r8_3d_hdl)
1324
1325   SUBROUTINE  xios(recv_field_r8_3d)(fieldid, data3d_k8)
1326   IMPLICIT NONE
1327      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1328      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data3d_k8(:,:,:)
1329      CALL cxios_read_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
1330   END SUBROUTINE  xios(recv_field_r8_3d)
1331
1332   SUBROUTINE  xios(recv_field_r8_4d_hdl)(field_hdl, data4d_k8)
1333   IMPLICIT NONE
1334      TYPE(txios(field))              :: field_hdl
1335      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data4d_k8(:,:,:,:)
1336      CALL cxios_read_data_k84_hdl(field_hdl%daddr, data4d_k8, &
1337                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
1338                                size(data4d_k8, 4))
1339   END SUBROUTINE  xios(recv_field_r8_4d_hdl)
1340
1341   SUBROUTINE  xios(recv_field_r8_4d)(fieldid, data4d_k8)
1342   IMPLICIT NONE
1343      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1344      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data4d_k8(:,:,:,:)
1345      CALL cxios_read_data_k84(fieldid, len(fieldid), data4d_k8, &
1346                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
1347                                size(data4d_k8, 4))
1348   END SUBROUTINE  xios(recv_field_r8_4d)
1349
1350   SUBROUTINE  xios(recv_field_r8_5d_hdl)(field_hdl, data5d_k8)
1351   IMPLICIT NONE
1352      TYPE(txios(field))              :: field_hdl
1353      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data5d_k8(:,:,:,:,:)
1354      CALL cxios_read_data_k85_hdl(field_hdl%daddr, data5d_k8, &
1355                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
1356                                size(data5d_k8, 4), size(data5d_k8, 5))
1357   END SUBROUTINE  xios(recv_field_r8_5d_hdl)
1358
1359   SUBROUTINE  xios(recv_field_r8_5d)(fieldid, data5d_k8)
1360   IMPLICIT NONE
1361      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1362      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data5d_k8(:,:,:,:,:)
1363      CALL cxios_read_data_k85(fieldid, len(fieldid), data5d_k8, &
1364                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
1365                                size(data5d_k8, 4), size(data5d_k8, 5))
1366   END SUBROUTINE  xios(recv_field_r8_5d)
1367
1368   SUBROUTINE  xios(recv_field_r8_6d_hdl)(field_hdl, data6d_k8)
1369   IMPLICIT NONE
1370      TYPE(txios(field))              :: field_hdl
1371      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data6d_k8(:,:,:,:,:,:)
1372      CALL cxios_read_data_k86_hdl(field_hdl%daddr, data6d_k8, &
1373                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
1374                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6))
1375   END SUBROUTINE  xios(recv_field_r8_6d_hdl)
1376
1377   SUBROUTINE  xios(recv_field_r8_6d)(fieldid, data6d_k8)
1378   IMPLICIT NONE
1379      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1380      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data6d_k8(:,:,:,:,:,:)
1381      CALL cxios_read_data_k86(fieldid, len(fieldid), data6d_k8, &
1382                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
1383                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6))
1384   END SUBROUTINE  xios(recv_field_r8_6d)
1385
1386  SUBROUTINE  xios(recv_field_r8_7d_hdl)(field_hdl, data7d_k8)
1387   IMPLICIT NONE
1388      TYPE(txios(field))              :: field_hdl
1389      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data7d_k8(:,:,:,:,:,:,:)
1390      CALL cxios_read_data_k87_hdl(field_hdl%daddr, data7d_k8, &
1391                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
1392                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
1393                                size(data7d_k8, 7))
1394   END SUBROUTINE  xios(recv_field_r8_7d_hdl)
1395
1396  SUBROUTINE  xios(recv_field_r8_7d)(fieldid, data7d_k8)
1397   IMPLICIT NONE
1398      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1399      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data7d_k8(:,:,:,:,:,:,:)
1400      CALL cxios_read_data_k87(fieldid, len(fieldid), data7d_k8, &
1401                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
1402                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
1403                                size(data7d_k8, 7))
1404   END SUBROUTINE  xios(recv_field_r8_7d)
1405
1406   SUBROUTINE xios(recv_field_r4_0d_hdl)(field_hdl, data0d_k4)
1407   IMPLICIT NONE
1408      TYPE(txios(field))              :: field_hdl
1409      REAL     (kind = 4)              , INTENT(OUT):: data0d_k4
1410      CALL cxios_read_data_k40_hdl(field_hdl%daddr, data0d_k4, 1)
1411   END SUBROUTINE xios(recv_field_r4_0d_hdl)
1412
1413   SUBROUTINE xios(recv_field_r4_0d)(fieldid, data0d_k4)
1414   IMPLICIT NONE
1415      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1416      REAL     (kind = 4)              , INTENT(OUT):: data0d_k4
1417      CALL cxios_read_data_k40(fieldid, len(fieldid), data0d_k4, 1)
1418   END SUBROUTINE xios(recv_field_r4_0d)
1419
1420   SUBROUTINE xios(recv_field_r4_1d_hdl)(field_hdl, data1d_k4)
1421   IMPLICIT NONE
1422      TYPE(txios(field))              :: field_hdl
1423      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data1d_k4(:)
1424      CALL cxios_read_data_k41_hdl(field_hdl%daddr, data1d_k4, size(data1d_k4, 1))
1425   END SUBROUTINE xios(recv_field_r4_1d_hdl)
1426
1427   SUBROUTINE xios(recv_field_r4_1d)(fieldid, data1d_k4)
1428   IMPLICIT NONE
1429      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1430      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data1d_k4(:)
1431      CALL cxios_read_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1))
1432   END SUBROUTINE xios(recv_field_r4_1d)
1433
1434   SUBROUTINE xios(recv_field_r4_2d_hdl)(field_hdl, data2d_k4)
1435   IMPLICIT NONE
1436      TYPE(txios(field))              :: field_hdl
1437      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data2d_k4(:,:)
1438      CALL cxios_read_data_k42_hdl(field_hdl%daddr, data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
1439   END SUBROUTINE xios(recv_field_r4_2d_hdl)
1440
1441   SUBROUTINE xios(recv_field_r4_2d)(fieldid, data2d_k4)
1442   IMPLICIT NONE
1443      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1444      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data2d_k4(:,:)
1445      CALL cxios_read_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
1446   END SUBROUTINE xios(recv_field_r4_2d)
1447
1448   SUBROUTINE xios(recv_field_r4_3d_hdl)(field_hdl, data3d_k4)
1449   IMPLICIT NONE
1450      TYPE(txios(field))              :: field_hdl
1451      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data3d_k4(:,:,:)
1452      CALL cxios_read_data_k43_hdl(field_hdl%daddr, data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
1453   END SUBROUTINE xios(recv_field_r4_3d_hdl)
1454
1455   SUBROUTINE xios(recv_field_r4_3d)(fieldid, data3d_k4)
1456   IMPLICIT NONE
1457      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1458      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data3d_k4(:,:,:)
1459      CALL cxios_read_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
1460   END SUBROUTINE xios(recv_field_r4_3d)
1461
1462   SUBROUTINE  xios(recv_field_r4_4d_hdl)(field_hdl, data4d_k4)
1463   IMPLICIT NONE
1464      TYPE(txios(field))              :: field_hdl
1465      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data4d_k4(:,:,:,:)
1466      CALL cxios_read_data_k44_hdl(field_hdl%daddr, data4d_k4, &
1467                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
1468                                size(data4d_k4, 4))
1469   END SUBROUTINE  xios(recv_field_r4_4d_hdl)
1470
1471   SUBROUTINE  xios(recv_field_r4_4d)(fieldid, data4d_k4)
1472   IMPLICIT NONE
1473      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1474      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data4d_k4(:,:,:,:)
1475      CALL cxios_read_data_k44(fieldid, len(fieldid), data4d_k4, &
1476                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
1477                                size(data4d_k4, 4))
1478   END SUBROUTINE  xios(recv_field_r4_4d)
1479
1480   SUBROUTINE  xios(recv_field_r4_5d_hdl)(field_hdl, data5d_k4)
1481   IMPLICIT NONE
1482      TYPE(txios(field))              :: field_hdl
1483      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data5d_k4(:,:,:,:,:)
1484      CALL cxios_read_data_k45_hdl(field_hdl%daddr, data5d_k4, &
1485                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
1486                                size(data5d_k4, 4), size(data5d_k4, 5))
1487   END SUBROUTINE  xios(recv_field_r4_5d_hdl)
1488
1489   SUBROUTINE  xios(recv_field_r4_5d)(fieldid, data5d_k4)
1490   IMPLICIT NONE
1491      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1492      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data5d_k4(:,:,:,:,:)
1493      CALL cxios_read_data_k45(fieldid, len(fieldid), data5d_k4, &
1494                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
1495                                size(data5d_k4, 4), size(data5d_k4, 5))
1496   END SUBROUTINE  xios(recv_field_r4_5d)
1497
1498   SUBROUTINE  xios(recv_field_r4_6d_hdl)(field_hdl, data6d_k4)
1499   IMPLICIT NONE
1500      TYPE(txios(field))              :: field_hdl
1501      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data6d_k4(:,:,:,:,:,:)
1502      CALL cxios_read_data_k46_hdl(field_hdl%daddr, data6d_k4, &
1503                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
1504                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6))
1505   END SUBROUTINE  xios(recv_field_r4_6d_hdl)
1506
1507   SUBROUTINE  xios(recv_field_r4_6d)(fieldid, data6d_k4)
1508   IMPLICIT NONE
1509      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1510      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data6d_k4(:,:,:,:,:,:)
1511      CALL cxios_read_data_k46(fieldid, len(fieldid), data6d_k4, &
1512                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
1513                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6))
1514   END SUBROUTINE  xios(recv_field_r4_6d)
1515
1516   SUBROUTINE  xios(recv_field_r4_7d_hdl)(field_hdl, data7d_k4)
1517   IMPLICIT NONE
1518      TYPE(txios(field))              :: field_hdl
1519      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data7d_k4(:,:,:,:,:,:,:)
1520      CALL cxios_read_data_k47_hdl(field_hdl%daddr, data7d_k4, &
1521                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
1522                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
1523                                size(data7d_k4, 7))
1524   END SUBROUTINE  xios(recv_field_r4_7d_hdl)
1525
1526   SUBROUTINE  xios(recv_field_r4_7d)(fieldid, data7d_k4)
1527   IMPLICIT NONE
1528      CHARACTER(len = *)               , INTENT(IN) :: fieldid
1529      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data7d_k4(:,:,:,:,:,:,:)
1530      CALL cxios_read_data_k47(fieldid, len(fieldid), data7d_k4, &
1531                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
1532                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
1533                                size(data7d_k4, 7))
1534   END SUBROUTINE  xios(recv_field_r4_7d)
1535
1536   ! Get variable functions
1537   LOGICAL FUNCTION xios(getVar_k8)(varId, data_k8)
1538   USE ISO_C_BINDING
1539   IMPLICIT NONE
1540      LOGICAL  (kind = C_BOOL)                      :: val
1541      CHARACTER(len = *)               , INTENT(IN) :: varId
1542      REAL     (kind = 8)              , INTENT(OUT):: data_k8
1543
1544      CALL cxios_get_variable_data_k8(varId, len(varId), data_k8, val)
1545
1546      CALL xios_bool_to_logical_0d(val)
1547      xios(getVar_k8) = val
1548   END FUNCTION xios(getVar_k8)
1549
1550   LOGICAL FUNCTION xios(getVar_k4)(varId, data_k4)
1551   USE ISO_C_BINDING
1552   IMPLICIT NONE
1553      LOGICAL  (kind = C_BOOL)                      :: val
1554      CHARACTER(len = *)               , INTENT(IN) :: varId
1555      REAL     (kind = 4)              , INTENT(OUT):: data_k4
1556
1557      CALL cxios_get_variable_data_k4(varId, len(varId), data_k4, val)
1558
1559      CALL xios_bool_to_logical_0d(val)
1560      xios(getVar_k4) = val
1561   END FUNCTION xios(getVar_k4)
1562
1563   LOGICAL FUNCTION xios(getVar_int)(varId, data_int)
1564   USE ISO_C_BINDING
1565   IMPLICIT NONE
1566      LOGICAL  (kind = C_BOOL)                      :: val
1567      CHARACTER(len = *)               , INTENT(IN) :: varId
1568      INTEGER                          , INTENT(OUT):: data_int
1569
1570      CALL cxios_get_variable_data_int(varId, len(varId), data_int, val)
1571
1572      CALL xios_bool_to_logical_0d(val)
1573      xios(getVar_int) = val
1574   END FUNCTION xios(getVar_int)
1575
1576   LOGICAL FUNCTION xios(getVar_logic)(varId, data_logic)
1577   USE ISO_C_BINDING
1578   IMPLICIT NONE
1579      LOGICAL  (kind = C_BOOL)                      :: val
1580      CHARACTER(len  = *)              , INTENT(IN) :: varId
1581      LOGICAL  ,INTENT(OUT)                         :: data_logic
1582      LOGICAL (C_BOOL)                              :: data_tmp
1583
1584      CALL cxios_get_variable_data_logic(varId, len(varId), data_tmp, val)
1585      CALL xios_bool_to_logical_0d(val)
1586      xios(getVar_logic) = val
1587      IF (val) THEN
1588         CALL xios_bool_to_logical_0d(data_tmp)
1589         data_logic = data_tmp
1590      ENDIF
1591   END FUNCTION xios(getVar_logic)
1592
1593   LOGICAL FUNCTION xios(getVar_char)(varId, data_char)
1594   USE ISO_C_BINDING
1595   IMPLICIT NONE
1596      LOGICAL  (kind = C_BOOL)                      :: val
1597      CHARACTER(len  = *)              , INTENT(IN) :: varId
1598      CHARACTER(len  = *)              , INTENT(OUT):: data_char
1599
1600      CALL cxios_get_variable_data_char(varId, len(varId), data_char, len(data_char), val)
1601
1602      CALL xios_bool_to_logical_0d(val)
1603      xios(getVar_char) = val
1604   END FUNCTION xios(getVar_char)
1605
1606   ! Set variable functions
1607   LOGICAL FUNCTION xios(setVar_k8)(varId, data_k8)
1608   USE ISO_C_BINDING
1609   IMPLICIT NONE
1610      LOGICAL  (kind = C_BOOL)                      :: val
1611      CHARACTER(len = *)               , INTENT(IN) :: varId
1612      REAL     (kind = 8)              , INTENT(IN) :: data_k8
1613
1614      CALL cxios_set_variable_data_k8(varId, len(varId), data_k8, val)
1615
1616      CALL xios_bool_to_logical_0d(val)
1617      xios(setVar_k8) = val
1618   END FUNCTION xios(setVar_k8)
1619
1620   LOGICAL FUNCTION xios(setVar_k4)(varId, data_k4)
1621   USE ISO_C_BINDING
1622   IMPLICIT NONE
1623      LOGICAL  (kind = C_BOOL)                      :: val
1624      CHARACTER(len = *)               , INTENT(IN) :: varId
1625      REAL     (kind = 4)              , INTENT(IN) :: data_k4
1626
1627      CALL cxios_set_variable_data_k4(varId, len(varId), data_k4, val)
1628
1629      CALL xios_bool_to_logical_0d(val)
1630      xios(setVar_k4) = val
1631   END FUNCTION xios(setVar_k4)
1632
1633   LOGICAL FUNCTION xios(setVar_int)(varId, data_int)
1634   USE ISO_C_BINDING
1635   IMPLICIT NONE
1636      LOGICAL  (kind = C_BOOL)                           :: val
1637      CHARACTER(len = *)               , INTENT(IN) :: varId
1638      INTEGER                          , INTENT(IN) :: data_int
1639
1640      CALL cxios_set_variable_data_int(varId, len(varId), data_int, val)
1641
1642      CALL xios_bool_to_logical_0d(val)
1643      xios(setVar_int) = val
1644   END FUNCTION xios(setVar_int)
1645
1646   LOGICAL FUNCTION xios(setVar_logic)(varId, data_logic)
1647   USE ISO_C_BINDING
1648   IMPLICIT NONE
1649      LOGICAL(kind = C_BOOL)                        :: val
1650      CHARACTER(len  = *)              , INTENT(IN) :: varId
1651      LOGICAL                          , INTENT(IN) :: data_logic
1652      LOGICAL  (kind = C_BOOL)                      :: data_tmp
1653
1654      data_tmp = data_logic
1655      CALL xios_logical_to_bool_0d(data_tmp)
1656      CALL cxios_set_variable_data_logic(varId, len(varId), data_tmp, val)
1657
1658      CALL xios_bool_to_logical_0d(val)
1659      xios(setVar_logic) = val
1660   END FUNCTION xios(setVar_logic)
1661
1662   LOGICAL FUNCTION xios(setVar_char)(varId, data_char)
1663   USE ISO_C_BINDING
1664   IMPLICIT NONE
1665      LOGICAL  (kind = C_BOOL)                      :: val
1666      CHARACTER(len  = *)              , INTENT(IN) :: varId
1667      CHARACTER(len  = *)              , INTENT(IN) :: data_char
1668
1669      CALL cxios_set_variable_data_char(varId, len(varId), data_char, len(data_char), val)
1670
1671      CALL xios_bool_to_logical_0d(val)
1672      xios(setVar_char) = val
1673   END FUNCTION xios(setVar_char)
1674
1675END MODULE IDATA
Note: See TracBrowser for help on using the repository browser.