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

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

My branch

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