source: XIOS/trunk/src/interface/fortran_attr/ifield_attr.F90 @ 676

Last change on this file since 676 was 676, checked in by rlacroix, 6 years ago

Add support for indexed output.

If the new field attribute "indexed_output" is set to true and a mask is defined (either at grid, domain or axis level), the indexed data will be outputed instead of the full data with missing values.

See http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html#compression-by-gathering for more information.

  • 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: 32.1 KB
Line 
1! * ************************************************************************** *
2! *               Interface auto generated - do not modify                     *
3! * ************************************************************************** *
4#include "xios_fortran_prefix.hpp"
5
6MODULE ifield_attr
7  USE, INTRINSIC :: ISO_C_BINDING
8  USE ifield
9  USE field_interface_attr
10
11CONTAINS
12
13  SUBROUTINE xios(set_field_attr)  &
14    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
15    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
16    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
17
18    IMPLICIT NONE
19      TYPE(txios(field))  :: field_hdl
20      CHARACTER(LEN=*), INTENT(IN) ::field_id
21      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
22      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
23      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
24      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
25      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
26      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp
27      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
28      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
29      LOGICAL (KIND=C_BOOL) :: enabled_tmp
30      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
31      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset
32      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_op
33      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
34      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output
35      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp
36      INTEGER  , OPTIONAL, INTENT(IN) :: level
37      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
38      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
39      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
40      INTEGER  , OPTIONAL, INTENT(IN) :: prec
41      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access
42      LOGICAL (KIND=C_BOOL) :: read_access_tmp
43      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor
44      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
45      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
46      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max
47      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min
48
49      CALL xios(get_field_handle)(field_id,field_hdl)
50      CALL xios(set_field_attr_hdl_)   &
51      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
52      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
53      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
54
55  END SUBROUTINE xios(set_field_attr)
56
57  SUBROUTINE xios(set_field_attr_hdl)  &
58    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
59    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
60    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
61
62    IMPLICIT NONE
63      TYPE(txios(field)) , INTENT(IN) :: field_hdl
64      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
65      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
66      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
67      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
68      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
69      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp
70      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
71      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
72      LOGICAL (KIND=C_BOOL) :: enabled_tmp
73      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
74      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset
75      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_op
76      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
77      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output
78      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp
79      INTEGER  , OPTIONAL, INTENT(IN) :: level
80      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
81      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
82      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
83      INTEGER  , OPTIONAL, INTENT(IN) :: prec
84      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access
85      LOGICAL (KIND=C_BOOL) :: read_access_tmp
86      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor
87      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
88      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
89      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max
90      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min
91
92      CALL xios(set_field_attr_hdl_)  &
93      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
94      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
95      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
96
97  END SUBROUTINE xios(set_field_attr_hdl)
98
99  SUBROUTINE xios(set_field_attr_hdl_)   &
100    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
101    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, indexed_output_, level_  &
102    , long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_  &
103    , valid_min_ )
104
105    IMPLICIT NONE
106      TYPE(txios(field)) , INTENT(IN) :: field_hdl
107      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset_
108      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref_
109      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level_
110      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value_
111      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value_
112      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp
113      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref_
114      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled_
115      LOGICAL (KIND=C_BOOL) :: enabled__tmp
116      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref_
117      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_offset_
118      TYPE(txios(duration))  , OPTIONAL, INTENT(IN) :: freq_op_
119      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref_
120      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output_
121      LOGICAL (KIND=C_BOOL) :: indexed_output__tmp
122      INTEGER  , OPTIONAL, INTENT(IN) :: level_
123      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_
124      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_
125      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation_
126      INTEGER  , OPTIONAL, INTENT(IN) :: prec_
127      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access_
128      LOGICAL (KIND=C_BOOL) :: read_access__tmp
129      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor_
130      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_
131      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_
132      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max_
133      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min_
134
135      IF (PRESENT(add_offset_)) THEN
136        CALL cxios_set_field_add_offset(field_hdl%daddr, add_offset_)
137      ENDIF
138
139      IF (PRESENT(axis_ref_)) THEN
140        CALL cxios_set_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_))
141      ENDIF
142
143      IF (PRESENT(compression_level_)) THEN
144        CALL cxios_set_field_compression_level(field_hdl%daddr, compression_level_)
145      ENDIF
146
147      IF (PRESENT(default_value_)) THEN
148        CALL cxios_set_field_default_value(field_hdl%daddr, default_value_)
149      ENDIF
150
151      IF (PRESENT(detect_missing_value_)) THEN
152        detect_missing_value__tmp = detect_missing_value_
153        CALL cxios_set_field_detect_missing_value(field_hdl%daddr, detect_missing_value__tmp)
154      ENDIF
155
156      IF (PRESENT(domain_ref_)) THEN
157        CALL cxios_set_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_))
158      ENDIF
159
160      IF (PRESENT(enabled_)) THEN
161        enabled__tmp = enabled_
162        CALL cxios_set_field_enabled(field_hdl%daddr, enabled__tmp)
163      ENDIF
164
165      IF (PRESENT(field_ref_)) THEN
166        CALL cxios_set_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_))
167      ENDIF
168
169      IF (PRESENT(freq_offset_)) THEN
170        CALL cxios_set_field_freq_offset(field_hdl%daddr, freq_offset_)
171      ENDIF
172
173      IF (PRESENT(freq_op_)) THEN
174        CALL cxios_set_field_freq_op(field_hdl%daddr, freq_op_)
175      ENDIF
176
177      IF (PRESENT(grid_ref_)) THEN
178        CALL cxios_set_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_))
179      ENDIF
180
181      IF (PRESENT(indexed_output_)) THEN
182        indexed_output__tmp = indexed_output_
183        CALL cxios_set_field_indexed_output(field_hdl%daddr, indexed_output__tmp)
184      ENDIF
185
186      IF (PRESENT(level_)) THEN
187        CALL cxios_set_field_level(field_hdl%daddr, level_)
188      ENDIF
189
190      IF (PRESENT(long_name_)) THEN
191        CALL cxios_set_field_long_name(field_hdl%daddr, long_name_, len(long_name_))
192      ENDIF
193
194      IF (PRESENT(name_)) THEN
195        CALL cxios_set_field_name(field_hdl%daddr, name_, len(name_))
196      ENDIF
197
198      IF (PRESENT(operation_)) THEN
199        CALL cxios_set_field_operation(field_hdl%daddr, operation_, len(operation_))
200      ENDIF
201
202      IF (PRESENT(prec_)) THEN
203        CALL cxios_set_field_prec(field_hdl%daddr, prec_)
204      ENDIF
205
206      IF (PRESENT(read_access_)) THEN
207        read_access__tmp = read_access_
208        CALL cxios_set_field_read_access(field_hdl%daddr, read_access__tmp)
209      ENDIF
210
211      IF (PRESENT(scale_factor_)) THEN
212        CALL cxios_set_field_scale_factor(field_hdl%daddr, scale_factor_)
213      ENDIF
214
215      IF (PRESENT(standard_name_)) THEN
216        CALL cxios_set_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_))
217      ENDIF
218
219      IF (PRESENT(unit_)) THEN
220        CALL cxios_set_field_unit(field_hdl%daddr, unit_, len(unit_))
221      ENDIF
222
223      IF (PRESENT(valid_max_)) THEN
224        CALL cxios_set_field_valid_max(field_hdl%daddr, valid_max_)
225      ENDIF
226
227      IF (PRESENT(valid_min_)) THEN
228        CALL cxios_set_field_valid_min(field_hdl%daddr, valid_min_)
229      ENDIF
230
231  END SUBROUTINE xios(set_field_attr_hdl_)
232
233  SUBROUTINE xios(get_field_attr)  &
234    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
235    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
236    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
237
238    IMPLICIT NONE
239      TYPE(txios(field))  :: field_hdl
240      CHARACTER(LEN=*), INTENT(IN) ::field_id
241      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
242      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
243      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
244      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
245      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
246      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp
247      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
248      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
249      LOGICAL (KIND=C_BOOL) :: enabled_tmp
250      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
251      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset
252      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_op
253      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
254      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output
255      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp
256      INTEGER  , OPTIONAL, INTENT(OUT) :: level
257      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
258      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
259      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
260      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
261      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access
262      LOGICAL (KIND=C_BOOL) :: read_access_tmp
263      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor
264      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
265      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
266      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max
267      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min
268
269      CALL xios(get_field_handle)(field_id,field_hdl)
270      CALL xios(get_field_attr_hdl_)   &
271      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
272      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
273      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
274
275  END SUBROUTINE xios(get_field_attr)
276
277  SUBROUTINE xios(get_field_attr_hdl)  &
278    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
279    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
280    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
281
282    IMPLICIT NONE
283      TYPE(txios(field)) , INTENT(IN) :: field_hdl
284      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
285      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
286      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
287      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
288      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
289      LOGICAL (KIND=C_BOOL) :: detect_missing_value_tmp
290      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
291      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
292      LOGICAL (KIND=C_BOOL) :: enabled_tmp
293      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
294      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset
295      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_op
296      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
297      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output
298      LOGICAL (KIND=C_BOOL) :: indexed_output_tmp
299      INTEGER  , OPTIONAL, INTENT(OUT) :: level
300      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
301      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
302      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
303      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
304      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access
305      LOGICAL (KIND=C_BOOL) :: read_access_tmp
306      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor
307      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
308      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
309      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max
310      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min
311
312      CALL xios(get_field_attr_hdl_)  &
313      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
314      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
315      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
316
317  END SUBROUTINE xios(get_field_attr_hdl)
318
319  SUBROUTINE xios(get_field_attr_hdl_)   &
320    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
321    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, indexed_output_, level_  &
322    , long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_  &
323    , valid_min_ )
324
325    IMPLICIT NONE
326      TYPE(txios(field)) , INTENT(IN) :: field_hdl
327      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset_
328      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref_
329      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level_
330      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value_
331      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value_
332      LOGICAL (KIND=C_BOOL) :: detect_missing_value__tmp
333      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref_
334      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled_
335      LOGICAL (KIND=C_BOOL) :: enabled__tmp
336      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref_
337      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_offset_
338      TYPE(txios(duration))  , OPTIONAL, INTENT(OUT) :: freq_op_
339      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref_
340      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output_
341      LOGICAL (KIND=C_BOOL) :: indexed_output__tmp
342      INTEGER  , OPTIONAL, INTENT(OUT) :: level_
343      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name_
344      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name_
345      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation_
346      INTEGER  , OPTIONAL, INTENT(OUT) :: prec_
347      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access_
348      LOGICAL (KIND=C_BOOL) :: read_access__tmp
349      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor_
350      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name_
351      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit_
352      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max_
353      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min_
354
355      IF (PRESENT(add_offset_)) THEN
356        CALL cxios_get_field_add_offset(field_hdl%daddr, add_offset_)
357      ENDIF
358
359      IF (PRESENT(axis_ref_)) THEN
360        CALL cxios_get_field_axis_ref(field_hdl%daddr, axis_ref_, len(axis_ref_))
361      ENDIF
362
363      IF (PRESENT(compression_level_)) THEN
364        CALL cxios_get_field_compression_level(field_hdl%daddr, compression_level_)
365      ENDIF
366
367      IF (PRESENT(default_value_)) THEN
368        CALL cxios_get_field_default_value(field_hdl%daddr, default_value_)
369      ENDIF
370
371      IF (PRESENT(detect_missing_value_)) THEN
372        CALL cxios_get_field_detect_missing_value(field_hdl%daddr, detect_missing_value__tmp)
373        detect_missing_value_ = detect_missing_value__tmp
374      ENDIF
375
376      IF (PRESENT(domain_ref_)) THEN
377        CALL cxios_get_field_domain_ref(field_hdl%daddr, domain_ref_, len(domain_ref_))
378      ENDIF
379
380      IF (PRESENT(enabled_)) THEN
381        CALL cxios_get_field_enabled(field_hdl%daddr, enabled__tmp)
382        enabled_ = enabled__tmp
383      ENDIF
384
385      IF (PRESENT(field_ref_)) THEN
386        CALL cxios_get_field_field_ref(field_hdl%daddr, field_ref_, len(field_ref_))
387      ENDIF
388
389      IF (PRESENT(freq_offset_)) THEN
390        CALL cxios_get_field_freq_offset(field_hdl%daddr, freq_offset_)
391      ENDIF
392
393      IF (PRESENT(freq_op_)) THEN
394        CALL cxios_get_field_freq_op(field_hdl%daddr, freq_op_)
395      ENDIF
396
397      IF (PRESENT(grid_ref_)) THEN
398        CALL cxios_get_field_grid_ref(field_hdl%daddr, grid_ref_, len(grid_ref_))
399      ENDIF
400
401      IF (PRESENT(indexed_output_)) THEN
402        CALL cxios_get_field_indexed_output(field_hdl%daddr, indexed_output__tmp)
403        indexed_output_ = indexed_output__tmp
404      ENDIF
405
406      IF (PRESENT(level_)) THEN
407        CALL cxios_get_field_level(field_hdl%daddr, level_)
408      ENDIF
409
410      IF (PRESENT(long_name_)) THEN
411        CALL cxios_get_field_long_name(field_hdl%daddr, long_name_, len(long_name_))
412      ENDIF
413
414      IF (PRESENT(name_)) THEN
415        CALL cxios_get_field_name(field_hdl%daddr, name_, len(name_))
416      ENDIF
417
418      IF (PRESENT(operation_)) THEN
419        CALL cxios_get_field_operation(field_hdl%daddr, operation_, len(operation_))
420      ENDIF
421
422      IF (PRESENT(prec_)) THEN
423        CALL cxios_get_field_prec(field_hdl%daddr, prec_)
424      ENDIF
425
426      IF (PRESENT(read_access_)) THEN
427        CALL cxios_get_field_read_access(field_hdl%daddr, read_access__tmp)
428        read_access_ = read_access__tmp
429      ENDIF
430
431      IF (PRESENT(scale_factor_)) THEN
432        CALL cxios_get_field_scale_factor(field_hdl%daddr, scale_factor_)
433      ENDIF
434
435      IF (PRESENT(standard_name_)) THEN
436        CALL cxios_get_field_standard_name(field_hdl%daddr, standard_name_, len(standard_name_))
437      ENDIF
438
439      IF (PRESENT(unit_)) THEN
440        CALL cxios_get_field_unit(field_hdl%daddr, unit_, len(unit_))
441      ENDIF
442
443      IF (PRESENT(valid_max_)) THEN
444        CALL cxios_get_field_valid_max(field_hdl%daddr, valid_max_)
445      ENDIF
446
447      IF (PRESENT(valid_min_)) THEN
448        CALL cxios_get_field_valid_min(field_hdl%daddr, valid_min_)
449      ENDIF
450
451  END SUBROUTINE xios(get_field_attr_hdl_)
452
453  SUBROUTINE xios(is_defined_field_attr)  &
454    ( field_id, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
455    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
456    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
457
458    IMPLICIT NONE
459      TYPE(txios(field))  :: field_hdl
460      CHARACTER(LEN=*), INTENT(IN) ::field_id
461      LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset
462      LOGICAL(KIND=C_BOOL) :: add_offset_tmp
463      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
464      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
465      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
466      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
467      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value
468      LOGICAL(KIND=C_BOOL) :: default_value_tmp
469      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value
470      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp
471      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref
472      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp
473      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled
474      LOGICAL(KIND=C_BOOL) :: enabled_tmp
475      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref
476      LOGICAL(KIND=C_BOOL) :: field_ref_tmp
477      LOGICAL, OPTIONAL, INTENT(OUT) :: freq_offset
478      LOGICAL(KIND=C_BOOL) :: freq_offset_tmp
479      LOGICAL, OPTIONAL, INTENT(OUT) :: freq_op
480      LOGICAL(KIND=C_BOOL) :: freq_op_tmp
481      LOGICAL, OPTIONAL, INTENT(OUT) :: grid_ref
482      LOGICAL(KIND=C_BOOL) :: grid_ref_tmp
483      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output
484      LOGICAL(KIND=C_BOOL) :: indexed_output_tmp
485      LOGICAL, OPTIONAL, INTENT(OUT) :: level
486      LOGICAL(KIND=C_BOOL) :: level_tmp
487      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
488      LOGICAL(KIND=C_BOOL) :: long_name_tmp
489      LOGICAL, OPTIONAL, INTENT(OUT) :: name
490      LOGICAL(KIND=C_BOOL) :: name_tmp
491      LOGICAL, OPTIONAL, INTENT(OUT) :: operation
492      LOGICAL(KIND=C_BOOL) :: operation_tmp
493      LOGICAL, OPTIONAL, INTENT(OUT) :: prec
494      LOGICAL(KIND=C_BOOL) :: prec_tmp
495      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access
496      LOGICAL(KIND=C_BOOL) :: read_access_tmp
497      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor
498      LOGICAL(KIND=C_BOOL) :: scale_factor_tmp
499      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
500      LOGICAL(KIND=C_BOOL) :: standard_name_tmp
501      LOGICAL, OPTIONAL, INTENT(OUT) :: unit
502      LOGICAL(KIND=C_BOOL) :: unit_tmp
503      LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max
504      LOGICAL(KIND=C_BOOL) :: valid_max_tmp
505      LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min
506      LOGICAL(KIND=C_BOOL) :: valid_min_tmp
507
508      CALL xios(get_field_handle)(field_id,field_hdl)
509      CALL xios(is_defined_field_attr_hdl_)   &
510      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
511      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
512      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
513
514  END SUBROUTINE xios(is_defined_field_attr)
515
516  SUBROUTINE xios(is_defined_field_attr_hdl)  &
517    ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
518    , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
519    , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
520
521    IMPLICIT NONE
522      TYPE(txios(field)) , INTENT(IN) :: field_hdl
523      LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset
524      LOGICAL(KIND=C_BOOL) :: add_offset_tmp
525      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref
526      LOGICAL(KIND=C_BOOL) :: axis_ref_tmp
527      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level
528      LOGICAL(KIND=C_BOOL) :: compression_level_tmp
529      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value
530      LOGICAL(KIND=C_BOOL) :: default_value_tmp
531      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value
532      LOGICAL(KIND=C_BOOL) :: detect_missing_value_tmp
533      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref
534      LOGICAL(KIND=C_BOOL) :: domain_ref_tmp
535      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled
536      LOGICAL(KIND=C_BOOL) :: enabled_tmp
537      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref
538      LOGICAL(KIND=C_BOOL) :: field_ref_tmp
539      LOGICAL, OPTIONAL, INTENT(OUT) :: freq_offset
540      LOGICAL(KIND=C_BOOL) :: freq_offset_tmp
541      LOGICAL, OPTIONAL, INTENT(OUT) :: freq_op
542      LOGICAL(KIND=C_BOOL) :: freq_op_tmp
543      LOGICAL, OPTIONAL, INTENT(OUT) :: grid_ref
544      LOGICAL(KIND=C_BOOL) :: grid_ref_tmp
545      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output
546      LOGICAL(KIND=C_BOOL) :: indexed_output_tmp
547      LOGICAL, OPTIONAL, INTENT(OUT) :: level
548      LOGICAL(KIND=C_BOOL) :: level_tmp
549      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
550      LOGICAL(KIND=C_BOOL) :: long_name_tmp
551      LOGICAL, OPTIONAL, INTENT(OUT) :: name
552      LOGICAL(KIND=C_BOOL) :: name_tmp
553      LOGICAL, OPTIONAL, INTENT(OUT) :: operation
554      LOGICAL(KIND=C_BOOL) :: operation_tmp
555      LOGICAL, OPTIONAL, INTENT(OUT) :: prec
556      LOGICAL(KIND=C_BOOL) :: prec_tmp
557      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access
558      LOGICAL(KIND=C_BOOL) :: read_access_tmp
559      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor
560      LOGICAL(KIND=C_BOOL) :: scale_factor_tmp
561      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
562      LOGICAL(KIND=C_BOOL) :: standard_name_tmp
563      LOGICAL, OPTIONAL, INTENT(OUT) :: unit
564      LOGICAL(KIND=C_BOOL) :: unit_tmp
565      LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max
566      LOGICAL(KIND=C_BOOL) :: valid_max_tmp
567      LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min
568      LOGICAL(KIND=C_BOOL) :: valid_min_tmp
569
570      CALL xios(is_defined_field_attr_hdl_)  &
571      ( field_hdl, add_offset, axis_ref, compression_level, default_value, detect_missing_value, domain_ref  &
572      , enabled, field_ref, freq_offset, freq_op, grid_ref, indexed_output, level, long_name, name  &
573      , operation, prec, read_access, scale_factor, standard_name, unit, valid_max, valid_min )
574
575  END SUBROUTINE xios(is_defined_field_attr_hdl)
576
577  SUBROUTINE xios(is_defined_field_attr_hdl_)   &
578    ( field_hdl, add_offset_, axis_ref_, compression_level_, default_value_, detect_missing_value_  &
579    , domain_ref_, enabled_, field_ref_, freq_offset_, freq_op_, grid_ref_, indexed_output_, level_  &
580    , long_name_, name_, operation_, prec_, read_access_, scale_factor_, standard_name_, unit_, valid_max_  &
581    , valid_min_ )
582
583    IMPLICIT NONE
584      TYPE(txios(field)) , INTENT(IN) :: field_hdl
585      LOGICAL, OPTIONAL, INTENT(OUT) :: add_offset_
586      LOGICAL(KIND=C_BOOL) :: add_offset__tmp
587      LOGICAL, OPTIONAL, INTENT(OUT) :: axis_ref_
588      LOGICAL(KIND=C_BOOL) :: axis_ref__tmp
589      LOGICAL, OPTIONAL, INTENT(OUT) :: compression_level_
590      LOGICAL(KIND=C_BOOL) :: compression_level__tmp
591      LOGICAL, OPTIONAL, INTENT(OUT) :: default_value_
592      LOGICAL(KIND=C_BOOL) :: default_value__tmp
593      LOGICAL, OPTIONAL, INTENT(OUT) :: detect_missing_value_
594      LOGICAL(KIND=C_BOOL) :: detect_missing_value__tmp
595      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref_
596      LOGICAL(KIND=C_BOOL) :: domain_ref__tmp
597      LOGICAL, OPTIONAL, INTENT(OUT) :: enabled_
598      LOGICAL(KIND=C_BOOL) :: enabled__tmp
599      LOGICAL, OPTIONAL, INTENT(OUT) :: field_ref_
600      LOGICAL(KIND=C_BOOL) :: field_ref__tmp
601      LOGICAL, OPTIONAL, INTENT(OUT) :: freq_offset_
602      LOGICAL(KIND=C_BOOL) :: freq_offset__tmp
603      LOGICAL, OPTIONAL, INTENT(OUT) :: freq_op_
604      LOGICAL(KIND=C_BOOL) :: freq_op__tmp
605      LOGICAL, OPTIONAL, INTENT(OUT) :: grid_ref_
606      LOGICAL(KIND=C_BOOL) :: grid_ref__tmp
607      LOGICAL, OPTIONAL, INTENT(OUT) :: indexed_output_
608      LOGICAL(KIND=C_BOOL) :: indexed_output__tmp
609      LOGICAL, OPTIONAL, INTENT(OUT) :: level_
610      LOGICAL(KIND=C_BOOL) :: level__tmp
611      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name_
612      LOGICAL(KIND=C_BOOL) :: long_name__tmp
613      LOGICAL, OPTIONAL, INTENT(OUT) :: name_
614      LOGICAL(KIND=C_BOOL) :: name__tmp
615      LOGICAL, OPTIONAL, INTENT(OUT) :: operation_
616      LOGICAL(KIND=C_BOOL) :: operation__tmp
617      LOGICAL, OPTIONAL, INTENT(OUT) :: prec_
618      LOGICAL(KIND=C_BOOL) :: prec__tmp
619      LOGICAL, OPTIONAL, INTENT(OUT) :: read_access_
620      LOGICAL(KIND=C_BOOL) :: read_access__tmp
621      LOGICAL, OPTIONAL, INTENT(OUT) :: scale_factor_
622      LOGICAL(KIND=C_BOOL) :: scale_factor__tmp
623      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name_
624      LOGICAL(KIND=C_BOOL) :: standard_name__tmp
625      LOGICAL, OPTIONAL, INTENT(OUT) :: unit_
626      LOGICAL(KIND=C_BOOL) :: unit__tmp
627      LOGICAL, OPTIONAL, INTENT(OUT) :: valid_max_
628      LOGICAL(KIND=C_BOOL) :: valid_max__tmp
629      LOGICAL, OPTIONAL, INTENT(OUT) :: valid_min_
630      LOGICAL(KIND=C_BOOL) :: valid_min__tmp
631
632      IF (PRESENT(add_offset_)) THEN
633        add_offset__tmp = cxios_is_defined_field_add_offset(field_hdl%daddr)
634        add_offset_ = add_offset__tmp
635      ENDIF
636
637      IF (PRESENT(axis_ref_)) THEN
638        axis_ref__tmp = cxios_is_defined_field_axis_ref(field_hdl%daddr)
639        axis_ref_ = axis_ref__tmp
640      ENDIF
641
642      IF (PRESENT(compression_level_)) THEN
643        compression_level__tmp = cxios_is_defined_field_compression_level(field_hdl%daddr)
644        compression_level_ = compression_level__tmp
645      ENDIF
646
647      IF (PRESENT(default_value_)) THEN
648        default_value__tmp = cxios_is_defined_field_default_value(field_hdl%daddr)
649        default_value_ = default_value__tmp
650      ENDIF
651
652      IF (PRESENT(detect_missing_value_)) THEN
653        detect_missing_value__tmp = cxios_is_defined_field_detect_missing_value(field_hdl%daddr)
654        detect_missing_value_ = detect_missing_value__tmp
655      ENDIF
656
657      IF (PRESENT(domain_ref_)) THEN
658        domain_ref__tmp = cxios_is_defined_field_domain_ref(field_hdl%daddr)
659        domain_ref_ = domain_ref__tmp
660      ENDIF
661
662      IF (PRESENT(enabled_)) THEN
663        enabled__tmp = cxios_is_defined_field_enabled(field_hdl%daddr)
664        enabled_ = enabled__tmp
665      ENDIF
666
667      IF (PRESENT(field_ref_)) THEN
668        field_ref__tmp = cxios_is_defined_field_field_ref(field_hdl%daddr)
669        field_ref_ = field_ref__tmp
670      ENDIF
671
672      IF (PRESENT(freq_offset_)) THEN
673        freq_offset__tmp = cxios_is_defined_field_freq_offset(field_hdl%daddr)
674        freq_offset_ = freq_offset__tmp
675      ENDIF
676
677      IF (PRESENT(freq_op_)) THEN
678        freq_op__tmp = cxios_is_defined_field_freq_op(field_hdl%daddr)
679        freq_op_ = freq_op__tmp
680      ENDIF
681
682      IF (PRESENT(grid_ref_)) THEN
683        grid_ref__tmp = cxios_is_defined_field_grid_ref(field_hdl%daddr)
684        grid_ref_ = grid_ref__tmp
685      ENDIF
686
687      IF (PRESENT(indexed_output_)) THEN
688        indexed_output__tmp = cxios_is_defined_field_indexed_output(field_hdl%daddr)
689        indexed_output_ = indexed_output__tmp
690      ENDIF
691
692      IF (PRESENT(level_)) THEN
693        level__tmp = cxios_is_defined_field_level(field_hdl%daddr)
694        level_ = level__tmp
695      ENDIF
696
697      IF (PRESENT(long_name_)) THEN
698        long_name__tmp = cxios_is_defined_field_long_name(field_hdl%daddr)
699        long_name_ = long_name__tmp
700      ENDIF
701
702      IF (PRESENT(name_)) THEN
703        name__tmp = cxios_is_defined_field_name(field_hdl%daddr)
704        name_ = name__tmp
705      ENDIF
706
707      IF (PRESENT(operation_)) THEN
708        operation__tmp = cxios_is_defined_field_operation(field_hdl%daddr)
709        operation_ = operation__tmp
710      ENDIF
711
712      IF (PRESENT(prec_)) THEN
713        prec__tmp = cxios_is_defined_field_prec(field_hdl%daddr)
714        prec_ = prec__tmp
715      ENDIF
716
717      IF (PRESENT(read_access_)) THEN
718        read_access__tmp = cxios_is_defined_field_read_access(field_hdl%daddr)
719        read_access_ = read_access__tmp
720      ENDIF
721
722      IF (PRESENT(scale_factor_)) THEN
723        scale_factor__tmp = cxios_is_defined_field_scale_factor(field_hdl%daddr)
724        scale_factor_ = scale_factor__tmp
725      ENDIF
726
727      IF (PRESENT(standard_name_)) THEN
728        standard_name__tmp = cxios_is_defined_field_standard_name(field_hdl%daddr)
729        standard_name_ = standard_name__tmp
730      ENDIF
731
732      IF (PRESENT(unit_)) THEN
733        unit__tmp = cxios_is_defined_field_unit(field_hdl%daddr)
734        unit_ = unit__tmp
735      ENDIF
736
737      IF (PRESENT(valid_max_)) THEN
738        valid_max__tmp = cxios_is_defined_field_valid_max(field_hdl%daddr)
739        valid_max_ = valid_max__tmp
740      ENDIF
741
742      IF (PRESENT(valid_min_)) THEN
743        valid_min__tmp = cxios_is_defined_field_valid_min(field_hdl%daddr)
744        valid_min_ = valid_min__tmp
745      ENDIF
746
747  END SUBROUTINE xios(is_defined_field_attr_hdl_)
748
749END MODULE ifield_attr
Note: See TracBrowser for help on using the repository browser.