source: XIOS/trunk/src/interface/fortran/idata.F90 @ 2131

Last change on this file since 2131 was 2131, checked in by oabramkina, 3 years ago

Merging branch dev_oa with tiling into trunk

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