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

Last change on this file since 586 was 586, checked in by mhnguyen, 9 years ago

Fixing some bugs on writting non-distributed data

+) Implement scalar grid: Allow to send scalar real data
+) Modify the way to compute the mapping of buffer size from one client to a server
+) Fix a bug of writting axis on one_file mode
+) Make some changes in test_new_features.f90 and test_complete.f90

Test
+) On Curie,
+) test_client and test_complete pass and results are correct

  • 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: 18.2 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      END SUBROUTINE cxios_init_server
11
12     SUBROUTINE cxios_init_client(client_id, len_client_id, f_local_comm, f_return_comm) BIND(C)
13         USE ISO_C_BINDING
14         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: client_id
15         INTEGER  (kind = C_INT)     , VALUE        :: len_client_id
16         INTEGER  (kind = C_INT)                    :: f_local_comm
17         INTEGER  (kind = C_INT)                    :: f_return_comm
18      END SUBROUTINE cxios_init_client
19
20      SUBROUTINE  cxios_context_initialize(context_id,len_context_id,f_comm) BIND(C)
21         USE ISO_C_BINDING
22         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: context_id
23         INTEGER  (kind = C_INT)     , VALUE        :: len_context_id
24         INTEGER  (kind = C_INT)                    :: f_comm
25      END SUBROUTINE cxios_context_initialize
26
27      SUBROUTINE cxios_context_is_initialized(context_id,len_context_id,initialized) BIND(C)
28         USE ISO_C_BINDING
29         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: context_id
30         INTEGER  (kind = C_INT)     , VALUE        :: len_context_id
31         LOGICAL  (kind = C_BOOL)                   :: initialized
32      END SUBROUTINE cxios_context_is_initialized
33
34
35       SUBROUTINE  cxios_context_close_definition() BIND(C)
36         USE ISO_C_BINDING
37      END SUBROUTINE cxios_context_close_definition
38
39
40       SUBROUTINE  cxios_context_finalize() BIND(C)
41         USE ISO_C_BINDING
42      END SUBROUTINE cxios_context_finalize
43
44
45      SUBROUTINE  cxios_finalize() BIND(C)
46      END SUBROUTINE cxios_finalize
47
48      SUBROUTINE  cxios_solve_inheritance() BIND(C)
49      END SUBROUTINE cxios_solve_inheritance
50
51      SUBROUTINE cxios_write_data_k80(fieldid, fieldid_size, data_k8, data_Xsize) BIND(C)
52         USE ISO_C_BINDING
53         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
54         REAL     (kind = C_DOUBLE)               :: data_k8
55         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
56         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
57      END SUBROUTINE cxios_write_data_k80
58
59      SUBROUTINE cxios_write_data_k40(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
60         USE ISO_C_BINDING
61         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
62         REAL     (kind = C_FLOAT)                :: data_k4
63         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
64         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
65      END SUBROUTINE cxios_write_data_k40
66
67
68      SUBROUTINE cxios_write_data_k81(fieldid, fieldid_size, data_k8, data_Xsize) 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
74      END SUBROUTINE cxios_write_data_k81
75
76      SUBROUTINE cxios_write_data_k82(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize) 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
82      END SUBROUTINE cxios_write_data_k82
83
84      SUBROUTINE cxios_write_data_k83(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
85         USE ISO_C_BINDING
86         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
87         REAL     (kind = C_DOUBLE), DIMENSION(*) :: data_k8
88         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
89         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
90      END SUBROUTINE cxios_write_data_k83
91
92      SUBROUTINE cxios_write_data_k41(fieldid, fieldid_size, data_k4, data_Xsize) BIND(C)
93         USE ISO_C_BINDING
94         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
95         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
96         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
97         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize
98      END SUBROUTINE cxios_write_data_k41
99
100      SUBROUTINE cxios_write_data_k42(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize) BIND(C)
101         USE ISO_C_BINDING
102         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
103         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
104         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
105         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize
106      END SUBROUTINE cxios_write_data_k42
107
108      SUBROUTINE cxios_write_data_k43(fieldid, fieldid_size, data_k4, data_Xsize, data_Ysize, data_Zsize) BIND(C)
109         USE ISO_C_BINDING
110         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: fieldid
111         REAL     (kind = C_FLOAT) , DIMENSION(*) :: data_k4
112         INTEGER  (kind = C_INT)   , VALUE        :: fieldid_size
113         INTEGER  (kind = C_INT)   , VALUE        :: data_Xsize, data_Ysize, data_Zsize
114      END SUBROUTINE cxios_write_data_k43
115
116      ! Binding C and Fortran interface of get_variable (icdata.cpp)
117      SUBROUTINE cxios_get_variable_data_k8(vardid, varid_size, data_k8, is_var_existed) BIND(C)
118         USE ISO_C_BINDING
119         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
120         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
121         REAL     (kind = C_DOUBLE)               :: data_k8
122         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
123      END SUBROUTINE cxios_get_variable_data_k8
124
125      SUBROUTINE cxios_get_variable_data_k4(vardid, varid_size, data_k4, is_var_existed) BIND(C)
126         USE ISO_C_BINDING
127         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
128         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
129         REAL     (kind = C_FLOAT)                :: data_k4
130         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
131      END SUBROUTINE cxios_get_variable_data_k4
132
133      SUBROUTINE cxios_get_variable_data_int(vardid, varid_size, data_int, is_var_existed) BIND(C)
134         USE ISO_C_BINDING
135         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
136         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
137         INTEGER  (kind = C_INT)                  :: data_int
138         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
139      END SUBROUTINE cxios_get_variable_data_int
140
141      SUBROUTINE cxios_get_variable_data_logic(vardid, varid_size, data_logic, is_var_existed) BIND(C)
142         USE ISO_C_BINDING
143         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
144         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
145         LOGICAL  (kind = 4)                      :: data_logic
146         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
147      END SUBROUTINE cxios_get_variable_data_logic
148
149      SUBROUTINE cxios_get_variable_data_char(vardid, varid_size, data_char, data_size_in, is_var_existed) BIND(C)
150         USE ISO_C_BINDING
151         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
152         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
153         INTEGER  (kind = C_INT)   , VALUE        :: data_size_in
154         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: data_char
155         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
156      END SUBROUTINE cxios_get_variable_data_char
157
158      ! Binding C and Fortran interface of set_variable (icdata.cpp)
159      SUBROUTINE cxios_set_variable_data_k8(vardid, varid_size, data_k8, is_var_existed) BIND(C)
160         USE ISO_C_BINDING
161         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
162         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
163         REAL     (kind = C_DOUBLE), VALUE        :: data_k8
164         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
165      END SUBROUTINE cxios_set_variable_data_k8
166
167      SUBROUTINE cxios_set_variable_data_k4(vardid, varid_size, data_k4, is_var_existed) BIND(C)
168         USE ISO_C_BINDING
169         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
170         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
171         REAL     (kind = C_FLOAT) , VALUE        :: data_k4
172         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
173      END SUBROUTINE cxios_set_variable_data_k4
174
175      SUBROUTINE cxios_set_variable_data_int(vardid, varid_size, data_int, is_var_existed) BIND(C)
176         USE ISO_C_BINDING
177         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
178         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
179         INTEGER  (kind = C_INT)   , VALUE        :: data_int
180         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
181      END SUBROUTINE cxios_set_variable_data_int
182
183      SUBROUTINE cxios_set_variable_data_logic(vardid, varid_size, data_logic, is_var_existed) BIND(C)
184         USE ISO_C_BINDING
185         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
186         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
187         LOGICAL  (kind = 4)       , VALUE        :: data_logic
188         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
189      END SUBROUTINE cxios_set_variable_data_logic
190
191      SUBROUTINE cxios_set_variable_data_char(vardid, varid_size, data_char, data_size_in, is_var_existed) BIND(C)
192         USE ISO_C_BINDING
193         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: vardid
194         INTEGER  (kind = C_INT)   , VALUE        :: varid_size
195         INTEGER  (kind = C_INT)   , VALUE        :: data_size_in
196         CHARACTER(kind = C_CHAR)  , DIMENSION(*) :: data_char
197         LOGICAL  (kind = C_BOOL)                 :: is_var_existed
198      END SUBROUTINE cxios_set_variable_data_char
199
200   END INTERFACE
201
202
203   CONTAINS ! Fonctions disponibles pour les utilisateurs.
204
205   SUBROUTINE  xios(init_server)()
206   IMPLICIT NONE
207     CALL cxios_init_server()
208   END SUBROUTINE xios(init_server)
209
210   SUBROUTINE  xios(initialize)(client_id, local_comm, return_comm)
211   IMPLICIT NONE
212   INCLUDE 'mpif.h'
213   CHARACTER(LEN=*),INTENT(IN) :: client_id
214   INTEGER,INTENT(IN),OPTIONAL         :: local_comm
215   INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
216   INTEGER :: f_local_comm
217   INTEGER :: f_return_comm
218
219      IF (PRESENT(local_comm)) THEN
220        f_local_comm=local_comm
221      ELSE
222        f_local_comm = MPI_COMM_NULL
223      ENDIF
224
225      CALL cxios_init_client(client_id,LEN(client_id),f_local_comm,f_return_comm)
226
227      IF (PRESENT(return_comm)) return_comm=f_return_comm
228
229   END SUBROUTINE  xios(initialize)
230
231
232   SUBROUTINE  xios(context_initialize)(context_id,comm)
233   IMPLICIT NONE
234   CHARACTER(LEN=*),INTENT(IN)  :: context_id
235   INTEGER, INTENT(IN)          :: comm
236
237      CALL cxios_context_initialize(context_id,LEN(context_id),comm)
238
239    END SUBROUTINE  xios(context_initialize)
240
241
242   LOGICAL FUNCTION  xios(context_is_initialized)(context_id)
243   USE ISO_C_BINDING
244   IMPLICIT NONE
245   CHARACTER(LEN=*),INTENT(IN)  :: context_id
246   LOGICAL(KIND=C_BOOL) :: is_init
247
248      CALL cxios_context_is_initialized(context_id, LEN(context_id), is_init)
249      xios(context_is_initialized) = is_init
250
251    END FUNCTION xios(context_is_initialized)
252
253
254   SUBROUTINE  xios(finalize)
255   IMPLICIT NONE
256
257      CALL cxios_finalize
258
259    END SUBROUTINE  xios(finalize)
260
261
262   SUBROUTINE xios(close_context_definition)()
263   IMPLICIT NONE
264      CALL cxios_context_close_definition()
265   END SUBROUTINE xios(close_context_definition)
266
267
268   SUBROUTINE xios(context_finalize)()
269   IMPLICIT NONE
270      CALL cxios_context_finalize()
271   END SUBROUTINE xios(context_finalize)
272
273   SUBROUTINE xios(solve_inheritance)()
274   IMPLICIT NONE
275      CALL cxios_solve_inheritance()
276   END SUBROUTINE xios(solve_inheritance)
277
278
279   SUBROUTINE xios(send_field_r8)(fieldid, data_k8)
280   IMPLICIT NONE
281      CHARACTER(len = *) , INTENT(IN) :: fieldid
282      REAL     (kind = 8), INTENT(IN) :: data_k8
283      CALL cxios_write_data_k80(fieldid, len(fieldid), data_k8, 1)
284   END SUBROUTINE xios(send_field_r8)
285
286   SUBROUTINE xios(send_field_r4)(fieldid, data_k4)
287   IMPLICIT NONE
288      CHARACTER(len = *) , INTENT(IN) :: fieldid
289      REAL     (kind = 4), INTENT(IN) :: data_k4
290      CALL cxios_write_data_k40(fieldid, len(fieldid), data_k4, 1)
291   END SUBROUTINE xios(send_field_r4)
292
293
294
295   SUBROUTINE xios(send_field_r8_1d)(fieldid, data1d_k8)
296   IMPLICIT NONE
297      CHARACTER(len = *)               , INTENT(IN) :: fieldid
298      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data1d_k8(:)
299      CALL cxios_write_data_k81(fieldid, len(fieldid), data1d_k8, size(data1d_k8, 1))
300   END SUBROUTINE xios(send_field_r8_1d)
301
302   SUBROUTINE  xios(send_field_r8_2d)(fieldid, data2d_k8)
303   IMPLICIT NONE
304      CHARACTER(len = *)               , INTENT(IN) :: fieldid
305      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data2d_k8(:,:)
306      CALL cxios_write_data_k82(fieldid, len(fieldid), data2d_k8, size(data2d_k8, 1), size(data2d_k8, 2))
307   END SUBROUTINE  xios(send_field_r8_2d)
308
309   SUBROUTINE  xios(send_field_r8_3d)(fieldid, data3d_k8)
310   IMPLICIT NONE
311      CHARACTER(len = *)               , INTENT(IN) :: fieldid
312      REAL     (kind = 8), DIMENSION(*), INTENT(IN) :: data3d_k8(:,:,:)
313      CALL cxios_write_data_k83(fieldid, len(fieldid), data3d_k8, size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
314   END SUBROUTINE  xios(send_field_r8_3d)
315
316   SUBROUTINE xios(send_field_r4_1d)(fieldid, data1d_k4)
317   IMPLICIT NONE
318      CHARACTER(len = *)               , INTENT(IN) :: fieldid
319      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data1d_k4(:)
320      CALL cxios_write_data_k41(fieldid, len(fieldid), data1d_k4, size(data1d_k4, 1))
321   END SUBROUTINE xios(send_field_r4_1d)
322
323   SUBROUTINE xios(send_field_r4_2d)(fieldid, data2d_k4)
324   IMPLICIT NONE
325      CHARACTER(len = *)               , INTENT(IN) :: fieldid
326      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data2d_k4(:,:)
327      CALL cxios_write_data_k42(fieldid, len(fieldid), data2d_k4, size(data2d_k4, 1), size(data2d_k4, 2))
328   END SUBROUTINE xios(send_field_r4_2d)
329
330   SUBROUTINE xios(send_field_r4_3d)(fieldid, data3d_k4)
331   IMPLICIT NONE
332      CHARACTER(len = *)               , INTENT(IN) :: fieldid
333      REAL     (kind = 4), DIMENSION(*), INTENT(IN) :: data3d_k4(:,:,:)
334      CALL cxios_write_data_k43(fieldid, len(fieldid), data3d_k4, size(data3d_k4, 1), size(data3d_k4, 2), size(data3d_k4, 3))
335   END SUBROUTINE xios(send_field_r4_3d)
336
337   ! Get variable functions
338   LOGICAL FUNCTION xios(getVar_k8)(varId, data_k8)
339   IMPLICIT NONE
340      LOGICAL  (kind = 1)                           :: val
341      CHARACTER(len = *)               , INTENT(IN) :: varId
342      REAL     (kind = 8)              , INTENT(OUT):: data_k8
343
344      CALL cxios_get_variable_data_k8(varId, len(varId), data_k8, val)
345
346      xios(getVar_k8) = val
347   END FUNCTION xios(getVar_k8)
348
349   LOGICAL FUNCTION xios(getVar_k4)(varId, data_k4)
350   IMPLICIT NONE
351      LOGICAL  (kind = 1)                           :: val
352      CHARACTER(len = *)               , INTENT(IN) :: varId
353      REAL     (kind = 4)              , INTENT(OUT):: data_k4
354
355      CALL cxios_get_variable_data_k4(varId, len(varId), data_k4, val)
356
357      xios(getVar_k4) = val
358   END FUNCTION xios(getVar_k4)
359
360   LOGICAL FUNCTION xios(getVar_int)(varId, data_int)
361   IMPLICIT NONE
362      LOGICAL  (kind = 1)                           :: val
363      CHARACTER(len = *)               , INTENT(IN) :: varId
364      INTEGER                          , INTENT(OUT):: data_int
365
366      CALL cxios_get_variable_data_int(varId, len(varId), data_int, val)
367
368      xios(getVar_int) = val
369   END FUNCTION xios(getVar_int)
370
371   LOGICAL FUNCTION xios(getVar_logic)(varId, data_logic)
372   IMPLICIT NONE
373      LOGICAL  (kind = 1)                           :: val
374      CHARACTER(len  = *)              , INTENT(IN) :: varId
375      LOGICAL  (kind = 4)              , INTENT(OUT):: data_logic
376
377      CALL cxios_get_variable_data_logic(varId, len(varId), data_logic, val)
378
379      xios(getVar_logic) = val
380   END FUNCTION xios(getVar_logic)
381
382   LOGICAL FUNCTION xios(getVar_char)(varId, data_char)
383   IMPLICIT NONE
384      LOGICAL  (kind = 1)                           :: val
385      CHARACTER(len  = *)              , INTENT(IN) :: varId
386      CHARACTER(len  = *)              , INTENT(OUT):: data_char
387
388      CALL cxios_get_variable_data_char(varId, len(varId), data_char, len(data_char), val)
389
390      xios(getVar_char) = val
391   END FUNCTION xios(getVar_char)
392
393   ! Set variable functions
394   LOGICAL FUNCTION xios(setVar_k8)(varId, data_k8)
395   IMPLICIT NONE
396      LOGICAL  (kind = 1)                           :: val
397      CHARACTER(len = *)               , INTENT(IN) :: varId
398      REAL     (kind = 8)              , INTENT(IN) :: data_k8
399
400      CALL cxios_set_variable_data_k8(varId, len(varId), data_k8, val)
401
402      xios(setVar_k8) = val
403   END FUNCTION xios(setVar_k8)
404
405   LOGICAL FUNCTION xios(setVar_k4)(varId, data_k4)
406   IMPLICIT NONE
407      LOGICAL  (kind = 1)                           :: val
408      CHARACTER(len = *)               , INTENT(IN) :: varId
409      REAL     (kind = 4)              , INTENT(IN) :: data_k4
410
411      CALL cxios_set_variable_data_k4(varId, len(varId), data_k4, val)
412
413      xios(setVar_k4) = val
414   END FUNCTION xios(setVar_k4)
415
416   LOGICAL FUNCTION xios(setVar_int)(varId, data_int)
417   IMPLICIT NONE
418      LOGICAL  (kind = 1)                           :: val
419      CHARACTER(len = *)               , INTENT(IN) :: varId
420      INTEGER                          , INTENT(IN) :: data_int
421
422      CALL cxios_set_variable_data_int(varId, len(varId), data_int, val)
423
424      xios(setVar_int) = val
425   END FUNCTION xios(setVar_int)
426
427   LOGICAL FUNCTION xios(setVar_logic)(varId, data_logic)
428   IMPLICIT NONE
429      LOGICAL  (kind = 1)                           :: val
430      CHARACTER(len  = *)              , INTENT(IN) :: varId
431      LOGICAL  (kind = 4)              , INTENT(IN) :: data_logic
432
433      CALL cxios_set_variable_data_logic(varId, len(varId), data_logic, val)
434
435      xios(setVar_logic) = val
436   END FUNCTION xios(setVar_logic)
437
438   LOGICAL FUNCTION xios(setVar_char)(varId, data_char)
439   IMPLICIT NONE
440      LOGICAL  (kind = 1)                           :: val
441      CHARACTER(len  = *)              , INTENT(IN) :: varId
442      CHARACTER(len  = *)              , INTENT(IN) :: data_char
443
444      CALL cxios_set_variable_data_char(varId, len(varId), data_char, len(data_char), val)
445
446      xios(setVar_char) = val
447   END FUNCTION xios(setVar_char)
448
449END MODULE IDATA
Note: See TracBrowser for help on using the repository browser.