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

Last change on this file since 2025 was 2025, checked in by ymipsl, 9 months ago

New feature : introduce handle acces to xios_send_field and xios_recv_field. Only access by id was possible before.
YM

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