source: XIOS/dev/dev_olga/src/interface/fortran/idata.F90 @ 1054

Last change on this file since 1054 was 1054, checked in by oabramkina, 7 years ago

dev: intermediate commit.

  • 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: 42.9 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE IDATA
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE ICONTEXT
6
7   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
8
9      SUBROUTINE  cxios_init_server() BIND(C)
10         USE ISO_C_BINDING
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
46      SUBROUTINE  cxios_finalize() BIND(C)
47      END SUBROUTINE cxios_finalize
48
49      SUBROUTINE  cxios_solve_inheritance() BIND(C)
50      END SUBROUTINE cxios_solve_inheritance
51
52      SUBROUTINE cxios_write_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
53         USE ISO_C_BINDING
54         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
55         REAL     (kind = C_DOUBLE)               :: data_k8
56         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
57         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
58      END SUBROUTINE cxios_write_data_k80
59
60      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
61         USE ISO_C_BINDING
62         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
63         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
64         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
65         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
66      END SUBROUTINE cxios_write_data_k81
67
68      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C)
69         USE ISO_C_BINDING
70         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
71         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
72         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
73         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
74      END SUBROUTINE cxios_write_data_k82
75
76      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
77         USE ISO_C_BINDING
78         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
79         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
80         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
81         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
82      END SUBROUTINE cxios_write_data_k83
83
84      SUBROUTINE cxios_write_data_k84(fieldid, fieldid_size, data_k8, &
85                                      data_0size, data_1size, data_2size, &
86                                      data_3size) BIND(C)
87         USE ISO_C_BINDING
88         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
89         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
90         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
91         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
92         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
93      END SUBROUTINE cxios_write_data_k84
94
95      SUBROUTINE cxios_write_data_k85(fieldid, fieldid_size, data_k8, &
96                                      data_0size, data_1size, data_2size, &
97                                      data_3size, data_4size) BIND(C)
98         USE ISO_C_BINDING
99         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
100         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
101         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
102         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
103         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
104      END SUBROUTINE cxios_write_data_k85
105
106      SUBROUTINE cxios_write_data_k86(fieldid, fieldid_size, data_k8, &
107                                      data_0size, data_1size, data_2size, &
108                                      data_3size, data_4size, data_5size) BIND(C)
109         USE ISO_C_BINDING
110         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
111         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
112         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
113         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
114         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
115      END SUBROUTINE cxios_write_data_k86
116
117      SUBROUTINE cxios_write_data_k87(fieldid, fieldid_size, data_k8, &
118                                      data_0size, data_1size, data_2size, &
119                                      data_3size, data_4size, data_5size, &
120                                      data_6size) BIND(C)
121         USE ISO_C_BINDING
122         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
123         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
124         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
125         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
126         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
127         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
128      END SUBROUTINE cxios_write_data_k87
129
130      SUBROUTINE cxios_write_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
131         USE ISO_C_BINDING
132         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
133         REAL     (kind = C_FLOAT)                :: data_k4
134         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
135         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
136      END SUBROUTINE cxios_write_data_k40
137
138      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
139         USE ISO_C_BINDING
140         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
141         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
142         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
143         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
144      END SUBROUTINE cxios_write_data_k41
145
146      SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C)
147         USE ISO_C_BINDING
148         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
149         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
150         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
151         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
152      END SUBROUTINE cxios_write_data_k42
153
154      SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
155         USE ISO_C_BINDING
156         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
157         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
158         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
159         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
160      END SUBROUTINE cxios_write_data_k43
161
162      SUBROUTINE cxios_write_data_k44(fieldid, fieldid_size, data_k4, &
163                                      data_0size, data_1size, data_2size, &
164                                      data_3size) BIND(C)
165         USE ISO_C_BINDING
166         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
167         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
168         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
169         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
170         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
171      END SUBROUTINE cxios_write_data_k44
172
173      SUBROUTINE cxios_write_data_k45(fieldid, fieldid_size, data_k4, &
174                                      data_0size, data_1size, data_2size, &
175                                      data_3size, data_4size) BIND(C)
176         USE ISO_C_BINDING
177         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
178         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
179         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
180         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
181         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
182      END SUBROUTINE cxios_write_data_k45
183
184      SUBROUTINE cxios_write_data_k46(fieldid, fieldid_size, data_k4, &
185                                      data_0size, data_1size, data_2size, &
186                                      data_3size, data_4size, data_5size) BIND(C)
187         USE ISO_C_BINDING
188         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
189         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
190         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
191         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
192         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
193      END SUBROUTINE cxios_write_data_k46
194
195      SUBROUTINE cxios_write_data_k47(fieldid, fieldid_size, data_k4, &
196                                      data_0size, data_1size, data_2size, &
197                                      data_3size, data_4size, data_5size, &
198                                      data_6size) BIND(C)
199         USE ISO_C_BINDING
200         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
201         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
202         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
203         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
204         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
205         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
206      END SUBROUTINE cxios_write_data_k47
207
208      ! Read data
209      SUBROUTINE cxios_read_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
210         USE ISO_C_BINDING
211         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
212         REAL     (kind = C_DOUBLE)               :: data_k8
213         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
214         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
215      END SUBROUTINE cxios_read_data_k80
216
217      SUBROUTINE cxios_read_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
218         USE ISO_C_BINDING
219         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
220         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
221         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
222         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
223      END SUBROUTINE cxios_read_data_k81
224
225      SUBROUTINE cxios_read_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) BIND(C)
226         USE ISO_C_BINDING
227         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
228         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
229         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
230         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
231      END SUBROUTINE cxios_read_data_k82
232
233      SUBROUTINE cxios_read_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
234         USE ISO_C_BINDING
235         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
236         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
237         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
238         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
239      END SUBROUTINE cxios_read_data_k83
240
241      SUBROUTINE cxios_read_data_k84(fieldid, fieldid_size, data_k8, &
242                                      data_0size, data_1size, data_2size, &
243                                      data_3size) BIND(C)
244         USE ISO_C_BINDING
245         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
246         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
247         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
248         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
249         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
250      END SUBROUTINE cxios_read_data_k84
251
252      SUBROUTINE cxios_read_data_k85(fieldid, fieldid_size, data_k8, &
253                                      data_0size, data_1size, data_2size, &
254                                      data_3size, data_4size) BIND(C)
255         USE ISO_C_BINDING
256         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
257         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
258         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
259         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
260         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
261      END SUBROUTINE cxios_read_data_k85
262
263      SUBROUTINE cxios_read_data_k86(fieldid, fieldid_size, data_k8, &
264                                      data_0size, data_1size, data_2size, &
265                                      data_3size, data_4size, data_5size) BIND(C)
266         USE ISO_C_BINDING
267         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
268         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
269         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
270         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
271         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
272      END SUBROUTINE cxios_read_data_k86
273
274      SUBROUTINE cxios_read_data_k87(fieldid, fieldid_size, data_k8, &
275                                      data_0size, data_1size, data_2size, &
276                                      data_3size, data_4size, data_5size, &
277                                      data_6size) BIND(C)
278         USE ISO_C_BINDING
279         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
280         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
281         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
282         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
283         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size, data_5size
284         INTEGER  (kind = C_INT)   , VALUE        :: data_6size
285      END SUBROUTINE cxios_read_data_k87
286
287      SUBROUTINE cxios_read_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
288         USE ISO_C_BINDING
289         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
290         REAL     (kind = C_FLOAT)                :: data_k4
291         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
292         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
293      END SUBROUTINE cxios_read_data_k40
294
295      SUBROUTINE cxios_read_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
296         USE ISO_C_BINDING
297         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
298         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
299         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
300         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
301      END SUBROUTINE cxios_read_data_k41
302
303      SUBROUTINE cxios_read_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C)
304         USE ISO_C_BINDING
305         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
306         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
307         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
308         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
309      END SUBROUTINE cxios_read_data_k42
310
311      SUBROUTINE cxios_read_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
312         USE ISO_C_BINDING
313         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
314         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
315         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
316         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
317      END SUBROUTINE cxios_read_data_k43
318
319      SUBROUTINE cxios_read_data_k44(fieldid, fieldid_size, data_k4, &
320                                      data_0size, data_1size, data_2size, &
321                                      data_3size) BIND(C)
322         USE ISO_C_BINDING
323         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
324         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
325         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
326         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
327         INTEGER  (kind = C_INT)   , VALUE        :: data_3size
328      END SUBROUTINE cxios_read_data_k44
329
330      SUBROUTINE cxios_read_data_k45(fieldid, fieldid_size, data_k4, &
331                                      data_0size, data_1size, data_2size, &
332                                      data_3size, data_4size) BIND(C)
333         USE ISO_C_BINDING
334         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
335         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
336         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
337         INTEGER  (kind = C_INT)   , VALUE        :: data_0size, data_1size, data_2size
338         INTEGER  (kind = C_INT)   , VALUE        :: data_3size, data_4size
339      END SUBROUTINE cxios_read_data_k45
340
341      SUBROUTINE cxios_read_data_k46(fieldid, fieldid_size, data_k4, &
342                                      data_0size, data_1size, data_2size, &
343                                      data_3size, data_4size, data_5size) 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      END SUBROUTINE cxios_read_data_k46
351
352      SUBROUTINE cxios_read_data_k47(fieldid, fieldid_size, data_k4, &
353                                      data_0size, data_1size, data_2size, &
354                                      data_3size, data_4size, data_5size, &
355                                      data_6size) BIND(C)
356         USE ISO_C_BINDING
357         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
358         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
359         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
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      END SUBROUTINE cxios_read_data_k47
364
365      ! Binding C and Fortran interface of get_variable (icdata.cpp)
366      SUBROUTINE cxios_get_variable_data_k8(vardid, varid_size, data_k8, is_var_existed) BIND(C)
367         USE ISO_C_BINDING
368         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
369         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
370         REAL     (kind = C_DOUBLE)               :: data_k8
371         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
372      END SUBROUTINE cxios_get_variable_data_k8
373
374      SUBROUTINE cxios_get_variable_data_k4(vardid, varid_size, data_k4, is_var_existed) BIND(C)
375         USE ISO_C_BINDING
376         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
377         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
378         REAL     (kind = C_FLOAT)                :: data_k4
379         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
380      END SUBROUTINE cxios_get_variable_data_k4
381
382      SUBROUTINE cxios_get_variable_data_int(vardid, varid_size, data_int, is_var_existed) BIND(C)
383         USE ISO_C_BINDING
384         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
385         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
386         INTEGER  (kind = C_INT)                  :: data_int
387         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
388      END SUBROUTINE cxios_get_variable_data_int
389
390      SUBROUTINE cxios_get_variable_data_logic(vardid, varid_size, data_logic, is_var_existed) BIND(C)
391         USE ISO_C_BINDING
392         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
393         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
394         LOGICAL  (kind = 4)                      :: data_logic
395         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
396      END SUBROUTINE cxios_get_variable_data_logic
397
398      SUBROUTINE cxios_get_variable_data_char(vardid, varid_size, data_char, data_size_in, is_var_existed) BIND(C)
399         USE ISO_C_BINDING
400         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
401         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
402         INTEGER  (kind = C_INT)   , VALUE        :: data_size_in
403         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: data_char
404         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
405      END SUBROUTINE cxios_get_variable_data_char
406
407      ! Binding C and Fortran interface of set_variable (icdata.cpp)
408      SUBROUTINE cxios_set_variable_data_k8(vardid, varid_size, data_k8, is_var_existed) BIND(C)
409         USE ISO_C_BINDING
410         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
411         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
412         REAL     (kind = C_DOUBLE), VALUE        :: data_k8
413         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
414      END SUBROUTINE cxios_set_variable_data_k8
415
416      SUBROUTINE cxios_set_variable_data_k4(vardid, varid_size, data_k4, is_var_existed) BIND(C)
417         USE ISO_C_BINDING
418         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
419         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
420         REAL     (kind = C_FLOAT) , VALUE        :: data_k4
421         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
422      END SUBROUTINE cxios_set_variable_data_k4
423
424      SUBROUTINE cxios_set_variable_data_int(vardid, varid_size, data_int, is_var_existed) BIND(C)
425         USE ISO_C_BINDING
426         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
427         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
428         INTEGER  (kind = C_INT)   , VALUE        :: data_int
429         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
430      END SUBROUTINE cxios_set_variable_data_int
431
432      SUBROUTINE cxios_set_variable_data_logic(vardid, varid_size, data_logic, is_var_existed) BIND(C)
433         USE ISO_C_BINDING
434         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
435         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
436         LOGICAL  (kind = 4)       , VALUE        :: data_logic
437         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
438      END SUBROUTINE cxios_set_variable_data_logic
439
440      SUBROUTINE cxios_set_variable_data_char(vardid, varid_size, data_char, data_size_in, is_var_existed) BIND(C)
441         USE ISO_C_BINDING
442         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
443         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
444         INTEGER  (kind = C_INT)   , VALUE        :: data_size_in
445         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: data_char
446         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
447      END SUBROUTINE cxios_set_variable_data_char
448
449   END INTERFACE
450
451
452   CONTAINS ! Fonctions disponibles pour les utilisateurs.
453
454   SUBROUTINE  xios(init_server)()
455   IMPLICIT NONE
456       CALL cxios_init_server()
457   END SUBROUTINE xios(init_server)
458
459   SUBROUTINE  xios(initialize)(client_id, local_comm, return_comm)
460   IMPLICIT NONE
461   INCLUDE 'mpif.h'
462   CHARACTER(LEN=*),INTENT(IN) :: client_id
463   INTEGER,INTENT(IN),OPTIONAL         :: local_comm
464   INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
465   INTEGER :: f_local_comm
466   INTEGER :: f_return_comm
467
468      IF (PRESENT(local_comm)) THEN
469        f_local_comm=local_comm
470      ELSE
471        f_local_comm = MPI_COMM_NULL
472      ENDIF
473
474      CALL cxios_init_client(client_id,LEN(client_id),f_local_comm,f_return_comm)
475
476      IF (PRESENT(return_comm)) return_comm=f_return_comm
477
478   END SUBROUTINE  xios(initialize)
479
480
481   SUBROUTINE  xios(context_initialize)(context_id,comm)
482   IMPLICIT NONE
483   CHARACTER(LEN=*),INTENT(IN)  :: context_id
484   INTEGER, INTENT(IN)          :: comm
485
486      CALL cxios_context_initialize(context_id,LEN(context_id),comm)
487
488    END SUBROUTINE  xios(context_initialize)
489
490
491   LOGICAL FUNCTION  xios(context_is_initialized)(context_id)
492   USE ISO_C_BINDING
493   IMPLICIT NONE
494   CHARACTER(LEN=*),INTENT(IN)  :: context_id
495   LOGICAL(KIND=C_BOOL) :: is_init
496
497      CALL cxios_context_is_initialized(context_id, LEN(context_id), is_init)
498      xios(context_is_initialized) = is_init
499
500    END FUNCTION xios(context_is_initialized)
501
502
503   SUBROUTINE  xios(finalize)
504   IMPLICIT NONE
505
506      CALL cxios_finalize
507
508    END SUBROUTINE  xios(finalize)
509
510
511   SUBROUTINE xios(close_context_definition)()
512   IMPLICIT NONE
513      CALL cxios_context_close_definition()
514   END SUBROUTINE xios(close_context_definition)
515
516
517   SUBROUTINE xios(context_finalize)()
518   IMPLICIT NONE
519      CALL cxios_context_finalize()
520   END SUBROUTINE xios(context_finalize)
521
522   SUBROUTINE xios(solve_inheritance)()
523   IMPLICIT NONE
524      CALL cxios_solve_inheritance()
525   END SUBROUTINE xios(solve_inheritance)
526
527   ! Send field functions
528   SUBROUTINE xios(send_field_r8_0d)(fieldid, data_k8)
529   IMPLICIT NONE
530      CHARACTER(len = *) , INTENT(IN) :: fieldid
531      REAL     (kind = 8), INTENT(IN) :: data_k8
532      CALL cxios_write_data_k80(fieldid, len(fieldid), data_k8, 1)
533   END SUBROUTINE xios(send_field_r8_0d)
534
535   SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8)
536   IMPLICIT NONE
537      CHARACTER(len = *)               , INTENT(IN) :: fieldid
538      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
539      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1))
540   END SUBROUTINE xios(send_field_r8_1d)
541
542   SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8)
543   IMPLICIT NONE
544      CHARACTER(len = *)               , INTENT(IN) :: fieldid
545      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
546      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
547   END SUBROUTINE  xios(send_field_r8_2d)
548
549   SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8)
550   IMPLICIT NONE
551      CHARACTER(len = *)               , INTENT(IN) :: fieldid
552      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
553      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
554   END SUBROUTINE  xios(send_field_r8_3d)
555
556   SUBROUTINE  xios(send_field_r8_4d)(fieldid, data4d_k8)
557   IMPLICIT NONE
558      CHARACTER(len = *)               , INTENT(IN) :: fieldid
559      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data4d_k8(:,:,:,:)
560      CALL cxios_write_data_k84(fieldid, len(fieldid), data4d_k8, &
561                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
562                                size(data4d_k8, 4))
563   END SUBROUTINE  xios(send_field_r8_4d)
564
565   SUBROUTINE  xios(send_field_r8_5d)(fieldid, data5d_k8)
566   IMPLICIT NONE
567      CHARACTER(len = *)               , INTENT(IN) :: fieldid
568      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data5d_k8(:,:,:,:,:)
569      CALL cxios_write_data_k85(fieldid, len(fieldid), data5d_k8, &
570                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
571                                size(data5d_k8, 4), size(data5d_k8, 5))
572   END SUBROUTINE  xios(send_field_r8_5d)
573
574   SUBROUTINE  xios(send_field_r8_6d)(fieldid, data6d_k8)
575   IMPLICIT NONE
576      CHARACTER(len = *)               , INTENT(IN) :: fieldid
577      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data6d_k8(:,:,:,:,:,:)
578      CALL cxios_write_data_k86(fieldid, len(fieldid), data6d_k8, &
579                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
580                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6))
581   END SUBROUTINE  xios(send_field_r8_6d)
582
583   SUBROUTINE  xios(send_field_r8_7d)(fieldid, data7d_k8)
584   IMPLICIT NONE
585      CHARACTER(len = *)               , INTENT(IN) :: fieldid
586      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data7d_k8(:,:,:,:,:,:,:)
587      CALL cxios_write_data_k87(fieldid, len(fieldid), data7d_k8, &
588                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
589                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
590                                size(data7d_k8, 7))
591   END SUBROUTINE  xios(send_field_r8_7d)
592
593   SUBROUTINE xios(send_field_r4_0d)(fieldid, data_k4)
594   IMPLICIT NONE
595      CHARACTER(len = *) , INTENT(IN) :: fieldid
596      REAL     (kind = 4), INTENT(IN) :: data_k4
597      CALL cxios_write_data_k40(fieldid, len(fieldid), data_k4, 1)
598   END SUBROUTINE xios(send_field_r4_0d)
599
600   SUBROUTINE xios(send_field_r4_1d)(fieldid, data1d_k4)
601   IMPLICIT NONE
602      CHARACTER(len = *)               , INTENT(IN) :: fieldid
603      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
604      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1))
605   END SUBROUTINE xios(send_field_r4_1d)
606
607   SUBROUTINE xios(send_field_r4_2d)(fieldid, data2d_k4)
608   IMPLICIT NONE
609      CHARACTER(len = *)               , INTENT(IN) :: fieldid
610      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
611      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
612   END SUBROUTINE xios(send_field_r4_2d)
613
614   SUBROUTINE xios(send_field_r4_3d)(fieldid, data3d_k4)
615   IMPLICIT NONE
616      CHARACTER(len = *)               , INTENT(IN) :: fieldid
617      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
618      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
619   END SUBROUTINE xios(send_field_r4_3d)
620
621   SUBROUTINE  xios(send_field_r4_4d)(fieldid, data4d_k4)
622   IMPLICIT NONE
623      CHARACTER(len = *)               , INTENT(IN) :: fieldid
624      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data4d_k4(:,:,:,:)
625      CALL cxios_write_data_k44(fieldid, len(fieldid), data4d_k4, &
626                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
627                                size(data4d_k4, 4))
628   END SUBROUTINE  xios(send_field_r4_4d)
629
630   SUBROUTINE  xios(send_field_r4_5d)(fieldid, data5d_k4)
631   IMPLICIT NONE
632      CHARACTER(len = *)               , INTENT(IN) :: fieldid
633      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data5d_k4(:,:,:,:,:)
634      CALL cxios_write_data_k45(fieldid, len(fieldid), data5d_k4, &
635                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
636                                size(data5d_k4, 4), size(data5d_k4, 5))
637   END SUBROUTINE  xios(send_field_r4_5d)
638
639   SUBROUTINE  xios(send_field_r4_6d)(fieldid, data6d_k4)
640   IMPLICIT NONE
641      CHARACTER(len = *)               , INTENT(IN) :: fieldid
642      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data6d_k4(:,:,:,:,:,:)
643      CALL cxios_write_data_k46(fieldid, len(fieldid), data6d_k4, &
644                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
645                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6))
646   END SUBROUTINE  xios(send_field_r4_6d)
647
648   SUBROUTINE  xios(send_field_r4_7d)(fieldid, data7d_k4)
649   IMPLICIT NONE
650      CHARACTER(len = *)               , INTENT(IN) :: fieldid
651      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data7d_k4(:,:,:,:,:,:,:)
652      CALL cxios_write_data_k47(fieldid, len(fieldid), data7d_k4, &
653                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
654                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
655                                size(data7d_k4, 7))
656   END SUBROUTINE  xios(send_field_r4_7d)
657
658   ! Receive field functions
659   SUBROUTINE xios(recv_field_r8_0d)(fieldid, data0d_k8)
660   IMPLICIT NONE
661      CHARACTER(len = *)               , INTENT(IN) :: fieldid
662      REAL     (kind = 8)              , INTENT(OUT):: data0d_k8
663      CALL cxios_read_data_k80(fieldid, len(fieldid), data0d_k8, 1)
664   END SUBROUTINE xios(recv_field_r8_0d)
665
666   SUBROUTINE xios(recv_field_r8_1d)(fieldid, data1d_k8)
667   IMPLICIT NONE
668      CHARACTER(len = *)               , INTENT(IN) :: fieldid
669      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data1d_k8(:)
670      CALL cxios_read_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1))
671   END SUBROUTINE xios(recv_field_r8_1d)
672
673   SUBROUTINE  xios(recv_field_r8_2d)(fieldid, data2d_k8)
674   IMPLICIT NONE
675      CHARACTER(len = *)               , INTENT(IN) :: fieldid
676      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data2d_k8(:,:)
677      CALL cxios_read_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
678   END SUBROUTINE  xios(recv_field_r8_2d)
679
680   SUBROUTINE  xios(recv_field_r8_3d)(fieldid, data3d_k8)
681   IMPLICIT NONE
682      CHARACTER(len = *)               , INTENT(IN) :: fieldid
683      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data3d_k8(:,:,:)
684      CALL cxios_read_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
685   END SUBROUTINE  xios(recv_field_r8_3d)
686
687   SUBROUTINE  xios(recv_field_r8_4d)(fieldid, data4d_k8)
688   IMPLICIT NONE
689      CHARACTER(len = *)               , INTENT(IN) :: fieldid
690      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data4d_k8(:,:,:,:)
691      CALL cxios_read_data_k84(fieldid, len(fieldid), data4d_k8, &
692                                size(data4d_k8, 1), size(data4d_k8, 2), size(data4d_k8, 3), &
693                                size(data4d_k8, 4))
694   END SUBROUTINE  xios(recv_field_r8_4d)
695
696   SUBROUTINE  xios(recv_field_r8_5d)(fieldid, data5d_k8)
697   IMPLICIT NONE
698      CHARACTER(len = *)               , INTENT(IN) :: fieldid
699      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data5d_k8(:,:,:,:,:)
700      CALL cxios_read_data_k85(fieldid, len(fieldid), data5d_k8, &
701                                size(data5d_k8, 1), size(data5d_k8, 2), size(data5d_k8, 3), &
702                                size(data5d_k8, 4), size(data5d_k8, 5))
703   END SUBROUTINE  xios(recv_field_r8_5d)
704
705   SUBROUTINE  xios(recv_field_r8_6d)(fieldid, data6d_k8)
706   IMPLICIT NONE
707      CHARACTER(len = *)               , INTENT(IN) :: fieldid
708      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data6d_k8(:,:,:,:,:,:)
709      CALL cxios_read_data_k86(fieldid, len(fieldid), data6d_k8, &
710                                size(data6d_k8, 1), size(data6d_k8, 2), size(data6d_k8, 3), &
711                                size(data6d_k8, 4), size(data6d_k8, 5), size(data6d_k8, 6))
712   END SUBROUTINE  xios(recv_field_r8_6d)
713
714   SUBROUTINE  xios(recv_field_r8_7d)(fieldid, data7d_k8)
715   IMPLICIT NONE
716      CHARACTER(len = *)               , INTENT(IN) :: fieldid
717      REAL     (kind = 8), DIMENSION(*), INTENT(OUT) :: data7d_k8(:,:,:,:,:,:,:)
718      CALL cxios_read_data_k87(fieldid, len(fieldid), data7d_k8, &
719                                size(data7d_k8, 1), size(data7d_k8, 2), size(data7d_k8, 3), &
720                                size(data7d_k8, 4), size(data7d_k8, 5), size(data7d_k8, 6), &
721                                size(data7d_k8, 7))
722   END SUBROUTINE  xios(recv_field_r8_7d)
723
724   SUBROUTINE xios(recv_field_r4_0d)(fieldid, data0d_k4)
725   IMPLICIT NONE
726      CHARACTER(len = *)               , INTENT(IN) :: fieldid
727      REAL     (kind = 4)              , INTENT(OUT):: data0d_k4
728      CALL cxios_read_data_k40(fieldid, len(fieldid), data0d_k4, 1)
729   END SUBROUTINE xios(recv_field_r4_0d)
730
731   SUBROUTINE xios(recv_field_r4_1d)(fieldid, data1d_k4)
732   IMPLICIT NONE
733      CHARACTER(len = *)               , INTENT(IN) :: fieldid
734      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data1d_k4(:)
735      CALL cxios_read_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1))
736   END SUBROUTINE xios(recv_field_r4_1d)
737
738   SUBROUTINE xios(recv_field_r4_2d)(fieldid, data2d_k4)
739   IMPLICIT NONE
740      CHARACTER(len = *)               , INTENT(IN) :: fieldid
741      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data2d_k4(:,:)
742      CALL cxios_read_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
743   END SUBROUTINE xios(recv_field_r4_2d)
744
745   SUBROUTINE xios(recv_field_r4_3d)(fieldid, data3d_k4)
746   IMPLICIT NONE
747      CHARACTER(len = *)               , INTENT(IN) :: fieldid
748      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data3d_k4(:,:,:)
749      CALL cxios_read_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
750   END SUBROUTINE xios(recv_field_r4_3d)
751
752   SUBROUTINE  xios(recv_field_r4_4d)(fieldid, data4d_k4)
753   IMPLICIT NONE
754      CHARACTER(len = *)               , INTENT(IN) :: fieldid
755      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data4d_k4(:,:,:,:)
756      CALL cxios_read_data_k44(fieldid, len(fieldid), data4d_k4, &
757                                size(data4d_k4, 1), size(data4d_k4, 2), size(data4d_k4, 3), &
758                                size(data4d_k4, 4))
759   END SUBROUTINE  xios(recv_field_r4_4d)
760
761   SUBROUTINE  xios(recv_field_r4_5d)(fieldid, data5d_k4)
762   IMPLICIT NONE
763      CHARACTER(len = *)               , INTENT(IN) :: fieldid
764      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data5d_k4(:,:,:,:,:)
765      CALL cxios_read_data_k45(fieldid, len(fieldid), data5d_k4, &
766                                size(data5d_k4, 1), size(data5d_k4, 2), size(data5d_k4, 3), &
767                                size(data5d_k4, 4), size(data5d_k4, 5))
768   END SUBROUTINE  xios(recv_field_r4_5d)
769
770   SUBROUTINE  xios(recv_field_r4_6d)(fieldid, data6d_k4)
771   IMPLICIT NONE
772      CHARACTER(len = *)               , INTENT(IN) :: fieldid
773      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data6d_k4(:,:,:,:,:,:)
774      CALL cxios_read_data_k46(fieldid, len(fieldid), data6d_k4, &
775                                size(data6d_k4, 1), size(data6d_k4, 2), size(data6d_k4, 3), &
776                                size(data6d_k4, 4), size(data6d_k4, 5), size(data6d_k4, 6))
777   END SUBROUTINE  xios(recv_field_r4_6d)
778
779   SUBROUTINE  xios(recv_field_r4_7d)(fieldid, data7d_k4)
780   IMPLICIT NONE
781      CHARACTER(len = *)               , INTENT(IN) :: fieldid
782      REAL     (kind = 4), DIMENSION(*), INTENT(OUT) :: data7d_k4(:,:,:,:,:,:,:)
783      CALL cxios_read_data_k47(fieldid, len(fieldid), data7d_k4, &
784                                size(data7d_k4, 1), size(data7d_k4, 2), size(data7d_k4, 3), &
785                                size(data7d_k4, 4), size(data7d_k4, 5), size(data7d_k4, 6), &
786                                size(data7d_k4, 7))
787   END SUBROUTINE  xios(recv_field_r4_7d)
788
789   ! Get variable functions
790   LOGICAL FUNCTION xios(getVar_k8)(varId, data_k8)
791   IMPLICIT NONE
792      LOGICAL  (kind = 1)                           :: val
793      CHARACTER(len = *)               , INTENT(IN) :: varId
794      REAL     (kind = 8)              , INTENT(OUT):: data_k8
795
796      CALL cxios_get_variable_data_k8(varId, len(varId), data_k8, val)
797
798      xios(getVar_k8) = val
799   END FUNCTION xios(getVar_k8)
800
801   LOGICAL FUNCTION xios(getVar_k4)(varId, data_k4)
802   IMPLICIT NONE
803      LOGICAL  (kind = 1)                           :: val
804      CHARACTER(len = *)               , INTENT(IN) :: varId
805      REAL     (kind = 4)              , INTENT(OUT):: data_k4
806
807      CALL cxios_get_variable_data_k4(varId, len(varId), data_k4, val)
808
809      xios(getVar_k4) = val
810   END FUNCTION xios(getVar_k4)
811
812   LOGICAL FUNCTION xios(getVar_int)(varId, data_int)
813   IMPLICIT NONE
814      LOGICAL  (kind = 1)                           :: val
815      CHARACTER(len = *)               , INTENT(IN) :: varId
816      INTEGER                          , INTENT(OUT):: data_int
817
818      CALL cxios_get_variable_data_int(varId, len(varId), data_int, val)
819
820      xios(getVar_int) = val
821   END FUNCTION xios(getVar_int)
822
823   LOGICAL FUNCTION xios(getVar_logic)(varId, data_logic)
824   IMPLICIT NONE
825      LOGICAL  (kind = 1)                           :: val
826      CHARACTER(len  = *)              , INTENT(IN) :: varId
827      LOGICAL  (kind = 4)              , INTENT(OUT):: data_logic
828
829      CALL cxios_get_variable_data_logic(varId, len(varId), data_logic, val)
830
831      xios(getVar_logic) = val
832   END FUNCTION xios(getVar_logic)
833
834   LOGICAL FUNCTION xios(getVar_char)(varId, data_char)
835   IMPLICIT NONE
836      LOGICAL  (kind = 1)                           :: val
837      CHARACTER(len  = *)              , INTENT(IN) :: varId
838      CHARACTER(len  = *)              , INTENT(OUT):: data_char
839
840      CALL cxios_get_variable_data_char(varId, len(varId), data_char, len(data_char), val)
841
842      xios(getVar_char) = val
843   END FUNCTION xios(getVar_char)
844
845   ! Set variable functions
846   LOGICAL FUNCTION xios(setVar_k8)(varId, data_k8)
847   IMPLICIT NONE
848      LOGICAL  (kind = 1)                           :: val
849      CHARACTER(len = *)               , INTENT(IN) :: varId
850      REAL     (kind = 8)              , INTENT(IN) :: data_k8
851
852      CALL cxios_set_variable_data_k8(varId, len(varId), data_k8, val)
853
854      xios(setVar_k8) = val
855   END FUNCTION xios(setVar_k8)
856
857   LOGICAL FUNCTION xios(setVar_k4)(varId, data_k4)
858   IMPLICIT NONE
859      LOGICAL  (kind = 1)                           :: val
860      CHARACTER(len = *)               , INTENT(IN) :: varId
861      REAL     (kind = 4)              , INTENT(IN) :: data_k4
862
863      CALL cxios_set_variable_data_k4(varId, len(varId), data_k4, val)
864
865      xios(setVar_k4) = val
866   END FUNCTION xios(setVar_k4)
867
868   LOGICAL FUNCTION xios(setVar_int)(varId, data_int)
869   IMPLICIT NONE
870      LOGICAL  (kind = 1)                           :: val
871      CHARACTER(len = *)               , INTENT(IN) :: varId
872      INTEGER                          , INTENT(IN) :: data_int
873
874      CALL cxios_set_variable_data_int(varId, len(varId), data_int, val)
875
876      xios(setVar_int) = val
877   END FUNCTION xios(setVar_int)
878
879   LOGICAL FUNCTION xios(setVar_logic)(varId, data_logic)
880   IMPLICIT NONE
881      LOGICAL  (kind = 1)                           :: val
882      CHARACTER(len  = *)              , INTENT(IN) :: varId
883      LOGICAL  (kind = 4)              , INTENT(IN) :: data_logic
884
885      CALL cxios_set_variable_data_logic(varId, len(varId), data_logic, val)
886
887      xios(setVar_logic) = val
888   END FUNCTION xios(setVar_logic)
889
890   LOGICAL FUNCTION xios(setVar_char)(varId, data_char)
891   IMPLICIT NONE
892      LOGICAL  (kind = 1)                           :: val
893      CHARACTER(len  = *)              , INTENT(IN) :: varId
894      CHARACTER(len  = *)              , INTENT(IN) :: data_char
895
896      CALL cxios_set_variable_data_char(varId, len(varId), data_char, len(data_char), val)
897
898      xios(setVar_char) = val
899   END FUNCTION xios(setVar_char)
900
901END MODULE IDATA
Note: See TracBrowser for help on using the repository browser.