source: LMDZ6/branches/contrails/libf/misc/lmdz_xios.F90 @ 5472

Last change on this file since 5472 was 5084, checked in by Laurent Fairhead, 12 months ago

Reverting to r4065. Updating fortran standard broke too much stuff. Will do it by smaller chunks
AB, LF

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.