source: LMDZ6/trunk/libf/misc/lmdz_xios.F90 @ 5020

Last change on this file since 5020 was 4619, checked in by yann meurdesoif, 16 months ago

Suppress usage of preprocessing key CPP_XIOS.
Wrapper file is used to suppress XIOS symbol when xios is not linked and not used (-io ioipsl)
The CPP_XIOS key is replaced in model by "using_xios" boolean variable to switch between IOIPSL or XIOS output.

YM

File size: 51.3 KB
Line 
1#ifdef CPP_XIOS
2
3MODULE lmdz_xios
4  USE xios
5 
6  LOGICAL,PARAMETER :: using_xios = .TRUE.
7
8END MODULE lmdz_xios
9
10#else
11
12MODULE lmdz_xios
13  !!!! Wrapper XIOS
14  !! => must be replaced latter by official xios wrapper when available
15
16  LOGICAL,PARAMETER :: using_xios = .FALSE.
17
18INTERFACE xios_send_field
19  MODULE PROCEDURE xios_send_field_scalar, xios_send_field_1d, xios_send_field_2d, xios_send_field_3d, &
20                   xios_send_field_4d, xios_send_field_5d
21END INTERFACE  xios_send_field
22
23INTERFACE xios_recv_field
24  MODULE PROCEDURE xios_recv_field_scalar, xios_recv_field_1d, xios_recv_field_2d, xios_recv_field_3d, &
25                   xios_recv_field_4d
26END INTERFACE  xios_recv_field
27
28INTERFACE xios_field_is_active
29  MODULE PROCEDURE xios_field_is_active_id,xios_field_is_active_hdl
30END INTERFACE xios_field_is_active
31
32INTERFACE xios_set_attr
33  MODULE PROCEDURE xios_set_fieldgroup_attr_hdl, xios_set_field_attr_hdl, xios_set_domain_attr_hdl, &
34                   xios_set_axis_attr_hdl, xios_set_file_attr_hdl
35END INTERFACE  xios_set_attr
36
37INTERFACE xios_get_handle
38  MODULE PROCEDURE  xios_get_context_handle, xios_get_field_handle, xios_get_fieldgroup_handle, &
39                    xios_get_domain_handle,xios_get_file_handle, xios_get_filegroup_handle
40END INTERFACE  xios_get_handle
41
42INTERFACE xios_add_child
43  MODULE PROCEDURE xios_fieldgroup_add_child, xios_add_fieldtofile, xios_add_file
44END INTERFACE  xios_add_child
45
46INTERFACE xios_set_current_context
47      MODULE PROCEDURE xios_set_current_context_hdl, xios_set_current_context_id
48END INTERFACE xios_set_current_context
49
50INTERFACE xios_get_current_context
51      MODULE PROCEDURE xios_get_current_context_hdl, xios_get_current_context_id
52END INTERFACE xios_get_current_context
53
54INTERFACE xios_set_start_date
55  MODULE PROCEDURE xios_set_start_date_date, xios_set_start_date_dur
56END INTERFACE xios_set_start_date
57
58INTERFACE xios_set_time_origin
59  MODULE PROCEDURE xios_set_time_origin_date, xios_set_time_origin_dur
60END INTERFACE xios_set_time_origin
61
62INTERFACE xios_is_defined_attr
63  MODULE PROCEDURE xios_is_defined_domain_attr_hdl
64END INTERFACE xios_is_defined_attr
65
66TYPE xios_duration
67  DOUBLE PRECISION :: year=0, month=0, day=0, hour=0, minute=0, second=0, timestep=0
68END TYPE xios_duration
69
70TYPE xios_date
71  INTEGER :: year=0, month=0, day=0, hour=0, minute=0, second=0
72END TYPE xios_date
73
74   
75REAL,PARAMETER :: xios_timestep=1.
76REAL,PARAMETER :: xios_second=1.
77
78TYPE xios_fieldgroup
79END TYPE xios_fieldgroup
80
81TYPE xios_filegroup
82END TYPE xios_filegroup
83
84TYPE xios_context
85END TYPE xios_context
86
87TYPE xios_domain
88END TYPE xios_domain
89
90TYPE xios_axis
91END TYPE xios_axis
92
93TYPE xios_file
94END TYPE xios_file
95
96TYPE xios_field
97END TYPE
98
99
100CONTAINS 
101 
102 
103  SUBROUTINE  xios_initialize(client_id, local_comm, return_comm)
104   IMPLICIT NONE
105   CHARACTER(LEN=*),INTENT(IN) :: client_id
106   INTEGER,INTENT(IN),OPTIONAL         :: local_comm
107   INTEGER,INTENT(OUT),OPTIONAL        :: return_comm
108   INTEGER :: f_local_comm
109   INTEGER :: f_return_comm
110
111  END SUBROUTINE  xios_initialize
112
113SUBROUTINE xios_define_calendar(type, timestep, start_date, time_origin, &
114                                    day_length, month_lengths, year_length, &
115                                    leap_year_month, leap_year_drift, leap_year_drift_offset)
116      IMPLICIT NONE
117      CHARACTER(len = *),              INTENT(IN) :: type
118      TYPE(xios_duration), OPTIONAL, INTENT(IN) :: timestep
119      TYPE(xios_date),     OPTIONAL, INTENT(IN) :: start_date
120      TYPE(xios_date),     OPTIONAL, INTENT(IN) :: time_origin
121      INTEGER,               OPTIONAL, INTENT(IN) :: day_length
122      INTEGER,               OPTIONAL, INTENT(IN) :: month_lengths(:)
123      INTEGER,               OPTIONAL, INTENT(IN) :: year_length
124      REAL (KIND=8),         OPTIONAL, INTENT(IN) :: leap_year_drift
125      REAL (KIND=8),         OPTIONAL, INTENT(IN) :: leap_year_drift_offset
126      INTEGER,               OPTIONAL, INTENT(IN) :: leap_year_month
127
128   END SUBROUTINE xios_define_calendar
129   
130  SUBROUTINE xios_duration_convert_to_string(dur, str)
131    IMPLICIT NONE
132    TYPE(xios_duration), INTENT(IN) :: dur
133    CHARACTER(len = *), INTENT(OUT) :: str
134    str=''
135  END SUBROUTINE xios_duration_convert_to_string
136
137  FUNCTION xios_duration_convert_from_string(str) RESULT(res)
138    IMPLICIT NONE
139    CHARACTER(len = *), INTENT(IN) :: str
140    TYPE(xios_duration) :: res
141
142  END FUNCTION xios_duration_convert_from_string
143
144   SUBROUTINE xios_set_timestep(timestep)
145      IMPLICIT NONE
146      TYPE(xios_duration), INTENT(IN) :: timestep
147   END SUBROUTINE xios_set_timestep
148   
149  SUBROUTINE xios_set_start_date_date(start_date)
150      IMPLICIT NONE
151      TYPE(xios_date), INTENT(IN) :: start_date
152   END SUBROUTINE xios_set_start_date_date
153
154   SUBROUTINE xios_set_start_date_dur(start_date)
155      IMPLICIT NONE
156      TYPE(xios_duration), INTENT(IN) :: start_date
157   END SUBROUTINE xios_set_start_date_dur
158   
159   SUBROUTINE xios_set_time_origin_date(time_origin)
160      IMPLICIT NONE
161      TYPE(xios_date), INTENT(IN) :: time_origin
162   END SUBROUTINE xios_set_time_origin_date
163
164   SUBROUTINE xios_set_time_origin_dur(time_origin)
165      IMPLICIT NONE
166      TYPE(xios_duration), INTENT(IN) :: time_origin
167   END SUBROUTINE xios_set_time_origin_dur
168           
169  SUBROUTINE xios_send_field_scalar(name,field)
170  IMPLICIT NONE
171    CHARACTER(LEN=*),INTENT(IN) :: name
172    REAL,INTENT(IN) :: field
173  END SUBROUTINE xios_send_field_scalar 
174
175  SUBROUTINE xios_send_field_1d(name,field)
176  IMPLICIT NONE
177    CHARACTER(LEN=*),INTENT(IN) :: name
178    REAL,INTENT(IN) :: field(:)
179  END SUBROUTINE xios_send_field_1d 
180
181  SUBROUTINE xios_send_field_2d(name,field)
182  IMPLICIT NONE
183    CHARACTER(LEN=*),INTENT(IN) :: name
184    REAL,INTENT(IN) :: field(:,:)
185  END SUBROUTINE xios_send_field_2d 
186
187  SUBROUTINE xios_send_field_3d(name,field)
188  IMPLICIT NONE
189    CHARACTER(LEN=*),INTENT(IN) :: name
190    REAL,INTENT(IN) :: field(:,:,:)
191  END SUBROUTINE xios_send_field_3d 
192
193  SUBROUTINE xios_send_field_4d(name,field)
194  IMPLICIT NONE
195    CHARACTER(LEN=*),INTENT(IN) :: name
196    REAL,INTENT(IN) :: field(:,:,:,:)
197  END SUBROUTINE xios_send_field_4d 
198
199  SUBROUTINE xios_send_field_5d(name,field)
200  IMPLICIT NONE
201    CHARACTER(LEN=*),INTENT(IN) :: name
202    REAL,INTENT(IN) :: field(:,:,:,:,:)
203  END SUBROUTINE xios_send_field_5d 
204
205
206  SUBROUTINE xios_recv_field_scalar(name,field)
207  IMPLICIT NONE
208    CHARACTER(LEN=*),INTENT(IN) :: name
209    REAL,INTENT(OUT) :: field
210    field=0
211  END SUBROUTINE xios_recv_field_scalar 
212
213  SUBROUTINE xios_recv_field_1d(name,field)
214  IMPLICIT NONE
215    CHARACTER(LEN=*),INTENT(IN) :: name
216    REAL,INTENT(OUT) :: field(:)
217    field=0
218  END SUBROUTINE xios_recv_field_1d 
219
220  SUBROUTINE xios_recv_field_2d(name,field)
221  IMPLICIT NONE
222    CHARACTER(LEN=*),INTENT(IN) :: name
223    REAL,INTENT(OUT) :: field(:,:)
224    field=0
225  END SUBROUTINE xios_recv_field_2d 
226
227  SUBROUTINE xios_recv_field_3d(name,field)
228  IMPLICIT NONE
229    CHARACTER(LEN=*),INTENT(IN) :: name
230    REAL,INTENT(OUT) :: field(:,:,:)
231    field=0
232  END SUBROUTINE xios_recv_field_3d 
233
234  SUBROUTINE xios_recv_field_4d(name,field)
235  IMPLICIT NONE
236    CHARACTER(LEN=*),INTENT(IN) :: name
237    REAL,INTENT(OUT) :: field(:,:,:,:)
238    field=0
239  END SUBROUTINE xios_recv_field_4d 
240
241
242  FUNCTION xios_is_active_field(field_id)
243  IMPLICIT NONE
244   LOGICAL ::  xios_is_active_field
245   CHARACTER(LEN=*) :: field_id
246    xios_is_active_field = .TRUE.
247  END FUNCTION xios_is_active_field
248
249  LOGICAL FUNCTION xios_is_valid_field(idt)
250    IMPLICIT NONE
251    CHARACTER(len  = *)    , INTENT(IN) :: idt
252    xios_is_valid_field = .FALSE.
253  END FUNCTION  xios_is_valid_field
254
255  LOGICAL FUNCTION xios_is_valid_file(idt)
256    IMPLICIT NONE
257    CHARACTER(len  = *)    , INTENT(IN) :: idt
258    xios_is_valid_file = .FALSE.
259  END FUNCTION  xios_is_valid_file
260
261  LOGICAL FUNCTION xios_is_valid_axis(idt)
262    IMPLICIT NONE
263    CHARACTER(len  = *)    , INTENT(IN) :: idt
264    xios_is_valid_axis = .FALSE.
265  END FUNCTION  xios_is_valid_axis
266
267  LOGICAL FUNCTION xios_is_valid_domain(idt)
268    IMPLICIT NONE
269    CHARACTER(len  = *)    , INTENT(IN) :: idt
270    xios_is_valid_domain = .FALSE.
271  END FUNCTION  xios_is_valid_domain
272
273
274   SUBROUTINE  xios_context_initialize(context_id,comm)
275   IMPLICIT NONE
276   CHARACTER(LEN=*),INTENT(IN)  :: context_id
277   INTEGER, INTENT(IN)          :: comm
278
279   END SUBROUTINE  xios_context_initialize
280
281
282   SUBROUTINE  xios_finalize
283   IMPLICIT NONE
284
285   END SUBROUTINE  xios_finalize
286
287
288   SUBROUTINE  xios_oasis_enddef
289   IMPLICIT NONE
290
291   END SUBROUTINE  xios_oasis_enddef
292
293
294   SUBROUTINE xios_close_context_definition
295   IMPLICIT NONE
296
297   END SUBROUTINE xios_close_context_definition
298
299
300   SUBROUTINE xios_set_current_context_hdl(context, withswap)
301      IMPLICIT NONE
302      TYPE(xios_context)          , INTENT(IN) :: context
303      LOGICAL                     , OPTIONAL, INTENT(IN) :: withswap
304   END SUBROUTINE xios_set_current_context_hdl
305   
306   SUBROUTINE xios_set_current_context_id(idt)
307      IMPLICIT NONE
308
309      CHARACTER(len = *) , INTENT(IN) :: idt
310      LOGICAL           :: withswap
311    END SUBROUTINE xios_set_current_context_id
312   
313
314   SUBROUTINE xios_get_current_context_hdl(context)
315      IMPLICIT NONE
316      TYPE(xios_context), INTENT(OUT) :: context
317   END SUBROUTINE xios_get_current_context_hdl
318
319   SUBROUTINE xios_get_current_context_id(idt)
320      IMPLICIT NONE
321      CHARACTER(len = *) , INTENT(OUT) :: idt
322      TYPE(xios_context) :: context
323   END SUBROUTINE xios_get_current_context_id
324
325   SUBROUTINE xios_context_finalize()
326   IMPLICIT NONE
327
328   END SUBROUTINE xios_context_finalize
329
330
331   SUBROUTINE xios_solve_inheritance()
332   IMPLICIT NONE
333
334   END SUBROUTINE xios_solve_inheritance
335
336
337
338
339 
340  SUBROUTINE xios_update_calendar(step)
341  IMPLICIT NONE
342   INTEGER, INTENT(IN):: step 
343  END SUBROUTINE xios_update_calendar
344
345  SUBROUTINE xios_set_filegroup_attr(name,enabled)
346    CHARACTER(LEN=*) :: name
347    LOGICAL,OPTIONAL          :: enabled
348  END SUBROUTINE xios_set_filegroup_attr
349
350  SUBROUTINE xios_get_axis_attr(name,n_glo,value)
351    CHARACTER(LEN=*) :: name
352    INTEGER,OPTIONAL          :: n_glo
353    REAL,OPTIONAL             :: value(:)
354  END SUBROUTINE xios_get_axis_attr
355
356   SUBROUTINE xios_get_context_handle(idt,ret)
357    IMPLICIT NONE
358    CHARACTER(len = *)  , INTENT(IN)  :: idt
359    TYPE(xios_context), INTENT(OUT):: ret
360    TYPE(xios_context)             :: nothing
361     
362      ret=nothing
363   END SUBROUTINE xios_get_context_handle
364
365   SUBROUTINE xios_get_domain_handle(idt,ret)
366      IMPLICIT NONE
367      CHARACTER(len = *) , INTENT(IN) :: idt     
368      TYPE(xios_domain), INTENT(OUT):: ret
369      TYPE(xios_domain)             :: hdl
370      ret=hdl
371   END SUBROUTINE xios_get_domain_handle   
372
373   SUBROUTINE xios_get_field_handle(idt,ret)
374      IMPLICIT NONE
375      CHARACTER(len = *) , INTENT(IN) :: idt     
376      TYPE(xios_field), INTENT(OUT):: ret
377      TYPE(xios_field)             :: hdl
378      ret=hdl
379   END SUBROUTINE xios_get_field_handle   
380
381   SUBROUTINE xios_get_fieldgroup_handle(idt,ret)
382      IMPLICIT NONE
383      CHARACTER(len = *) , INTENT(IN) :: idt     
384      TYPE(xios_fieldgroup), INTENT(OUT):: ret
385      TYPE(xios_fieldgroup)             :: hdl
386      ret=hdl
387   END SUBROUTINE xios_get_fieldgroup_handle   
388
389   SUBROUTINE xios_get_file_handle(idt,ret)
390      IMPLICIT NONE
391      CHARACTER(len = *) , INTENT(IN) :: idt     
392      TYPE(xios_file), INTENT(OUT):: ret
393      TYPE(xios_file)             :: hdl
394      ret=hdl
395   END SUBROUTINE xios_get_file_handle   
396
397   SUBROUTINE xios_get_filegroup_handle(idt,ret)
398      IMPLICIT NONE
399      CHARACTER(len = *) , INTENT(IN) :: idt     
400      TYPE(xios_filegroup), INTENT(OUT):: ret
401      TYPE(xios_filegroup)             :: hdl
402      ret=hdl
403   END SUBROUTINE xios_get_filegroup_handle   
404
405
406
407  SUBROUTINE xios_fieldgroup_add_child(fieldgroup_hdl, field_hdl, id)
408    TYPE(xios_fieldgroup)     :: fieldgroup_hdl
409    TYPE(xios_field)          :: field_hdl
410    CHARACTER(LEN=*),OPTIONAL :: id
411  END SUBROUTINE xios_fieldgroup_add_child
412
413  SUBROUTINE xios_add_file(parent_hdl, child_hdl, child_id)
414      TYPE(xios_filegroup)      , INTENT(IN) :: parent_hdl
415      TYPE(xios_file)           , INTENT(OUT):: child_hdl
416      CHARACTER(len = *), OPTIONAL, INTENT(IN)  :: child_id
417      TYPE(xios_file) :: hdl
418      child_hdl = hdl
419  END SUBROUTINE xios_add_file
420
421  SUBROUTINE xios_add_field(parent_hdl, child_hdl, child_id)
422      TYPE(xios_fieldgroup)      , INTENT(IN) :: parent_hdl
423      TYPE(xios_field)           , INTENT(OUT):: child_hdl
424      CHARACTER(len = *), OPTIONAL, INTENT(IN)  :: child_id
425      TYPE(xios_field) :: hdl
426      child_hdl = hdl
427  END SUBROUTINE xios_add_field
428 
429  SUBROUTINE xios_add_fieldtofile(parent_hdl, child_hdl, child_id)
430    TYPE(xios_file)            , INTENT(IN) :: parent_hdl
431    TYPE(xios_field)           , INTENT(OUT):: child_hdl
432    CHARACTER(len = *), OPTIONAL , INTENT(IN) :: child_id
433    TYPE(xios_field) :: hdl
434    child_hdl = hdl
435
436  END SUBROUTINE xios_add_fieldtofile
437   
438  LOGICAL FUNCTION xios_field_is_active_id(field_id, at_current_timestep_arg)
439      IMPLICIT NONE
440      CHARACTER(len  = *) , INTENT(IN) :: field_id
441      LOGICAL, OPTIONAL   , INTENT(IN) :: at_current_timestep_arg
442
443     xios_field_is_active_id=.FALSE.
444   END FUNCTION xios_field_is_active_id
445
446   LOGICAL FUNCTION xios_field_is_active_hdl(field_hdl, at_current_timestep_arg)
447      IMPLICIT NONE
448      TYPE(xios_field) , INTENT(IN) :: field_hdl
449      LOGICAL, OPTIONAL  , INTENT(IN) :: at_current_timestep_arg
450
451     xios_field_is_active_hdl = .FALSE.
452   END FUNCTION xios_field_is_active_hdl
453   
454
455  SUBROUTINE  xios_set_generate_rectilinear_domain_attr(id, bounds_lon_start, bounds_lon_end,  bounds_lat_start,  bounds_lat_end)
456    CHARACTER(LEN=*) :: id
457    REAL, OPTIONAL :: bounds_lon_start
458    REAL, OPTIONAL :: bounds_lon_end
459    REAL, OPTIONAL :: bounds_lat_start
460    REAL, OPTIONAL :: bounds_lat_end
461  END SUBROUTINE  xios_set_generate_rectilinear_domain_attr   
462
463  SUBROUTINE xios_set_domain_attr  &
464    ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  &
465    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  &
466    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
467    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
468    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
469
470    IMPLICIT NONE
471      TYPE(xios_domain)  :: domain_hdl
472      CHARACTER(LEN=*), INTENT(IN) ::domain_id
473      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area(:,:)
474      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:)
475      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:)
476      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name
477      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:)
478      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:)
479      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name
480      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
481      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
482      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
483      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin
484      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index(:)
485      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin
486      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni
487      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj
488      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name
489      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name
490      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
491      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:)
492      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
493      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:)
494      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
495      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name
496      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:)
497      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:)
498      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name
499      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
500      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:)
501      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_2d(:,:)
502      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:)
503      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d(:,:)
504      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
505      INTEGER  , OPTIONAL, INTENT(IN) :: ni
506      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo
507      INTEGER  , OPTIONAL, INTENT(IN) :: nj
508      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
509      INTEGER  , OPTIONAL, INTENT(IN) :: nvertex
510      INTEGER  , OPTIONAL, INTENT(IN) :: prec
511      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius
512      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
513      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
514
515  END SUBROUTINE xios_set_domain_attr 
516
517  SUBROUTINE xios_set_domain_attr_hdl  &
518    ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  &
519    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  &
520    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
521    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
522    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
523
524    IMPLICIT NONE
525      TYPE(xios_domain) , INTENT(IN) :: domain_hdl
526      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: area(:,:)
527      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_1d(:,:)
528      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lat_2d(:,:,:)
529      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lat_name
530      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_1d(:,:)
531      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds_lon_2d(:,:,:)
532      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_lon_name
533      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
534      INTEGER  , OPTIONAL, INTENT(IN) :: data_dim
535      INTEGER  , OPTIONAL, INTENT(IN) :: data_i_index(:)
536      INTEGER  , OPTIONAL, INTENT(IN) :: data_ibegin
537      INTEGER  , OPTIONAL, INTENT(IN) :: data_j_index(:)
538      INTEGER  , OPTIONAL, INTENT(IN) :: data_jbegin
539      INTEGER  , OPTIONAL, INTENT(IN) :: data_ni
540      INTEGER  , OPTIONAL, INTENT(IN) :: data_nj
541      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_i_name
542      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_j_name
543      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
544      INTEGER  , OPTIONAL, INTENT(IN) :: i_index(:)
545      INTEGER  , OPTIONAL, INTENT(IN) :: ibegin
546      INTEGER  , OPTIONAL, INTENT(IN) :: j_index(:)
547      INTEGER  , OPTIONAL, INTENT(IN) :: jbegin
548      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lat_name
549      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_1d(:)
550      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: latvalue_2d(:,:)
551      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: lon_name
552      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
553      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_1d(:)
554      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: lonvalue_2d(:,:)
555      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_1d(:)
556      LOGICAL  , OPTIONAL, INTENT(IN) :: mask_2d(:,:)
557      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
558      INTEGER  , OPTIONAL, INTENT(IN) :: ni
559      INTEGER  , OPTIONAL, INTENT(IN) :: ni_glo
560      INTEGER  , OPTIONAL, INTENT(IN) :: nj
561      INTEGER  , OPTIONAL, INTENT(IN) :: nj_glo
562      INTEGER  , OPTIONAL, INTENT(IN) :: nvertex
563      INTEGER  , OPTIONAL, INTENT(IN) :: prec
564      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: radius
565      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
566      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
567 
568  END SUBROUTINE xios_set_domain_attr_hdl
569
570
571
572  SUBROUTINE xios_set_axis_attr  &
573    ( axis_id, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  &
574    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  &
575    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  &
576    , value )
577
578    IMPLICIT NONE
579      TYPE(xios_axis)  :: axis_hdl
580      CHARACTER(LEN=*), INTENT(IN) ::axis_id
581      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
582      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type
583      INTEGER  , OPTIONAL, INTENT(IN) :: begin
584      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:)
585      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name
586      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
587      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin
588      INTEGER  , OPTIONAL, INTENT(IN) :: data_index(:)
589      INTEGER  , OPTIONAL, INTENT(IN) :: data_n
590      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name
591      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula
592      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds
593      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term
594      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds
595      INTEGER  , OPTIONAL, INTENT(IN) :: index(:)
596      CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label(:)
597      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
598      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:)
599      INTEGER  , OPTIONAL, INTENT(IN) :: n
600      INTEGER  , OPTIONAL, INTENT(IN) :: n_distributed_partition
601      INTEGER  , OPTIONAL, INTENT(IN) :: n_glo
602      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
603      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
604      INTEGER  , OPTIONAL, INTENT(IN) :: prec
605      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
606      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
607      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value(:)
608
609  END SUBROUTINE xios_set_axis_attr
610
611  SUBROUTINE xios_set_axis_attr_hdl  &
612    ( axis_hdl, axis_ref, axis_type, begin, bounds, bounds_name, comment, data_begin, data_index  &
613    , data_n, dim_name, formula, formula_bounds, formula_term, formula_term_bounds, index, label  &
614    , long_name, mask, n, n_distributed_partition, n_glo, name, positive, prec, standard_name, unit  &
615    , value )
616
617    IMPLICIT NONE
618      TYPE(xios_axis) , INTENT(IN) :: axis_hdl
619      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
620      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_type
621      INTEGER  , OPTIONAL, INTENT(IN) :: begin
622      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: bounds(:,:)
623      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: bounds_name
624      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
625      INTEGER  , OPTIONAL, INTENT(IN) :: data_begin
626      INTEGER  , OPTIONAL, INTENT(IN) :: data_index(:)
627      INTEGER  , OPTIONAL, INTENT(IN) :: data_n
628      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: dim_name
629      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula
630      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_bounds
631      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term
632      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: formula_term_bounds
633      INTEGER  , OPTIONAL, INTENT(IN) :: index(:)
634      CHARACTER(len=*) , OPTIONAL, INTENT(IN) :: label(:)
635      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
636      LOGICAL  , OPTIONAL, INTENT(IN) :: mask(:)
637      INTEGER  , OPTIONAL, INTENT(IN) :: n
638      INTEGER  , OPTIONAL, INTENT(IN) :: n_distributed_partition
639      INTEGER  , OPTIONAL, INTENT(IN) :: n_glo
640      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
641      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: positive
642      INTEGER  , OPTIONAL, INTENT(IN) :: prec
643      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
644      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
645      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: value(:)
646
647  END SUBROUTINE xios_set_axis_attr_hdl
648
649  SUBROUTINE xios_set_field_attr  &
650    ( field_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
651    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
652    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
653    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
654    , unit, valid_max, valid_min )
655
656    IMPLICIT NONE
657      TYPE(xios_field)  :: field_hdl
658      CHARACTER(LEN=*), INTENT(IN) ::field_id
659      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
660      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
661      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
662      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
663      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
664      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active
665      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
666      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
667      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
668      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
669      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
670      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
671      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
672      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
673      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_offset
674      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_op
675      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_path
676      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
677      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output
678      INTEGER  , OPTIONAL, INTENT(IN) :: level
679      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
680      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
681      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
682      INTEGER  , OPTIONAL, INTENT(IN) :: prec
683      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access
684      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref
685      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor
686      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
687      LOGICAL  , OPTIONAL, INTENT(IN) :: ts_enabled
688      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: ts_split_freq
689      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
690      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max
691      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min
692
693  END SUBROUTINE xios_set_field_attr
694
695  SUBROUTINE xios_set_field_attr_hdl  &
696    ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
697    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
698    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
699    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
700    , unit, valid_max, valid_min )
701
702    IMPLICIT NONE
703      TYPE(xios_field) , INTENT(IN) :: field_hdl
704      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
705      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
706      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
707      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
708      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
709      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active
710      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
711      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
712      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
713      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
714      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
715      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
716      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
717      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
718      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_offset
719      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_op
720      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_path
721      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
722      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output
723      INTEGER  , OPTIONAL, INTENT(IN) :: level
724      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
725      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
726      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
727      INTEGER  , OPTIONAL, INTENT(IN) :: prec
728      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access
729      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref
730      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor
731      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
732      LOGICAL  , OPTIONAL, INTENT(IN) :: ts_enabled
733      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: ts_split_freq
734      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
735      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max
736      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min
737
738
739  END SUBROUTINE xios_set_field_attr_hdl
740
741
742  SUBROUTINE xios_set_fieldgroup_attr  &
743    ( fieldgroup_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
744    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
745    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
746    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
747    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
748
749    IMPLICIT NONE
750      TYPE(xios_fieldgroup)  :: fieldgroup_hdl
751      CHARACTER(LEN=*), INTENT(IN) ::fieldgroup_id
752      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
753      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
754      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
755      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
756      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
757      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active
758      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
759      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
760      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
761      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
762      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
763      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
764      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
765      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
766      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_offset
767      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_op
768      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_path
769      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
770      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
771      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output
772      INTEGER  , OPTIONAL, INTENT(IN) :: level
773      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
774      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
775      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
776      INTEGER  , OPTIONAL, INTENT(IN) :: prec
777      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access
778      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref
779      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor
780      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
781      LOGICAL  , OPTIONAL, INTENT(IN) :: ts_enabled
782      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: ts_split_freq
783      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
784      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max
785      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min
786
787  END SUBROUTINE xios_set_fieldgroup_attr
788
789  SUBROUTINE xios_set_fieldgroup_attr_hdl  &
790    ( fieldgroup_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode  &
791    , check_if_active, comment, compression_level, default_value, detect_missing_value, domain_ref  &
792    , enabled, expr, field_ref, freq_offset, freq_op, grid_path, grid_ref, group_ref, indexed_output  &
793    , level, long_name, name, operation, prec, read_access, scalar_ref, scale_factor, standard_name  &
794    , ts_enabled, ts_split_freq, unit, valid_max, valid_min )
795
796    IMPLICIT NONE
797      TYPE(xios_fieldgroup) , INTENT(IN) :: fieldgroup_hdl
798      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: add_offset
799      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: axis_ref
800      LOGICAL  , OPTIONAL, INTENT(IN) :: build_workflow_graph
801      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods
802      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: cell_methods_mode
803      LOGICAL  , OPTIONAL, INTENT(IN) :: check_if_active
804      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
805      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
806      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: default_value
807      LOGICAL  , OPTIONAL, INTENT(IN) :: detect_missing_value
808      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: domain_ref
809      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
810      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: expr
811      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: field_ref
812      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_offset
813      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: freq_op
814      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_path
815      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: grid_ref
816      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: group_ref
817      LOGICAL  , OPTIONAL, INTENT(IN) :: indexed_output
818      INTEGER  , OPTIONAL, INTENT(IN) :: level
819      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name
820      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
821      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: operation
822      INTEGER  , OPTIONAL, INTENT(IN) :: prec
823      LOGICAL  , OPTIONAL, INTENT(IN) :: read_access
824      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: scalar_ref
825      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: scale_factor
826      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name
827      LOGICAL  , OPTIONAL, INTENT(IN) :: ts_enabled
828      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: ts_split_freq
829      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit
830      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_max
831      REAL (KIND=8) , OPTIONAL, INTENT(IN) :: valid_min
832
833  END SUBROUTINE xios_set_fieldgroup_attr_hdl
834
835
836  SUBROUTINE xios_set_file_attr  &
837    ( file_id, append, comment, compression_level, convention, convention_str, cyclic, description  &
838    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  &
839    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  &
840    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  &
841    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name )
842
843    IMPLICIT NONE
844      TYPE(xios_file)  :: file_hdl
845      CHARACTER(LEN=*), INTENT(IN) ::file_id
846      LOGICAL  , OPTIONAL, INTENT(IN) :: append
847      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
848      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
849      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention
850      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str
851      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic
852      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
853      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
854      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: format
855      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits
856      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode
857      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
858      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix
859      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: output_freq
860      INTEGER  , OPTIONAL, INTENT(IN) :: output_level
861      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access
862      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par
863      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset
864      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: split_end_offset
865      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: split_freq
866      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format
867      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date
868      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: split_start_offset
869      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: sync_freq
870      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter
871      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter_name
872      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_stamp_format
873      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_stamp_name
874      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_units
875      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timeseries
876      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_prefix
877      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
878      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: uuid_format
879      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: uuid_name
880
881  END SUBROUTINE xios_set_file_attr
882
883  SUBROUTINE xios_set_file_attr_hdl  &
884    ( file_hdl, append, comment, compression_level, convention, convention_str, cyclic, description  &
885    , enabled, format, min_digits, mode, name, name_suffix, output_freq, output_level, par_access  &
886    , read_metadata_par, record_offset, split_end_offset, split_freq, split_freq_format, split_last_date  &
887    , split_start_offset, sync_freq, time_counter, time_counter_name, time_stamp_format, time_stamp_name  &
888    , time_units, timeseries, ts_prefix, type, uuid_format, uuid_name )
889
890    IMPLICIT NONE
891      TYPE(xios_file) , INTENT(IN) :: file_hdl
892      LOGICAL  , OPTIONAL, INTENT(IN) :: append
893      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: comment
894      INTEGER  , OPTIONAL, INTENT(IN) :: compression_level
895      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention
896      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: convention_str
897      LOGICAL  , OPTIONAL, INTENT(IN) :: cyclic
898      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: description
899      LOGICAL  , OPTIONAL, INTENT(IN) :: enabled
900      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: format
901      INTEGER  , OPTIONAL, INTENT(IN) :: min_digits
902      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: mode
903      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name
904      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_suffix
905      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: output_freq
906      INTEGER  , OPTIONAL, INTENT(IN) :: output_level
907      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: par_access
908      LOGICAL  , OPTIONAL, INTENT(IN) :: read_metadata_par
909      INTEGER  , OPTIONAL, INTENT(IN) :: record_offset
910      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: split_end_offset
911      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: split_freq
912      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_freq_format
913      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: split_last_date
914      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: split_start_offset
915      TYPE(xios_duration)  , OPTIONAL, INTENT(IN) :: sync_freq
916      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter
917      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_counter_name
918      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_stamp_format
919      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_stamp_name
920      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: time_units
921      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timeseries
922      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: ts_prefix
923      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: type
924      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: uuid_format
925      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: uuid_name
926
927  END SUBROUTINE xios_set_file_attr_hdl
928
929
930  SUBROUTINE xios_is_defined_domain_attr  &
931    ( domain_id, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  &
932    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  &
933    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
934    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
935    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
936
937    IMPLICIT NONE
938      CHARACTER(LEN=*), INTENT(IN) ::domain_id
939      LOGICAL, OPTIONAL, INTENT(OUT) :: area
940      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_1d
941      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d
942      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name
943      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d
944      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d
945      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name
946      LOGICAL, OPTIONAL, INTENT(OUT) :: comment
947      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim
948      LOGICAL, OPTIONAL, INTENT(OUT) :: data_i_index
949      LOGICAL, OPTIONAL, INTENT(OUT) :: data_ibegin
950      LOGICAL, OPTIONAL, INTENT(OUT) :: data_j_index
951      LOGICAL, OPTIONAL, INTENT(OUT) :: data_jbegin
952      LOGICAL, OPTIONAL, INTENT(OUT) :: data_ni
953      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj
954      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name
955      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name
956      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref
957      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index
958      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin
959      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index
960      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin
961      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name
962      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d
963      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d
964      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name
965      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
966      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_1d
967      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_2d
968      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d
969      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d
970      LOGICAL, OPTIONAL, INTENT(OUT) :: name
971      LOGICAL, OPTIONAL, INTENT(OUT) :: ni
972      LOGICAL, OPTIONAL, INTENT(OUT) :: ni_glo
973      LOGICAL, OPTIONAL, INTENT(OUT) :: nj
974      LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo
975      LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex
976      LOGICAL, OPTIONAL, INTENT(OUT) :: prec
977      LOGICAL, OPTIONAL, INTENT(OUT) :: radius
978      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
979      LOGICAL, OPTIONAL, INTENT(OUT) :: type
980
981      area = .FALSE.
982      bounds_lat_1d = .FALSE.
983      bounds_lat_2d = .FALSE.
984      bounds_lat_name = .FALSE.
985      bounds_lon_1d = .FALSE.
986      bounds_lon_2d = .FALSE.
987      bounds_lon_name = .FALSE.
988      comment = .FALSE.
989      data_dim = .FALSE.
990      data_i_index = .FALSE.
991      data_ibegin = .FALSE.
992      data_j_index = .FALSE.
993      data_jbegin = .FALSE.
994      data_ni = .FALSE.
995      data_nj = .FALSE.
996      dim_i_name = .FALSE.
997      dim_j_name = .FALSE.
998      domain_ref = .FALSE.
999      i_index = .FALSE.
1000      ibegin = .FALSE.
1001      j_index = .FALSE.
1002      jbegin = .FALSE.
1003      lat_name = .FALSE.
1004      latvalue_1d = .FALSE.
1005      latvalue_2d = .FALSE.
1006      lon_name = .FALSE.
1007      long_name = .FALSE.
1008      lonvalue_1d = .FALSE.
1009      lonvalue_2d = .FALSE.
1010      mask_1d = .FALSE.
1011      mask_2d = .FALSE.
1012      name = .FALSE.
1013      ni = .FALSE.
1014      ni_glo = .FALSE.
1015      nj = .FALSE.
1016      nj_glo = .FALSE.
1017      nvertex = .FALSE.
1018      prec = .FALSE.
1019      radius = .FALSE.
1020      standard_name = .FALSE.
1021      type = .FALSE.
1022
1023  END SUBROUTINE xios_is_defined_domain_attr
1024
1025  SUBROUTINE xios_is_defined_domain_attr_hdl  &
1026    ( domain_hdl, area, bounds_lat_1d, bounds_lat_2d, bounds_lat_name, bounds_lon_1d, bounds_lon_2d  &
1027    , bounds_lon_name, comment, data_dim, data_i_index, data_ibegin, data_j_index, data_jbegin, data_ni  &
1028    , data_nj, dim_i_name, dim_j_name, domain_ref, i_index, ibegin, j_index, jbegin, lat_name, latvalue_1d  &
1029    , latvalue_2d, lon_name, long_name, lonvalue_1d, lonvalue_2d, mask_1d, mask_2d, name, ni, ni_glo  &
1030    , nj, nj_glo, nvertex, prec, radius, standard_name, type )
1031
1032    IMPLICIT NONE
1033      TYPE(xios_domain), INTENT(IN) :: domain_hdl
1034      LOGICAL, OPTIONAL, INTENT(OUT) :: area
1035      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_1d
1036      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_2d
1037      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lat_name
1038      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_1d
1039      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_2d
1040      LOGICAL, OPTIONAL, INTENT(OUT) :: bounds_lon_name
1041      LOGICAL, OPTIONAL, INTENT(OUT) :: comment
1042      LOGICAL, OPTIONAL, INTENT(OUT) :: data_dim
1043      LOGICAL, OPTIONAL, INTENT(OUT) :: data_i_index
1044      LOGICAL, OPTIONAL, INTENT(OUT) :: data_ibegin
1045      LOGICAL, OPTIONAL, INTENT(OUT) :: data_j_index
1046      LOGICAL, OPTIONAL, INTENT(OUT) :: data_jbegin
1047      LOGICAL, OPTIONAL, INTENT(OUT) :: data_ni
1048      LOGICAL, OPTIONAL, INTENT(OUT) :: data_nj
1049      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_i_name
1050      LOGICAL, OPTIONAL, INTENT(OUT) :: dim_j_name
1051      LOGICAL, OPTIONAL, INTENT(OUT) :: domain_ref
1052      LOGICAL, OPTIONAL, INTENT(OUT) :: i_index
1053      LOGICAL, OPTIONAL, INTENT(OUT) :: ibegin
1054      LOGICAL, OPTIONAL, INTENT(OUT) :: j_index
1055      LOGICAL, OPTIONAL, INTENT(OUT) :: jbegin
1056      LOGICAL, OPTIONAL, INTENT(OUT) :: lat_name
1057      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_1d
1058      LOGICAL, OPTIONAL, INTENT(OUT) :: latvalue_2d
1059      LOGICAL, OPTIONAL, INTENT(OUT) :: lon_name
1060      LOGICAL, OPTIONAL, INTENT(OUT) :: long_name
1061      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_1d
1062      LOGICAL, OPTIONAL, INTENT(OUT) :: lonvalue_2d
1063      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_1d
1064      LOGICAL, OPTIONAL, INTENT(OUT) :: mask_2d
1065      LOGICAL, OPTIONAL, INTENT(OUT) :: name
1066      LOGICAL, OPTIONAL, INTENT(OUT) :: ni
1067      LOGICAL, OPTIONAL, INTENT(OUT) :: ni_glo
1068      LOGICAL, OPTIONAL, INTENT(OUT) :: nj
1069      LOGICAL, OPTIONAL, INTENT(OUT) :: nj_glo
1070      LOGICAL, OPTIONAL, INTENT(OUT) :: nvertex
1071      LOGICAL, OPTIONAL, INTENT(OUT) :: prec
1072      LOGICAL, OPTIONAL, INTENT(OUT) :: radius
1073      LOGICAL, OPTIONAL, INTENT(OUT) :: standard_name
1074      LOGICAL, OPTIONAL, INTENT(OUT) :: type
1075
1076      area = .FALSE.
1077      bounds_lat_1d = .FALSE.
1078      bounds_lat_2d = .FALSE.
1079      bounds_lat_name = .FALSE.
1080      bounds_lon_1d = .FALSE.
1081      bounds_lon_2d = .FALSE.
1082      bounds_lon_name = .FALSE.
1083      comment = .FALSE.
1084      data_dim = .FALSE.
1085      data_i_index = .FALSE.
1086      data_ibegin = .FALSE.
1087      data_j_index = .FALSE.
1088      data_jbegin = .FALSE.
1089      data_ni = .FALSE.
1090      data_nj = .FALSE.
1091      dim_i_name = .FALSE.
1092      dim_j_name = .FALSE.
1093      domain_ref = .FALSE.
1094      i_index = .FALSE.
1095      ibegin = .FALSE.
1096      j_index = .FALSE.
1097      jbegin = .FALSE.
1098      lat_name = .FALSE.
1099      latvalue_1d = .FALSE.
1100      latvalue_2d = .FALSE.
1101      lon_name = .FALSE.
1102      long_name = .FALSE.
1103      lonvalue_1d = .FALSE.
1104      lonvalue_2d = .FALSE.
1105      mask_1d = .FALSE.
1106      mask_2d = .FALSE.
1107      name = .FALSE.
1108      ni = .FALSE.
1109      ni_glo = .FALSE.
1110      nj = .FALSE.
1111      nj_glo = .FALSE.
1112      nvertex = .FALSE.
1113      prec = .FALSE.
1114      radius = .FALSE.
1115      standard_name = .FALSE.
1116      type = .FALSE.
1117
1118  END SUBROUTINE xios_is_defined_domain_attr_hdl
1119
1120  SUBROUTINE xios_get_field_attr  &
1121    ( field_id, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
1122    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
1123    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
1124    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
1125    , unit, valid_max, valid_min )
1126
1127    IMPLICIT NONE
1128      TYPE(xios_field)  :: field_hdl
1129      CHARACTER(LEN=*), INTENT(IN) ::field_id
1130      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
1131      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
1132      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph
1133      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
1134      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
1135      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active
1136      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment
1137      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
1138      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
1139      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
1140      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
1141      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
1142      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr
1143      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
1144      TYPE(xios_duration)  , OPTIONAL, INTENT(OUT) :: freq_offset
1145      TYPE(xios_duration)  , OPTIONAL, INTENT(OUT) :: freq_op
1146      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_path
1147      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
1148      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output
1149      INTEGER  , OPTIONAL, INTENT(OUT) :: level
1150      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
1151      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
1152      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
1153      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
1154      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access
1155      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref
1156      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor
1157      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
1158      LOGICAL  , OPTIONAL, INTENT(OUT) :: ts_enabled
1159      TYPE(xios_duration)  , OPTIONAL, INTENT(OUT) :: ts_split_freq
1160      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
1161      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max
1162      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min
1163
1164  END SUBROUTINE xios_get_field_attr
1165
1166  SUBROUTINE xios_get_field_attr_hdl  &
1167    ( field_hdl, add_offset, axis_ref, build_workflow_graph, cell_methods, cell_methods_mode, check_if_active  &
1168    , comment, compression_level, default_value, detect_missing_value, domain_ref, enabled, expr  &
1169    , field_ref, freq_offset, freq_op, grid_path, grid_ref, indexed_output, level, long_name, name  &
1170    , operation, prec, read_access, scalar_ref, scale_factor, standard_name, ts_enabled, ts_split_freq  &
1171    , unit, valid_max, valid_min )
1172
1173    IMPLICIT NONE
1174      TYPE(xios_field) , INTENT(IN) :: field_hdl
1175      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: add_offset
1176      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: axis_ref
1177      LOGICAL  , OPTIONAL, INTENT(OUT) :: build_workflow_graph
1178      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods
1179      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: cell_methods_mode
1180      LOGICAL  , OPTIONAL, INTENT(OUT) :: check_if_active
1181      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: comment
1182      INTEGER  , OPTIONAL, INTENT(OUT) :: compression_level
1183      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: default_value
1184      LOGICAL  , OPTIONAL, INTENT(OUT) :: detect_missing_value
1185      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: domain_ref
1186      LOGICAL  , OPTIONAL, INTENT(OUT) :: enabled
1187      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: expr
1188      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: field_ref
1189      TYPE(xios_duration)  , OPTIONAL, INTENT(OUT) :: freq_offset
1190      TYPE(xios_duration)  , OPTIONAL, INTENT(OUT) :: freq_op
1191      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_path
1192      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: grid_ref
1193      LOGICAL  , OPTIONAL, INTENT(OUT) :: indexed_output
1194      INTEGER  , OPTIONAL, INTENT(OUT) :: level
1195      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: long_name
1196      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: name
1197      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: operation
1198      INTEGER  , OPTIONAL, INTENT(OUT) :: prec
1199      LOGICAL  , OPTIONAL, INTENT(OUT) :: read_access
1200      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: scalar_ref
1201      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: scale_factor
1202      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: standard_name
1203      LOGICAL  , OPTIONAL, INTENT(OUT) :: ts_enabled
1204      TYPE(xios_duration)  , OPTIONAL, INTENT(OUT) :: ts_split_freq
1205      CHARACTER(len = *) , OPTIONAL, INTENT(OUT) :: unit
1206      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_max
1207      REAL (KIND=8) , OPTIONAL, INTENT(OUT) :: valid_min
1208
1209  END SUBROUTINE xios_get_field_attr_hdl
1210     
1211END MODULE lmdz_xios
1212
1213#endif
Note: See TracBrowser for help on using the repository browser.