Ignore:
Timestamp:
Jul 24, 2024, 6:46:45 PM (2 months ago)
Author:
abarral
Message:

enforce PRIVATE by default in several modules, expose PUBLIC as needed
move eigen.f90 to obsolete/
(lint) aslong the way

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_xios.F90

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