source: XMLIO_V2/dev/dev_rv/src/xmlio/fortran/ixmlioserver.f90 @ 152

Last change on this file since 152 was 152, checked in by hozdoba, 11 years ago
File size: 36.1 KB
Line 
1! --------------------------------------------- !
2! IXMLIOSERVER !
3! GESTION DES ENTREES-SORTIES !
4! --------------------------------------------- !
5
6
7
8MODULE IXMLIOSERVER
9   USE ISO_C_BINDING
10
11   ! Ne jamais modifier les valeurs internes de ce type dans le code fortran.
12   TYPE XHandle
13      INTEGER(kind = C_INTPTR_T) :: daddr
14   END TYPE XHandle
15
16   ! enum XDType
17   INTEGER(kind = C_INT), PARAMETER :: NOTYPE = 0
18   INTEGER(kind = C_INT), PARAMETER :: DTREATMENT = 1, DDATE = 2, CALENDAR = 3, ECONTEXT = 4
19   INTEGER(kind = C_INT), PARAMETER :: EAXIS = 5 , EDOMAIN = 6 , EFIELD = 7 , EFILE = 8 , EGRID = 9
20   INTEGER(kind = C_INT), PARAMETER :: GAXIS = 10, GDOMAIN = 11, GFIELD = 12, GFILE = 13, GGRID = 14
21
22   ! enum XCalendarType
23   INTEGER(kind = C_INT), PARAMETER :: D360 = 0 , ALLLEAP = 1 , NOLEAP = 2 , JULIAN = 3 , GREGORIAN = 4
24
25   TYPE XDate
26      INTEGER :: year, month, day, hour, minute, second
27   END TYPE XDate
28
29   TYPE XDuration
30      REAL(kind = 8) :: year, month, day, hour, minute, second
31   END TYPE XDuration
32
33   ! Autres constantes
34   TYPE(XHandle) , PARAMETER :: NULLHANDLE = XHandle(0)
35
36   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
37
38      SUBROUTINE xios_handle_create(ret, dtype, idt, idt_size) BIND(C)
39         import C_CHAR, C_INTPTR_T, C_INT
40         INTEGER (kind = C_INTPTR_T) :: ret
41         INTEGER (kind = C_INT), VALUE :: dtype
42         CHARACTER(kind = C_CHAR), DIMENSION(*) :: idt
43         INTEGER (kind = C_INT), VALUE :: idt_size
44      END SUBROUTINE xios_handle_create
45
46      SUBROUTINE xios_set_timestep(ts_year, ts_month, ts_day, &
47                                   ts_hour, ts_minute, ts_second) BIND(C)
48         import C_DOUBLE
49         REAL (kind = C_DOUBLE), VALUE :: ts_year, ts_month, ts_day, &
50                                          ts_hour, ts_minute, ts_second
51      END SUBROUTINE xios_set_timestep
52
53      SUBROUTINE xios_update_calendar(step) BIND(C)
54         import C_INT
55         INTEGER (kind = C_INT), VALUE :: step
56      END SUBROUTINE xios_update_calendar
57
58      SUBROUTINE xios_xml_tree_add(parent_, parent_type, child_, child_type, child_id, child_id_size) BIND(C)
59         import C_CHAR, C_INT, C_INTPTR_T
60         INTEGER (kind = C_INTPTR_T), VALUE :: parent_
61         INTEGER (kind = C_INT), VALUE :: parent_type
62         INTEGER (kind = C_INTPTR_T) :: child_
63         INTEGER (kind = C_INT), VALUE :: child_type
64         CHARACTER(kind = C_CHAR), DIMENSION(*) :: child_id
65         INTEGER (kind = C_INT), VALUE :: child_id_size
66      END SUBROUTINE xios_xml_tree_add
67
68      SUBROUTINE xios_xml_tree_show(filename, filename_size) BIND(C)
69         import C_CHAR, C_INT
70         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
71         INTEGER (kind = C_INT), VALUE :: filename_size
72      END SUBROUTINE xios_xml_tree_show
73
74      SUBROUTINE xios_xml_parse_file(filename, filename_size) BIND(C)
75         import C_CHAR, C_INT
76         CHARACTER(kind = C_CHAR), DIMENSION(*) :: filename
77         INTEGER (kind = C_INT), VALUE :: filename_size
78      END SUBROUTINE xios_xml_Parse_File
79
80      SUBROUTINE xios_xml_parse_string(xmlcontent, xmlcontent_size) BIND(C)
81         import C_CHAR, C_INT
82         CHARACTER(kind = C_CHAR), DIMENSION(*) :: xmlcontent
83         INTEGER (kind = C_INT), VALUE :: xmlcontent_size
84      END SUBROUTINE xios_xml_Parse_String
85
86      SUBROUTINE xios_context_set_current(context, withswap) BIND(C)
87         import C_BOOL, C_INT, C_INTPTR_T
88         INTEGER (kind = C_INTPTR_T), VALUE :: context
89         LOGICAL (kind = C_BOOL), VALUE :: withswap
90      END SUBROUTINE xios_context_set_current
91
92      SUBROUTINE xios_context_create(context, context_id, context_id_size, calendar_type, &
93                                     year, month, day, hour, minute, second) BIND(C)
94         import C_CHAR, C_INT, C_INTPTR_T
95         INTEGER (kind = C_INTPTR_T) :: context
96         CHARACTER(kind = C_CHAR), DIMENSION(*) :: context_id
97         INTEGER (kind = C_INT), VALUE :: context_id_size
98         INTEGER (kind = C_INT), VALUE :: calendar_type, year, month, day, hour, minute, second
99      END SUBROUTINE xios_context_create
100
101      SUBROUTINE xios_dtreatment_start(context_hdl, filetype) BIND(C)
102         import C_INTPTR_T, C_INT
103         INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
104         INTEGER (kind = C_INT), VALUE :: filetype
105      END SUBROUTINE xios_dtreatment_start
106
107      SUBROUTINE xios_dtreatment_end() BIND(C)
108         ! Sans argument
109      END SUBROUTINE xios_dtreatment_end
110
111      SUBROUTINE xios_write_data(fieldid, fieldid_size, data_k8, data_Xsize, data_Ysize, data_Zsize) BIND(C)
112         import C_INT, C_CHAR, C_PTR, C_FLOAT, C_DOUBLE, C_BOOL
113         CHARACTER(kind = C_CHAR), DIMENSION(*) :: fieldid
114         INTEGER (kind = C_INT), VALUE :: fieldid_size
115         REAL(kind = C_DOUBLE), DIMENSION(*) :: data_k8
116         INTEGER (kind = C_INT), VALUE :: data_Xsize, data_Ysize, data_Zsize
117      END SUBROUTINE xios_write_data
118SUBROUTINE xios_set_axis_name(axis_hdl, ftype ,name ,name_size) BIND(C)
119 USE ISO_C_BINDING
120 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
121 INTEGER (kind = C_INT), VALUE :: ftype
122 CHARACTER(kind = C_CHAR), DIMENSION(*) :: name
123 INTEGER (kind = C_INT) :: name_size
124 END SUBROUTINE xios_set_axis_name
125
126SUBROUTINE xios_set_axis_standard_name(axis_hdl, ftype ,standard_name ,standard_name_size) BIND(C)
127 USE ISO_C_BINDING
128 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
129 INTEGER (kind = C_INT), VALUE :: ftype
130 CHARACTER(kind = C_CHAR), DIMENSION(*) :: standard_name
131 INTEGER (kind = C_INT) :: standard_name_size
132 END SUBROUTINE xios_set_axis_standard_name
133
134SUBROUTINE xios_set_axis_long_name(axis_hdl, ftype ,long_name ,long_name_size) BIND(C)
135 USE ISO_C_BINDING
136 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
137 INTEGER (kind = C_INT), VALUE :: ftype
138 CHARACTER(kind = C_CHAR), DIMENSION(*) :: long_name
139 INTEGER (kind = C_INT) :: long_name_size
140 END SUBROUTINE xios_set_axis_long_name
141
142SUBROUTINE xios_set_axis_unit(axis_hdl, ftype ,unit ,unit_size) BIND(C)
143 USE ISO_C_BINDING
144 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
145 INTEGER (kind = C_INT), VALUE :: ftype
146 CHARACTER(kind = C_CHAR), DIMENSION(*) :: unit
147 INTEGER (kind = C_INT) :: unit_size
148 END SUBROUTINE xios_set_axis_unit
149
150SUBROUTINE xios_set_axis_size(axis_hdl, ftype ,size) BIND(C)
151 USE ISO_C_BINDING
152 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
153 INTEGER (kind = C_INT), VALUE :: ftype
154 INTEGER (kind = C_INT) :: size
155 END SUBROUTINE xios_set_axis_size
156
157SUBROUTINE xios_set_axis_zvalue(axis_hdl, ftype ,zvalue ,zvalue_extent1) BIND(C)
158 USE ISO_C_BINDING
159 INTEGER (kind = C_INTPTR_T), VALUE :: axis_hdl
160 INTEGER (kind = C_INT), VALUE :: ftype
161 REAL(kind = C_DOUBLE), DIMENSION(*) :: zvalue
162 INTEGER (kind = C_INT) :: zvalue_extent1
163 END SUBROUTINE xios_set_axis_zvalue
164
165SUBROUTINE xios_set_field_name(field_hdl, ftype ,name ,name_size) BIND(C)
166 USE ISO_C_BINDING
167 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
168 INTEGER (kind = C_INT), VALUE :: ftype
169 CHARACTER(kind = C_CHAR), DIMENSION(*) :: name
170 INTEGER (kind = C_INT) :: name_size
171 END SUBROUTINE xios_set_field_name
172
173SUBROUTINE xios_set_field_standard_name(field_hdl, ftype ,standard_name ,standard_name_size) BIND(C)
174 USE ISO_C_BINDING
175 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
176 INTEGER (kind = C_INT), VALUE :: ftype
177 CHARACTER(kind = C_CHAR), DIMENSION(*) :: standard_name
178 INTEGER (kind = C_INT) :: standard_name_size
179 END SUBROUTINE xios_set_field_standard_name
180
181SUBROUTINE xios_set_field_long_name(field_hdl, ftype ,long_name ,long_name_size) BIND(C)
182 USE ISO_C_BINDING
183 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
184 INTEGER (kind = C_INT), VALUE :: ftype
185 CHARACTER(kind = C_CHAR), DIMENSION(*) :: long_name
186 INTEGER (kind = C_INT) :: long_name_size
187 END SUBROUTINE xios_set_field_long_name
188
189SUBROUTINE xios_set_field_unit(field_hdl, ftype ,unit ,unit_size) BIND(C)
190 USE ISO_C_BINDING
191 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
192 INTEGER (kind = C_INT), VALUE :: ftype
193 CHARACTER(kind = C_CHAR), DIMENSION(*) :: unit
194 INTEGER (kind = C_INT) :: unit_size
195 END SUBROUTINE xios_set_field_unit
196
197SUBROUTINE xios_set_field_operation(field_hdl, ftype ,operation ,operation_size) BIND(C)
198 USE ISO_C_BINDING
199 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
200 INTEGER (kind = C_INT), VALUE :: ftype
201 CHARACTER(kind = C_CHAR), DIMENSION(*) :: operation
202 INTEGER (kind = C_INT) :: operation_size
203 END SUBROUTINE xios_set_field_operation
204
205SUBROUTINE xios_set_field_freq_op(field_hdl, ftype ,freq_op ,freq_op_size) BIND(C)
206 USE ISO_C_BINDING
207 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
208 INTEGER (kind = C_INT), VALUE :: ftype
209 CHARACTER(kind = C_CHAR), DIMENSION(*) :: freq_op
210 INTEGER (kind = C_INT) :: freq_op_size
211 END SUBROUTINE xios_set_field_freq_op
212
213SUBROUTINE xios_set_field_level(field_hdl, ftype ,level) BIND(C)
214 USE ISO_C_BINDING
215 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
216 INTEGER (kind = C_INT), VALUE :: ftype
217 INTEGER (kind = C_INT) :: level
218 END SUBROUTINE xios_set_field_level
219
220SUBROUTINE xios_set_field_prec(field_hdl, ftype ,prec) BIND(C)
221 USE ISO_C_BINDING
222 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
223 INTEGER (kind = C_INT), VALUE :: ftype
224 INTEGER (kind = C_INT) :: prec
225 END SUBROUTINE xios_set_field_prec
226
227SUBROUTINE xios_set_field_enabled(field_hdl, ftype ,enabled) BIND(C)
228 USE ISO_C_BINDING
229 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
230 INTEGER (kind = C_INT), VALUE :: ftype
231 LOGICAL (kind = C_BOOL) :: enabled
232 END SUBROUTINE xios_set_field_enabled
233
234SUBROUTINE xios_set_field_domain_ref(field_hdl, ftype ,domain_ref ,domain_ref_size) BIND(C)
235 USE ISO_C_BINDING
236 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
237 INTEGER (kind = C_INT), VALUE :: ftype
238 CHARACTER(kind = C_CHAR), DIMENSION(*) :: domain_ref
239 INTEGER (kind = C_INT) :: domain_ref_size
240 END SUBROUTINE xios_set_field_domain_ref
241
242SUBROUTINE xios_set_field_axis_ref(field_hdl, ftype ,axis_ref ,axis_ref_size) BIND(C)
243 USE ISO_C_BINDING
244 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
245 INTEGER (kind = C_INT), VALUE :: ftype
246 CHARACTER(kind = C_CHAR), DIMENSION(*) :: axis_ref
247 INTEGER (kind = C_INT) :: axis_ref_size
248 END SUBROUTINE xios_set_field_axis_ref
249
250SUBROUTINE xios_set_field_grid_ref(field_hdl, ftype ,grid_ref ,grid_ref_size) BIND(C)
251 USE ISO_C_BINDING
252 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
253 INTEGER (kind = C_INT), VALUE :: ftype
254 CHARACTER(kind = C_CHAR), DIMENSION(*) :: grid_ref
255 INTEGER (kind = C_INT) :: grid_ref_size
256 END SUBROUTINE xios_set_field_grid_ref
257
258SUBROUTINE xios_set_field_zoom_ref(field_hdl, ftype ,zoom_ref ,zoom_ref_size) BIND(C)
259 USE ISO_C_BINDING
260 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
261 INTEGER (kind = C_INT), VALUE :: ftype
262 CHARACTER(kind = C_CHAR), DIMENSION(*) :: zoom_ref
263 INTEGER (kind = C_INT) :: zoom_ref_size
264 END SUBROUTINE xios_set_field_zoom_ref
265
266SUBROUTINE xios_set_field_field_ref(field_hdl, ftype ,field_ref ,field_ref_size) BIND(C)
267 USE ISO_C_BINDING
268 INTEGER (kind = C_INTPTR_T), VALUE :: field_hdl
269 INTEGER (kind = C_INT), VALUE :: ftype
270 CHARACTER(kind = C_CHAR), DIMENSION(*) :: field_ref
271 INTEGER (kind = C_INT) :: field_ref_size
272 END SUBROUTINE xios_set_field_field_ref
273
274SUBROUTINE xios_set_context_calendar_type(context_hdl, ftype ,calendar_type ,calendar_type_size) BIND(C)
275 USE ISO_C_BINDING
276 INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
277 INTEGER (kind = C_INT), VALUE :: ftype
278 CHARACTER(kind = C_CHAR), DIMENSION(*) :: calendar_type
279 INTEGER (kind = C_INT) :: calendar_type_size
280 END SUBROUTINE xios_set_context_calendar_type
281
282SUBROUTINE xios_set_context_start_date(context_hdl, ftype ,start_date ,start_date_size) BIND(C)
283 USE ISO_C_BINDING
284 INTEGER (kind = C_INTPTR_T), VALUE :: context_hdl
285 INTEGER (kind = C_INT), VALUE :: ftype
286 CHARACTER(kind = C_CHAR), DIMENSION(*) :: start_date
287 INTEGER (kind = C_INT) :: start_date_size
288 END SUBROUTINE xios_set_context_start_date
289
290SUBROUTINE xios_set_domain_name(domain_hdl, ftype ,name ,name_size) BIND(C)
291 USE ISO_C_BINDING
292 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
293 INTEGER (kind = C_INT), VALUE :: ftype
294 CHARACTER(kind = C_CHAR), DIMENSION(*) :: name
295 INTEGER (kind = C_INT) :: name_size
296 END SUBROUTINE xios_set_domain_name
297
298SUBROUTINE xios_set_domain_standard_name(domain_hdl, ftype ,standard_name ,standard_name_size) BIND(C)
299 USE ISO_C_BINDING
300 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
301 INTEGER (kind = C_INT), VALUE :: ftype
302 CHARACTER(kind = C_CHAR), DIMENSION(*) :: standard_name
303 INTEGER (kind = C_INT) :: standard_name_size
304 END SUBROUTINE xios_set_domain_standard_name
305
306SUBROUTINE xios_set_domain_long_name(domain_hdl, ftype ,long_name ,long_name_size) BIND(C)
307 USE ISO_C_BINDING
308 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
309 INTEGER (kind = C_INT), VALUE :: ftype
310 CHARACTER(kind = C_CHAR), DIMENSION(*) :: long_name
311 INTEGER (kind = C_INT) :: long_name_size
312 END SUBROUTINE xios_set_domain_long_name
313
314SUBROUTINE xios_set_domain_ni_glo(domain_hdl, ftype ,ni_glo) BIND(C)
315 USE ISO_C_BINDING
316 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
317 INTEGER (kind = C_INT), VALUE :: ftype
318 INTEGER (kind = C_INT) :: ni_glo
319 END SUBROUTINE xios_set_domain_ni_glo
320
321SUBROUTINE xios_set_domain_nj_glo(domain_hdl, ftype ,nj_glo) BIND(C)
322 USE ISO_C_BINDING
323 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
324 INTEGER (kind = C_INT), VALUE :: ftype
325 INTEGER (kind = C_INT) :: nj_glo
326 END SUBROUTINE xios_set_domain_nj_glo
327
328SUBROUTINE xios_set_domain_ibegin(domain_hdl, ftype ,ibegin) BIND(C)
329 USE ISO_C_BINDING
330 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
331 INTEGER (kind = C_INT), VALUE :: ftype
332 INTEGER (kind = C_INT) :: ibegin
333 END SUBROUTINE xios_set_domain_ibegin
334
335SUBROUTINE xios_set_domain_iend(domain_hdl, ftype ,iend) BIND(C)
336 USE ISO_C_BINDING
337 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
338 INTEGER (kind = C_INT), VALUE :: ftype
339 INTEGER (kind = C_INT) :: iend
340 END SUBROUTINE xios_set_domain_iend
341
342SUBROUTINE xios_set_domain_ni(domain_hdl, ftype ,ni) BIND(C)
343 USE ISO_C_BINDING
344 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
345 INTEGER (kind = C_INT), VALUE :: ftype
346 INTEGER (kind = C_INT) :: ni
347 END SUBROUTINE xios_set_domain_ni
348
349SUBROUTINE xios_set_domain_jbegin(domain_hdl, ftype ,jbegin) BIND(C)
350 USE ISO_C_BINDING
351 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
352 INTEGER (kind = C_INT), VALUE :: ftype
353 INTEGER (kind = C_INT) :: jbegin
354 END SUBROUTINE xios_set_domain_jbegin
355
356SUBROUTINE xios_set_domain_jend(domain_hdl, ftype ,jend) BIND(C)
357 USE ISO_C_BINDING
358 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
359 INTEGER (kind = C_INT), VALUE :: ftype
360 INTEGER (kind = C_INT) :: jend
361 END SUBROUTINE xios_set_domain_jend
362
363SUBROUTINE xios_set_domain_nj(domain_hdl, ftype ,nj) BIND(C)
364 USE ISO_C_BINDING
365 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
366 INTEGER (kind = C_INT), VALUE :: ftype
367 INTEGER (kind = C_INT) :: nj
368 END SUBROUTINE xios_set_domain_nj
369
370SUBROUTINE xios_set_domain_mask(domain_hdl, ftype ,mask ,mask_extent1 ,mask_extent2) BIND(C)
371 USE ISO_C_BINDING
372 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
373 INTEGER (kind = C_INT), VALUE :: ftype
374 LOGICAL(kind = C_BOOL), DIMENSION(*) :: mask
375 INTEGER (kind = C_INT) :: mask_extent1
376 INTEGER (kind = C_INT) :: mask_extent2
377 END SUBROUTINE xios_set_domain_mask
378
379SUBROUTINE xios_set_domain_data_dim(domain_hdl, ftype ,data_dim) BIND(C)
380 USE ISO_C_BINDING
381 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
382 INTEGER (kind = C_INT), VALUE :: ftype
383 INTEGER (kind = C_INT) :: data_dim
384 END SUBROUTINE xios_set_domain_data_dim
385
386SUBROUTINE xios_set_domain_data_ni(domain_hdl, ftype ,data_ni) BIND(C)
387 USE ISO_C_BINDING
388 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
389 INTEGER (kind = C_INT), VALUE :: ftype
390 INTEGER (kind = C_INT) :: data_ni
391 END SUBROUTINE xios_set_domain_data_ni
392
393SUBROUTINE xios_set_domain_data_nj(domain_hdl, ftype ,data_nj) BIND(C)
394 USE ISO_C_BINDING
395 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
396 INTEGER (kind = C_INT), VALUE :: ftype
397 INTEGER (kind = C_INT) :: data_nj
398 END SUBROUTINE xios_set_domain_data_nj
399
400SUBROUTINE xios_set_domain_data_ibegin(domain_hdl, ftype ,data_ibegin) BIND(C)
401 USE ISO_C_BINDING
402 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
403 INTEGER (kind = C_INT), VALUE :: ftype
404 INTEGER (kind = C_INT) :: data_ibegin
405 END SUBROUTINE xios_set_domain_data_ibegin
406
407SUBROUTINE xios_set_domain_data_jbegin(domain_hdl, ftype ,data_jbegin) BIND(C)
408 USE ISO_C_BINDING
409 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
410 INTEGER (kind = C_INT), VALUE :: ftype
411 INTEGER (kind = C_INT) :: data_jbegin
412 END SUBROUTINE xios_set_domain_data_jbegin
413
414SUBROUTINE xios_set_domain_data_n_index(domain_hdl, ftype ,data_n_index) BIND(C)
415 USE ISO_C_BINDING
416 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
417 INTEGER (kind = C_INT), VALUE :: ftype
418 INTEGER (kind = C_INT) :: data_n_index
419 END SUBROUTINE xios_set_domain_data_n_index
420
421SUBROUTINE xios_set_domain_data_i_index(domain_hdl, ftype ,data_i_index ,data_i_index_extent1) BIND(C)
422 USE ISO_C_BINDING
423 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
424 INTEGER (kind = C_INT), VALUE :: ftype
425 INTEGER(kind = C_INT), DIMENSION(*) :: data_i_index
426 INTEGER (kind = C_INT) :: data_i_index_extent1
427 END SUBROUTINE xios_set_domain_data_i_index
428
429SUBROUTINE xios_set_domain_data_j_index(domain_hdl, ftype ,data_j_index ,data_j_index_extent1) BIND(C)
430 USE ISO_C_BINDING
431 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
432 INTEGER (kind = C_INT), VALUE :: ftype
433 INTEGER(kind = C_INT), DIMENSION(*) :: data_j_index
434 INTEGER (kind = C_INT) :: data_j_index_extent1
435 END SUBROUTINE xios_set_domain_data_j_index
436
437SUBROUTINE xios_set_domain_lonvalue(domain_hdl, ftype ,lonvalue ,lonvalue_extent1) BIND(C)
438 USE ISO_C_BINDING
439 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
440 INTEGER (kind = C_INT), VALUE :: ftype
441 REAL(kind = C_DOUBLE), DIMENSION(*) :: lonvalue
442 INTEGER (kind = C_INT) :: lonvalue_extent1
443 END SUBROUTINE xios_set_domain_lonvalue
444
445SUBROUTINE xios_set_domain_latvalue(domain_hdl, ftype ,latvalue ,latvalue_extent1) BIND(C)
446 USE ISO_C_BINDING
447 INTEGER (kind = C_INTPTR_T), VALUE :: domain_hdl
448 INTEGER (kind = C_INT), VALUE :: ftype
449 REAL(kind = C_DOUBLE), DIMENSION(*) :: latvalue
450 INTEGER (kind = C_INT) :: latvalue_extent1
451 END SUBROUTINE xios_set_domain_latvalue
452
453SUBROUTINE xios_set_file_name(file_hdl, ftype ,name ,name_size) BIND(C)
454 USE ISO_C_BINDING
455 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
456 INTEGER (kind = C_INT), VALUE :: ftype
457 CHARACTER(kind = C_CHAR), DIMENSION(*) :: name
458 INTEGER (kind = C_INT) :: name_size
459 END SUBROUTINE xios_set_file_name
460
461SUBROUTINE xios_set_file_description(file_hdl, ftype ,description ,description_size) BIND(C)
462 USE ISO_C_BINDING
463 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
464 INTEGER (kind = C_INT), VALUE :: ftype
465 CHARACTER(kind = C_CHAR), DIMENSION(*) :: description
466 INTEGER (kind = C_INT) :: description_size
467 END SUBROUTINE xios_set_file_description
468
469SUBROUTINE xios_set_file_output_freq(file_hdl, ftype ,output_freq ,output_freq_size) BIND(C)
470 USE ISO_C_BINDING
471 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
472 INTEGER (kind = C_INT), VALUE :: ftype
473 CHARACTER(kind = C_CHAR), DIMENSION(*) :: output_freq
474 INTEGER (kind = C_INT) :: output_freq_size
475 END SUBROUTINE xios_set_file_output_freq
476
477SUBROUTINE xios_set_file_output_level(file_hdl, ftype ,output_level) BIND(C)
478 USE ISO_C_BINDING
479 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
480 INTEGER (kind = C_INT), VALUE :: ftype
481 INTEGER (kind = C_INT) :: output_level
482 END SUBROUTINE xios_set_file_output_level
483
484SUBROUTINE xios_set_file_enabled(file_hdl, ftype ,enabled) BIND(C)
485 USE ISO_C_BINDING
486 INTEGER (kind = C_INTPTR_T), VALUE :: file_hdl
487 INTEGER (kind = C_INT), VALUE :: ftype
488 LOGICAL (kind = C_BOOL) :: enabled
489 END SUBROUTINE xios_set_file_enabled
490
491SUBROUTINE xios_set_grid_name(grid_hdl, ftype ,name ,name_size) BIND(C)
492 USE ISO_C_BINDING
493 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
494 INTEGER (kind = C_INT), VALUE :: ftype
495 CHARACTER(kind = C_CHAR), DIMENSION(*) :: name
496 INTEGER (kind = C_INT) :: name_size
497 END SUBROUTINE xios_set_grid_name
498
499SUBROUTINE xios_set_grid_description(grid_hdl, ftype ,description ,description_size) BIND(C)
500 USE ISO_C_BINDING
501 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
502 INTEGER (kind = C_INT), VALUE :: ftype
503 CHARACTER(kind = C_CHAR), DIMENSION(*) :: description
504 INTEGER (kind = C_INT) :: description_size
505 END SUBROUTINE xios_set_grid_description
506
507SUBROUTINE xios_set_grid_domain_ref(grid_hdl, ftype ,domain_ref ,domain_ref_size) BIND(C)
508 USE ISO_C_BINDING
509 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
510 INTEGER (kind = C_INT), VALUE :: ftype
511 CHARACTER(kind = C_CHAR), DIMENSION(*) :: domain_ref
512 INTEGER (kind = C_INT) :: domain_ref_size
513 END SUBROUTINE xios_set_grid_domain_ref
514
515SUBROUTINE xios_set_grid_axis_ref(grid_hdl, ftype ,axis_ref ,axis_ref_size) BIND(C)
516 USE ISO_C_BINDING
517 INTEGER (kind = C_INTPTR_T), VALUE :: grid_hdl
518 INTEGER (kind = C_INT), VALUE :: ftype
519 CHARACTER(kind = C_CHAR), DIMENSION(*) :: axis_ref
520 INTEGER (kind = C_INT) :: axis_ref_size
521 END SUBROUTINE xios_set_grid_axis_ref
522
523   END INTERFACE
524   CONTAINS ! Fonctions disponibles pour les utilisateurs.
525   SUBROUTINE handle_create(ret, dtype, idt)
526      TYPE(XHandle), INTENT(OUT) :: ret
527      INTEGER, INTENT(IN) :: dtype
528      CHARACTER(len = *), INTENT(IN) :: idt
529      CALL xios_handle_create(ret%daddr, dtype, idt, len(idt))
530   END SUBROUTINE handle_create
531   SUBROUTINE set_timestep(timestep)
532      TYPE(XDuration), INTENT(IN):: timestep
533      CALL xios_set_timestep(timestep%year, timestep%month , timestep%day, &
534                             timestep%hour, timestep%minute, timestep%second)
535   END SUBROUTINE set_timestep
536   SUBROUTINE update_calendar(step)
537      INTEGER, INTENT(IN):: step
538      IF (step < 1) THEN
539         PRINT *, "L'argument 'step' ne peut être négatif ou nul"
540         STOP
541      END IF
542      CALL xios_update_calendar(step)
543   END SUBROUTINE update_calendar
544   SUBROUTINE xml_tree_add(parent_hdl, parent_type, child_hdl, child_type, child_id)
545      TYPE(XHandle), INTENT(IN) :: parent_hdl
546      TYPE(XHandle), INTENT(OUT) :: child_hdl
547      INTEGER, INTENT(IN) :: child_type, parent_type
548      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: child_id
549      child_hdl = NULLHANDLE
550      IF (PRESENT(child_id)) THEN
551         CALL xios_xml_tree_add(parent_hdl%daddr, parent_type, child_hdl%daddr, child_type, child_id, len(child_id))
552      ELSE
553         CALL xios_xml_tree_add(parent_hdl%daddr, parent_type, child_hdl%daddr, child_type, "NONE", -1)
554      END IF
555   END SUBROUTINE xml_tree_add
556   SUBROUTINE xml_tree_show(filename)
557      CHARACTER(len = *), OPTIONAL, INTENT(IN) :: filename
558      IF (PRESENT(filename)) THEN
559         CALL xios_xml_tree_show(filename, len(filename))
560      ELSE
561         CALL xios_xml_tree_show("NONE", -1)
562      END IF
563   END SUBROUTINE xml_tree_show
564   SUBROUTINE xml_parse_file(filename)
565      CHARACTER(len = *), INTENT(IN) :: filename
566      CALL xios_xml_Parse_File(filename, len(filename))
567   END SUBROUTINE xml_Parse_File
568   SUBROUTINE xml_parse_string(xmlcontent)
569      CHARACTER(len = *), INTENT(IN) :: xmlcontent
570      CALL xios_xml_Parse_String(xmlcontent, len(xmlcontent))
571   END SUBROUTINE xml_Parse_String
572   SUBROUTINE context_set_current(context, withswap)
573      TYPE(XHandle), INTENT(IN) :: context
574      LOGICAL (kind = 1), OPTIONAL, INTENT(IN) :: withswap
575      LOGICAL (kind = 1) :: wswap
576      IF (PRESENT(withswap)) THEN
577         wswap = withswap
578      ELSE
579         wswap = .FALSE.
580      END IF
581      CALL xios_context_set_current(context%daddr, wswap)
582   END SUBROUTINE context_set_current
583   SUBROUTINE context_create(context_hdl, context_id, calendar_type, init_date)
584      TYPE(XHandle), INTENT(OUT) :: context_hdl
585      CHARACTER(len = *), INTENT(IN) :: context_id
586      INTEGER, INTENT(IN) :: calendar_type
587      TYPE(XDate), INTENT(IN), OPTIONAL :: init_date
588      IF (PRESENT(init_date)) THEN
589         CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, &
590                                  init_date%year, init_date%month, init_date%day, &
591                                  init_date%hour, init_date%minute, init_date%second)
592      ELSE
593         CALL xios_context_create(context_hdl%daddr, context_id, len(context_id), calendar_type, &
594                                 0, 1, 1, 0, 0, 0)
595      END IF
596   END SUBROUTINE context_create
597   SUBROUTINE dtreatment_start(context_hdl, filetype)
598      TYPE(XHandle), INTENT(IN), VALUE :: context_hdl
599      INTEGER, INTENT(IN), OPTIONAL :: filetype
600      INTEGER :: filetype_
601      IF (PRESENT(filetype)) THEN
602         filetype_ = filetype
603      ELSE
604         filetype_ = NETCDF4
605      END IF
606         CALL context_set_current(context_hdl)
607         CALL xios_dtreatment_start(context_hdl%daddr, filetype_)
608   END SUBROUTINE dtreatment_start
609   SUBROUTINE dtreatment_end(context_hdl)
610      TYPE(XHandle), INTENT(IN), VALUE :: context_hdl
611      CALL context_set_current(context_hdl)
612      CALL xios_dtreatment_end()
613   END SUBROUTINE dtreatment_end
614   SUBROUTINE write_data (fieldid, &
615                          data1d_k8, data2d_k8, data3d_k8)
616      CHARACTER(len = *), INTENT(IN) :: fieldid
617      REAL(kind = 8), DIMENSION(*), OPTIONAL, INTENT(IN) :: data1d_k8(:), data2d_k8(:,:), data3d_k8(:,:,:)
618      IF((.NOT. PRESENT(data1d_k8)) .AND. &
619         (.NOT. PRESENT(data2d_k8)) .AND. &
620         (.NOT. PRESENT(data3d_k8))) THEN
621         PRINT *, "(F2003 interface) Veuillez spécifier des données à écrire !"
622         STOP
623      END IF
624      IF (PRESENT (data1d_k8)) THEN
625         CALL xios_write_data(fieldid, len(fieldid), data1d_k8, &
626                              size(data1d_k8, 1), -1, -1)
627      ELSE IF (PRESENT (data2d_k8)) THEN
628         CALL xios_write_data(fieldid, len(fieldid), data2d_k8, &
629                              size(data2d_k8, 1), size(data2d_k8, 2), -1)
630      ELSE IF (PRESENT (data3d_k8)) THEN
631         CALL xios_write_data(fieldid, len(fieldid), data3d_k8, &
632                              size(data3d_k8, 1), size(data3d_k8, 2), size(data3d_k8, 3))
633      END IF
634   END SUBROUTINE
635   SUBROUTINE set_axis_attributes( axis_hdl, ftype &
636,name_ &
637,standard_name_ &
638,long_name_ &
639,unit_ &
640,size_ &
641,zvalue_ &
642   )
643      TYPE(XHandle) :: axis_hdl
644      INTEGER (kind = C_INT) :: ftype
645CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
646CHARACTER(len = *), OPTIONAL, INTENT(IN) :: standard_name_
647CHARACTER(len = *), OPTIONAL, INTENT(IN) :: long_name_
648CHARACTER(len = *), OPTIONAL, INTENT(IN) :: unit_
649INTEGER, OPTIONAL, INTENT(IN) :: size_
650REAL(kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:)
651IF (PRESENT(name_)) THEN
652 CALL xios_set_axis_name(axis_hdl%daddr, ftype, name_, len(name_))
653 END IF
654
655IF (PRESENT(standard_name_)) THEN
656 CALL xios_set_axis_standard_name(axis_hdl%daddr, ftype, standard_name_, len(standard_name_))
657 END IF
658
659IF (PRESENT(long_name_)) THEN
660 CALL xios_set_axis_long_name(axis_hdl%daddr, ftype, long_name_, len(long_name_))
661 END IF
662
663IF (PRESENT(unit_)) THEN
664 CALL xios_set_axis_unit(axis_hdl%daddr, ftype, unit_, len(unit_))
665 END IF
666
667IF (PRESENT(size_)) THEN
668 CALL xios_set_axis_size(axis_hdl%daddr, ftype, size_)
669 END IF
670
671IF (PRESENT(zvalue_)) THEN
672 CALL xios_set_axis_zvalue(axis_hdl%daddr, ftype, zvalue_, size(zvalue_, 1))
673 END IF
674
675   END SUBROUTINE set_axis_attributes
676   SUBROUTINE set_field_attributes( field_hdl, ftype &
677,name_ &
678,standard_name_ &
679,long_name_ &
680,unit_ &
681,operation_ &
682,freq_op_ &
683,level_ &
684,prec_ &
685,enabled_ &
686,domain_ref_ &
687,axis_ref_ &
688,grid_ref_ &
689,zoom_ref_ &
690,field_ref_ &
691   )
692      TYPE(XHandle) :: field_hdl
693      INTEGER (kind = C_INT) :: ftype
694CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
695CHARACTER(len = *), OPTIONAL, INTENT(IN) :: standard_name_
696CHARACTER(len = *), OPTIONAL, INTENT(IN) :: long_name_
697CHARACTER(len = *), OPTIONAL, INTENT(IN) :: unit_
698CHARACTER(len = *), OPTIONAL, INTENT(IN) :: operation_
699CHARACTER(len = *), OPTIONAL, INTENT(IN) :: freq_op_
700INTEGER, OPTIONAL, INTENT(IN) :: level_
701INTEGER, OPTIONAL, INTENT(IN) :: prec_
702LOGICAL(kind = 1), OPTIONAL, INTENT(IN) :: enabled_
703CHARACTER(len = *), OPTIONAL, INTENT(IN) :: domain_ref_
704CHARACTER(len = *), OPTIONAL, INTENT(IN) :: axis_ref_
705CHARACTER(len = *), OPTIONAL, INTENT(IN) :: grid_ref_
706CHARACTER(len = *), OPTIONAL, INTENT(IN) :: zoom_ref_
707CHARACTER(len = *), OPTIONAL, INTENT(IN) :: field_ref_
708IF (PRESENT(name_)) THEN
709 CALL xios_set_field_name(field_hdl%daddr, ftype, name_, len(name_))
710 END IF
711
712IF (PRESENT(standard_name_)) THEN
713 CALL xios_set_field_standard_name(field_hdl%daddr, ftype, standard_name_, len(standard_name_))
714 END IF
715
716IF (PRESENT(long_name_)) THEN
717 CALL xios_set_field_long_name(field_hdl%daddr, ftype, long_name_, len(long_name_))
718 END IF
719
720IF (PRESENT(unit_)) THEN
721 CALL xios_set_field_unit(field_hdl%daddr, ftype, unit_, len(unit_))
722 END IF
723
724IF (PRESENT(operation_)) THEN
725 CALL xios_set_field_operation(field_hdl%daddr, ftype, operation_, len(operation_))
726 END IF
727
728IF (PRESENT(freq_op_)) THEN
729 CALL xios_set_field_freq_op(field_hdl%daddr, ftype, freq_op_, len(freq_op_))
730 END IF
731
732IF (PRESENT(level_)) THEN
733 CALL xios_set_field_level(field_hdl%daddr, ftype, level_)
734 END IF
735
736IF (PRESENT(prec_)) THEN
737 CALL xios_set_field_prec(field_hdl%daddr, ftype, prec_)
738 END IF
739
740IF (PRESENT(enabled_)) THEN
741 CALL xios_set_field_enabled(field_hdl%daddr, ftype, enabled_)
742 END IF
743
744IF (PRESENT(domain_ref_)) THEN
745 CALL xios_set_field_domain_ref(field_hdl%daddr, ftype, domain_ref_, len(domain_ref_))
746 END IF
747
748IF (PRESENT(axis_ref_)) THEN
749 CALL xios_set_field_axis_ref(field_hdl%daddr, ftype, axis_ref_, len(axis_ref_))
750 END IF
751
752IF (PRESENT(grid_ref_)) THEN
753 CALL xios_set_field_grid_ref(field_hdl%daddr, ftype, grid_ref_, len(grid_ref_))
754 END IF
755
756IF (PRESENT(zoom_ref_)) THEN
757 CALL xios_set_field_zoom_ref(field_hdl%daddr, ftype, zoom_ref_, len(zoom_ref_))
758 END IF
759
760IF (PRESENT(field_ref_)) THEN
761 CALL xios_set_field_field_ref(field_hdl%daddr, ftype, field_ref_, len(field_ref_))
762 END IF
763
764   END SUBROUTINE set_field_attributes
765   SUBROUTINE set_context_attributes( context_hdl, ftype &
766,calendar_type_ &
767,start_date_ &
768   )
769      TYPE(XHandle) :: context_hdl
770      INTEGER (kind = C_INT) :: ftype
771CHARACTER(len = *), OPTIONAL, INTENT(IN) :: calendar_type_
772CHARACTER(len = *), OPTIONAL, INTENT(IN) :: start_date_
773IF (PRESENT(calendar_type_)) THEN
774 CALL xios_set_context_calendar_type(context_hdl%daddr, ftype, calendar_type_, len(calendar_type_))
775 END IF
776
777IF (PRESENT(start_date_)) THEN
778 CALL xios_set_context_start_date(context_hdl%daddr, ftype, start_date_, len(start_date_))
779 END IF
780
781   END SUBROUTINE set_context_attributes
782   SUBROUTINE set_domain_attributes( domain_hdl, ftype &
783,name_ &
784,standard_name_ &
785,long_name_ &
786,ni_glo_ &
787,nj_glo_ &
788,ibegin_ &
789,iend_ &
790,ni_ &
791,jbegin_ &
792,jend_ &
793,nj_ &
794,mask_ &
795,data_dim_ &
796,data_ni_ &
797,data_nj_ &
798,data_ibegin_ &
799,data_jbegin_ &
800,data_n_index_ &
801,data_i_index_ &
802,data_j_index_ &
803,lonvalue_ &
804,latvalue_ &
805   )
806      TYPE(XHandle) :: domain_hdl
807      INTEGER (kind = C_INT) :: ftype
808CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
809CHARACTER(len = *), OPTIONAL, INTENT(IN) :: standard_name_
810CHARACTER(len = *), OPTIONAL, INTENT(IN) :: long_name_
811INTEGER, OPTIONAL, INTENT(IN) :: ni_glo_
812INTEGER, OPTIONAL, INTENT(IN) :: nj_glo_
813INTEGER, OPTIONAL, INTENT(IN) :: ibegin_
814INTEGER, OPTIONAL, INTENT(IN) :: iend_
815INTEGER, OPTIONAL, INTENT(IN) :: ni_
816INTEGER, OPTIONAL, INTENT(IN) :: jbegin_
817INTEGER, OPTIONAL, INTENT(IN) :: jend_
818INTEGER, OPTIONAL, INTENT(IN) :: nj_
819LOGICAL(kind = 1), dimension(*), OPTIONAL, INTENT(IN) :: mask_(:,:)
820INTEGER, OPTIONAL, INTENT(IN) :: data_dim_
821INTEGER, OPTIONAL, INTENT(IN) :: data_ni_
822INTEGER, OPTIONAL, INTENT(IN) :: data_nj_
823INTEGER, OPTIONAL, INTENT(IN) :: data_ibegin_
824INTEGER, OPTIONAL, INTENT(IN) :: data_jbegin_
825INTEGER, OPTIONAL, INTENT(IN) :: data_n_index_
826INTEGER, dimension(*), OPTIONAL, INTENT(IN) :: data_i_index_(:)
827INTEGER, dimension(*), OPTIONAL, INTENT(IN) :: data_j_index_(:)
828REAL(kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: lonvalue_(:)
829REAL(kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: latvalue_(:)
830IF (PRESENT(name_)) THEN
831 CALL xios_set_domain_name(domain_hdl%daddr, ftype, name_, len(name_))
832 END IF
833
834IF (PRESENT(standard_name_)) THEN
835 CALL xios_set_domain_standard_name(domain_hdl%daddr, ftype, standard_name_, len(standard_name_))
836 END IF
837
838IF (PRESENT(long_name_)) THEN
839 CALL xios_set_domain_long_name(domain_hdl%daddr, ftype, long_name_, len(long_name_))
840 END IF
841
842IF (PRESENT(ni_glo_)) THEN
843 CALL xios_set_domain_ni_glo(domain_hdl%daddr, ftype, ni_glo_)
844 END IF
845
846IF (PRESENT(nj_glo_)) THEN
847 CALL xios_set_domain_nj_glo(domain_hdl%daddr, ftype, nj_glo_)
848 END IF
849
850IF (PRESENT(ibegin_)) THEN
851 CALL xios_set_domain_ibegin(domain_hdl%daddr, ftype, ibegin_)
852 END IF
853
854IF (PRESENT(iend_)) THEN
855 CALL xios_set_domain_iend(domain_hdl%daddr, ftype, iend_)
856 END IF
857
858IF (PRESENT(ni_)) THEN
859 CALL xios_set_domain_ni(domain_hdl%daddr, ftype, ni_)
860 END IF
861
862IF (PRESENT(jbegin_)) THEN
863 CALL xios_set_domain_jbegin(domain_hdl%daddr, ftype, jbegin_)
864 END IF
865
866IF (PRESENT(jend_)) THEN
867 CALL xios_set_domain_jend(domain_hdl%daddr, ftype, jend_)
868 END IF
869
870IF (PRESENT(nj_)) THEN
871 CALL xios_set_domain_nj(domain_hdl%daddr, ftype, nj_)
872 END IF
873
874IF (PRESENT(mask_)) THEN
875 CALL xios_set_domain_mask(domain_hdl%daddr, ftype, mask_, size(mask_, 1), size(mask_, 2))
876 END IF
877
878IF (PRESENT(data_dim_)) THEN
879 CALL xios_set_domain_data_dim(domain_hdl%daddr, ftype, data_dim_)
880 END IF
881
882IF (PRESENT(data_ni_)) THEN
883 CALL xios_set_domain_data_ni(domain_hdl%daddr, ftype, data_ni_)
884 END IF
885
886IF (PRESENT(data_nj_)) THEN
887 CALL xios_set_domain_data_nj(domain_hdl%daddr, ftype, data_nj_)
888 END IF
889
890IF (PRESENT(data_ibegin_)) THEN
891 CALL xios_set_domain_data_ibegin(domain_hdl%daddr, ftype, data_ibegin_)
892 END IF
893
894IF (PRESENT(data_jbegin_)) THEN
895 CALL xios_set_domain_data_jbegin(domain_hdl%daddr, ftype, data_jbegin_)
896 END IF
897
898IF (PRESENT(data_n_index_)) THEN
899 CALL xios_set_domain_data_n_index(domain_hdl%daddr, ftype, data_n_index_)
900 END IF
901
902IF (PRESENT(data_i_index_)) THEN
903 CALL xios_set_domain_data_i_index(domain_hdl%daddr, ftype, data_i_index_, size(data_i_index_, 1))
904 END IF
905
906IF (PRESENT(data_j_index_)) THEN
907 CALL xios_set_domain_data_j_index(domain_hdl%daddr, ftype, data_j_index_, size(data_j_index_, 1))
908 END IF
909
910IF (PRESENT(lonvalue_)) THEN
911 CALL xios_set_domain_lonvalue(domain_hdl%daddr, ftype, lonvalue_, size(lonvalue_, 1))
912 END IF
913
914IF (PRESENT(latvalue_)) THEN
915 CALL xios_set_domain_latvalue(domain_hdl%daddr, ftype, latvalue_, size(latvalue_, 1))
916 END IF
917
918   END SUBROUTINE set_domain_attributes
919   SUBROUTINE set_grid_attributes( grid_hdl, ftype &
920,name_ &
921,description_ &
922,domain_ref_ &
923,axis_ref_ &
924   )
925      TYPE(XHandle) :: grid_hdl
926      INTEGER (kind = C_INT) :: ftype
927CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
928CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_
929CHARACTER(len = *), OPTIONAL, INTENT(IN) :: domain_ref_
930CHARACTER(len = *), OPTIONAL, INTENT(IN) :: axis_ref_
931IF (PRESENT(name_)) THEN
932 CALL xios_set_grid_name(grid_hdl%daddr, ftype, name_, len(name_))
933 END IF
934
935IF (PRESENT(description_)) THEN
936 CALL xios_set_grid_description(grid_hdl%daddr, ftype, description_, len(description_))
937 END IF
938
939IF (PRESENT(domain_ref_)) THEN
940 CALL xios_set_grid_domain_ref(grid_hdl%daddr, ftype, domain_ref_, len(domain_ref_))
941 END IF
942
943IF (PRESENT(axis_ref_)) THEN
944 CALL xios_set_grid_axis_ref(grid_hdl%daddr, ftype, axis_ref_, len(axis_ref_))
945 END IF
946
947   END SUBROUTINE set_grid_attributes
948   SUBROUTINE set_file_attributes( file_hdl, ftype &
949,name_ &
950,description_ &
951,output_freq_ &
952,output_level_ &
953,enabled_ &
954   )
955      TYPE(XHandle) :: file_hdl
956      INTEGER (kind = C_INT) :: ftype
957CHARACTER(len = *), OPTIONAL, INTENT(IN) :: name_
958CHARACTER(len = *), OPTIONAL, INTENT(IN) :: description_
959CHARACTER(len = *), OPTIONAL, INTENT(IN) :: output_freq_
960INTEGER, OPTIONAL, INTENT(IN) :: output_level_
961LOGICAL(kind = 1), OPTIONAL, INTENT(IN) :: enabled_
962IF (PRESENT(name_)) THEN
963 CALL xios_set_file_name(file_hdl%daddr, ftype, name_, len(name_))
964 END IF
965
966IF (PRESENT(description_)) THEN
967 CALL xios_set_file_description(file_hdl%daddr, ftype, description_, len(description_))
968 END IF
969
970IF (PRESENT(output_freq_)) THEN
971 CALL xios_set_file_output_freq(file_hdl%daddr, ftype, output_freq_, len(output_freq_))
972 END IF
973
974IF (PRESENT(output_level_)) THEN
975 CALL xios_set_file_output_level(file_hdl%daddr, ftype, output_level_)
976 END IF
977
978IF (PRESENT(enabled_)) THEN
979 CALL xios_set_file_enabled(file_hdl%daddr, ftype, enabled_)
980 END IF
981
982   END SUBROUTINE set_file_attributes
983END MODULE IXMLIOSERVER
Note: See TracBrowser for help on using the repository browser.