Ignore:
Timestamp:
Jul 24, 2024, 6:46:45 PM (12 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

Location:
LMDZ6/branches/Amaury_dev/libf/misc
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_TO_MOVE_ssum_scopy.f90

    r5117 r5119  
    33! Those are old legacy CRAY replacement functions, that are now used in several parts of the code.
    44
    5 SUBROUTINE scopy(n, sx, incx, sy, incy)
     5MODULE lmdz_ssum_scopy
     6  IMPLICIT NONE; PRIVATE
     7  PUBLIC ssum, scopy
     8CONTAINS
    69
    7   IMPLICIT NONE
     10  SUBROUTINE scopy(n, sx, incx, sy, incy)
    811
    9   INTEGER n, incx, incy, ix, iy, i
    10   REAL sx((n - 1) * incx + 1), sy((n - 1) * incy + 1)
     12    IMPLICIT NONE
    1113
    12   iy = 1
    13   ix = 1
    14   DO i = 1, n
    15     sy(iy) = sx(ix)
    16     ix = ix + incx
    17     iy = iy + incy
    18   END DO
     14    INTEGER n, incx, incy, ix, iy, i
     15    REAL sx((n - 1) * incx + 1), sy((n - 1) * incy + 1)
    1916
    20 end
     17    iy = 1
     18    ix = 1
     19    DO i = 1, n
     20      sy(iy) = sx(ix)
     21      ix = ix + incx
     22      iy = iy + incy
     23    END DO
    2124
    22 function ssum(n, sx, incx)
     25  end
    2326
    24   IMPLICIT NONE
     27  function ssum(n, sx, incx)
    2528
    26   INTEGER n, incx, i, ix
    27   REAL ssum, sx((n - 1) * incx + 1)
     29    IMPLICIT NONE
    2830
    29   ssum = 0.
    30   ix = 1
    31   do i = 1, n
    32     ssum = ssum + sx(ix)
    33     ix = ix + incx
    34   END DO
     31    INTEGER n, incx, i, ix
     32    REAL ssum, sx((n - 1) * incx + 1)
    3533
    36 end
     34    ssum = 0.
     35    ix = 1
     36    do i = 1, n
     37      ssum = ssum + sx(ix)
     38      ix = ix + incx
     39    END DO
    3740
     41  end
     42
     43END MODULE lmdz_ssum_scopy
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_assert.f90

    r5117 r5119  
    22MODULE lmdz_assert
    33
    4   IMPLICIT NONE
    5 
     4  IMPLICIT NONE; PRIVATE
     5  PUBLIC assert
    66  INTERFACE assert
    77    MODULE PROCEDURE assert1, assert2, assert3, assert4, assert_v
    88  END INTERFACE
    9 
    10   PRIVATE assert1, assert2, assert3, assert4, assert_v
    119
    1210CONTAINS
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_assert_eq.f90

    r5117 r5119  
    11MODULE lmdz_assert_eq
    22
    3   IMPLICIT NONE
     3  IMPLICIT NONE; PRIVATE
     4  PUBLIC assert_eq
    45
    56  INTERFACE assert_eq
    67    MODULE PROCEDURE assert_eq2, assert_eq3, assert_eq4, assert_eqn
    78  END INTERFACE
    8 
    9   PRIVATE assert_eq2, assert_eq3, assert_eq4, assert_eqn
    109
    1110CONTAINS
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_coefpoly.f90

    r5117 r5119  
    44  PUBLIC coefpoly
    55
    6 contains
     6CONTAINS
    77
    88  SUBROUTINE coefpoly(xf1, xf2, xprim1, xprim2, xtild1, xtild2, a0, a1, a2, a3)
     
    5151  END SUBROUTINE coefpoly
    5252
    53 end module lmdz_coefpoly
     53END MODULE lmdz_coefpoly
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_interpolation.f90

    r5117 r5119  
    88  PUBLIC locate, hunt
    99
    10 contains
     10CONTAINS
    1111
    1212  pure FUNCTION locate(xx, x)
     
    137137  END SUBROUTINE hunt
    138138
    139 end module lmdz_interpolation
     139END MODULE lmdz_interpolation
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_mpi_wrappers.F90

    r5103 r5119  
    1414
    1515SUBROUTINE MPI_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR)
    16 USE ISO_C_BINDING
     16USE ISO_C_BINDING, ONLY: C_PTR
    1717IMPLICIT NONE
    1818    TYPE(C_PTR),VALUE  ::   SENDBUF , RECVBUF
     
    4141
    4242SUBROUTINE MPI_ISEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)
    43 USE ISO_C_BINDING
     43USE ISO_C_BINDING, ONLY: C_PTR
    4444IMPLICIT NONE
    4545    TYPE(C_PTR),VALUE  ::    BUF
     
    5050
    5151SUBROUTINE MPI_ISSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR)
    52 USE ISO_C_BINDING
     52USE ISO_C_BINDING, ONLY: C_PTR
    5353IMPLICIT NONE
    5454    TYPE(C_PTR),VALUE  ::    BUF
     
    5858
    5959SUBROUTINE MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR)
    60 USE ISO_C_BINDING
     60USE ISO_C_BINDING, ONLY: C_PTR
    6161IMPLICIT NONE
    6262    TYPE(C_PTR),VALUE  ::    BUF
     
    7474
    7575SUBROUTINE MPI_GATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE, ROOT, COMM, IERROR)
    76 USE ISO_C_BINDING
     76USE ISO_C_BINDING, ONLY: C_PTR
    7777IMPLICIT NONE
    7878    TYPE(C_PTR),VALUE  ::    SENDBUF, RECVBUF
     
    8383   
    8484SUBROUTINE MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR)
    85 USE ISO_C_BINDING
     85USE ISO_C_BINDING, ONLY: C_PTR
    8686IMPLICIT NONE
    8787    TYPE(C_PTR),VALUE  ::    BUFFER
     
    9191
    9292SUBROUTINE MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR)
    93 USE ISO_C_BINDING
     93USE ISO_C_BINDING, ONLY: C_PTR
    9494IMPLICIT NONE
    9595    TYPE(C_PTR),VALUE  ::    SENDBUF, RECVBUF
     
    113113
    114114SUBROUTINE MPI_SCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
    115 USE ISO_C_BINDING
     115USE ISO_C_BINDING, ONLY: C_PTR
    116116IMPLICIT NONE
    117117    TYPE(C_PTR),VALUE  ::    SENDBUF, RECVBUF
     
    122122
    123123SUBROUTINE MPI_REDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, IERROR)
    124 USE ISO_C_BINDING
     124USE ISO_C_BINDING, ONLY: C_PTR
    125125IMPLICIT NONE
    126126    TYPE(C_PTR),VALUE ::    SENDBUF, RECVBUF
     
    130130
    131131SUBROUTINE MPI_RECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR)
    132 USE ISO_C_BINDING
     132USE ISO_C_BINDING, ONLY: C_PTR
    133133USE lmdz_mpi, ONLY: MPI_STATUS_SIZE
    134134IMPLICIT NONE
     
    140140
    141141SUBROUTINE MPI_SEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR)
    142 USE ISO_C_BINDING
     142USE ISO_C_BINDING, ONLY: C_PTR
    143143IMPLICIT NONE
    144144    TYPE(C_PTR),VALUE  ::  BUF
     
    155155
    156156SUBROUTINE MPI_GATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR)
    157 USE ISO_C_BINDING
     157USE ISO_C_BINDING, ONLY: C_PTR
    158158IMPLICIT NONE
    159159    TYPE(C_PTR),VALUE  ::  SENDBUF, RECVBUF
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_new_unit.f90

    r5117 r5119  
    11module lmdz_new_unit
    22
    3   IMPLICIT NONE
     3  IMPLICIT NONE; PRIVATE
     4  PUBLIC new_unit
    45
    5 contains
     6CONTAINS
    67
    78  ! Returns an existing unit id that isn't already opened
     
    2021  END SUBROUTINE  new_unit
    2122
    22 end module lmdz_new_unit
     23END MODULE lmdz_new_unit
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_physical_constants.f90

    r5117 r5119  
    11MODULE lmdz_physical_constants
    22
    3   IMPLICIT NONE
     3  IMPLICIT NONE; PRIVATE
     4  PUBLIC k8, PI, PIO2, TWOPI, SQRT2, EULER, PI_D, PIO2_D, TWOPI_D
    45
    56  INTEGER, parameter :: k8 = selected_real_kind(13)
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_regr_conserv.f90

    r5117 r5119  
    55  USE lmdz_interpolation, ONLY: locate
    66
    7   IMPLICIT NONE
     7  IMPLICIT NONE; PRIVATE
     8  PUBLIC :: regr_conserv
    89
    910! Purpose: Each procedure regrids a piecewise linear function (not necessarily
     
    3435  END INTERFACE
    3536
    36   PRIVATE
    37   PUBLIC :: regr_conserv
    38 
    3937CONTAINS
    4038
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_regr_lint.f90

    r5117 r5119  
    55  USE lmdz_interpolation, ONLY: hunt
    66
    7   IMPLICIT NONE
     7  IMPLICIT NONE; PRIVATE
     8  PUBLIC :: regr_lint
    89
    910  ! Purpose: Each procedure regrids by linear interpolation along dimension "ix"
     
    2627  END INTERFACE
    2728
    28   PRIVATE
    29   PUBLIC :: regr_lint
    3029
    3130CONTAINS
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_slopes.f90

    r5117 r5119  
    44  ! Extension / factorisation: David CUGNET
    55
    6   IMPLICIT NONE
     6  IMPLICIT NONE; PRIVATE
     7  PUBLIC :: slopes
    78
    89  ! Those generic function computes second order slopes with Van
     
    2324  END INTERFACE
    2425
    25   PRIVATE
    26   PUBLIC :: slopes
     26
    2727
    2828CONTAINS
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_vampir.F90

    r5117 r5119  
    1313  INTEGER :: MPE_end(nb_inst)
    1414
    15 contains
     15CONTAINS
    1616
    1717  SUBROUTINE InitVampir
     
    8484  END SUBROUTINE  VTe
    8585
    86 end module lmdz_vampir
     86END MODULE lmdz_vampir
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_write_field.f90

    r5117 r5119  
    1919    module procedure WriteField3d, WriteField2d, WriteField1d
    2020  end interface WriteField
    21 contains
     21CONTAINS
    2222
    2323  function GetFieldIndex(name)
     
    298298  END SUBROUTINE write_field3D
    299299
    300 end module lmdz_write_field
     300END MODULE lmdz_write_field
    301301 
  • LMDZ6/branches/Amaury_dev/libf/misc/lmdz_wxios.F90

    r5118 r5119  
    442442    USE lmdz_geometry, ONLY: longitude, latitude, boundslon, boundslat, ind_cell_glo
    443443    USE lmdz_grid_phy, ONLY: nvertex, klon_glo
    444     USE lmdz_phys_para
    445444    USE lmdz_physical_constants, ONLY: PI
    446445    USE lmdz_ioipsl_getin_p, ONLY: getin_p
  • 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.