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

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